This page has info on how people can contribute to the fan-made RimWorld translations. Thank you very much for taking an interest!
How it works: We keep the translations on a popular public collaboration website called GitHub, on the
Ludeon GitHub page. GitHub works through a program called
Git, which is used to manage
repositories of data. Git tracks each change made to the repository, so you can see what's changed, when it changed, and what was there before. It makes it easy to understand who has done what, and remove mistakes.
When Ludeon releases a new version of the game, we pull all the data from the GitHub repositories for each language and include it with the main game. So any translation work you do will be available to everyone as soon as the game is updated.
IMPORTANT LICENSE INFO: These projects are officially-supported fan translations of RimWorld. Ludeon may include content derived from these projects in official releases of RimWorld without owing money or credit to anyone (though you can put your credits into your translations info and will appear in the main game's credits listing). By contributing to these projects you agree to give Ludeon a nonexclusive transferable perpetual worldwide license to use your contributed content in any way in any product, with or without credits, without any compensation except for the satisfaction of the work and community. If your content is in any of these repos and you don't wish these terms to apply to you, contact me immediately at [email protected]How to contribute- Download Git from this page and install it.
- Go to https://github.com/Ludeon and navigate into the page for your project.
- Copy the URL of the language project page. For example, if it's French, it'll be https://github.com/Ludeon/RimWorld-fr
- Open the command line on your computer (here's how), navigate to the folder where you want to keep your translation files. Then type "git clone", then a space, then paste in the URL you copied before. Press ENTER to run the command. This will clone the repository to your computer. More help on this.
- Download and install Visual Studio Code. Despite the name, this is not just for code. This is a free lightweight text editor with direct Git integration.
- Use Visual Studio Code to open the folder you cloned. You can now editing the translation files on your computer! You can even commit changes to the repository right in VSCode, without using the command line. This modifies the repository on your computer, but doesn't affect the repository on GitHub. To upload your changes to the repository on GitHub, you need to do more.
Get set up to contribute to the central GitHub repository:
- Create a user on GitHub.com.
- Email support pro Michael at [email protected] telling him the language and your GitHub user name. He will give you access to the appropriate GitHub repo.
- Work with the other translators through GitHub and the forum page to improve the translation. Remember it's a team effort; sometimes people have different opinions on the best way to translate, so please be ready to collaborate with others.
- Create a forum account on this forum.
- Go to the appropriate forum page for your language (listed here) and make a post introducing yourself to the other translators.
The game has a tool that inserts the original English data in comments in the files and creates "TODO" stubs for every necessary translation automatically. It is extremely useful. If you don't see an "EN:" comment with the original English data above each translation in your translation files, nobody has run the translation cleaner tool yet. You'll need to integrate the files into RimWorld as described and run the tool to update the files for translation.
Integrate your working files into RimWorld so you can test:
- Download the version of RimWorld you want to translate, through Steam or your DRM-free download link (you'll need to own the game).
- If you're working with the Steam version, you need to copy the RimWorld files, otherwise Steam may overwrite the changes you make to the translation. Find the RimWorld folder in your Steam installation. It'll be on a path similar to this:
C:\Program Files (x86)\Steam\steamapps\common\RimWorld
Copy that folder, and paste it in another folder on your PC (like C:/Translation/RimWorld). - Delete the translation from your copied installation of RimWorld.
- Move your cloned Git translation folder into its place and change its name to match.
- You can now start your copied version of RimWorld and test your translation, pull changes from Git continuously. Note that if the game gets updated, you'll need to repeat this process.
- Start your copied version of RimWorld. Select your language on the main menu.
- On the main menu, in the bottom left translation info window, click the "Translation cleanup" button. This updates all the translations files to the latest English data format, and inserts the original English text into comments you can reference while translating.
- On the main menu, in the bottom left translation info window, click the "translation report" button. This produces a text file with info on the translation and what it needs.
Useful info:There's a English translation available here for reference. This has all the game data in it, in English, ready to be translated to other languages. You can copy the XML over and translate it in-place.
Link to English translation on GitHub. Thanks to forum user duduluu for maintaining it.
Duduluu also created a translation tool called
RimTrans.
Core language files are stored in (GameFolder)/Data/Core/Languages. The original English data is in (GameFolder)/Data/Core/Languages/English.
Metadata: Translations have metadata that gives them a name and flag.
--- Create a FriendlyName.txt which contains the name of your language in your language (e.g. Italiano not Italian).
--- Create a flag image in PNG format, 128x64 pixels, called LangIcon.png. See other languages for reference.
There are four kinds of translation in RimWorld:
- Keyed translations are used by the game with their "key". e.g. the game wants to show the game-over message, so it looks up the string with the key "GameOverMessage" in the currently-selected language and displays that.
- DefInjected translations are different. These work by modifying the core "defs" that define every item, faction, storyteller, skill, and so on. They are data that is "injected" directly into the def data that the game runs on. These are translated by creating a DefInjected folder in your language folder. The en-US language folder lacks one of these because all the original def data is in English so no English data needs to be injected. However, you can see examples from other languages like German.
- Backstories translations are used to translate character childhood and adulthood backstories.
- Strings translations are files full of simple lists of "strings" of words. These are used when randomly assembling text, as in art descriptions.
To translate DefInjected stuff, you'll have to look through the various defs in (GameFolder)/Mods/Core/Defs and create translations for each field of each def that you want to change in your language. The basic format is <defName.fieldName>, where defName is the defName of the def you want to inject into, and fieldName is the name of the field. So, for example, if you want to modify the label of wood, you'd write <Wood.label>Bois</Wood.label>. This would change the label of wood to "Bois". For more complex structures like lists, there are other formats to use described
here.
Be sure to save your translation files with UTF-8 encoding, or special characters won't show up properly in-game.
Do not leave copies of game data in your translation repo. We don't want to ship a bunch of copies of useless game data, and it will produce errors when the translation is used in-game.
To help with updating translations, translator WMP wrote a tool that finds the difference between two translations. Run it with another more mature translation (or with the English data) and it can show you what tags you still need to translate. Find it
here.