summaryrefslogtreecommitdiff
path: root/Mailman/MailList.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/MailList.py')
-rw-r--r--Mailman/MailList.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
index 9d784de51..76538e6c2 100644
--- a/Mailman/MailList.py
+++ b/Mailman/MailList.py
@@ -1410,8 +1410,10 @@ bad regexp in bounce_matching_header line: %s
# default server language. The effect would be that the default
# server language would never get added to the list's list of
# languages.
- self.available_languages = [Language(code) for code in language_codes
- if code in config.LC_DESCRIPTIONS]
+ requested_codes = set(language_codes)
+ enabled_codes = set(config.languages.enabled_codes)
+ self.available_languages = [
+ Language(code) for code in requested_codes & enabled_codes]
def add_language(self, language_code):
self.available_languages.append(Language(language_code))
@@ -1419,12 +1421,13 @@ bad regexp in bounce_matching_header line: %s
@property
def language_codes(self):
# Callers of this method expect a list of language codes
- codes = [lang.code for lang in self.available_languages
- if lang.code in config.LC_DESCRIPTIONS]
+ available_codes = set(self.available_languages)
+ enabled_codes = set(config.languages.enabled_codes)
+ codes = available_codes & enabled_codes
# If we don't add this, and the site admin has never added any
# language support to the list, then the general admin page may have a
# blank field where the list owner is supposed to chose the list's
# preferred language.
if config.DEFAULT_SERVER_LANGUAGE not in codes:
- codes.append(config.DEFAULT_SERVER_LANGUAGE)
- return codes
+ codes.add(config.DEFAULT_SERVER_LANGUAGE)
+ return list(codes)