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 sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to