![](https://secure.gravatar.com/avatar/8e4dd8c1c9c85e4ad1b4486eb03e0f98.jpg?s=120&d=mm&r=g)
Hi all, Sorry for the delay, but I've been learning new tricks (a difficult task for an old dog, you know :). The proposed road has already been taken using standard GNU tools, and we have arrived at a nice destination: a working internationalized version of Mailman 1.2 that we have had to put into production for political reasons. Barry Warsaw has given us homework to do so we can get a 2.1 internationalized Mailman as soon as 2.0 is out. We are slowly starting to do them, so any help would be very much appreciated. I think we should coordinate the efforts to avoid reinventing the wheel. Comments anyone? (Barry?) On Thu, Oct 05, 2000 at 10:01:29AM +0200, Oliver Gassner wrote:
Your (Alain Schroeder <alain@mini.gt.owl.de>) mail on Wed, 4 Oct 2000 19:46:47 +0200:
I will start tomorrow to translate mailman into German...
Several people have...
I haven´t seen anything on the archives of this list...
I just am not iup2datre: _Is_ there a working version of mailman that supports _real_ internationalis8tion.
Haven´t seen any.
So you don't have to start from scratch when the new version comes out?
(I am not a techie ;) )
<aol>Me too!</aol> Well at the moment I try to understand python a bit... <fg> If I ever understand Python then I will write a little function like this: get_i18n(file, "digest_and_memb_not_from_stdin", "Sorry, can't read both digest *and* normal members from stdin.") Well then of course we need something like a po file. I do not know how .po files are structured, but I would just use a normal ASCII file, because I do not want to write a UTF8/UTF16/UTF32 converter. And then there is also the question, if you can use UTF with your console, etc. But upgrading from my proposed version to UTF should be relativly easy. A new function and a script to convert the already existant file into a UTF file. -- Victoriano Giralt Systems Programmer Central Computing Facility University of Málaga SPAIN
![](https://secure.gravatar.com/avatar/ef9eca80084fec4df264d3e286887c30.jpg?s=120&d=mm&r=g)
On Tue, Oct 17, 2000 at 03:06:42PM +0200, Victoriano Giralt wrote:
Hi all,
Sorry for the delay, but I've been learning new tricks (a difficult task for an old dog, you know :).
The proposed road has already been taken using standard GNU tools, and we have arrived at a nice destination: a working internationalized version of Mailman 1.2 that we have had to put into production for political reasons.
Barry Warsaw has given us homework to do so we can get a 2.1 internationalized Mailman as soon as 2.0 is out. We are slowly starting to do them, so any help would be very much appreciated.
I think we should coordinate the efforts to avoid reinventing the wheel.
What we need is a gettext (at least alike) function. When we got that, n² people can edit one of the executables und voila, we have a i18n´ed version. Then we can start to translate. (I am overlooking something, don´t I - it can´t be that easy) And I would suggest, that we have one subdirectory per language for all the templates. So what am I missing? Bye, - -- Alain -- - ² n = number of files which are executable. -- "Titanic 12 ... Hindenburg Zeppelin 37 ... Microsoft Windows 98"
![](https://secure.gravatar.com/avatar/8e4dd8c1c9c85e4ad1b4486eb03e0f98.jpg?s=120&d=mm&r=g)
On Wed, 18 Oct 2000, Alain Schroeder wrote:
What we need is a gettext (at least alike) function. When we got that, n² people can edit one of the executables und voila, we have a i18n´ed version. Then we can start to translate. (I am overlooking something, don´t I - it can´t be that easy) And I would suggest, that we have one subdirectory per language for all the templates. That is exactly what we have already. It is not a gettext alike, it is the 'pythonized' real thing. We used Barry's pygettext to get the strings a RedHat's Anaconda gettext.py, that reads gettext PO files with the substitution strings, and we have a multilingual directory structura both for the templates and for the messages. It is running in production at http://correo.uma.es/ using our mods to a 1.2 Mailman. At this moment in time we are working on getting te work redone with 2.0 sources because for work reasons we got out of synch with the Cabal development. We have been coordinating some efforts privately with Barry because we think we are not ready to go mainstream. The I18N effort is top of Barry's list for post 2.0 work.
-- Victoriano Giralt Systems Programmer Central Computing Facility University of Málaga SPAIN
![](https://secure.gravatar.com/avatar/a41236d5a95c86b677171080d3f2fd24.jpg?s=120&d=mm&r=g)
Alain Schroeder wrote:
What we need is a gettext (at least alike) function. When we got that, n² people can edit one of the executables und voila, we have a i18n´ed version. Then we can start to translate. (I am overlooking something, don´t I - it can´t be that easy) And I would suggest, that we have one subdirectory per language for all the templates.
So what am I missing?
Your have missed the messages than Victoriano Giralt and me, sent to developers list, discussing about this subject, one YEAR ago. Please, refer to: http://www.python.org/pipermail/mailman-developers/1999-May/003643.html http://www.python.org/pipermail/mailman-developers/1999-June/003695.html http://www.python.org/pipermail/mailman-developers/1999-October/003978.html to understand WHAT IS DONE YET. I'm going to start to integrate i18n changes to mailman 2. I need volunteers to acoplish this task, so time con be shorter. So finish thinking about how to get messages translated and gave us a hand :-) The one who wish to contribute to this proyect, please let this list know. Cheers -- ___ / 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 :-| # #----------------------------------------------#
![](https://secure.gravatar.com/avatar/c189b42fe922631f5c9fa40f07ce540d.jpg?s=120&d=mm&r=g)
"JCRA" == Juan Carlos Rey Anaya <jcrey@uma.es> writes:
JCRA> I'm going to start to integrate i18n changes to mailman 2. JCRA> I need volunteers to acoplish this task, so time con be JCRA> shorter. Yes. My TOP priority for Mailman 2.1 is i18n. 2.1 will require at least Python 2.0, which comes with a gettext module and pygettext. -Barry
![](https://secure.gravatar.com/avatar/c189b42fe922631f5c9fa40f07ce540d.jpg?s=120&d=mm&r=g)
"AS" == Alain Schroeder <alain@mini.gt.owl.de> writes:
AS> What we need is a gettext (at least alike) function. AS> So what am I missing? That Mailman 2.1 will require Python 2.0, and Python 2.0 comes with a gettext module! This should provide everything you need to do I18N in Python. If not, then we should consider that a bug in Python's support for I18N, and Mailman will be the first real big test of that. Cheers, -Barry
![](https://secure.gravatar.com/avatar/c189b42fe922631f5c9fa40f07ce540d.jpg?s=120&d=mm&r=g)
"VG" == Victoriano Giralt <vic@vgg.sci.uma.es> writes:
VG> Barry Warsaw has given us homework to do so we can get a 2.1 VG> internationalized Mailman as soon as 2.0 is out. We are slowly VG> starting to do them, so any help would be very much VG> appreciated. Because I want to explore on my own about the right way to internationalize a big app like Mailman, I've started in my spare time to play with this. So I would suggest breaking the problem up into pieces, and submitting separate patches for each piece. One piece is marking all the translatable text in the Mailman sources. You should work on this last and don't spend much time on it. I'm actually starting to do that myself, as I'm playing with the i18n infrastructure. A second piece is creating the mechanisms for selecting languages on a per user, per list basis, etc. I'd like to see what you guys have come up with here. A third piece is all the translations (i.e. po and mo files). We can use the GNU Translation project to help here, once we've generated the .pot files. I'll try to send out snapshots of some of the things I'm thinking about after 2.0 final goes out. -Barry
![](https://secure.gravatar.com/avatar/8e4dd8c1c9c85e4ad1b4486eb03e0f98.jpg?s=120&d=mm&r=g)
On Wed, 25 Oct 2000, Barry A. Warsaw wrote:
One piece is marking all the translatable text in the Mailman sources. You should work on this last and don't spend much time on it. I'm actually starting to do that myself, as I'm playing with the i18n infrastructure.
This is the cornerstone of the I18N effort. The problem is that it can block the testing of the other pieces. It is a bit daunting task, we did it twice (1.0b6 and 1.2), and, of course, will be more than willing to offload it to someone :) Our idea for this part of the project was to use the scarce voluteers' help (see bottom) to work in this task, in order to get it done as quick as possible, so we can start the other two pieces, that can be done in parallel.
A second piece is creating the mechanisms for selecting languages on a per user, per list basis, etc. I'd like to see what you guys have come up with here.
This part has, also, been done with 1.2, which we have successfully put into production due to managerial decisions in our University. It works like charm, except some glitches that Juan C. has patched. To get this functionallity we have done the following changes and additions: + To the list object: - Added 'preferred_language' attribute, for the list default language - Added 'language' dictionary with the users' preferred language, the user mailaddress is the key to get the language she has set for the list. - Added the neccesary methods for setting and getting these. - Added a method for listing the available languages for the list. + Created functions in Utilites for: - Getting the server available languages. - Getting the language descriptions. - Getting the language charset. + HTML formatting. - Add the necesary code for generating selects. + Default.py - Some Barry Warsaw, decided to put the common code for language initialization at the bottom of this module. + Showering all over the code. - Added the necesary changes for language selection. + Storage. - Creating directories for holding language specific files in every list. - Creating directory hierarchy for catalogs and templates. + Support scripts. - newlang, to add languages to a list. - rmlang, opposite of above. + gettext.py - Modify to addapt to our requirements. (Changes sent to author). As you can see this is a surgeon's task. This part must be carefully done by a very reduced team ( = JCR+VG :) This has already been done, so our intention is to read the new code and locate the places to make the changes.
A third piece is all the translations (i.e. po and mo files). We can use the GNU Translation project to help here, once we've generated the .pot files.
We have a good team of volunteers for some languages, which have already done translations of the .po files for 1.2 into danish, english, german, italian, spanish and mostly czec. Some others have shown interest in languages as gallician, basque, japanesse, brazilian/portuguesse and dutch. We think this could proceed in parallel with the second piece, of course, it cannot start before we have done the first piece. ------------------------ Enclosed list of volunteers up to this date: felix.sanchez@cica.es Félix Sánchez omar@dit.upm.es Omar Walid Llorente EricdeHont@netscape.net Eric de Hont Contributors: Dan Ohnesorg Mads Kiilerich <mk@solit.dk> Peter Muessig-Trapp <muessig@his.de> Pioppo <pioppo@ferrara.linux.it> Eduardo Fernandez Corrales -- Looking-forward-for-more-volunteers-ly, Juan C. Rey & Victoriano Giralt
![](https://secure.gravatar.com/avatar/c189b42fe922631f5c9fa40f07ce540d.jpg?s=120&d=mm&r=g)
BAW> One piece is marking all the translatable text in the BAW> Mailman sources. You should work on this last and don't BAW> spend much time on it. I'm actually starting to do that BAW> myself, as I'm playing with the i18n infrastructure. VG> This is the cornerstone of the I18N effort. The problem is VG> that it can block the testing of the other pieces. Not necessarily. We don't have to have absolutely all of the code marked to start integrating the pieces and making sure the infrastructure works as intended. VG> This part has, also, been done with 1.2, which we have VG> successfully put into production due to managerial decisions VG> in our University. It works like charm, except some glitches VG> that Juan C. has patched. Cool! VG> To get this functionallity we have VG> done the following changes and additions: | + To the list object: | - Added 'preferred_language' attribute, for the list default | language | - Added 'language' dictionary with the users' preferred language, | the user mailaddress is the key to get the language she | has set for the list. | - Added the neccesary methods for setting and getting these. | - Added a method for listing the available languages for the list. Looks good. | + Created functions in Utilites for: | - Getting the server available languages. | - Getting the language descriptions. | - Getting the language charset. Looks good. | + HTML formatting. | - Add the necesary code for generating selects. Cool. | + Default.py | - Some Barry Warsaw, decided to put the common code for language | initialization at the bottom of this module. :) | + Showering all over the code. | - Added the necesary changes for language selection. Okay, I'd definitely like to see this part. | + Storage. | - Creating directories for holding language specific files in | every list. | - Creating directory hierarchy for catalogs and templates. And this. | + Support scripts. | - newlang, to add languages to a list. | - rmlang, opposite of above. Good. | + gettext.py | - Modify to addapt to our requirements. (Changes sent to author). Okay. Here we want to use Python 2.0's gettext module. If there are problems with that, then we want to fix it (and if necessary, ship the fixed version in pythonlib for a while). Mailman is going to be one of the first Python applications I can think of that will be internationalized, so it's a guinea pig for Python's i18n support too! VG> As you can see this is a surgeon's task. This part must be VG> carefully done by a very reduced team ( = JCR+VG :) Completely agree! And I'm going to have to spend some serious time integrating and proofing it all too. I have to understand how it all works. That's where breaking it down into the smallest cohesive chunks possible will really help. VG> We have a good team of volunteers for some languages, which VG> have already done translations of the .po files for 1.2 into VG> danish, english, german, italian, spanish and mostly VG> czec. Some others have shown interest in languages as VG> gallician, basque, japanesse, brazilian/portuguesse and VG> dutch. We think this could proceed in parallel with the second VG> piece, of course, it cannot start before we have done the VG> first piece. Awesome. -Barry
participants (4)
-
Alain Schroeder
-
barry@wooz.org
-
Juan Carlos Rey Anaya
-
Victoriano Giralt