This can indeed be a problem, but also varies very much case by case. There are a few important things:
1. Due to difference in word order, there should always be space before and after the variable if the sentence starts or end with it.
%s says: Hi
There may be languages that put something before %s, so you should never offer just "says: Hi" for translation.
%s says: Hi %s
There may be languages that put something after the last %s, so you should never offer just "says: Hi" for translation.
2. Gender issues can often be solved by including the article "the/a" and possible adjectives in the item name itself.
This way...
You have found %s
the red rod
a blue wand
will automatically be rendered correctly, no matter which language they are translated to.
Please note that in this case, there should also be a post-string for languages that put something behind %s.
Strings like:
You have found the blue %s
...are just asking for trouble.
If you want to be 100% safe (I can imagine there are languages in which the gender of the item even influences the verb clause "have found"), concatenation should be totally avoided, but I understand this is not always feasible. Anyway, be prepared and make sure your code is flexible enough to change these things if a translator tells you that the format of the strings is causing problems in his/her language.
Last but not least, if you use concatenation, make very clear which strings belong to which strings. Strings as isolated sentences are often translated differently than strings in concatenated sentences.
Your statement about Japanese is correct: Japan has a very hierarchical society and the status and relationship between the speaker and the listener influence the whole language. Therefore, it should always be made clear who says what to whom.
For a programmer, especially a monolingual programmer, it is very hard to predict which kind of strings will cause issues and which not. Therefore, often these kind of things are handled on the fly. These 3 tips should really help you:
1. Limit concatenation as much as possible.
2. If you use concatenation, make very clear how the strings are built up and be prepared to make a few changes where needed.
3. Provide context (often context is provided automatically by sorting the strings in a logical order, but I've seen several resources that sorted dialogue strings alphabetically, just for coolness, which is really not a good idea).
[Edited by - Yomar on May 18, 2009 10:06:48 AM]
The Project From Hell: How you should not organize your localization
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement