This is the official repository of Sooslandia games, where translations of games and auxiliary components are stored.
The repository contains project directories such as BallBouncer or Agsharp. These directories contain all translation files related to that project.
The sltt directory contains code of Sooslandia translation tool: auxiliary scripts that perform validation and conversion of new translations.
src directory inside a project directory contains source internal translation files that we use to generate gettext PO-template files, you should not touch any files in this directory.
out directory is a service directory that contains files prepared for copying back to corresponding project, you also do not need anything from that directory.
ru2en directory in some projects contains first-party translation from russian to english.
docs directory contains documuntation translation files, will be described below.
pot files is a gettext po-template files that should be used for translating the project.
po files is a gettext translation files that contains project translation.
Some of our components use resx files.
These are XML resource files that store strings for a specific language.
Please do not translate resx files directly.
lng is our own internal format used in cases where resx is not required.
Please do not translate lng files directly, because Such translations are very hard to maintain, and we are not accepting direct lng translations.
A standard translation template file generated by the xgettext program.
We use the project name as the file name, for example, Agsharp.pot.
A translation file compatible with gettext.
We use the two-letter language code as the file name, for example, cs.po.
Projects that have documentation, such as BallBouncer, have a docs directory.
This directory contains subdirectories named as two-letter language codes, for example cs.
Each such subdirectory contains project documentation translations in po format for every documentation file, for example readme.po.
files with .md extension are documentation files in markdown format, that files could be found in src and out directories, you should never translate md-files directly.
Standard translation template file generated by the xgettext program, such a file is generated for each md file in docs/en, for example readme.pot.
A translation file compatible with gettext.
We are extracting strings from resx or lng or any other format, and creating gettext template file with .pot extension inside every project directory.
English documentation markdown files are processed by the mdpo program, it extracts blocks of text and forms pot files from them, we are placing pot files inside /docs/en directory.
You need to fork this repository and create a branch for the new translation.
Next you should load the .pot file into a translation program, such as Poedit, and perform the translation there.
Then the completed po file, for example, fr.po, needs to be added to the project directory.
To translate documentation, you need to use pot files from the docs/en directory as a template.
In the docs directory, you should create a subdirectory for translated files, the name should be the two-letter language code.
Ready po files, for example readme.po, need to be placed in the created directory.
Please do not translate resx, lng, md, html or any other files directly; we do not validate them and do not accept translations in this format.
When the translation is completed and all files are in their places, submit a pull request with your translation. We will review it, ask for changes if necessary, and if the translation is correct, we will merge it into master.
After that, the translations will be added to the corresponding products and delivered to users via the update system.
When we make changes to our projects, the po-template files will be updated in this repository.
You will need to merge the master branch into your branch, and then update your translation from the updated pot files and translate the new lines.