On multiple occasions:
* MediaWiki core (obviously), although I wasn't there to set it up
(way before my time)
* MediaWiki extensions (about a dozen times)
And best of all (which is more closely like how it will be for Huggle):
* Toolserver Intuition: A project I built from the ground-up to allow easy
translation of arbitrary tools outside of a MediaWiki environment.
regret it and the rate at which more and more language are translated at
100% will amaze you!
Note that translation itself is only one part of the proces, I don't know what
system Huggle has or is planning to have but think really good about the
following points. Without them, translation is pointless and you might as well
not translate at all:
* Fallback: People want quick results, if a language isn't complete or if a new
message is added that at that time is only in English, or if an English message
has breaking changes etc. it should still use the other languages where
possible (even when some messages will fallback to English).
* Plural support: In English it is fairly easy, you could have a message
"apple-single" like "The basket contains 1 apple", and a message "apple-plural"
like "The basket contains $1 apples". However in many languages there aren't
just 2 variations, there are multiple depending on the number. For that reason
you will need support for {{PLURAL:}} syntax.
* And a few others…
For that reason I suggest 2 things:
have years of experience and a lot of translators.
* Use Toolserver Intuition for:
** Handling of fallback, parsing, plural etc.
It may sound strange to use it outside of the Toolserver, but TsIntuition is
just a PHP class. You can it as an svn-external and use it.
implementation example in PHP.