How to help translating InfraSpace 💬

When we made our first game, we were lucky enough to have a great community that helped out with translating the game into a lot of different languages. That’s why I’d like to invite anyone who knows a different language to join the effort to make InfraSpace multi-lingual as well :smiley:. We’re using the same system as last time, so much of the following tutorial stays the same, too.

I’m super thankful for everyone who decides to help out :bowing_man:


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 straightforward: 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 InfraSpaceLocalization 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 InfraSpace

When your language gets released with the game, we’ll add regular contributers to the credits of InfraSpace 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:

  • Newlines are required in some entries. The preferred way of dealing with them is using \n characters.
  • 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 accommodate 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, InfraSpace 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 InfraSpace. 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 InfraSpace).
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@dionicsoftware.com.


Final Notes

Check the GitHub credits to get a list of translators. If you have further suggestions on the process, feel free to let me know.
Again, I want to thank everyone for participating! It’s great to have support from the community I can just try to make a game that’s worth your effort :slight_smile:

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:

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 5.14.51
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:

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 in game?

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 InfraSpace, play as usual, and test your custom translation!

Hello @Daniel , I would like to help you translate the game in Brazilian Portuguese (pt-BR)

So my github user is: jeison-souza.

Hi @Friday13Th and welcome on board!
You should have got an email.

Hi @Daniel , I would like to help you with russian/ukrainian translation.
My github:DmytroKokos

Hi @DmytroKokos!

Just to make sure, are you this person?
Help with russian/ukrainian localization :: InfraSpace General Discussions

@Daniel yeah,that`s me!

Alright, I just added you, welcome!

For now it’s best if you focus on the Ukrainian translation. Dimon on the Discord Server is already responsible for the Russian one, so if you want to change anything you should talk with him about it first.

Thanks for your help!

@DmytroKokos Hi, i can help with Ukrainian translation. can we coordinate who will do what?

@rostyk Hi, I`ve already finished the translation. You can check it for mistakes.

Hi @Daniel , I would like to help you with the translation into Slovak language.
Github: f1fSK

@Daniel Could you send me the dc link please? I can`t find it.

what do you mean by “dc link”?
The GitHub project is linked above and if you want to download it to test in game, you can press the green button “code” and you’ll see a “download zip” button :slight_smile:

Happy to have you @f1f, I just added you as a contributor.

I meant could you send me the link to the Discord server?

Thanks for adding me.

Here you go: https://discord.gg/xVy8Y4P

I could help out with Dutch.

Github: NienkeC

Welcome @Nienke, just sent you an invite!

1 Like