[Mailman-Developers] Mailman internationalization. Report from the trenches. VERY LONG

Juan Carlos Rey Anaya jcrey@uma.es
Tue, 22 Jun 1999 15:04:53 +0200


By the time being, we have made important progress for
internationalizing mailman.

Juan Carlos Rey has prepared a functional demo version of our proposed
way to do it. This demos has the new ideas, with messages in english and
spanish for the pages.

All proposed ideas in our message dated 
             Fri, 21 May 1999 14:57:39 +0200
with the subject: Re: [Mailman-Developers] features suggestion:
languages

have been implemented and work as described there.

We have not translated, yet, the hardcoded message strings, but the code
need to change their values depending on language is ready to be used.

Now we are trying to reconciliate our chages with a CVS tree we have
downloaded this morning. (Yes, we didn't know how to use CVS when we
started).

You can test the web interface at:
http://joker.sci.uma.es/mailman/listinfo/test
The list main language is spanish (español)
The admin password is "ejemplo" (be gentle, please :)
We have concentrated on function, not on aspect, so it is a bit crude.


The use of a message catalog in different languages will have a big
impact on main Mailman development, so we would need your input on such
an issue. We have found two ways for doing this: 
	Using GNU gettext (which does not work completely in python and has
some 			other implications, see attached conversation)
	our KISS approach: python modules with the messages in them. Like this:
--- BEGIN es.py ---
ErrorInvalidPasswd = 'Error: clave incorrecta'
ListNotFound = 'la lista no se encuentra: %s'
DEFAULT_MSG_FOOTER = """_______________________________________________
lista de distribucion %(real_name)s  -  %(real_name)s@%(host_name)s
%(web_page_url)slistinfo/%(_internal_name)s
"""
--- END es.py ---

To use the message catalog:
import Catalog
Msg = Catalog.MsgLang('es')
print Msg.get('ErrorInvalidPasswd')

Attached conversation with Dan Ohnesorg, who is interested in working in
the project.
------ START --------
> 
> Acording with the article, there are many parts to consider:
>  - Character Sets
>  - Message Output
>  - Locales
>  - Character Input and display
>  - Documentation
> 
> I think the areas we should consider are: 
>    - Messages output to end user
>    - Character set
Sure. I agree.

> GNU gettext:
>  * advantages
>    - Easy to mantain, once parsed with 'xgettext', and compiled to .mo
>      file, with 'tupdate' is easy to update the catalog
     - new version of software can run with old catalogs and only some
       part of meesages is not translated
     - for developper of software is gettext clean to undestand a simple
       to include 

>  * disadvantages
>    - A little complicated to generate. It must be, parsed, and
>      installed. It also
>      must be updated 'at hand' if catalog changes.
>    - At the moment,  it is not fully operational for python
       It is the biggest problem.

>    - Take into account locales, mailman will be executed on the server,
>      language s a parameter in a form.
       Your software can switch locales indepently of server. For
example
       in midnight commander are locales switched before parsing any
       output of sub processes

> Catalog in lang.py
>   * disadvantages
>     - More difficult to mantain up to date.
      - More works for mailman developers
>   * advantages
>     - It's very easy to create messages we need (multilines)
>     - No need to be generated, once modified source files, it is ready
>       for use. Changes are in effect once saved the file.
>     - We can abstract inside lang.py operations we need for some
>       languages, whenever it gives the apropiate value to messages. 
> 
> I have given a glimpse to 'wstring' and 'intl' modules. I really don't
> know how to use 'wstring' for our purpose. Please, if you know how to
> use it, let me know too.

I dont know how to use unicode in mail. I think it is not that what we
now
need. Unicode is fine in databses, printing etc, but mail with unicode
charset is probably unredable by any client.

intl module is probaly good. I will look on it and i will say more
later. 

Your modules are working, but I am not sure, If they are acceptable for
mailman developers.

---END---



-- 
                          ___
                         / F \
                        [[[]]]]
                        ( O O )
   #----------------0000--(_)--0000---------------#
   |    Juan Carlos Rey Anaya (jcrey@uma.es)      |
   |      Servicio Central de informática         |
   |       Universidad de Málaga - España         |
   #----------------------------------------------#
   #      Solo se que cada vez se menos :-|       #
   #----------------------------------------------#