diff options
| author | Barry Warsaw | 2012-07-03 10:36:39 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-07-03 10:36:39 -0400 |
| commit | 01415190ab44e69a8f09a6411564a7cb288404e8 (patch) | |
| tree | 869503cb83afa74a17446363a6dbda5ba62d2b8d /src/mailman/languages/manager.py | |
| parent | 3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed (diff) | |
| parent | 011677d7457f1d4c9cea3b030c8a50e941657812 (diff) | |
| download | mailman-01415190ab44e69a8f09a6411564a7cb288404e8.tar.gz mailman-01415190ab44e69a8f09a6411564a7cb288404e8.tar.zst mailman-01415190ab44e69a8f09a6411564a7cb288404e8.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)) |
