' + _(" Enter new password:") + '=
div>',
PasswordBox('newpw')])
new.AddRow(['
' + _("Confirm new password:") + '<=
/div>',
PasswordBox('confirmpw')])
change_pw_table.AddRow([old, new])
change_pw_table.AddCellInfo(1, 0, align=3D"left", valign=3D"top")
#change_pw_table.AddCellInfo(1, 1, align=3D"left", valign=3D"top")
return change_pw_table
=0C
def FormatSubmit():
submit =3D Table(bgcolor=3D"#99ccff",
border=3D0, cellspacing=3D0, cellpadding=3D2)
submit.AddRow([Bold(SubmitButton('submit', _('Submit Your Changes')))=
])
submit.AddCellInfo(submit.GetCurrentRowIndex(), 0, align=3D"middle")
return submit
=0C
# XXX klm - looks like turn_on_moderation is orphaned.
#turn_on_moderation =3D 0
# Options processing
def GetValidValue(mlist, prop, my_type, val, dependant):
if my_type =3D=3D mm_cfg.Radio or my_type =3D=3D mm_cfg.Toggle:
if type(val) <> types.IntType:
try:
val =3D int(val)
except ValueError:
pass
# Don't know what to do here...
return val
elif my_type =3D=3D mm_cfg.String or my_type =3D=3D mm_cfg.Text:
return val
elif my_type =3D=3D mm_cfg.Email:
try:
Utils.ValidateEmail(val)
return val
except Errors.EmailAddressError:
# TBD: should have a way of displaying the results of the
# operation.
pass
# Revert to the old value.
return getattr(mlist, prop)
elif my_type =3D=3D mm_cfg.EmailList:
def SafeValidAddr(addr):
try:
Utils.ValidateEmail(addr)
return 1
except Errors.EmailAddressError:
return 0
val =3D filter(SafeValidAddr,
map(string.strip, string.split(val, '\n')))
## if dependant and len(val):
## # Wait till we've set everything to turn it on,
## # as we don't want to clobber our special case.
## # XXX klm - looks like turn_on_moderation is orphaned?
## turn_on_moderation =3D 1
return val
elif my_type =3D=3D mm_cfg.Host:
return val
##
## This code is sendmail dependant, so we'll just live w/o =
## the error checking for now.
##
## # Shouldn't have to read in the whole file.
## file =3D open('/etc/sendmail.cf', 'r')
## lines =3D string.split(file.read(), '\n')
## file.close()
## def ConfirmCWEntry(item):
## return item[0:2] =3D=3D 'Cw'
## lines =3D filter(ConfirmCWEntry, lines)
## if not len(lines):
## # Revert to the old value.
## return getattr(list, prop)
## for line in lines:
## if string.lower(string.strip(line[2:])) =3D=3D string.lower(val):=
## return val
## return getattr(list, prop)
elif my_type =3D=3D mm_cfg.Number:
num =3D -1
try:
num =3D int(val)
except ValueError:
# TBD: a float???
try:
num =3D float(val)
except ValueError:
pass
if num < 0:
return getattr(mlist, prop)
return num
else:
# Should never get here...
return val
=0C
def ChangeOptions(mlist, category, cgi_info, document):
confirmed =3D 0
if cgi_info.has_key('newpw'):
if cgi_info.has_key('confirmpw'):
if cgi_info.has_key('adminpw') and cgi_info['adminpw'].value:=
try:
mlist.ConfirmAdminPassword(cgi_info['adminpw'].value)=
confirmed =3D 1
except Errors.MMBadPasswordError:
AddErrorMessage(document,
_('Incorrect administrator password')=
,
tag=3D'Error: ')
if confirmed:
new =3D string.strip(cgi_info['newpw'].value)
confirm =3D string.strip(cgi_info['confirmpw'].value)
if new =3D=3D '' and confirm =3D=3D '':
AddErrorMessage(document,
_('Empty admin passwords are not allo=
wed'),
tag=3D'Error: ')
elif new =3D=3D confirm:
mlist.password =3D crypt(new, Utils.GetRandomSeed())
# Re-authenticate (to set new cookie)
mlist.WebAuthenticate(password=3Dnew, cookie=3D'admin=
')
else:
AddErrorMessage(document, _('Passwords did not match'=
),
tag=3D'Error: ')
else:
AddErrorMessage(document,
_('You must type in your new password twice')=
,
tag=3D'Error: ')
#
# for some reason, the login page mangles important values for the li=
st
# such as .real_name so we only process these changes if the category=
# is not "members" and the request is not from the login page
# -scott 19980515
#
if category !=3D 'members' and \
not cgi_info.has_key("request_login") and \
len(cgi_info.keys()) > 1:
# then
if cgi_info.has_key("subscribe_policy"):
if not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
#
# we have to add one to the value because the
# page didn't present an open list as an option
#
page_setting =3D string.atoi(cgi_info["subscribe_policy"]=
=2Evalue)
cgi_info["subscribe_policy"].value =3D str(page_setting +=
1)
opt_list =3D GetConfigOptions(mlist, category)
for item in opt_list:
if type(item) <> types.TupleType or len(item) < 5:
continue
property, kind, args, deps, desc =3D item[0:5]
if cgi_info.has_key(property+'_upload') and \
cgi_info[property+'_upload'].value:
val =3D cgi_info[property+'_upload'].value
elif not cgi_info.has_key(property):
continue
else:
val =3D cgi_info[property].value
value =3D GetValidValue(mlist, property, kind, val, deps)
#
# This is an ugly, ugly hack
if property[0] =3D=3D '_':
# TBD: When turning on usenet->mail gating we want to
# automatically catch up the newsgroup otherwise the mail=
ing
# list will suddently get flooded. There should be a muc=
h
# better way to do this (or for the admin to specify they=
want
# this).
if property =3D=3D '_mass_catchup' and value:
mlist.usenet_watermark =3D None
elif getattr(mlist, property) <> value:
# TBD: Ensure that mlist.real_name differs only in letter=
# case. Otherwise a security hole can potentially be ope=
ned
# when using an external archiver. This seems ad-hoc and=
# could use a more general security policy.
if property =3D=3D 'real_name' and \
string.lower(value) <> string.lower(mlist._internal_na=
me):
# then don't install this value.
document.AddItem(_("""
real_name attribute n=
ot
changed! It must differ from the list's name by case=
only.
"""))
continue
setattr(mlist, property, value)
#
# mass subscription processing for members category
#
if cgi_info.has_key('subscribees'):
name_text =3D cgi_info['subscribees'].value
name_text =3D string.replace(name_text, '\r', '')
names =3D filter(None, map(string.strip, string.split(name_text, '\n')))=
send_welcome_msg =3D string.atoi(
cgi_info["send_welcome_msg_to_this_batch"].value)
digest =3D 0
if not mlist.digestable:
digest =3D 0
if not mlist.nondigestable:
digest =3D 1
subscribe_errors =3D []
subscribe_success =3D []
result =3D mlist.ApprovedAddMembers(names, None,
digest, send_welcome_msg)
for name in result.keys():
if result[name] is None:
subscribe_success.append(name)
else:
# `name' was not subscribed, find out why. On failures,
# result[name] is set from sys.exc_info()[:2]
e, v =3D result[name]
if e is Errors.MMAlreadyAMember:
subscribe_errors.append((name, _('Already a member'))=
)
elif e is Errors.MMBadEmailError:
if name =3D=3D '':
name =3D '<blank line>'
subscribe_errors.append(
(name, _("Bad/Invalid email address")))
elif e is Errors.MMHostileAddress:
subscribe_errors.append(
(name, _("Hostile Address (illegal characters)"))=
)
if subscribe_success:
document.AddItem(Header(5, _("Successfully Subscribed:")))
document.AddItem(apply(UnorderedList, tuple((subscribe_succes=
s))))
document.AddItem("
")
# ApprovedAddMembers will already have saved the list for us.=
if subscribe_errors:
document.AddItem(Header(5, _("Error Subscribing:")))
items =3D map(lambda x: "%s -- %s" % (x[0], x[1]), subscribe_=
errors)
document.AddItem(apply(UnorderedList, tuple((items))))
document.AddItem("
")
#
# do the user options for members category
#
if cgi_info.has_key('user'):
user =3D cgi_info["user"]
if type(user) is type([]):
users =3D []
for ui in range(len(user)):
users.append(user[ui].value)
else:
users =3D [user.value]
errors =3D []
for user in users:
if not cgi_info.has_key('%s_subscribed' % (user)):
try:
mlist.DeleteMember(user)
except Errors.MMNoSuchUserError:
errors.append((user, _('Not subscribed')))
continue
value =3D cgi_info.has_key('%s_digest' % user)
try:
mlist.SetUserDigest(user, value, force=3D1)
except (Errors.MMNotAMemberError,
Errors.MMAlreadyDigested,
Errors.MMAlreadyUndigested):
pass
for opt in ("hide", "nomail", "ack", "notmetoo", "plain"):
opt_code =3D MailCommandHandler.option_info[opt]
if cgi_info.has_key("%s_%s" % (user, opt)):
mlist.SetUserOption(user, opt_code, 1, save_list=3D0)=
else:
mlist.SetUserOption(user, opt_code, 0, save_list=3D0)=
if errors:
document.AddItem(Header(5, _("Error Unsubscribing:")))
items =3D map(lambda x: "%s -- %s" % (x[0], x[1]), errors)
document.AddItem(apply(UnorderedList, tuple((items))))
document.AddItem("
")
=0C
def AddErrorMessage(doc, errmsg, tag=3D'Warning: ', *args):
doc.AddItem(Header(3, Bold(FontAttr(
tag, color=3D"#ff0000", size=3D"+2")).Format() +
Italic(errmsg % args).Format()))
=0C
def GetConfigOptions(mlist, category):
return mlist.GetConfigInfo()[category]
--------------BFB93F3D3F601EC069B326B6--
From tkikuchi@is.kochi-u.ac.jp Sat Nov 11 03:55:18 2000
From: tkikuchi@is.kochi-u.ac.jp (Tokio Kikuchi)
Date: Sat, 11 Nov 2000 12:55:18 +0900
Subject: [Mailman-i18n] Hi, and Traditional Chinese (big5)
References:
Message-ID: <3A0CC326.7601E682@is.kochi-u.ac.jp>
Hi, Alex.
I am currently doing on Japanese-only Mailman and treating
the charset problem with a quick and dirty tric. ;-)
In httpd.conf of Apache 1.3.14, I write
...
AddDefaultCharset EUC-JP
> The only thing I think that have to implement is charset on every page in
> configure and Makefile? Like
>
>
>
> to support big5.
>
Tokio
From vizisz@freemail.hu Mon Nov 13 08:54:01 2000
From: vizisz@freemail.hu (Vizi Szilard)
Date: Mon, 13 Nov 2000 09:54:01 +0100
Subject: [Mailman-i18n] Volunteer 4 Hungarian Translation
Message-ID: <3A0FAC29.D5F5E1EF@freemail.hu>
Hello!
Juan Carlos Rey Anaya wrote that he needs more volunteers.
I have translated templates for Mailman into Hungarian, and changed
a few files to give hungarian outputs at the web interfaces.
(eg. HTMLFormatter.py, Admin.py, Listinfo.py).
I will gladly help you to carry out an i18n mailman.
The current Hungarian translation can be found here:
http://lme.linux.hu/forditas/mailman-hun-20001016.tar.gz
So what should I do now?
Szilard Vizi
From jcrey@uma.es Mon Nov 13 09:31:06 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Mon, 13 Nov 2000 10:31:06 +0100
Subject: [Mailman-i18n] Volunteer 4 Hungarian Translation
References: <3A0FAC29.D5F5E1EF@freemail.hu>
Message-ID: <3A0FB4DA.7E47DA87@uma.es>
Vizi Szilard wrote:
> =
> Hello!
> =
> Juan Carlos Rey Anaya wrote that he needs more volunteers.
> I have translated templates for Mailman into Hungarian, and changed
> a few files to give hungarian outputs at the web interfaces.
> (eg. HTMLFormatter.py, Admin.py, Listinfo.py).
> =
> I will gladly help you to carry out an i18n mailman.
> The current Hungarian translation can be found here:
> http://lme.linux.hu/forditas/mailman-hun-20001016.tar.gz
> =
> So what should I do now?
> =
You need to insert into templates some i18n stuff.
I will send to your private e-mail i18n-templates-v.1.2 so that you can
compare and insert acordingly.
Forward you need to translate hungarian catalog. If you want, once you
finish inserting i18n stuff inside templates, you can mark messages
inside source code.
Cheers and wellcome.
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From jcrey@uma.es Mon Nov 13 10:36:56 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Mon, 13 Nov 2000 11:36:56 +0100
Subject: [Mailman-i18n] Mailman i18n - First piece
References:
Message-ID: <3A0FC448.DC908747@uma.es>
more work to actual volunteers:
-------------------------------
11) Jose A Accino: MailList.py and htmlformat.py
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From jcrey@uma.es Mon Nov 13 12:06:23 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Mon, 13 Nov 2000 13:06:23 +0100
Subject: [Mailman-i18n] One tip
Message-ID: <3A0FD93F.8C0258F@uma.es>
When marking source files. There should take into account to try taking
apart HTML code when possible:
eample)
original code:
msg =3D "Don't change the option here.Use the main
options page instead."
marked code:
msg =3D "" + _("Don't change the option here.") + ""=
+ _(Use the main options page instead." + ""
Greetings
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From james@daa.com.au Mon Nov 13 13:26:38 2000
From: james@daa.com.au (James Henstridge)
Date: Mon, 13 Nov 2000 21:26:38 +0800 (WST)
Subject: [Mailman-i18n] One tip
In-Reply-To: <3A0FD93F.8C0258F@uma.es>
Message-ID:
On Mon, 13 Nov 2000, Juan Carlos Rey Anaya wrote:
> When marking source files. There should take into account to try taking
> apart HTML code when possible:
> eample)
> original code:
> msg = "Don't change the option here.Use the main
> options page instead."
> marked code:
> msg = "" + _("Don't change the option here.") + ""
> + _(Use the main options page instead." + ""
This limits the positioning of the bold text for translations (ie. it
must always go before). I don't know if that is a problem in this
case.
This is similar to the reasons why printf style output is easier to
internationalise than c++ streams.
James.
From jcrey@uma.es Mon Nov 13 14:10:08 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Mon, 13 Nov 2000 15:10:08 +0100
Subject: [Mailman-i18n] One tip
References:
Message-ID: <3A0FF640.50706ED4@uma.es>
James Henstridge wrote:
> =
> This limits the positioning of the bold text for translations (ie. it
> must always go before). I don't know if that is a problem in this
> case.
At first sight I see one inconvenient:
If we let all to be in one string to translate, we also give a chance
translators to mispell at translation time.
example)
msgid "Hello Word"
msgstr "Hola Mundo>/strong>"
When we later look for this message in catalog, this error can make the
browser not to display the proper page.
Time will say :-)
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From james@daa.com.au Mon Nov 13 14:31:51 2000
From: james@daa.com.au (James Henstridge)
Date: Mon, 13 Nov 2000 22:31:51 +0800 (WST)
Subject: [Mailman-i18n] One tip
In-Reply-To: <3A0FF640.50706ED4@uma.es>
Message-ID:
On Mon, 13 Nov 2000, Juan Carlos Rey Anaya wrote:
> James Henstridge wrote:
> >
> > This limits the positioning of the bold text for translations (ie. it
> > must always go before). I don't know if that is a problem in this
> > case.
>
> At first sight I see one inconvenient:
> If we let all to be in one string to translate, we also give a chance
> translators to mispell at translation time.
>
> example)
> msgid "Hello Word"
> msgstr "Hola Mundo>/strong>"
This is not the only occasion when the translated string has some
requirements on it. The most obvious is format strings (I suppose with
named substitutions like %(name)s, mistyping may be more common).
Also, the translator should probably be escaping entities in these
strings (unless mailman does that), so pretending the string is not an
HTML fragment may not be the best idea.
>
> When we later look for this message in catalog, this error can make the
> browser not to display the proper page.
invalid translations can cause all sorts of problems. This is not the
only case.
James.
From jcrey@uma.es Tue Nov 14 08:03:12 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Tue, 14 Nov 2000 09:03:12 +0100
Subject: [Mailman-i18n] One tip
References:
Message-ID: <3A10F1C0.588C06CA@uma.es>
James Henstridge wrote:
> =
> This is not the only occasion when the translated string has some
> requirements on it. The most obvious is format strings (I suppose with=
> named substitutions like %(name)s, mistyping may be more common).
Well, I am agree that stuff like %(name)s is unavoided. But to the other
side, I think we should to abstract as much as we can, so error can be
minor.
> =
> Also, the translator should probably be escaping entities in these
> strings (unless mailman does that), so pretending the string is not an
> HTML fragment may not be the best idea.
I can not find a convincing reason to leave "Hello".
- 'strong>' and ' <3A0CC326.7601E682@is.kochi-u.ac.jp> <3A0FB0E5.FC40F447@uma.es> <3A0FE514.720C0BED@xlinux.com> <3A0FE9E3.7672CD33@uma.es> <3A108C4E.B514F621@xlinux.com>
Message-ID: <3A10FF87.392359C8@uma.es>
=A4=E8=ABT=B4=BC wrote:
> =
> >
> > Juan C. Rey Anaya wrote:
> > Hello =A4=E8=ABT=B4=BC:
> > have you inserted i18n stuff inside templates?
> >
> Where should I insert it ?
---------------------------------------------
In templates/listinfo.html we must to insert:
---------------------------------------------
Info Page
=
=
--
|
|
About
|
+
+
+
+ |
To see the collection of prior postings to the list,
visit the
Archives.
[snip]
|
=
Reenter password to confirm: |
|
|
+
+ Which language do you prefer to display
your messages? | =
+ |
+ |
Would you like to receive list mail batched in a daily
digest?
|
[snip]
---------------
In options.html
---------------
[snip]
Conceal yourself from subscriber list?
No
Yes
|
+
+
What language do you prefer? +
|
+
Password:
|
--------------
In roster.html
--------------
Subscribers
=
Subscribers
|
+
+ =
Click on your address to visit your subscription
options page. (Parenthesized entries have list
delivery =
disabled.)
|
Non-digested Members of :
|
Digested
Members of : =
|
|
|
-----------------------------------------------------------
I did not give importance to appearance. Appearance ideas will be
welcome.
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From jcrey@uma.es Tue Nov 14 16:02:58 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Tue, 14 Nov 2000 17:02:58 +0100
Subject: [Mailman-i18n] Mailman i18n - First piece
References: <3A09A43F.140555D2@uma.es> <14857.65173.887119.11002@anthem.concentric.net>
Message-ID: <3A116232.C3119770@uma.es>
--------------------------
Work to actual volunteers:
--------------------------
2) Omar Walid Llorente: handle_opts.py, listinfo.py and options.py
12) Vizi Szilard: private.py, roster.py and subscribe.py
There are no more files to assign for marking :-)
I would like to send patches to Barry this weekend...
cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From barry@digicool.com Thu Nov 16 04:51:15 2000
From: barry@digicool.com (Barry A. Warsaw)
Date: Wed, 15 Nov 2000 23:51:15 -0500 (EST)
Subject: [Mailman-i18n] One tip
References:
<3A10F1C0.588C06CA@uma.es>
Message-ID: <14867.26563.507071.23775@anthem.concentric.net>
>>>>> "JCRA" == Juan Carlos Rey Anaya writes:
JCRA> I can not find a convincing reason to leave
JCRA> "Hello". - 'strong>' and '
not translatable and only may induce to errors. - Al last
JCRA> catalog can be fully of untranslatable text and can make
JCRA> translation heavier than it really is. Writing 20 or 30
JCRA> string with this stuff can be normal but translating almost
JCRA> all the catalog is a daunting task.
I'd like to eventually fix all that, but let's not worry about it in
the first go 'round. Let's worry about getting markups for what's
there now and try to fix the templating problems in subsequent
revisions. Otherwise I fear it'll delay getting something out too
long (waiting for the Quixotic "perfect solution").
-Barry
From raghavan@media.osaka-cu.ac.jp Thu Nov 16 09:39:34 2000
From: raghavan@media.osaka-cu.ac.jp (Venkatesh Raghavan)
Date: Thu, 16 Nov 2000 18:39:34 +0900
Subject: [Mailman-i18n] Japanese characters in Mailman archive
Message-ID: <3A13AB56.9B5EEE6@media.osaka-cu.ac.jp>
Hi all,
I am new to this list and trying to use Mailman
to administer a Japanese language ML.
I have recently installed Mailman. Mailman
no trouble with handling Japanese e-mail messages but
archive files (html) do not display Japanese
characters properly. The problem seems to do
with the html conversion by Mailman.
When Mailman encouters '>' it gets replaced with '>'. In the
case of Japanese (multibyte) messages, this '>' is generally
one byte of double-byte character (Japanese) and as a result
the characters get messed up in html files. Archive files in the
text format does not have this problem.
I am not sure how this problem can be sorted out.
Is there a way wherein the replacement of '>' by '>'
can be avoided. Or is there a way to generate text files
instead of html files.
Thanks in advance.
Venkatesh Raghavan
Osaka City University
Japan
From tkikuchi@is.kochi-u.ac.jp Thu Nov 16 09:58:25 2000
From: tkikuchi@is.kochi-u.ac.jp (Tokio Kikuchi)
Date: Thu, 16 Nov 2000 18:58:25 +0900
Subject: [Mailman-i18n] Japanese characters in Mailman archive
References: <3A13AB56.9B5EEE6@media.osaka-cu.ac.jp>
Message-ID: <3A13AFC1.5AA6661A@is.kochi-u.ac.jp>
Venkatesh Raghavan wrote:
>
> Hi all,
>
> I am new to this list and trying to use Mailman
> to administer a Japanese language ML.
>
Hi,
(snip)
> I am not sure how this problem can be sorted out.
> Is there a way wherein the replacement of '>' by '>'
> can be avoided. Or is there a way to generate text files
> instead of html files.
Yes. You must first convert the message into EUC-JP in
which all the double-byte characters are msb set.
Please visit Japanized Mailman Page at
http://mm.tkikuchi.net/
You must also check the mail archive to check patches.
http://mm.tkikuchi.net/pipermail/mmjp-users/
--
Tokio Kikuchi
From matthias@accelance.fr Fri Nov 17 10:26:20 2000
From: matthias@accelance.fr (Matthias Saou)
Date: Fri, 17 Nov 2000 11:26:20 +0100
Subject: [Mailman-i18n] French translation
Message-ID: <3A1507CC.E9DA02D7@accelance.fr>
Hello,
I really like Mailman, and I would love to have at last a french
version! I'm french, but since I'm also Canadian (thanks mom! ;-), I can
help translate from english to french if you still need someone.
Let me know,
Matthias
--
Matthias Saou
matthias@accelance.fr
From jcrey@uma.es Fri Nov 17 10:45:11 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Fri, 17 Nov 2000 11:45:11 +0100
Subject: [Mailman-i18n] French translation
References: <3A1507CC.E9DA02D7@accelance.fr>
Message-ID: <3A150C37.FBC8BD4A@uma.es>
Matthias Saou wrote:
> =
> Hello,
> =
> I really like Mailman, and I would love to have at last a french
> version! I'm french, but since I'm also Canadian (thanks mom! ;-), I ca=
n
> help translate from english to french if you still need someone.
By chance there is nobody working (as I know) in French translation. So
welcome!
I will send you templates. I suppose you have been reading i18n mailing
list discussions so I have not to tell you what to do :-)
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From fil@bok.net Fri Nov 17 11:16:08 2000
From: fil@bok.net (Fil)
Date: Fri, 17 Nov 2000 12:16:08 +0100
Subject: [Mailman-i18n] French translation
In-Reply-To: <3A150C37.FBC8BD4A@uma.es>; from jcrey@uma.es on Fri, Nov 17, 2000 at 11:45:11AM +0100
References: <3A1507CC.E9DA02D7@accelance.fr> <3A150C37.FBC8BD4A@uma.es>
Message-ID: <20001117121608.C14139@orwell.bok.net>
In fact a bunch of french-speaking guys is working on a translation, but
slowwwly. You can however join (and lead) the group at
http://atlas.bok.net/mailman/listinfo/mailman-fr
* Juan Carlos Rey Anaya (jcrey@uma.es) écrivait :
> Matthias Saou wrote:
> >
> > Hello,
> >
> > I really like Mailman, and I would love to have at last a french
> > version! I'm french, but since I'm also Canadian (thanks mom! ;-), I can
> > help translate from english to french if you still need someone.
>
> By chance there is nobody working (as I know) in French translation. So
> welcome!
> I will send you templates. I suppose you have been reading i18n mailing
> list discussions so I have not to tell you what to do :-)
>
> 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 :-| #
> #----------------------------------------------#
>
> _______________________________________________
> Mailman-i18n mailing list
> Mailman-i18n@python.org
> http://www.python.org/mailman/listinfo/mailman-i18n
From Antti.Siiskonen@tut.fi Fri Nov 17 16:43:30 2000
From: Antti.Siiskonen@tut.fi (Antti Siiskonen)
Date: 17 Nov 2000 18:43:30 +0200
Subject: [Mailman-i18n] a Finnish translation?
Message-ID:
Greetings.
I have interest in developing a Finnish version of Mailman is such
version does not yet exist. I'm of course willing to contribute the
translation to the Mailman project if I decide to do the translation.
It seems to me that the templates have to be translated first .. is
there much more to it? I've read the design notes at www.zope.org but
I still have no idea of the size of the actual operation.
Can Mailman do qp-decoding in 2.x versions when archiving messages?
The 1.x versions couldn't and I remember writing a short patch to fix
the code that generates the summary pages (the pages with scandinavian
characters looked terrible). If the bulk 2.x versions can't do it are
there any patches ready for 2.x versions?
Please cc any replies directly to me as I'm not on
this list .. at least for now.
--
//Antti
From lgras@pie.xtec.es Sat Nov 18 21:51:30 2000
From: lgras@pie.xtec.es (=?iso-8859-1?Q?LLu=EDs?=)
Date: Sat, 18 Nov 2000 22:51:30 +0100
Subject: [Mailman-i18n] Interested in Catalan Translation
Message-ID: <3A16F9E2.CD7E5CC9@pie.xtec.es>
Hi !!!
Just finishing to setting up a mailman in my home-linux-server i decided
to translate it to my mother language.
How can i do it ...
From jcrey@uma.es Mon Nov 20 07:32:21 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Mon, 20 Nov 2000 08:32:21 +0100
Subject: [Mailman-i18n] a Finnish translation?
References:
Message-ID: <3A18D385.50ECFCCD@uma.es>
Antti Siiskonen wrote:
> I have interest in developing a Finnish version of Mailman...
Welcome, I will send you English templates so you can start translating.
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From Armin@exklusiv.de Tue Nov 21 14:26:20 2000
From: Armin@exklusiv.de (=?iso-8859-1?Q?A=2E_K=F6nigsdorfer?=)
Date: Tue, 21 Nov 2000 15:26:20 +0100
Subject: [Mailman-i18n] i18n version of mailman?
Message-ID: <11A7A25F86EFD3118035006097B4D1C70D4D1B@fax.exklusiv.de>
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------ =_NextPart_001_01C053C7.0770DEB0
Content-Type: text/plain
Hi folks!
I think there are efforts to build an internationalized version
of mailman (just because this mailinglist exists).
How far is this port? Does Python not have any i18n mechanism?
The strings in the sourcecode are not marked for translation, will
at least this be done?
Currently I'm working on a german translation. The templates were
easy but to translate all the strings in the source is terrible
slow and error prone. And with the next version of mailman I
will have to throw away most of my work.
This is a great piece of software. With support for i18n it
would be perfect. ;o)
BTW: I have to do the work anyway, so if I could help... Next week
I will start to teach myself Python.
Kind regards,
Armin
------ =_NextPart_001_01C053C7.0770DEB0
Content-Type: text/html
i18n version of mailman?
Hi folks!
I think there are efforts to build an internationalized version
of mailman (just because this mailinglist exists).
How far is this port? Does Python not have any i18n mechanism?
The strings in the sourcecode are not marked for translation, will
at least this be done?
Currently I'm working on a german translation. The templates were
easy but to translate all the strings in the source is terrible
slow and error prone. And with the next version of mailman I
will have to throw away most of my work.
This is a great piece of software. With support for i18n it
would be perfect. ;o)
BTW: I have to do the work anyway, so if I could help... Next week
I will start to teach myself Python.
Kind regards,
Armin
------ =_NextPart_001_01C053C7.0770DEB0--
From barry@digicool.com Wed Nov 22 05:02:26 2000
From: barry@digicool.com (Barry A. Warsaw)
Date: Wed, 22 Nov 2000 00:02:26 -0500
Subject: [Mailman-i18n] Towards 2.1
Message-ID: <14875.21346.357211.669599@anthem.concentric.net>
There have been lots of great discussion on mailman-developers about
the directions Mailman should be taking. This is all very cool stuff
(and I want it to continue), but I view it as being more for Mailman
3.0, for which I have no time frame at the moment.
Now that 2.0 final is imminent[*], I'd also like to open up some
discussion about what we want to see in 2.1. My hard commitment, long
overdue, is to integrate Juan Carlos's and Victoriano's I18N work.
Juan Carlos has sent me patches, which I intend to start unpacking and
looking at, probably after the US Thanksgiving holiday weekend. I'd
also like to start using some of the nicer Python 2.0 features to
clean up the code in places.
Other than that, I'd like to get people's feedback on the really
crucial stuff that needs to get fixed for 2.1. I want to keep to a
bare minimum anything that requires re-architecting, pushing that into
3.0 after more discussions. I'd like to try to get a 2.1 beta out by
the end of the year, with 2.1 final some time in January. I don't
know if that's realistic or not.
From the TODO list, things I can imagine tackling for 2.1 include:
- Plain text digests should conform to RFC 1153.
- If a message has MIME parts and the header/footer is going to be
added, the message should be transformed into a mulitpart/mixed
with the header and footer added as text/plain parts.
(note that this will require improving Python's standard MIME
message handling. b.bum astutely observes that it
basically sucks right now and fixing this dovetails with work i
want to do for Python 2.1 as well).
- Allow "urgent" postings to all members by the list admin which
bypasses normal digest delivery.
- A button that will bundled and deliver a digest Right Now.
- Allow the list-admin to require approvals for unsubs
- Allow the user to be excluded from postings if they're getting
them in the to: or cc: headers. Be smarter about filtering out
duplicate deliveries.
- Allow users to subscribe without selecting a password and have
Mailman create a password for them.
- Allow the site admin to define list styles or themes, and list
admins to choose one of the canned styles to apply to their
list.
- Full creation, deletion, renaming, etc. of lists through the web
(and email?), including fixing aliases file updates.
- add_members should have a switch to disable admin notifications
- Allow individuals to turn off password reminders
- Don't use the first public mailing list as the `originator' of
password reminders.
- Provide an email interface to all administrative commands
- Add -join and -remove addresses for easy subscription,
unsubscription
- For email subscribes, keep an audit of where requests are coming
from, and send the original request headers in the confirmation
message. Helps track down subscribe bombs.
- Support the `which' command.
- archive link should do *something* reasonable before the first
message has been posted to the list.
We should also do /something/ about qrunner, but again, I want to
keep radical changes to a minimum. Stability is crucial, but
performance counts too. Maybe Chuq's idea of splitting the queue
into 3 parts can be done without much disruption.
I don't think /everything/ can be done for 2.1, and maybe other people
have different priorities. I'm going to keep this list up-to-date on
the Mailman2.1 Wiki:
http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanTwoDotOne
Feel free to contribute.
-Barry
[*] The astute observer will notice the tarball on SourceForge
already. I'm waiting for the mirror sites to update, but will
announce tomorrow even if they don't.
From darrell@grumblesmurf.net Wed Nov 22 23:04:26 2000
From: darrell@grumblesmurf.net (Darrell Fuhriman)
Date: 22 Nov 2000 15:04:26 -0800
Subject: [Mailman-i18n] Re: [Mailman-Developers] Towards 2.1
In-Reply-To: barry@digicool.com's message of "Wed, 22 Nov 2000 00:02:26 -0500"
References: <14875.21346.357211.669599@anthem.concentric.net>
Message-ID:
barry@digicool.com (Barry A. Warsaw) writes:
> >From the TODO list, things I can imagine tackling for 2.1 include:
I would like to see a couple things added.
1) the patch I wrote to sort the list and break it up in chunks
when passed to the mailer -- FWIW, I've been using it since I
wrote it without problems, surely others have, too. Like I said
earlier, at worst, it's an innocuous feature, but in general it
does benefit delivery performance.
2) In pipermail, I'd like to be able to define HTML tags that can
be wrapped around non-important parts of the particular message.
Specifically, this is to enable you to exclude certain parts of
the message from indexing, such as navigation information. (I'm
thinking specifically of the
tags.
That is, of course, a rather obscure feature. :)
Darrell
From Dan Mick Thu Nov 23 02:46:56 2000
From: Dan Mick (Dan Mick)
Date: Wed, 22 Nov 2000 18:46:56 -0800 (PST)
Subject: [Mailman-i18n] Re: [Mailman-Developers] Towards 2.1
Message-ID: <200011230245.SAA09389@utopia.west.sun.com>
> barry@digicool.com (Barry A. Warsaw) writes:
>
> > >From the TODO list, things I can imagine tackling for 2.1 include:
>
> I would like to see a couple things added.
>
> 1) the patch I wrote to sort the list and break it up in chunks
> when passed to the mailer -- FWIW, I've been using it since I
> wrote it without problems, surely others have, too. Like I said
> earlier, at worst, it's an innocuous feature, but in general it
> does benefit delivery performance.
I've been using it, and I think I love it. I think it ought to
be optionally added, too.
A pleasant side-effect of the domain sorting is when Hotmail gets
screwed up (once or twice a week), all the hotmail mail bounces at
the same time. :-}
From Nigel.Metheringham@VData.co.uk Thu Nov 23 09:45:12 2000
From: Nigel.Metheringham@VData.co.uk (Nigel Metheringham)
Date: Thu, 23 Nov 2000 09:45:12 +0000
Subject: [Mailman-i18n] Re: [Mailman-Developers] Towards 2.1
In-Reply-To: Message from Darrell Fuhriman
of "22 Nov 2000 15:04:26 PST."
Message-ID:
darrell@grumblesmurf.net said:
> 2) In pipermail, I'd like to be able to define HTML tags that can be
> wrapped around non-important parts of the particular message.
> Specifically, this is to enable you to exclude certain parts of the
> message from indexing, such as navigation information. (I'm thinking
> specifically of the tags.
> That is, of course, a rather obscure feature. :)
There is already a patch to do this - its marked as being for htdig,
but all it actually does is inject definable indexer on/off statements
into the generated HTML.
It does assume that your indexer parses are utilises the indexer
tags that already appear in pipermail HTML.
See
https://sourceforge.net/patch/?func=detailpatch&patch_id=102422&group_
id=103
or if that doesn't work, Patch 102422
Nigel.
--
[ - Opinions expressed are personal and may not be shared by VData - ]
[ Nigel Metheringham Nigel.Metheringham@VData.co.uk ]
[ Phone: +44 1423 850000 Fax +44 1423 858866 ]
From matthias@accelance.fr Thu Nov 23 14:11:24 2000
From: matthias@accelance.fr (Matthias Saou)
Date: Thu, 23 Nov 2000 15:11:24 +0100
Subject: [Mailman-i18n] French "templates" for Mailman 2.0
Message-ID: <3A1D258C.7875B47D@accelance.fr>
This is a multi-part message in MIME format.
--------------E2B9B092D34256F1260C0BBF
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Bonjour à tous,
Je suis parti du contenu du dossier "templates" de la version 2.0
(finale) de Mailman, et en m'appuyant sur la traduction de Matthieu
Camus, j'ai refait tout le contenu de ce dossier en français.
Il est donc parfaitement adapté à Mailman 2.0, j'attends vos remarques,
critiques etc dessus si vous en avez.
--
Hi all,
I started off with the "templates" folder from the 2.0 (final) version
of Mailman, and using some work already done by Matthieu Camus, I re-did
the folder's entire content in french.
It should work fine with Mailman 2.0, but I'd appreciate feedback,
critics etc if you have any.
Cheers / Cordialement :-)
Matthias
PS: http://www.python.org/mailman/listinfo : 403 Forbidden :-(
--
Matthias Saou
matthias@accelance.fr
--------------E2B9B092D34256F1260C0BBF
Content-Type: application/x-gzip;
name="templates-v2.0-fr.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="templates-v2.0-fr.tar.gz"
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
TfljlH8DyG09XgDwAAA=
--------------E2B9B092D34256F1260C0BBF--
From fmaior@etica.net Tue Nov 28 16:33:01 2000
From: fmaior@etica.net (Fernando Maior)
Date: Tue, 28 Nov 2000 14:33:01 -0200
Subject: [Mailman-i18n] How to begin with localization for Mailman
Message-ID: <3A23DE3D.5050500@etica.net>
Is there a faq for working with i18n for Mailman?
That is the first time I am offering to help in a job in the Net, so I
do not know how to begin.
May be someone can help me with some guidance...
Thanks!
--
Bye,
Fernando Maior
Etica Tecnologia
Linux Training
From vizisz@freemail.hu Thu Nov 30 09:45:30 2000
From: vizisz@freemail.hu (Vizi Szilard)
Date: Thu, 30 Nov 2000 10:45:30 +0100 (CET)
Subject: [Mailman-i18n] Marking the code
Message-ID:
Hello!
My task is to mark the texts in the following files: private.py,
roster.py and subscribe.py
I've had problems marking texts in these files.
The biggest question for me is that in my files there are messages
to the syslog, like this
LogStdErr("error", "private")
Must I mark these texts like the other translatable text?
And the other problem is connected with the form.has.key("something"),
something=UserOptions or Digest or Membership Management, etc.
The problem here is that the "something string" must be marked
and then translated in other files.
So I think I should mark it, but in the other way, it
is a variable (it tells something to form.has.key), and we must not
change any variable.
Opinion, suggestion?
Szilard Vizi
-------------
mailto:vizisz@freemail.hu UIN:10676592
From jcrey@uma.es Thu Nov 30 10:00:41 2000
From: jcrey@uma.es (Juan Carlos Rey Anaya)
Date: Thu, 30 Nov 2000 11:00:41 +0100
Subject: [Mailman-i18n] Marking the code
References:
Message-ID: <3A262549.C917CC88@uma.es>
Vizi Szilard wrote:
> =
> Hello!
> =
> My task is to mark the texts in the following files: private.py,
> roster.py and subscribe.py
Uf! I did a mistake sending this message to other person telling:
"Please, stop marking your files. I have done it yet. I want to give
patches to Barry tonight.
Cheers"
Sorry by this mistake :-(
> =
> I've had problems marking texts in these files.
> The biggest question for me is that in my files there are messages
> to the syslog, like this
> LogStdErr("error", "private")
> Must I mark these texts like the other translatable text?
I don not mark strings intented to Mailing list manager.
> =
> And the other problem is connected with the form.has.key("something"),
> something=3DUserOptions or Digest or Membership Management, etc.
> The problem here is that the "something string" must be marked
> and then translated in other files.
> So I think I should mark it, but in the other way, it
> is a variable (it tells something to form.has.key), and we must not
> change any variable.
> =
"something" should not be marked.
BTW: I have discovered a bug in template patches. I told to insert i18n
stuff inside them. Well, in listinfo
must be under i18n stuff, like:
Cheers
-- =
___
/ F \
[[[]]]]
( O O )
#----------------0000--(_)--0000---------------#
| Juan Carlos Rey Anaya (jcrey@uma.es) |
| Servicio Central de inform=E1tica |
| Universidad de M=E1laga - Espa=F1a |
#----------------------------------------------#
# Solo se que cada vez se menos :-| #
#----------------------------------------------#
From james@daa.com.au Thu Nov 30 11:10:08 2000
From: james@daa.com.au (James Henstridge)
Date: Thu, 30 Nov 2000 19:10:08 +0800 (WST)
Subject: [Mailman-i18n] Marking the code
In-Reply-To:
Message-ID:
On Thu, 30 Nov 2000, Vizi Szilard wrote:
> Hello!
>
> My task is to mark the texts in the following files: private.py,
> roster.py and subscribe.py
>
> I've had problems marking texts in these files.
> The biggest question for me is that in my files there are messages
> to the syslog, like this
> LogStdErr("error", "private")
You should only be marking user visible error messages. Text for
critical/fatal error messages is best left untranslated. When people send
in bug reports about these sort of problems, we want the developer to be
able to understand them.
If these types of error messages are in a language the developer can't
understand, then they are much less useful.
> Must I mark these texts like the other translatable text?
>
> And the other problem is connected with the form.has.key("something"),
> something=UserOptions or Digest or Membership Management, etc.
> The problem here is that the "something string" must be marked
> and then translated in other files.
It should only be marked where it needs to be translated for display to
the user. If the actual string is set somewhere else, then we might need
something similar to the gettext_noop() dummy function/macro used in C.
> So I think I should mark it, but in the other way, it
> is a variable (it tells something to form.has.key), and we must not
> change any variable.
James.