Page 1 of 1

Translation and Localization

Posted: Sun Jun 28, 2009 12:37 pm
by PyTom
So, here's the deal.

Right now, translation of Ren'Py and the Ren'Py Launcher takes place in a fairly ad-hoc way. I update the English template to the translations page, and people sort of try and figure out what's changed, and update their languages to match.

This is running into several problems:

1) I've been avoiding making string changes to Ren'Py, so as not to invalidate older translations. This limits what I can do.
2) People are making more complete translations of Ren'Py, including the Launcher. This is fundamentally good.
3) The launcher is being totally rewritten, as Launcher2. This leaves us in a scenario where the translation files are about half-complete.

Basically, we need a translation management system. I'd like one that's largely user-run, such that people can start their own translation projects, update translations, and download a file suitable for inclusion with Ren'Py... all without me having to get involved.

I've looked into a couple of web-based translation solutions. Launchpad (Rosetta) is slow, often impractically slow, and it's very hard to get the data out of the system. Pootle is nice and fast, but requires a lot of administration work to add new languages, update those languages, etc.

What I'd like is suggestions from our translators about how to go about fixing this. I'd like my involvement with translations to be me uploading a message catalog (a po file, or something similar) to some site, and then let the translators do their thing, with the end result being some sort of file Ren'Py can read back in. (I'd be willing to make reasonable modifications to Ren'Py to let it read some sort of translations file.)

I'm not willing to do a lot of unpaid work writing my own translation website. Translation to languages other than English doesn't benefit me much, and so I'd rather spend my time on more interesting projects.

Re: Translation and Localization

Posted: Mon Jun 29, 2009 2:18 pm
by Jo'ogn
I have no real idea, the whole approach of replacing the English string in order to translate it is, put frankly, absurd.
config.translations[u'Are you sure you want to return to the main menu?\nThis will lose unsaved progress.'] = u'Wirklich zum Hauptmenü?\nNicht gespeicherter Spielstand wird verlorengehen.'
The moment you separate variable from string you can change your English text as much as you want to without disabling other translations... I should think o_o

On this occasion you might want to consider built in support for switching languages?

If each language could have it's own ren'py file like: gui.en.rpy, gui.de.rpy, gui.it.rpy, you might not even need a big managment system, unless you add and/or change your variable names every five minutes. If you add another variable once per year I guess ppl can handle that manually. Have ren'py fall back to the English variable in case one in the translation is missing.

Re: Translation and Localization

Posted: Mon Jun 29, 2009 3:10 pm
by killdream
I don't know about any web-based translation management. But python comes with a gettext module (altough I've never used it, I'm still pretty new to most of Python stuffs .-.), so you could upload the .mo file (I guess was it) and peoples would translate and such. The program would search for the proper localizations in a folder, I guess, what'd give less headaches to peoples trying to figure out how to use a translation file.

Re: Translation and Localization

Posted: Tue Aug 18, 2009 2:57 am
by Aenakume
Wouldn't gettext do the job? What more would you need? I mean, something fancy like what they have on launchpad would be cool... but you can do the job just fine with just gettext.

And if you wanted to get fancy, put the .po files in a revision control system like CVS or Subversion and multiple people can do translations for the same language easily.

What more would you need?