diff options
| author | Barry Warsaw | 2012-07-20 20:47:26 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-07-20 20:47:26 -0400 |
| commit | 27672b5c94c78fecbda8cf91bb62618b7a0dc7cb (patch) | |
| tree | f982344c91b096d6bfcb848147a5059b5ab0c0a1 /src/mailman/languages/manager.py | |
| parent | e1aa901fbdcc6d7fbb495a1d9ca1a5079008164a (diff) | |
| parent | 01415190ab44e69a8f09a6411564a7cb288404e8 (diff) | |
| download | mailman-27672b5c94c78fecbda8cf91bb62618b7a0dc7cb.tar.gz mailman-27672b5c94c78fecbda8cf91bb62618b7a0dc7cb.tar.zst mailman-27672b5c94c78fecbda8cf91bb62618b7a0dc7cb.zip | |
Diffstat (limited to 'src/mailman/languages/manager.py')
| -rw-r--r-- | src/mailman/languages/manager.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mailman/languages/manager.py b/src/mailman/languages/manager.py index 7844bd87c..87b56dbda 100644 --- a/src/mailman/languages/manager.py +++ b/src/mailman/languages/manager.py @@ -24,8 +24,11 @@ __all__ = [ 'LanguageManager', ] + +from zope.component import getUtility from zope.interface import implementer +from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.languages import ILanguageManager from mailman.languages.language import Language @@ -72,3 +75,18 @@ class LanguageManager: def clear(self): """See `ILanguageManager`.""" self._languages.clear() + + + +def handle_ConfigurationUpdatedEvent(event): + if not isinstance(event, ConfigurationUpdatedEvent): + return + manager = getUtility(ILanguageManager) + for language in event.config.language_configs: + if language.enabled: + code = language.name.split('.')[1] + manager.add(code, language.charset, language.description) + # the default language must always be available. + assert event.config.mailman.default_language in manager, ( + 'system default language code not defined: {0}'.format( + event.config.mailman.default_language)) |
