The language barrier might prevent a few people from either playing TDM; or enjoying it like they should. For someone fluent in English, this problem doesn't even exist, or cross their mind - but just imagine that TDM is released in Norsk only :-) Anyway, a lot of people here are not English native speakers, and they reported problems understanding texts, esp. if it are longer texts.
We already have a few FMs that were translated by kind people to other languages, but so far neither the menu, nor the shop, or the ingame HUD have been translated. Since the longer we wait the worse the problem will get, I thought I'd make a head start on this create the nec. code support.
That turned out to be a lot more work than anticipated (isn't it always? , but apart from two (rather large, I must admit) technical problems, it is now almost done.
Here is what I did:slimmed down the D3 supplied english.lang from >5400 strings to the about 180 we actually used
- added literally hundreds of strings that we did need to translate, but actually had hardcoded all over the place in our def files, the gui files, AND in the C++ code
- fixed all the places in the def, gui etc files where we had hard-coded strings
- to test that the translation basically works, added an example German translation (it's about 95% complete)
- created a strings/all.lang that contains all the strings for all languages, which makes it easier to see if something is missing or untranslated. Also wrote a script that converts this UTF-8 file to the individual .lang files, plus checking the format, warning about double entries, converting the encoding to ISO-8859-1 etc. Atm it also transcribes German Umlauts from "ä" to "ae" (see below)
- fixed a few dozend places in the code where the code was reading out strings and pushing them into the GUI untranslated (so you ended up with "#str_12345" instead of "Kompass")
- fixed the problem that key binds caused, namely they tried to find the item/category by the english name (e.g. Compass), but the item or category was now named "#str_12345". Made it work with "Lantern" as well as "#str_02398", too.
- Added a way to switch the language in the menu. This requires NO restart when switching between western languages, but requires one to switch from/to Russian (due to D3 bugs with fonts).
- FM specific translations are supported via strings/fm/english.lang etc.
- The translation code is in its own object, so it can be more easily extended/used.
- The GUI has been converted from choiceDef (which don't work with foreign characters) to windowDef + code handling the changes
- Russian fonts have been added.
- The menu font Carleton uses now the special character map and has thus Umlauts and accented chars.
- Character remapping has been implemented (so we can have Czech and Polish etc. at the same time)
The entire ordeal is tracked here: http://bugs.angua.at/view.php?id=2779 (including a few child-bugs)
Things that are not working yet:
* Only a few languages are done (German, Italian, French, Polish, Portuguese, Russian, Czech and Spanish are done).
Here is the current status:
czech.lang... 42324 bytes, 1135 entries, 145 ( 12.8%) not yet translated. english.lang... 41688 bytes, 1135 entries. french.lang... 42532 bytes, 1135 entries, 60 ( 5.3%) not yet translated. german.lang... 43531 bytes, 1135 entries, 64 ( 5.6%) not yet translated. italian.lang... 45029 bytes, 1135 entries, 62 ( 5.5%) not yet translated. polish.lang... 41912 bytes, 1135 entries, 149 ( 13.1%) not yet translated. portuguese.lang... 43431 bytes, 1135 entries, 107 ( 9.4%) not yet translated. russian.lang... 44077 bytes, 1135 entries, 77 ( 6.8%) not yet translated. spanish.lang... 43119 bytes, 1135 entries, 41 ( 3.6%) not yet translated.
Since v1.07, we have also fixed a lot of D3 bugs (font rendering, font loading) and improved the translations even further.
Last updated: 2012-02-28
Screenshots follow in the next post: