How to help translating Founders' Fortune đź’¬

Recently, a bunch of players have approached me and asked if they could help translating Founders’ Fortune. First off, let me say that this kind of community motivation is incredible and I’m super thankful for everyone that wants to participate. Thumbs up for the community!


So, how does it work?

We are going to use the Website GitHub to keep track the localization files and the changes to them. The advantage is that it automatically tracks all the changes and who has done what. If you would like to participate in the community translation effort, you’ll need a GitHub account, be approved as a contributor and then you can start translating!

When we release a new version, we are going to download all the translations, make the languages selectable ingame and release it. If a translation is not 100% done, the missing phrases are going to use the english version by default.


Step 1 - Create a GitHub Account

This is straigtforward: Go to github.com and create your account.

Step 2 - Get Approved as a Contributor

Send me your GitHub username either here on the Forums or on the Discord server. I’ll give you edit rights to the repository. The invitation will arrive as a GitHub email in your mail account.

Save the link to the FoundersFortuneLocalization repository in your bookmarks or use this link.

Step 3 - Start Translating online

Just click on one of the json files and find the edit button on the top right to start changing it

As you can see in the picture, translation entries have the following format:

"newGame": {
	"english": "New Game",
	"german": "Neues Spiel",
	"spanish": "Nuevo Juego",
	"french": "Nouveau Jeu",
	"dutch": "Nieuw Spel",
},

If your language is missing, simply add it and watch out that all the commas are still correct.
Sometimes there are special keywords in the translation, like here:

"messageText_TechUnlocked": {
	"english": "You unlocked %techName% and can now do new stuff!\n%unlockedStuff%",
	"german": "Du hast %techName% erforscht und kannst nun neue Dinge machen!\n%unlockedStuff%"
},

If a word is written between %-signs, like %techName%, it’s a special keyword that’s going to be replaced by the game. Just copy the word with the %-signs directly into your translation. The \n characters are going to be replaced by a new line when loaded by the game.

Finally, commit your changes to save them!

Step 3 Alternative - Do your Translation locally on Your Computer

GitHub uses a program called git to manage all the changes to these files. If you already know how to use git, feel free to use your favorite git tools to download all the files to your computer and then push your changes to GitHub. If you don’t, there are a lot of tutorials online, but be warned - git was created for programmers and there is some complexity inherent to it.

Since multi-user editing is not terribly well supported by GitHub, this method might be necessary if we have a lot of community translators, but for now I think alternative 1 should be sufficient for most people.

Step 4 - Test your Translation in the Game

Scroll down to view the next post in this thread which describes how to download your translations and test them inside the game.

Step 5 - Get Added in the Credits of Founders’ Fortune

When your language gets released with the game, we’ll add regular contributers to the credits of Founders’ Fortune as a thank you for all the help. :bowing_man:


Important Rules

  1. Only developers are allowed to change the English and German versions. They are official and should not be changed by the community. If you find spelling mistakes or feel like some phrasing doesn’t really fit, you can open an issue on GitHub, so we can have a look and change it ourselves.
  2. If you know git, you can use it pretty much however you want: Clone the repo, create branches and make pull requests.
    But don’t switch to a developer branch like “Alpha_7” and push your changes there as this can disrupt our work.

Guidelines for Translations

In order to achieve consistent phrasing in the game, here are some guidelines to keep everyone on the same page:

  • Interactions: When the player orders the colonist to do something, we prefer the imperative form, like “Go here”, “Harvest”, or “Cut Tree”. Nevertheless, for some languages it can be more readable to use another form. For example, in German we translated it to “Going here”, “Harvesting” and “Cutting Tree”. You know what’s best for your language, but keeping it consistent is the #1 rule here.
  • Thought descriptions are always written from the perspective of the colonist, for example “I had a bad dream. What a night”.
  • Traits, Effects, Thought titles, etc. are always written in 3rd person, like “%firstName% has phenomenal health.”
  • In names.json, you can replace half of the names with typical names from your language. Try to find a name that fits the original if possible, like “Alex” should become “Alexandre”, not “Miranda”. You can not replace the first name “Wilhelm”, because that’s the default name for our little colonist :slight_smile:
  • Newlines are required in some entries. The preferred way of dealing with them is using \n characters. The only exception is in encyclopedia.json, where paragraphs tend to become very long. Here you can also use regular new lines if you prefer them.
  • Brevity is the soul of wit. Most texts should be kept as short as possible so the player doesn’t have to read walls of text and to make it easier for the UI to accomodate everything.

Communication

In translation there is no single correct solution and conveying the meaning is just as important as keeping the style consistent. You’re going to have to talk to your fellow translators and to us devs to figure out what’s the best way to translate certain things.

I like having the discussion in the forum, because it’s all going to be easily accessible to future translators. However, sometimes you just need some quick input to get something done and for this purpose Discord is much better suited.


Important License Information

Legally speaking, Founders’ Fortune is a product of Oachkatzlschwoaf Interactive. Of course we don’t want to take on any legal risks by including any of your translations in the game, so we want to make clear that these translations are free services by the fans to improve the game. In official terms:

LICENSE INFO: These projects are officially-supported fan translations of Founders’ Fortune. Oachkatzlschwoaf Interactive UG (haftungsbeschränkt) may include content derived from these projects in official releases of their products without owing money or credit to anyone (though we will credit regular contributors in the credits of Founders’ Fortune).
By contributing to these projects you agree to give Oachkatzlschwoaf Interactive 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 daniel@foundersfortune.com.


Final Notes

It’s not required, but encouraged for every translator to create a forum account and post in this thread which languages he or she is going to cover. I’ll maintain a list of all translators so you can easily see who’s working on what. If you have further suggestions on the process, feel free to let me know.
Again, I want to thank everyone for their enthusiasm! I have a lot of hope that this is going to become a great project :smiley:

Language Translators (Github name in parentheses)
French @CdriX, Patrador
Spanish @leon_2s (leohoran), Theedgeofart (aamorante), Elenaril
Dutch Money_Time, Vlambulance
Portuguese @JordanPANDA
Turkish maeglin (t5k6)
Bulgarian iiSheriff_Kane (Kanefannumber1)
2 Likes

How to test your Translation in the game

Step 1 - Put the translations in the game folder

Download the current translations from the GitHub project. There is a big green button saying “Clone or Download” at the top right. If you know what git clone is you can use that, otherwise just download it as a zip folder. Unpack that folder and put it in the game directory of the translator’s version, right next to the exectuable:

folders1

It’s important that you call this folder localization, nothing else is going to work.

Step 2 - create and configure custom.txt

In the localization folder, we need a file to configure your custom translations. It’s called custom.txt and the contents look like this:

Game Version:
Alpha 6.0.3
Forced language:
french

The game version you enter needs to match exactly the version of the game you start - otherwise it won’t load your translations. Replace “french” with the key for your language. The custom.txt file sits right next to the translation files in the localization folder:

folders2

Here is an example custom.txt for you. You should be able to right click on this link to download it.

Step 3 - Start the game and see if it can find the custom translations

If the game can find your translations, it will automatically open the “Translator’s Dashboard” in the main menu:

The Dashboard not only shows you the progress that’s been made for each language, but also shows you any import errors.

Step 4 - Fix any import errors

Import errors are usually not a big deal. Probably you’ve forgotten a comma or a ", are missing a } or just mistyped when you tried writing \n for the newlines. The error will give you the file and the line where importing went wrong. The actual mistake might on exactly that line or maybe 1 or 2 lines above it, just have a look around.

We can only use the translations in the game if there are no import errors. Once you fixed an issue, you can just click the refresh button in the translator’s dashboard to reimport your changes.

Step 5 - Something doesn’t work ingame?

If your text is too long, please take some time to think how you can make it shorter to make it fit. If you’re not sure how much you can change the meaning, talk to us.
If there is no way to make it fit or if there are any other issues with the translation not being displayed properly in the game, please open an issue on GitHub, so it’s all organized.

Done!

You can now look around Founders’ Fortune, play as usual, and test your custom translation!

2 Likes

How to do deal with different genders in colonists

Since Alpha 7 Founders’ Fortune has male and female colonists. This can lead to all kind of grammatical fun, so this section will describe how to deal with that issue.

All of the words that need to adapted based on gender are defined in genderDictionary.json. The structure is a little different from other localization .json files:

"english": {
	"male": {
		"heShe": "he",
		"hisHer": "his",
		"himHer": "him",
		"himselfHerself": "himself",
		"guyGirl": "guy"
	},
	"female": {
		"heShe": "she",
		"hisHer": "her",
		"himHer": "her",
		"himselfHerself": "herself",
		"guyGirl": "girl"
	}
},

Basically, if we have a sentence like She is missing her favorite toy. and we want to make it work for both genders, we’ll have add a code that replaces she and a code that replaces her. In this example we’d add heShe and hisHer to genderDictionary.json.
The sentence now is %heShe% is missing %hisHer% favorite toy.

Sometimes it’s necessary to capitalize a gendered word. You can easily do this by adding cap- in front of the code. In our example it looks like this: %cap-heShe% is missing %hisHer% favorite toy.

Since each language handles gender a little bit differently, you’ll have to decide yourself which words need to be included in genderDictionary.json. My recommendation is to just start translating as usual and when you need to gender a word, you can create a code for it if it doesn’t exist. Please don’t use any special characters like é in the codes, they may introduce problems with the programming.

In some texts, the game can not apply any gender. For example the text in the encyclopedia does not belong to any specific colonist and is not gendered by the game. Instead, you can just use phrasing that is common in your language.

Hello, my name is Pedro (call me Peter if you want :slight_smile: ). I’m from Brazil, i was looking in Reddit and discover your game, sincerely I was very interested in the mechanics and found the graphics amazing. I saw that you have someone translating into Portugal Portuguese, and i really want to help translate into Brazilian Portuguese.
If you want to get in touch with me I am in total disposition. I really want to help this game to reach more people, and I would like to volunteer to translate for the Brazilian public.

1 Like

Hey Pedro, sounds great!
We don’t have any brazilian translators yet, so let me know your Github username so I can add you to the project.

Also, I recommend joining the Discord Server, so you can chat with us and the other translators in real time :smiley:

Brazilian is portuguese too just some change on language :slight_smile:

I know. :slight_smile: It’s not a lot of work for us to support another language, so I don’t have anything against it.
How different is it? Can brazilians typically understand all portuguese portuguese?

Maybe @Peter should use your translations as a template and only change them where necessary?
Btw @Peter: @JordanPANDA has done the portuguese translation, so you should talk to him about these things.

1 Like

Hello @Daniel, of course I can use it as a template. There are some differences in specific terms in Brazilian Portuguese, but in general it is very similar to both.
I’m going to join the discord server to talk to @JordanPANDA better. If you need my Github is Pedro-Rainho :slight_smile:

1 Like