summaryrefslogtreecommitdiff
path: root/Mailman/Gui/Language.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Gui/Language.py')
-rw-r--r--Mailman/Gui/Language.py128
1 files changed, 0 insertions, 128 deletions
diff --git a/Mailman/Gui/Language.py b/Mailman/Gui/Language.py
deleted file mode 100644
index 5c71aa74f..000000000
--- a/Mailman/Gui/Language.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright (C) 2001-2008 by the Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-"""MailList mixin class managing the language options."""
-
-import codecs
-
-from Mailman import Utils
-from Mailman import i18n
-from Mailman.Gui.GUIBase import GUIBase
-from Mailman.configuration import config
-
-_ = i18n._
-
-
-
-class Language(GUIBase):
- def GetConfigCategory(self):
- return 'language', _('Language options')
-
- def GetConfigInfo(self, mlist, category, subcat=None):
- if category <> 'language':
- return None
- # Set things up for the language choices
- langs = mlist.language_codes
- langnames = [_(description) for description in config.enabled_names]
- try:
- langi = langs.index(mlist.preferred_language)
- except ValueError:
- # Someone must have deleted the list's preferred language. Could
- # be other trouble lurking!
- langi = 0
- # Only allow the admin to choose a language if the system has a
- # charset for it. I think this is the best way to test for that.
- def checkcodec(charset):
- try:
- codecs.lookup(charset)
- return 1
- except LookupError:
- return 0
-
- all = sorted(code for code in config.languages.enabled_codes
- if checkcodec(Utils.GetCharSet(code)))
- checked = [L in langs for L in all]
- allnames = [_(config.languages.get_description(code)) for code in all]
- return [
- _('Natural language (internationalization) options.'),
-
- ('preferred_language', config.Select,
- (langs, langnames, langi),
- 0,
- _('Default language for this list.'),
- _('''This is the default natural language for this mailing list.
- If <a href="?VARHELP=language/available_languages">more than one
- language</a> is supported then users will be able to select their
- own preferences for when they interact with the list. All other
- interactions will be conducted in the default language. This
- applies to both web-based and email-based messages, but not to
- email posted by list members.''')),
-
- ('available_languages', config.Checkbox,
- (allnames, checked, 0, all), 0,
- _('Languages supported by this list.'),
-
- _('''These are all the natural languages supported by this list.
- Note that the
- <a href="?VARHELP=language/preferred_language">default
- language</a> must be included.''')),
-
- ('encode_ascii_prefixes', config.Radio,
- (_('Never'), _('Always'), _('As needed')), 0,
- _("""Encode the
- <a href="?VARHELP=general/subject_prefix">subject
- prefix</a> even when it consists of only ASCII characters?"""),
-
- _("""If your mailing list's default language uses a non-ASCII
- character set and the prefix contains non-ASCII characters, the
- prefix will always be encoded according to the relevant
- standards. However, if your prefix contains only ASCII
- characters, you may want to set this option to <em>Never</em> to
- disable prefix encoding. This can make the subject headers
- slightly more readable for users with mail readers that don't
- properly handle non-ASCII encodings.
-
- <p>Note however, that if your mailing list receives both encoded
- and unencoded subject headers, you might want to choose <em>As
- needed</em>. Using this setting, Mailman will not encode ASCII
- prefixes when the rest of the header contains only ASCII
- characters, but if the original header contains non-ASCII
- characters, it will encode the prefix. This avoids an ambiguity
- in the standards which could cause some mail readers to display
- extra, or missing spaces between the prefix and the original
- header.""")),
-
- ]
-
- def _setValue(self, mlist, prop, val, doc):
- # If we're changing the list's preferred language, change the I18N
- # context as well
- if prop == 'preferred_language':
- i18n.set_language(val)
- doc.set_language(val)
- # Language codes must be wrapped
- if prop == 'available_languages':
- mlist.set_languages(*val)
- else:
- GUIBase._setValue(self, mlist, prop, val, doc)
-
- def getValue(self, mlist, kind, varname, params):
- if varname == 'available_languages':
- # Unwrap Language instances, to return just the code
- return [language.code for language in mlist.available_languages]
- # Returning None tells the infrastructure to use getattr
- return None