On Jul 23, 8:32 am, William Stein <[email protected]> wrote:

> (1) What is gettext?  I've never heard of it?

Good describe of gettext we can find in 
http://docs.python.org/library/gettext.html
(23.1.3. Internationalizing your programs and modules). The main
advantage of such
way is an ability to change languages on the fly.

> (2) Thanks for making the list below.  Now we need to figure out how
> to get this into Sage in an incremental way.

I did some steps:

1. First step: simply add

# -*- coding: utf-8 -*-

at first line of every .py-file. In run_notebook.py additionally
encoding
must be at lines 170-172:

        config.write(_("""
# -*- coding: utf-8 -*-
####################################################################

Then I rewrite convert_seconds_to_meaningful_time_span (as described
in
first messages).

2. Next step: every string constant, which can be translated, was
converted
from
            raise ValueError, 'invalid failure type'
to
            raise ValueError, _('invalid failure type')
Before begin of the string add underscore and open bracket, after end
-
close bracket.

Changed files at step 1, 2, please, download from
http://semerikov.googlepages.com/notebook_modify.tar.bz2

3. Then we need to define function "_" as described in 23.1.3.1
in every module (I don't do it yet):

import gettext
t = gettext.translation('modulename', '/usr/local/sage/....../locale')
_ = t.lgettext

all.py (or some main module) must contain

import gettext
gettext.install('applicationname', '/usr/local/sage/....../locale',
unicode=1)

4. For every changed file running xgettext or Tools/i18n/pygettext.py:

python pygettext.py *.py

Resulting file (http://semerikov.googlepages.com/messages.pot) is an
template for any notebook translation. To do new translation you must
rename messages.pot at LANG_CODE.po (e.g., for Korean - kr.po) and
write translation in msgstr (empty in template):

#: avatars.py:65
msgid "invalid failure type"
msgstr ""


> (3) Somebody else just popped up on the sage list a few days ago who
> is moving all the html generation code to jinja templates.

  Thanks, I don't touch html-templates.

> I don't have a lot of time to work on the notebook now, but will in Sept - 
> Dec.

   Steps 1-4 will produce only minor (cosmetic) code changes. I hope,
it
can be done quickly (the main reason - easy and fast translation: for
example,
try Korean/English notebook at http://math1.skku.ac.kr/).

--~--~---------~--~----~------------~-------~--~----~
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/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to