Hi, I have spent several hours and did research how to translate and maintain our webpages. Let's use the .po and .pot files (the unix gettext utility, together with Python's gettext, Babel package and a support for it in Jinja2). I have described it in the pull request:
https://github.com/sympy/sympy.github.com/pull/33 It has been a lot of work to prepare this and figure out how to make jinja2 work and finally to make *all* strings in the templates translatable. However, this is now done and it's running at sympy.org. Read the pull request for more technical details. As an example, here is the .po file for the Czech translation: https://github.com/sympy/sympy.github.com/blob/master/i18n/cs.po I have manually copied the translation from the pull request: https://github.com/sympy/sympy.github.com/pull/30, and that's quite time consuming. If you all agree, let's ask students to submit the .po file directly, by adapting the template here: https://github.com/sympy/sympy.github.com/blob/master/i18n/sympy.org.pot This framework also fixes the issue of synchronization. When making any change in the English pages, three cases can occur: 1) the change doesn't touch any translatable string. Then the change will happen in all translated pages without any effort. 2) the change changes some translatable string, but it happen to use some other string, that is already translated in the .po file. Then the translation will automatically work without any effort. 3) the change changes some translatable string into a new string for which the translation is not available yet. Then the .po file has to be regenerated by merging with the new template (by using the msgmerge utility in linux), and by default it will have no translation for the new string. As such, an English translation will be used instead until the string is translated in the po file. As you can see, only the case 3) causes problems, and even then things will be synchronized, just not completely 100% translated. And we can use standard tools that handle the .po and .pot files to manage translations. As far as the tutorial goes, something similar should probably be done, but I don't have time for it, so I suggest to simply have the tutorial in several languages as an html file, but for the webpages, that we need to modify quite often, I think it is very important to use some framework like above, so that we can make sure that it is updated in all languages. So I think that this framework fixes all the problems, and let me know what you think of it and if you agree, let's use it and improve upon it. Most importantly, create new GCI tasks (?) to convert the already done translation pull requests into a .po file, and convert all tasks that weren't yet done to simply submit a .po file. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
