Translating Moondust into other languages
This is a special manual which explains how to translate PGE applications into other languages.
Introducing
PGE Applications are made with using Qt framework. This framework has own translation sub-system called as Qt Translator. All translatable text pieces (in the code are arguments of special functions) which are can be translated. To collect those translatable phrases lupdate utility was been used. After scanning source code it creating a *.ts files which are contains a list of translatable phrases. Any time application has adding a new strings, need to rerun lupdate which will append new phrases into exists TS-files which keeps all previously finished translations. When those TS-files are filling by translator with special utility called as Qt Linguist (included with all Qt versions). After finishing filling of translation, it must be compiled into special binary qm-file which directly used by PGE Applications in work.
Important notes
- Please don't forget about grammar and spelling as this is important. I recommend creating the translation if you are a native-speaker of the target translation language. All speakers must know about the grammar and spelling for the language he/she is trying to translate to. Best translators for a language (IMO) - native-speakers of the language.
- In developing process can be added new strings, what need to append to translations. Is recommended to sometimes check updates in the source codes and in your TS files (by URLs above), are being added new strings? If there added, you will see a gray or yellow question icons in Qt Linguist as "exists undone" translation(s) of strings.
- Important note: If you no more have time to done your translation or you no more wish do it, please upload your working version in current draft state to give possible continue this translation by other people. Together we can do everything!
- If you don't understand sense of some phrase, feel free to ask sense from Wohlstand in chat or in the discussion thread to get detailed explanation of it. Is recommended to get a full source code of PGE to be able see place where currently selected string is used (see below).
Fresh translation files
There are most-fresh translation files from development branch on official PGE repository
Note 1: Outdated translations are translations which are done for previous versions, but wasn't updated by translators and has many untranslated strings
Note 2: If blank for your language is absence, please request creating it in the translation discussion or via PM or email to any PGE developer
Editor
- Bulgarian (blank)
- Chinese (blank)
- Dutch (blank)
- English (Completed)
- French (blank)
- German (Completed, outdated)
- Indonesian (blank)
- Italian (Semi-completed, outdated)
- Japanese (blank)
- Polish (Completed)
- Portuguese (Completed, outdated)
- Russian (Completed)
- Spanish (Completed)
- Swedish (blank)
- Ukrainian (blank)
Engine
- Dutch (Completed)
- English (Completed)
- German (blank)
- Russian (Completed)
- Polish (blank)
- Swedish (blank)
- Spanish (Completed)
How to do translation
Step 1: Download latest .TS file which you can get in list above
To start translation first which you need a .ts file which contains working translation data. If your language is not listed, ask me and I will add them.
Optional: If you want to see sources and forms where translating phrase is used, you need take entire source code of PGE Project and edit TS-files directly in their folders (Editor/languages and Engine/languages).
Step 2: Download QtLinguist tool
You can get it here: http://wohlsoft.ru/docs/Software/Qt_Linguist_5.6.zip When you will download archive, unpack it into any directory. (If you have troubles with running them on your machine, report me, I will fix bug and will update it), but instead you can download completed Qt build where it is included to use it.
Step 3: Run Qt-linguist and do translation
When you opened the Qt Linguist application, and open .TS file which you got or open it from sources in the Editor/languages/ folder. It's recommended to open multiple files at one: one with any understandable by you language which is currently done now (or English), and your .TS file which you got to create the translation into your language.
Hint: You also can read more about using of Qt Linguist utility here: http://doc.qt.io/qt-5/linguist-translators.html
Step 4: Compile translation to test it in work now
If you are done with the translation, you can compile your translation in a *.qm file and test it in compiled pge_editor (you need for latest laboratory version which you can get here). Use the File -> Compile menu item in Qt Linguist to compile your translation.
Step 5: Send translation to official PGE repository
If you have completed a translation, please send us your .TS-file by any convenient way:
- Via PM on any forums to Wohlstand (PGE Forums, SMBX Forums, Talkhaus) or to Kevsoft.
- Via pull-request on the GitHub (at first you must fork PGE repository and clone it. Then commit your translation and push changes to origin, then create a pull request to send translation directly to official repository)
- via email (you can find email address in READMEs and inside source code).
- Attach into post to the translation discussion thread
You will be added into PGE's credits list (can be seen in the PGE Editor's about dialog in Help -> About) as translator with your nick-name, (Optionally) therefore we suggesting you send us your real name and/or email which are will be added into public credits list. Optionally you can make own avatar character in pixel-art style, (recommended maximum size is 128x128) which will be also shown in the credits list (Please don't use copyrighted characters or make it be very different, not just copy or recolor).
Misc stuff
List of translators
This is a list of people who contributed into translation of the PGE applications.
Completed translations
- English as default (Wohlstand, CaptainSwag101, Nexia)
- Russian (Wohlstand)
- German (Kevsoft)
- Spanish (hacheipe399)
- Portuguese (Brazilian) (tb1024)
- Polish (Mario_and_Luigi_55)
Uncompleted translations
- Italian (ImperatoreXx, Darkonius Mavakar)
- Dutch (Gameinsky)