summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mailman/Cgi/edithtml.py15
-rw-r--r--Mailman/Cgi/handle_opts.py17
2 files changed, 25 insertions, 7 deletions
diff --git a/Mailman/Cgi/edithtml.py b/Mailman/Cgi/edithtml.py
index ca9b738a6..712b9e404 100644
--- a/Mailman/Cgi/edithtml.py
+++ b/Mailman/Cgi/edithtml.py
@@ -27,7 +27,7 @@ from Mailman.HTMLFormatter import HTMLFormatter
from Mailman import Errors
from Mailman.Cgi import Auth
from Mailman.Logging.Syslog import syslog
-from Mailman.i18n import _
+from Mailman import i18n
@@ -44,10 +44,13 @@ def main():
('handle_opts.html', _('Changing user options results page')),
)
- import Mailman.i18n
- _ = Mailman.i18n._
-
doc = Document()
+
+ # Set up the system default language
+ _ = i18n._
+ i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
parts = Utils.GetPathPieces()
if not parts:
doc.AddItem(Header(2, _("List name is required.")))
@@ -63,7 +66,9 @@ def main():
syslog('error', _('No such list "%(listname)s": %(e)s\n'))
return
- os.environ['LANG'] = mlist.preferred_language
+ # Now that we have a valid list, set the language to its default
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
# Must be authenticated to get any farther
cgidata = cgi.FieldStorage()
diff --git a/Mailman/Cgi/handle_opts.py b/Mailman/Cgi/handle_opts.py
index 0592f961d..1ec5bbd4e 100644
--- a/Mailman/Cgi/handle_opts.py
+++ b/Mailman/Cgi/handle_opts.py
@@ -27,7 +27,11 @@ from Mailman import MailList
from Mailman import Errors
from Mailman.htmlformat import *
from Mailman.Logging.Syslog import syslog
-from Mailman.i18n import _
+from Mailman import i18n
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
@@ -53,6 +57,8 @@ def PrintResults(mlist, operation, doc, results, user=None, lang=None):
def main():
doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
parts = Utils.GetPathPieces()
if not parts or len(parts) < 2:
doc.AddItem(Header(2, _("Error")))
@@ -72,6 +78,10 @@ def main():
syslog('error', 'No such list "%s": %s\n' % (listname, e))
return
+ # Now that we have a valid list, set the language to its default
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
+
# We need a signal handler to catch the SIGTERM that can come from Apache
# when the user hits the browser's STOP button. See the comment in
# admin.py for details.
@@ -106,7 +116,10 @@ def process_form(mlist, user, doc):
operation = ""
user = Utils.LCDomain(user)
- os.environ['LANG'] = pluser = mlist.GetPreferredLanguage(user)
+ # Set the user's preferred language
+ pluser = mlist.GetPreferredLanguage(user)
+ i18n.set_language(pluser)
+ doc.set_language(pluser)
if not Utils.FindMatchingAddresses(user, mlist.members,
mlist.digest_members):