Page 2 of 10
Posted: Wed Jan 16, 2008 9:22 am
by Commander McLane
Yes, as I already wrote, the station names. They are also used as both displayed namestring and unique identifier in the dockedStationName_string-query.
And sorry if I'm annoying you with insisting on the commodities issue. But it is an issue. We have to distinguish between cosmetics and gameplay.
You're right that in principle all old OXPs have to be re-done in order to convert them into other languages. But as far as missiontexts, descriptions and so on are concerned, this is purely cosmetic. The Italian player would perhaps wonder why in a certain mission everything turns to English again, but he would be able to play the mission, if he understands English.
The commodities-naming is different to that. If in an old script.plist the commodities are still English, this doesn't affect their display at all (the player wouldn't notice), but plainly breaks the OXP in question. It wouldn't do anymore what it is supposed to do. And that is unacceptable.
Posted: Wed Jan 16, 2008 2:16 pm
by Commander McLane
I begin to notice that translating isn't that easy. In some aspects English is surprisingly different from German, e.g. in its Latin influences, which probably make it sometimes more easy to translate into e.g. Italian.
Anyway, just now I've stumbled over the "Maintenance Overhaul"-entry in equipment.plist and I've a question to the native English speakers: what exactly does "detailed valeting" mean in this context? My dictionary tells me that a valet is a man's personal male attendant, responsible for his clothes and appearance or a person employed to parking cars, none of which seems to make much sense here, especially together with the adverb "detailed". So what does it mean?
Posted: Wed Jan 16, 2008 2:45 pm
by Cmdr. Maegil
I'm not a native speaker, but IMO it's just a figure of speech, meaning that they'll service and overhaul every piece of equipment fitted on the ship (within their tech level).
Posted: Wed Jan 16, 2008 3:07 pm
by Commander McLane
Okay, tried to translate it that way. Thanks!
Now I'm in descriptions.plist. That's going to give me some major headaches! English grammar is so
simple compared to German! One "s" added, and you have a plural. Impossible in German! We
do have grammatical rules, too, but we have
way more exceptions than rules!
My first (small) task: Find five words indicating pirates or criminals, that have the same way of flexing from singular into plural, so that the German equivalent of "We are [7] by [describe-pirate]s! Please help!" makes sense with all of them.
Might be that in the end I have to reduce the number of entries in certain parts of the list.
Or I have to introduce a seperate [describe-pirate-plural] array.
Anyway: Don't expect this to be finished anytime soon...
Posted: Wed Jan 16, 2008 3:08 pm
by Star Gazer
'Valeting' in this context has been taken from the usage in the motor vehicle trade, where it refers to cleaning the seats, carpets, inside of the windscreen, inside the boot(trunk in the USA), blacking the tyres(unless they need whitewalls), replacement air freshener, and maybe refilling the screen wash.
Generally it consists of 'tarting up' the vehicle following a service or repair so that it looks/smells nice for the customer.
Posted: Wed Jan 16, 2008 3:11 pm
by Commander McLane
Aha! Then the German equivalent would be "aufpolieren". Thanks!
Posted: Wed Jan 16, 2008 3:43 pm
by another_commander
Commander McLane wrote: Or I have to introduce a seperate [describe-pirate-plural] array.
Yep, that's the way to do it. I had to resort to such tactics as well for the Italian translation and had to also rearrange the order of some strings as they appear in certain entries e.g. <string>a [15] [16]</string> , which would normally become
a dull place had to be modified to <string>un [16] [15]</string> (giving
un posto noioso), because in Italian the noun comes before the adjective (opposite to English). It is quite difficult indeed to make something that works and in the Italian version some "strange" description pops up every now and then. But generally speaking, it is certainly doable. Depends how much time you are prepared to devote to it.
Posted: Wed Jan 16, 2008 4:31 pm
by Hoopy
have different string formats for each language, ie [15][16] for one and [16][15] for another is the standard approach for C# programming. You can then have a different table for each language, decide once which language to use and then let it work everything out. Not sure if Objective C does this...
Posted: Wed Jan 16, 2008 4:43 pm
by another_commander
It is actually much more complicated than this. I just mentioned the inveresed order strings as an example of one out of many problems that had to be overcome. It has to do with the grammar rules of a particular language and, apart from everything else, it is not possible to have different "rule tables" for each existing language coded in. But there is no need to take this approach. Careful and intuitive editing of the description.plist phrase fragments, although quite a task on its own, has the advantage of not being limited to a pre-existing set of languages. Anyone wanting to do a translation will just have to create an appropriate set of descriptions and that's about it, really. No need to create overhead for the game engine.
At the end of the day, the system descriptions themselves are not that important for the actual gameplay. They are there to create ambience. So, although it would be nice to have the actual translations of the original scriptures, I can definitely forgive one for omitting or slightly changing a word or a phrase in a description, if it is not possible to have it otherwise.
Come to think of it, what you are describing, Hoopy, is not that different at all to what we do here. The different language tables are the different plists and the rulesets are the different ways plist descriptions are constructed. The game chooses the correct table to use by finding the <Your Language Here>.oxp folder and goes with it.
Posted: Thu Jan 17, 2008 8:13 am
by Hoopy
thinking about it the different language OXPs could just as easily be themes rather than languages. So if you like Star Wars you could trade in erm, whatever they trade in in a galaxy far far away
Posted: Thu Jan 17, 2008 11:40 am
by another_commander
This is absolutely true. Since the entire game text has been externalized, one can take it and modify it to whatever they prefer, limited only by one's imagination. You can modify the entire style of the game, like, make the Monty Python style Oolite (where the Thargoid insults could be changed to "Ni!") or even the adult-language Oolite (no, I'm not going to give an example), if you feel like it. I can only begin to imagine what Captain Hesperus or Disembodied could do with a simple line of text like "Pirates are attacking us. Please help!" and I won't even touch the possibilities of changes in the planet descriptions
Posted: Thu Jan 17, 2008 3:14 pm
by Commander McLane
Noticed another problem when I came to this line in descriptions.plist:
Code: Select all
<key>load-previous-commander</key>
<string>Load Previous Commander (Y/N)?</string>
The problem is of course not the translation itself, but the assigned keys. In German it would have to be (J/N) for Ja/Nein (and in Italian (S/N) for Si/No, or in French (O/N) for Oui/Non).
We can't assign new keycontrols in an OXP, and I guess this one is hard-coded anyway. How do we handle this?
@another_commander: I see that in your Italian descriptions.plist there are a lot of items that I don't have in my original descriptions.plist from 1.70. How come? For instance all that starts with "gameoptions". Have you modified the engine to use these, because they were hard-coded before? Or are you using a version of Oolite I don't know of?
Posted: Thu Jan 17, 2008 4:38 pm
by another_commander
For the moment, I have translated only the message, leaving Y/N as it is. This will most probably require code modification.
As for the contents of the descriptions.plist, the things that are extra in my versions are things that were hardcoded before and were farmed out to descriptions.plist, so that they become modifiable. 1.70 will not do anything with these. I sent them to you, so that you will be able to see what is added on top of what was in the 1.70 description.plist and generate translations for these as well. So, when 1.71 comes out, the German edition will already contain what's required. By the way, I am using SVN revision 1312 (soon to become 1313, as I am about to commit a fix for a contracts related bug).
Posted: Fri Jan 18, 2008 7:25 am
by another_commander
Commander McLane wrote:Noticed another problem when I came to this line in descriptions.plist:
Code: Select all
<key>load-previous-commander</key>
<string>Load Previous Commander (Y/N)?</string>
The problem is of course not the translation itself, but the assigned keys. In German it would have to be (J/N) for Ja/Nein (and in Italian (S/N) for Si/No, or in French (O/N) for Oui/Non).
We can't assign new keycontrols in an OXP, and I guess this one is hard-coded anyway. How do we handle this?
This is how it will be handled: In your descriptions.plist add the following lines (preferably under the Intro1 screen section, to keep things referring to the same screen together):
Code: Select all
<key>load-previous-commander-yes</key>
<string>y</string>
<key>load-previous-commander-no</key>
<string>n</string>
Use lower case characters for the y/n answer. That's all. The engine has been modified to read the values in the above keys and assign the y/n response appropriately. If you do not include those entries in descriptions.plist, the normal [yY] and [nN] keys are assigned.
Edit: Corrected mistyping: It is not shipdata.plist, it is descriptions.plist.
Posted: Sat Jan 19, 2008 9:08 am
by Commander McLane
Nice!
Unfortunately I can't build Oolite, so I'm just downloading whatever new version Ahruman puts out on BerliOs. But it's nice to be able to be distinctly ahead, even if it's just indirectly through you.