[Mailman-i18n] How can we switch mailman to KOI8-R charset for Russian?

Mark Sapiro mark at msapiro.net
Sun Jun 25 12:18:47 EDT 2017


On 6/25/17 2:15 AM, Sergey Maslennikov wrote:
> 
> We tried to upgrade Mailman from v. 2.1.9 to v. 2.1.20 (default for
> Ubuntu 16.04) and discovered that for Russian language, mailman scripts
> tuned the browsers to receive UTF-8 encoded text. How can we turn
> mailman back to KOI8-R?


There are multiple things going on here.

In Mailman 2.1.19, the character set for Russian (and Romanian) was
changed to UTF-8. This was described in the NEWS for 2.1.19 as follows:

>     - Mailman's character set for Russian has been changed from koi8-r to
>       utf-8 and the templates and messages recoded.  This change will
>       require running 'bin/arch --wipe' on any existing Russian language
>       lists in order to recode the list's archives, and will require recoding
>       any edited templates in lists/LISTNAME/ru/*, templates/DOMAIN/ru/* and
>       templates/site/ru/*.  It may also require recoding any existing koi8-r
>       text in list attributes.  (LP: #1418448)
> 
>     - Mailman's versions.py has been augmented to help with the above two
>       character set changes.  The first time a list with preferred_language
>       of Romanian or Russian is accessed or upon upgrade to this release,
>       any list attributes which have string values such as description, info,
>       welcome_msg, etc. that appear to be in the old character set will be
>       converted to utf-8.  This is done recursively for the values (but not
>       the keys) of dictionary attributes and the elements of list and tuple
>       attributes.

Independently, Debian (upon which Ubuntu is based) responded to
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=398777> with
<https://sources.debian.net/patches/mailman/1:2.1.18-2%2Bdeb8u1/91_utf8.patch/>
which forces all languages to UTF-8 encoding and because it neglects to
do the list attribute string recoding, caused other issues. See
<https://mail.python.org/pipermail/mailman-users/2016-January/080278.html>
and <https://bugs.launchpad.net/mailman/+bug/1462755>.

Probably the least disruptive way for you to reverse this is the following:

1) add this line to mm_cfg.py

LC_DESCRIPTIONS['ru'] = ('Russian', 'koi8-r', 'ltr')

You can't use add_language here because the Debian patch redefines that
to force utf-8.

2) recode messages/ru/LC_MESSAGES/mailman.po with `iconv f=utf-8
t=koi8-r' and run 'msgfmt -o messages/ru/LC_MESSAGES/mailman.mo
messages/ru/LC_MESSAGES/mailman.po' to recompile the message catalog.

3) recode all the templates in templates/ru

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan


More information about the Mailman-i18n mailing list