Translations
Since v1.5.0 every text the mod shows comes from plain JSON files rather than from its code. It ships in English, Italian and, since v1.5.7, Russian, and follows the language you choose in Valheim's own settings. The Russian translation is by Rudra and Axibed. Anyone can add a language without touching the mod itself.
Where the texts live
The files sit in a Translations folder next to the mod's DLL, one folder per language and
one file per kind of text:
| File | What it holds |
|---|---|
races.json | The race selection menu: every race's name and description |
status_effects.json | The names and tooltips of the mod's status icons |
items.json | Items, build pieces and summoned creatures: names and descriptions |
messages.json | Everything the mod writes in the middle or corner of the screen |
hover.json | The prompts under the crosshair on stations, thralls and the ward |
merchants.json | The faction merchants, their closing jokes, the troop and hive shops |
compendium.json | The race pages in the compendium's Texts tab |
Where the folder is depends on how the mod was installed: inside the mod's own folder with a
mod manager, or BepInEx/plugins/RacesOfValheim/Translations for a manual install.
Adding a language
- Copy the
Translations/Englishfolder and rename the copy to the language's name as Valheim spells it:German,French,Spanish,Polish,Chinese,Japaneseand so on. The name has to match, or the game will not pick the files up. - Translate the values, never the keys. In
"rov_msg_skadi_dragon_form_fades": "Your dragon form fades."only the text on the right changes. - Restart the game with that language selected.
A key you leave out falls back to English, so a partial translation works: you can start with
races.json and messages.json and see your progress in game straight away.
Rules for the text
$1,$2,$3… are numbers or names the game fills in: a cooldown, a boss, a creature. Keep every one of them, but move them wherever your sentence needs them."Eclipse is on cooldown. Remaining: $1s"can become"Mancano $1s all'Eclissi.".- Tokens starting with
$and a word, such as$KEY_Useor$rov_piece_racemenuward_name, are resolved by the game. Leave them exactly as they are. \nis a line break, and the<color=…>/<b>tags are formatting. Keep them.- Quotes and song titles stay in the original. Ability names such as "Purple Rain", "Like a Bat out of Hell", "Weight of Shadows" or "Vae Victis" are references, and the Italian translation leaves them alone on purpose.
- Boss and creature names mostly come from the game's own translations already, so a merchant called "Greydwarf" or a message naming "The Elder" is translated for you.
A race has an internal id ("Skadi", "Trol") that is saved with your character, and a display name that only appears on screen. The files translate the display name alone, so a character saved in one language is still recognised in another.
Sharing a translation
Send the finished folder on the Discord and it can ship with the next release, so every player gets it without installing anything extra.