I made some progress in localization support. To test the new localization system, I made a Slovak localization. I was focusing more on functionality rather than translation quality itself, so the Slovak localization can still be improved.
This is basically how it works: there are two translation groups. First group contains everything except cards and the second group contains cards only. First group translation is very simple, it just converts text into text in one-to-one ratio according to the dictionary. The cards are little more sophisticated: before the translation card effect text is segmented into card tokens. Card token consist of some words (usually one to five). This preprocessing identifies the card tokens and marks them so the translator could translate them. This way we don't need to translate each card separately, but we only need to translate card tokens which are shared with great abundance. Of course this preprocessing takes some time.
According to my performance analysis the full translation of one card takes 0.24ms to pre-process and 0.03ms to translate. In game screen where 18 to 30 cards can be located the delay caused by translation is 4.86ms - 8.1ms, which is acceptable. So performance-wise this system is acceptable.
Now we have to test if it is also acceptable from the user side point of view. Because of its simplicity, the system suffers from multiple limitations which can cause the translation itself to look strange. For example different languages can require the order of the words to be changed. This can be done in some small extent, but not every word order is supported.
Right now 99% of the card terminology is implemented within the card tokens. Also, the majority of the game screen section has been translated. What we need to do next is to translate this part of the system into different languages and determine if such system is acceptable and understandable by non-English speakers. If, so we can then proceed and extend the translation system to the rest of the application and even add automatic IP to Language translation for new users. I'm quite satisfied with the Slovak translation. It look looks weird sometimes, but I think it's understandable and that's our goal - to extend our user base also to non-English speakers.
Of course, my language skills are limited. Fortunately, multiple players have offered to do a translation to a foreign language, so I'm counting on you guys. Currently, the translation has 310 entries. All are documented and have a reference to the location where are used. The translation file can be found in
our repository. I advise installing a special
dictionary editor (don't forget to go to 'View' and enable 'show comment window' after installing). Once you have the dictionary file completed, you can send it to me via email (mfendek@gmail.com). I will be collecting these files and when they are ready, we'll setup a separate localization test version of MArcomage. If you decide to participate in the translation, you should write a post in this thread to inform about the language and file part you are going to translate. This way, we can optimize workload and prevent redundant translations.
If you want to setup MArcomage locally on your computer use the
installation instructions (Q12). Don't forget to enable the php_gettext extension. Also the application root will be located in 'dev/localization' instead of 'release'. To see the effect of the changes that you made on the dictionary file, you need to restart you wampserver each time. Use the Slovak dictionary file as your working copy located in the 'i18n/sk_SK/LC_MESSAGES' directory. You can always switch between English and Slovak localization in the MArcomage settings to compare results.
Thanks for help :)