1 # Copyright (C) 2007-2008 by the Free Software Foundation, Inc.
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
18 """Language manager."""
20 from zope
.interface
import implements
21 from mailman
.interfaces
import ILanguageManager
25 class LanguageManager
:
26 implements(ILanguageManager
)
29 self
._language
_data
= {}
32 def add_language(self
, code
, description
, charset
, enable
=True):
33 self
._language
_data
[code
] = (description
, charset
)
35 self
._enabled
.add(code
)
37 def enable_language(self
, code
):
38 # As per the interface, let KeyError percolate up.
39 self
._language
_data
[code
]
40 self
._enabled
.add(code
)
42 def get_description(self
, code
):
43 return self
._language
_data
[code
][0]
45 def get_charset(self
, code
):
46 return self
._language
_data
[code
][1]
49 def known_codes(self
):
50 return iter(self
._language
_data
)
53 def enabled_codes(self
):
54 return iter(self
._enabled
)
57 def enabled_names(self
):
58 for code
in self
._enabled
:
59 description
, charset
= self
._language
_data
[code
]