Project Zomboid

Project Zomboid

27 ratings
How to Translate Project Zomboid
By Matrioshka and 1 collaborators
Let's embark on an exciting journey into the fascinating world of game translation! In this comprehensive guide, we will thoroughly explore every step involved in transforming Project Zomboid into a multilingual masterpiece. From understanding the basics to delving into the intricate details, this guide will provide you with everything you need to know to bring this game to life in your languages.

[github.com]
2
2
3
   
Award
Favorite
Favorited
Unfavorite
Introduction


Welcome, 歡迎, 환영, bienvenidas, bienvenue, ยินดีต้อนรับ, witamy, willkommen, bem-vindo,
ㅤㅤㅤㅤㅤㅤㅤㅤㅤüdvözöljük, benvenuto, добро пожаловать and hoş geldin!

Ready to bring the game to your own language?
Let's dive into the world of Project Zomboid translations!

Warning: Translating a whole game is like surviving a zombie horde – it's long, tough, and sometimes downright frustrating. So, make sure you've got plenty of snacks and a comfy spot before you start.

Think of it as your own personal zombie survival challenge!
Chapter 1 - Before You Dive In
Getting Started with Game Translation

Before you begin translating a game, it's important to check if someone else is already doing it for your language.

It would be disappointing to invest time in translating only to find out that it's already been done. The easiest way to find out is to ask in the official Discord server [discord.gg] in the #translations channel for your language.

What If Your Language Isn't Supported?

If your language isn't included in the game at all and you want to start translating from scratch, refer to the next chapter for guidance.

Ready to Start Translating?

If you're sure that no one is translating the game into your language, you can go ahead and start!

For translation, it's best to use an advanced text editor with a comparison plugin, but a simple program like Windows Notepad can work too.

We recommend two text editors:
- Notepad++ [notepad-plus-plus.org]
- Visual Studio Code [code.visualstudio.com]

Word Count Overview

The English text in the game, excluding TV and radio scripts, contains about 35,000 words. The TV and radio scripts have around 80,000 words.
Chapter 2 - Adding a New Language
ㅤㅤㅤㅤㅤㅤㅤ
You can skip this chapter if your language is already included in the game

Creating a Translation Folder for Your Language

1. Navigate to the Folder
Go to the following directory:
SteamLibrary\steamapps\common\ProjectZomboid\media\lua\shared\Translate\

2. Create Your Language Folder
Inside the "Translate" folder, create a new folder. Name it using the abbreviation for your language. For example, if your language is Slovak, name the folder SK. This will be your translation folder.

3. Copy Original Translation Files
Next, locate the original translation files. Go to:
media\lua\shared\Translate\EN
Copy all the files from this folder into your new translation folder (SK).

4. Rename the Files
Now, you need to rename the copied files. For example:
- Change ItemName_EN to ItemName_SK
- Change IG_UI_EN to IG_UI_SK
Do this for all the files you copied.

5. Update the First Lines in Each File
Open each of your renamed files (like ItemName_SK) and change the first line. For instance, in ItemName_SK, change ItemName_EN to ItemName_SK. Repeat this for all the translation files.

By following these steps, you’ll set up your translation files correctly for your new language!


Finalizing Your Language Setup

1. Edit the Language File
Open the file named language.txt. Look for the line that says:
`text = English`
Replace it with:
`text = [Your Language]`
For example, if your language is Slovak, it should read:
`text = Slovak`

2. Set the Character Encoding
In the charset section of the file, specify your language's encoding. For Slovak, you would write:
`Cp1250`

3. Change File Encoding
It’s important to change the encoding of your files. If you don’t do this, the game may not read them correctly. If you’re unsure about which encoding to use, don’t hesitate to ask for assistance in the #translation channel on the official Discord server [discord.gg].

Once you’ve completed these steps, your language is now (un)officially part of the game! Enjoy your new translation!
Chapter 3 - Adding a New Font
Vanilla fonts do not support all languages.
If your language contains glyphs that are not supported by vanilla fonts, it will not display correctly.


A Korean player may see another player who uses the English client sending texts in English, but those players who use the English client may not be able to see Korean text.
That's because Korean fonts contain English characters, but not vice versa.


Therefore, we need to create a new set of fonts for the game.

The game's font folder can be found at
common\ProjectZomboid\media\fonts
Duplicate the 'EN' font folder and then rename it with your language code.

Find some nice-looking fonts at Google Fonts[fonts.google.com]
Fonts that are licensed under the Open Font License are preferable.

We'll use Angelcode's Bitmap Font Generator[www.angelcode.com] to create the fonts for the game.
  1. Open Bitmap Font Generator
  2. Press 'F' to open the Font Settings panel



  3. Then, choose the font that you like and adjust the font size.
  4. Press 'T' to open the Export Options and adjust settings.



  5. Select the glyphs subset that you want to include by pressing 'Shift + Left Click,' right-click to bring up the context menu, and then choose 'Select marked subset(s).'



  6. Press 'Ctrl + S' to export the font by replacing .fnt in your font folder
  • Repeat the process for 1x - 4x font size.

    It is recommended to create a new font as a mod because it is easy to update and share with the community via the Steam Workshop.
Chapter 4 - Where to Start?
Your language is in the game already, it doesn't have any translators, it's very outdated and you really want to translate, but you don't know where to start? Not a problem!
First things first, go to Steam\steamapps\common\ProjectZomboid\media\lua\shared\Translate\ and by using the table below identify what translation folder does your language use:

Language
Translation Folder
Files Encoding
Argentinian Spanish
AR
CP1252
Catalan
CA
ISO/IEC 8859-15
Traditional Chinese
CH
UTF-8
Simplified Chinese
CN
UTF-8
Czech
CS
CP1250
Danish
DA
CP1252
German
DE
CP1252
Estonian
EE
UTF-8
English (US)
EN
UTF-8
English (UK)
EN UK
UTF-8
Spanish
ES
CP1252
Finnish
FI
CP1252
French
FR
CP1252
Hungarian
HU
CP1250
Indonesian
ID
UTF-8
Italian
IT
CP1252
Japanese
JP
UTF-8
Korean
KO
UTF-16
Dutch
NL
CP1252
Norwegian
NO
CP1252
Tagalog
PH
UTF-8
Polish
PL
CP1250
Portuguese
PT
CP1252
Brazilian Portuguese
PTBR
CP1252
Romanian
RO
UTF-8
Russian
RU
CP1251
Thai
TH
UTF-8
Turkish
TR
CP1254
Ukrainian
UA
CP1252

Now you need to know what is missing from your translation files. You have 3 ways how to do it:

№1 Get translationproblems.txt
This txt file has every untranslated string in the game. Follow these six easy steps to get it:
  • Open your Steam Library.
  • Find PZ. Right Click it.
  • Properties.
  • And under launch properties type -debugtranslation
  • Launch the game. (If you have mods, turn them off and restart the game)
  • Go to Users\User\Zomboid and open translationproblems.txt
For example we take Slovak again:
Inside translationproblems.txt you will see something like this:
... ItemName_SK: ItemName_Base.Lunchbox = "Lunchbox", ItemName_Base.Lollipop = "Lollipop", ContextMenu_SK: ContextMenu_Check_Trap = "Check Trap", ...
Now you go to your translation folder and copy these strings to your t-files.
ItemName_Base.Lunchbox = "Lunchbox", you copy to ItemName_SK.txt and translate "Lunchbox". After that you copy ContextMenu_Check_Trap = "Check Trap", to ContextMenu_SK.txt and translate it too.

Don't forget to copy commas too, they're important.
Also don't change "quotes" to these 'quotes' or to «these ones»

№2 Merge Files
You can add missing strings to your translation file, by using this website.[zomboid-translator-merger.vercel.app]
You simply upload the file you want to check, from your translation folder to the website. The website will show you what strings are missing and suggest to download the merged file with the missing strings.



Be ware that some languages are not supported by the website.

№3 Compare Files
For this need Notepad++ with Compare Plugin OR Visual Studio Code.
Open your translation folder and EN translation folder. Now you can compare two files.

For NotePad++:
Open translation file you want, for example ItemName_SK after that open ItemName_EN. Choose ItemName_SK in NotePad++, press 'Plugins' button, 'Compare' and press 'Compare' again.



For Visual Studio Code:
Open the Explorer view, right click on your language's translation file and choose 'Select For Compare', right click on the English file and choose 'Compare With Selected'.




TV and Radio
Download the files from the forum.[theindiestone.com] If the zip archives don't have files with your language, just rename one of the files. For example: rename RadioData_RU to RadioData_SK.

File format:

[Info]
guid = the GUID of the original file.
language = the language abbreviation.
version = the version of the original radio data this file is derrived from.
translator = the name of translator, can optionally add more than one name seperated by comma's
[/info]

[Translations]
Each to be translated line has an omitted line above with the original sentence for reference, and a line number in case people want to pool (person A could do 0 to 500, person B 500 to 1000 etc.)
Example:
//0. ORIGINAL: This is Jackie Jaye reporting for LBMW... 576674c7-6cbf-4ec5-a3e9-7d8269fc44b8 = Toto je Jackie Jaye, ktorý informuje o LBMW
The translation that goes after the '=' should remain on that same line, so don't use returns.
[/translations]

Unfortunately it's impossible to test your TV/Radio translation in the game.
Chapter 5 - Checking the Translation.
Your translation is ready and you want to test it in the game? All you need to do is to be sure that your translation folder in the right place:
ProjectZomboid\media\lua\shared\Translate\[translation folder]
It's recommened to turn the debug mode on:

  • Open your Steam Library.
  • Find PZ. Right Click it.
  • Properties.
  • And under launch properties type -debug
Now start a new game (or load an old save) and press button, right under the Map Icon.

Moodles Translation Test
Go to 'General debuggers' -> 'Moodles and Body'.
For example, if you want to make your character hungry drag 'Hunger' to the right.

Items Translation Test
Go to 'Items List'. By default all items are in alphabetical order.

Filters:
Type = Search by item's ID. Useful if you can't find an item by its name. For example you want to find Pool Cue, go to ItemName_[YourLang] and find the item, copy the word that comes after "ItemName_Base."

Name = Search by item's name. Useful if you already translated a word and you want to find it very fast.

Category = A filter that narrows things down. Mostly used by the devs, so it's not very useful for us.

DisplayCategory = A filter that narrows things down. You usually see it in your inventory. (You can see it on the screenshot)


VHS Translation Test
Find a TV, go to Item List and type 'VHS' in 'Type' filter. Spawn 'VHS - Home' and 'VHS - Retail'.
Go to your inventory and right-click on one of the VHS tapes and select 'DBG: Change recording'. You can scroll through the VHS list with your mouse wheel.

CD Translation Test
Go to Item List and type 'cdplayer' in 'Type' filter or find a radio. Type 'disc_retail' and spawn it. Go to your inventory and right-click on one the CD and select 'DBG: Change recording'. Same as in the VHS list, you can scroll through the CD list with your mouse wheel.
Chapter 6 - Uploading the Translation
It's preferable to make Pull Requests on the Project Zomboid Translations repository[github.com].

This method makes it easier for developers to approve your contributions and for other translators to see the updates in the translations.

Pull Requests are simpler than they may appear. To learn how to work with them effectively, you can watch a helpful video that explains the process.


If you prefer not to use GitHub, there's no need to worry!

You can simply zip your translation files and upload them in the #translations channel of the Project Zomboid Discord [discord.gg] server.
The developers will take care of uploading the files.
Extra - How To Translate Mods?
The translation of mods is almost the same as the translation of the game.

Download the mod you want to translate. Remember the Workshop ID.



If you don't see the address bar: Go to Steam Settings. Select Interface. Check the 'Display Steam URL address bar when available' option.

Go to Steam\steamapps\workshop\content\108600. This is the mod folder.
Open the folder with the Workshop ID and go to Translate folder.

The path usually looks like this:
Steam\steamapps\workshop\content\108600\[Workshop ID]\mods\[Mod ID]\media\lua\shared\Translate
If the folder doesn't have your language translation folder - see Chapter 2.

Keep in mind that a single workshop can contain multiple mods.


You may have to go through each mod's folder within a workshop to get to the translation files.

F.A.Q
Frequently Asked Questions

Q: Do translators get paid?
A: No, translators do not get paid for their work. It is entirely voluntary, done out of love for the game.

Q: Something is wrong with my translation! Some or all letters are messed up.
A: Check the encoding of your translation files. Make sure you have set the correct encoding in the language.txt file.

Q: Does the game support right-to-left languages? (Arabic, Farsi, Hebrew, etc.)
A: Unfortunately, the game does not currently support right-to-left languages natively.

However, you can try translating the game using the Latin alphabet.
For example, instead of writing "مرحبًا" in Arabic, you could write "'mrhban'".

If you have any more questions, don't hesitate to ask in the comment section below. The community is here to help!
Conclusion
And that's the end of our tutorial on adding a new language to Project Zomboid!
We hope you found it informative and easy to follow.

Now you are ready to take your first steps into the world of translation! Hooray!

Remember, the question is not "Does anyone want me to translate the game?" but rather, "Do I really want to translate the game?"

If your answer is "yes", then welcome to the PZ Translator Club! You're in for a rewarding experience.

Thank you for reading our tutorial. We appreciate your interest in helping to localize this great game. Happy translating!


16 Comments
Yakov Mar 4 @ 3:23am 
UTF-8 for russian language
Hornet Jan 19 @ 2:57pm 
Огромное спасибо!)
Phönix Aug 30, 2024 @ 8:14am 
Aaa
Understood
Matrioshka  [author] Aug 30, 2024 @ 2:09am 
Phönix, they're available, but you need to register on the forum to download them.
Phönix Aug 30, 2024 @ 1:08am 
Files from "TV and Radio" are not more available
Fragger Jul 22, 2024 @ 6:11am 
@Riko Prushka
Thank you!
Riko Prushka  [author] Jul 15, 2024 @ 11:18pm 
@Fͥraͣgͫger Please use -debugtranslation to check the translationproblems.txt file. All missing translations will be listed there, and you can create translation files for your languages.

However, if there are no strings available for translation from that mod, you will need to request the modders to add translation support.
Fragger Jul 14, 2024 @ 10:36am 
Hi, how do you localize vehicle mods without translation files?

While translating mods, I found some vehicle mods don't have language files, like Autotsar Tuning Atelier - Petyarbuilt 379 . I tried looking for clues in the files but didn't see any relevant characters.

I also noticed that this translation mod 个人mod汉化 localized Autotsar Tuning Atelier - Petyarbuilt 379 vehicle mod without translation files. I saw the translated entries but still don't understand how they did it, because I'm facing the same issue with another mod.

I saw content like "IGUIxxxx" in the game, but I can't find the corresponding source language. I can only put "IGUI" in the translation file and guess a translation.

I'm really confused.
Matrioshka  [author] Dec 13, 2023 @ 12:09am 
VilladsAlex, yep. Read chapter 4.
VilladsAlex Dec 13, 2023 @ 12:04am 
Is there any way to fix translations that someone else made that are missing half of the words?