Allen Brunson
2005-10-22 06:37:04 UTC
greetings, beautiful mutants.
i am really kicking myself over the fact that i waited to do localization
until now, rather than baking it in from the beginning. one of the things i
learned from my dearly departed beos/macosx cross-platform project was exactly
how i want to do string localizations, so i already had the code. i recently
bolted it onto my current codebase, more or less unchanged.
macosx's localization scheme has one good point, as far as i can see: the fact
that you can load up all your localizations into your bundle, and the os picks
the proper set to use at runtime, based on the user's language preferences.
os9 and below apparently did not have such a facility, because it's common to
see separate downloads for each language for old non-bundled carbon programs.
apart from that, apple's localization stuff pretty much sucks. the fact that
they want you to have a separate set of nibs for every language is just
insane. boy, i sure am looking forward to having to remember to update every
single localization's nib every time i need to change a window connection.
this will inevitably lead to exciting bugs that only occur for people who
speak a particular language. if i'd had time to finish my gui library, i
would have fixed that myself, by not using nibs.
apple's string localization stuff is not to my taste either, because it
doesn't use keys to identify strings. the "key" for each string is the
english version of that string. that means you can't change even one little
article or adjective in the english version of the string without every single
strings file needing an update. and as far as i can tell, there's no way to
change the ordering of variables, either. for example, here's an entry from
safari's dutch strings file:
/* item count in activity window */
"%d of %d items (%d errors)" = "%d van %d onderdelen (%d fouten)";
tough luck if local grammar conventions would make it more appropriate to
reorder those three integers. here's what it would look like in *my* dutch
strings file:
ItemDnldCount "%1 van %2 onderdelen (%3 fouten)" ;item count in actv window
so, yeah, i'm working on localization. but dang, it's really extremely
boring, which leads to at least as much time-waster-web-browsing as
string-replacing. it's hard to believe how many strings i've got embedded in
the program. i'm going to have an impressively large strings file.
i am really kicking myself over the fact that i waited to do localization
until now, rather than baking it in from the beginning. one of the things i
learned from my dearly departed beos/macosx cross-platform project was exactly
how i want to do string localizations, so i already had the code. i recently
bolted it onto my current codebase, more or less unchanged.
macosx's localization scheme has one good point, as far as i can see: the fact
that you can load up all your localizations into your bundle, and the os picks
the proper set to use at runtime, based on the user's language preferences.
os9 and below apparently did not have such a facility, because it's common to
see separate downloads for each language for old non-bundled carbon programs.
apart from that, apple's localization stuff pretty much sucks. the fact that
they want you to have a separate set of nibs for every language is just
insane. boy, i sure am looking forward to having to remember to update every
single localization's nib every time i need to change a window connection.
this will inevitably lead to exciting bugs that only occur for people who
speak a particular language. if i'd had time to finish my gui library, i
would have fixed that myself, by not using nibs.
apple's string localization stuff is not to my taste either, because it
doesn't use keys to identify strings. the "key" for each string is the
english version of that string. that means you can't change even one little
article or adjective in the english version of the string without every single
strings file needing an update. and as far as i can tell, there's no way to
change the ordering of variables, either. for example, here's an entry from
safari's dutch strings file:
/* item count in activity window */
"%d of %d items (%d errors)" = "%d van %d onderdelen (%d fouten)";
tough luck if local grammar conventions would make it more appropriate to
reorder those three integers. here's what it would look like in *my* dutch
strings file:
ItemDnldCount "%1 van %2 onderdelen (%3 fouten)" ;item count in actv window
so, yeah, i'm working on localization. but dang, it's really extremely
boring, which leads to at least as much time-waster-web-browsing as
string-replacing. it's hard to believe how many strings i've got embedded in
the program. i'm going to have an impressively large strings file.
--
A free market interprets monopoly as damage and routes around it.
-- Paul Graham
A free market interprets monopoly as damage and routes around it.
-- Paul Graham