Translating Oolite (and the OXZs)
Posted: Sat Mar 25, 2017 8:18 pm
Hello everyone, I joined this forum because I'm interested in translating Oolite in French.
Please note that the language I want to translate it to is (almost) irrelevant in this topic because I'm looking for clarifications on the process itself, not on peculiarities regarding the French language (although there are plenty but these would do for another topic!)
If I'm not mistaken, there is very little on this BBS regarding translation (and almost nothing recent), so I wonder whether it is still something to be considered or not?
What I wish to discuss here :
1. Strict Mode not possible with translated version?
2. Translations resulting in too many files in expansion list
3. Text strings in .js
4. Fixed-sized text boxes and coordinates
5 ...?
1. I already started translating the core game in an OXP, it all goes well except that when I wanted to launch the game in strict mode, well, the translation was lost since the OX[PZ]s are not loaded in that mode... So, I can translate the core game but I can not play the core game in that language, only in English. Of course, I can replace the .plist in the install folder, but this requires sudo access (I'm under linux) and I feel that it kind of defeats the purpose. Ideally, isn't the player supposed to simply download a translation expansion pack and be able to play in that language, including in strict mode? Maybe I'm doing something wrong here?
2. Let's suppose now that because of the huge success of Oolite across the 8 known galaxies, translations become popular and let's say that 50 of them are developed for the core game alone (including Klingon, Dalek,...). Would it be wise to add another 50 entries to the already 500+ long OXZ list ? And let's suppose now that those expansions are also translated into those 50 languages: that would mean a whopping 500 x 50 = 25 000 new files in the list. That is way too much. Of course, one can argue that there will never be 50 different languages for Oolite (after all, Daleks might eventually exterminate us all), but I'm discussing the principle here.
I suggest that the translations should be incorporated into the OXZs themselves (and in the core, of course), grouped into their own folder, next to Config/, Images/, Textures/ etc. Maybe Locales/, as does linux? And then, one subdir per language (en, fr, it, de, nl, jp, ...)
Each OXZ would then have its own Locales/ subdir regrouping its own set of translations, and the expansion packs list would be kept consistent at 500+ entries, growing only with new OXZs, not new translations.
Since the OXZs are zipped containers, let's fill the containers, not the directory!
3. I noticed that there are still hard-coded English strings in the .js, certainly in the OXPs, maybe not in the core, I don't remember. I suggest everything be moved to .plist files. I can try to re-program this myself of course, but (a) all modifs to the .js will be lost with the next upgrade of the OXZ and (b) not all translators will know how to do this.
4. Fixed-size boxes and coordinates can be a problem for "longer" languages (typically, French). Ideally, text length should be calculated on the fly and the insertion point derived from it.
5. These are my concerns so far regarding the translation process, maybe I'll come up later with more problems, but that is what I noticed so far.
Sorry, very long message for a first one, I'll stop here.
The point of all this is, should I go on with my translation and the actual system, or should I wait for structural changes? What is the situation?
Thank you for your attention.
Olibrius
Please note that the language I want to translate it to is (almost) irrelevant in this topic because I'm looking for clarifications on the process itself, not on peculiarities regarding the French language (although there are plenty but these would do for another topic!)
If I'm not mistaken, there is very little on this BBS regarding translation (and almost nothing recent), so I wonder whether it is still something to be considered or not?
What I wish to discuss here :
1. Strict Mode not possible with translated version?
2. Translations resulting in too many files in expansion list
3. Text strings in .js
4. Fixed-sized text boxes and coordinates
5 ...?
1. I already started translating the core game in an OXP, it all goes well except that when I wanted to launch the game in strict mode, well, the translation was lost since the OX[PZ]s are not loaded in that mode... So, I can translate the core game but I can not play the core game in that language, only in English. Of course, I can replace the .plist in the install folder, but this requires sudo access (I'm under linux) and I feel that it kind of defeats the purpose. Ideally, isn't the player supposed to simply download a translation expansion pack and be able to play in that language, including in strict mode? Maybe I'm doing something wrong here?
2. Let's suppose now that because of the huge success of Oolite across the 8 known galaxies, translations become popular and let's say that 50 of them are developed for the core game alone (including Klingon, Dalek,...). Would it be wise to add another 50 entries to the already 500+ long OXZ list ? And let's suppose now that those expansions are also translated into those 50 languages: that would mean a whopping 500 x 50 = 25 000 new files in the list. That is way too much. Of course, one can argue that there will never be 50 different languages for Oolite (after all, Daleks might eventually exterminate us all), but I'm discussing the principle here.
I suggest that the translations should be incorporated into the OXZs themselves (and in the core, of course), grouped into their own folder, next to Config/, Images/, Textures/ etc. Maybe Locales/, as does linux? And then, one subdir per language (en, fr, it, de, nl, jp, ...)
Each OXZ would then have its own Locales/ subdir regrouping its own set of translations, and the expansion packs list would be kept consistent at 500+ entries, growing only with new OXZs, not new translations.
Since the OXZs are zipped containers, let's fill the containers, not the directory!
3. I noticed that there are still hard-coded English strings in the .js, certainly in the OXPs, maybe not in the core, I don't remember. I suggest everything be moved to .plist files. I can try to re-program this myself of course, but (a) all modifs to the .js will be lost with the next upgrade of the OXZ and (b) not all translators will know how to do this.
4. Fixed-size boxes and coordinates can be a problem for "longer" languages (typically, French). Ideally, text length should be calculated on the fly and the insertion point derived from it.
5. These are my concerns so far regarding the translation process, maybe I'll come up later with more problems, but that is what I noticed so far.
Sorry, very long message for a first one, I'll stop here.
The point of all this is, should I go on with my translation and the actual system, or should I wait for structural changes? What is the situation?
Thank you for your attention.
Olibrius