Hi,
As someone who did i18n/l10n in a former project (and even did
translations from English to French...), here's my comments on this
subject:
i18n (internationalization):
On Feb 17, 2009, at 11:48 AM, Steve Linden wrote:
The I18N dev team is going to be tackling date, time, number, and
currency localization issues in the next couple of quarters. We are
looking at existing standards for replacing text inside a message
and want to cover as many as possible before making a decision. Some
possibilities that we are looking at include ICU and XSLT. If anyone
on this list is familiar with any other good options, please reply
to this thread.
- ICU is great! It uses the Olson tables for date/time locale and Time
zone sensitive formating. Time zone support in particular can be mind
blowing. Don't underestimate this and think you can do your own home
brew "simple" version: TZ support is anything but simple... ICU is by
far the best here.
- Make sure you support primary and secondary locales as lots of
people use 2 (a primary and a fallback).
- Make sure you support the country flavors (e.g. fr_CA, fr_BE,
etc...). Beware of its infuence in data formating (use of "." instead
of "," for decimal separator for instance)
- You didn't mention "sorting" in your list. That's also a service
provided by ICU and should be used when presenting lists to users (and
we've plenty of this in SL)
- There's also a Python version of ICU (PyICU) which can prove useful
considering we've quite a bit of Python code floating around (though
none with user facing strings... yet...)
- What about providing l10n for LSL? (/me ducks...) Seriously, that'd
be really cool...
l10n (localization):
I am not particularly fond of indexed substitutions, I prefer name/
value pairs, because it gives the translator a little more context,
i.e. it is easier for a translator to look at "At [TIME] on [DATE],
there was [EVENT] on planet [PLANET]" then "At {1,time} on {1,date},
there was {2} on planet{0,number,integer}."
Our current compromise proposal would look something like this:
std::string bar(const LLSD& sdargs)
{
LLUIString foo = getString("bar"); // bar = "At [DATE,time] on
[DATE,date], there was [EVENT] on planet [PLANET,integer]";
foo.setLLSDArgs(sdargs);
return foo.getString();
}
+1 on (name/value) pairs in the code and big -1 on indexed
substitutions. As a localizer, the less guess work I have to do about
the context of a string, the faster I can get a translation out. I
don't really care about the format that much and your example could
easily be reordered in French as:
"[EVENT] a eu lieu sur [PLANET,integer] le [DATE,date] à [DATE,time]"
If you think however to localize Python scripts also, you may want to
use Python syntax though rather than your own, i.e.:
"At %(time)s on %(date)s, there was an %(event)s on planet %(planet)d"
But, heck, again, I've no religion here.
One question: which translation tool will be available to translators?
I used poedit in the past (http://www.poedit.net/) and it's pretty
handy. That also opens the door for sldev community members to
participate in the localization process. Of course, that supposes that
there's a tool to convert SL resources to the .po format and back. Any
plan for doing this?
Cheers,
- Merov
_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/SLDev
Please read the policies before posting to keep unmoderated posting privileges