> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rpg-leveling.zuxaw.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Messages Language Mapping

> MessagesLanguageMapping.json - Translation and localization strings.

# Messages Language Mapping

**File:** `mods/Zuxaw_RPGLeveling/MessagesLanguageMapping.json`

This file contains all translatable text strings for the plugin. It was renamed from `messages.json` in version 0.2.0.

***

## Overview

The file supports **full localization** and includes messages for:

* **Stat names and descriptions** - Health, Stamina, Damage, Defense, etc.
* **HUD messages** - Level, XP progress, zone names
* **GUI labels and buttons** - Stat allocation, navigation, confirmations
* **Error messages** - Invalid commands, permission errors
* **Notification messages** - Level up, stat allocation, system messages
* **Command descriptions and responses** - Help text, feedback messages

***

## Translation Support

The plugin uses this file to support multiple languages. You can create a full translation by editing all text strings in this file.

### Supported Languages

Any language can be supported by editing the text strings. Common translations include:

* English (default)
* French
* Spanish
* German
* Portuguese
* Russian
* Japanese
* Chinese
* And more...

***

## File Structure

The file is organized into logical sections:

```json theme={null}
{
  "Version": "0.2.0",
  "Stats": {
    "Health": "Health",
    "Stamina": "Stamina",
    "Damage": "Damage",
    "Defense": "Defense",
    ...
  },
  "HUD": {
    "Level": "Level",
    "XP": "XP",
    "Zone": "Zone",
    ...
  },
  "GUI": {
    "Title": "Stats",
    "AllocateButton": "Allocate",
    "ResetButton": "Reset",
    ...
  },
  "Commands": {
    ...
  },
  "Notifications": {
    ...
  }
}
```

***

## Common Message Keys

### Stat Names

```json theme={null}
{
  "Health": "Health",
  "Stamina": "Stamina",
  "Mana": "Mana",
  "Damage": "Damage",
  "Defense": "Defense",
  "Mining": "Mining",
  "Woodcutting": "Woodcutting",
  "StaminaRegenSpeed": "Stamina Regen Speed",
  "StaminaConsumption": "Stamina Consumption",
  "Ammo": "Ammo",
  "Oxygen": "Oxygen"
}
```

### Stat Descriptions

```json theme={null}
{
  "HealthDesc": "Increases maximum health",
  "StaminaDesc": "Increases maximum stamina",
  "DamageDesc": "Increases damage to NPCs",
  "DefenseDesc": "Reduces damage taken (%, max 80%)",
  "MiningDesc": "Increases damage to stone/ore blocks",
  "WoodcuttingDesc": "Increases damage to wood blocks"
}
```

### HUD Messages

```json theme={null}
{
  "Level": "Level",
  "XP": "XP",
  "Zone": "Zone",
  "LevelProgress": "{current} / {required}",
  "ZoneLevel": "Zone {id} (Lvl {min}–{max})"
}
```

### GUI Labels

```json theme={null}
{
  "StatsGUITitle": "Stats",
  "AllocateButton": "Allocate",
  "ResetButton": "Reset",
  "AvailablePoints": "Available: {points}",
  "MaxReached": "Max reached"
}
```

### Notifications

```json theme={null}
{
  "LevelUp": "Level Up! You are now level {level}",
  "StatAllocated": "Allocated {points} point(s) to {stat}",
  "StatsReset": "Stats reset successfully",
  "MaxLevel": "You have reached the maximum level!"
}
```

### Command Messages

```json theme={null}
{
  "CommandHelp": "/lvl - Open stats GUI",
  "CommandInfo": "/lvl info - Show your level and stats",
  "NoPermission": "You don't have permission to use this command",
  "InvalidArgument": "Invalid argument: {arg}"
}
```

***

## Example Translation (French)

Here's an example of a partial French translation:

```json theme={null}
{
  "Version": "0.2.0",
  "Stats": {
    "Health": "Santé",
    "Stamina": "Endurance",
    "Mana": "Mana",
    "Damage": "Dégâts",
    "Defense": "Défense",
    "Mining": "Minage",
    "Woodcutting": "Bûcheronnage"
  },
  "HUD": {
    "Level": "Niveau",
    "XP": "XP",
    "Zone": "Zone"
  },
  "Notifications": {
    "LevelUp": "Niveau supérieur! Vous êtes maintenant niveau {level}",
    "StatAllocated": "{points} point(s) alloué(s) à {stat}",
    "StatsReset": "Statistiques réinitialisées avec succès"
  }
}
```

***

## Placeholders

Many messages support placeholders that are replaced with dynamic values:

| Placeholder  | Description      | Example                    |
| ------------ | ---------------- | -------------------------- |
| `{level}`    | Player level     | "You are now level **50**" |
| `{points}`   | Stat points      | "Available: **15** points" |
| `{stat}`     | Stat name        | "Allocated to **Damage**"  |
| `{current}`  | Current XP       | "**1250** / 2000"          |
| `{required}` | Required XP      | "1250 / **2000**"          |
| `{min}`      | Min level        | "Zone 2 (Lvl **25**–50)"   |
| `{max}`      | Max level        | "Zone 2 (Lvl 25–**50**)"   |
| `{id}`       | Zone/instance ID | "**Zone 3**"               |

***

## Creating a Translation

To create a full translation:

1. Copy the default `MessagesLanguageMapping.json` file
2. Translate all text strings to your target language
3. Keep the JSON structure intact (don't change keys, only values)
4. Test in-game to ensure all messages display correctly
5. Share your translation with the community!

***

## Formatting Tips

* **Keep placeholders intact** - `{level}`, `{points}`, etc. must remain as-is
* **Maintain similar length** - Very long translations may not fit in UI elements
* **Use consistent terminology** - Use the same word for "level", "stat", etc. throughout
* **Test thoroughly** - Check HUD, GUI, commands, and notifications

***

## See Also

* [Configuration Overview](config-overview) - All config files
* [Translation Guide](translation) - Detailed translation instructions
* [Features](features) - List of all stats and features to translate
