summaryrefslogtreecommitdiff
path: root/Mailman/ListAdmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/ListAdmin.py')
-rw-r--r--Mailman/ListAdmin.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/Mailman/ListAdmin.py b/Mailman/ListAdmin.py
index c97e24aaf..505ee71f2 100644
--- a/Mailman/ListAdmin.py
+++ b/Mailman/ListAdmin.py
@@ -222,8 +222,10 @@ class ListAdmin:
elif value == mm_cfg.REJECT:
# Rejected
rejection = 'Refused'
+ os.environ['LANG'] = pluser = self.GetPreferredLanguage(sender)
self.__refuse(_('Posting of your message titled "%s"') % subject,
- sender, comment or _('[No reason given]'))
+ sender, comment or _('[No reason given]'),
+ lang=pluser)
else:
assert value == mm_cfg.DISCARD
# Discarded
@@ -280,7 +282,7 @@ class ListAdmin:
return LOST
return status
- def HoldSubscription(self, addr, password, digest):
+ def HoldSubscription(self, addr, password, digest, lang):
# assure that the database is open for writing
self.__opendb()
# get the next unique id
@@ -295,52 +297,61 @@ class ListAdmin:
# the subscriber's address
# the subscriber's selected password (TBD: is this safe???)
# the digest flag
+ # the user's preferred language
#
- data = time.time(), addr, password, digest
+ data = time.time(), addr, password, digest, lang
self.__db[id] = (SUBSCRIPTION, data)
#
# TBD: this really shouldn't go here but I'm not sure where else is
# appropriate.
syslog('vette', '%s: held subscription request from %s' %
(self.real_name, addr))
- # possibly notify the administrator
+ # possibly notify the administrator in default list language
if self.admin_immed_notify:
+ # This message must be in list's preferred language
+ os.environ['LANG'] = self.preferred_language
subject = _('New subscription request to list %s from %s') % (
self.real_name, addr)
+ # other messages to come, will be in user preferred language
+ os.environ['LANG'] = lang
text = Utils.maketext(
'subauth.txt',
{'username' : addr,
'listname' : self.real_name,
'hostname' : self.host_name,
'admindb_url': self.GetScriptURL('admindb', absolute=1),
- })
+ }, self.preferred_language)
adminaddr = self.GetAdminEmail()
msg = Message.UserNotification(adminaddr, adminaddr, subject, text)
HandlerAPI.DeliverToUser(self, msg, {'_enqueue_immediate': 1})
def __handlesubscription(self, record, value, comment):
- stime, addr, password, digest = record
+ stime, addr, password, digest, lang = record
+ os.environ['LANG'] = lang
if value == mm_cfg.REJECT:
# refused
- self.__refuse(_('Subscription request'), addr, comment)
+ self.__refuse(_('Subscription request'), addr, comment, lang=lang)
else:
# subscribe
assert value == mm_cfg.SUBSCRIBE
- self.ApprovedAddMember(addr, password, digest)
+ self.ApprovedAddMember(addr, password, digest, lang)
# TBD: disgusting hack: ApprovedAddMember() can end up closing the
# request database.
self.__opendb()
return REMOVE
- def __refuse(self, request, recip, comment, origmsg=None):
+
+ def __refuse(self, request, recip, comment, origmsg=None, lang=None):
adminaddr = self.GetAdminEmail()
+ if lang is None:
+ lang = self.preferred_language
text = Utils.maketext(
'refuse.txt',
{'listname' : self.real_name,
'request' : request,
'reason' : comment,
'adminaddr': adminaddr,
- })
+ }, lang)
# add in original message, but not wrap/filled
if origmsg:
text = string.join([text,