Tim Starling wrote:
Will this library be free?
Of course! (maybe a little too free, being licensed under LGPL). A
link, perhaps, would speak better: <http://hp.jpsband.org/>
I've made a number of posts to wikitech-l on this
subject, but I don't use
the term "i18n". As I once quipped on IRC, MediaWiki isn't
internationalised, it's international. It's always been international, we
never had to go through the process of internationalisation to get there. Or
more precisely, it's multilingual. But also I don't like substituting digits
for letters.
For your benefit, I reran the search under "international",
"language"
and "Tim Starling". Some interesting threads were brought up:
http://mail.wikipedia.org/mailman/htdig/wikitech-l/2002-March/012496.html
\- extremely old thread on switching to UTF-8
http://mail.wikipedia.org/mailman/htdig/wikitech-l/2006-July/037090.html
\- your proposal for rewriting the language files
There are a number of aspects to our interface
translation system:
* Message input
* Architecture, caching
* Parameter substitution: agglutination and escaping
Which of these are you interested in? Presumably our message input model
(i.e. via a wiki) wouldn't be universally applicable.
Comments on message input would be very valuable, not necessarily from
the wiki side, but from the PHP file for translators side.
Specifically, now that your switch has been made, are you happy with the
new implementation of the translator? Also, what you think of the
method that extensions add localizable strings to the MessageCache?
Would decentralizing the messages be a better policy for even the core
parts of MediaWiki? How about just decentralizing English messages, so
they're never out of-sync with the code?
Policy on how you reuse messages would be interesting too: how much
would a message have to change before you just say, "Okay, we need to
give it a new name so old customizations don't clobber it."? As well as
naming conventions for the messages: what would you imagine a good
policy would be?
Architecture is hard to figure out from just looking at code, so a
real-quick, high level lowdown would be appreciated (doesn't have to be
very long). Caching, I understand, is just lots of unserialize and
filemtime calls.
Parameter substitution (from what I see) seems at first to be a very
easy thing to do, but quickly gets very complicated. I'd like to know
the major pitfalls with substitution in obscure languages are (so I can
determine whether or not, for my needs, I have to work around them, or I
can blithely ignore them).
I suppose this is just a big jumble of questions that I'd like answered.
I hope none of them are too time-consuming. Thanks for your help!