diff options
| -rw-r--r-- | Mailman/Cgi/edithtml.py | 15 | ||||
| -rw-r--r-- | Mailman/Cgi/handle_opts.py | 17 |
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): |
