summaryrefslogtreecommitdiffstats
path: root/ibus
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-09-25 10:53:16 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-09-25 10:53:16 +0800
commit791de25117257159a981d3220e492f17ff808186 (patch)
tree679df29a46932f5e2ca45155421c43889f182c83 /ibus
parent70ba17bd9056014ce62948ba25a5e6579e724b7d (diff)
downloadibus-791de25117257159a981d3220e492f17ff808186.tar.gz
ibus-791de25117257159a981d3220e492f17ff808186.tar.xz
ibus-791de25117257159a981d3220e492f17ff808186.zip
Use gettext.dgettext replace locale.dgettext
Diffstat (limited to 'ibus')
-rw-r--r--ibus/lang.py34
1 files changed, 21 insertions, 13 deletions
diff --git a/ibus/lang.py b/ibus/lang.py
index 2b86ce1..52735bc 100644
--- a/ibus/lang.py
+++ b/ibus/lang.py
@@ -23,29 +23,31 @@ __all__ = (
"get_language_name",
)
-import locale
import xml.parsers.expat
-_ = lambda a: locale.dgettext("ibus", a)
-__languages_dict = {}
+import locale
+import gettext
+
locale.setlocale(locale.LC_ALL, "")
+_ = lambda a: gettext.dgettext("ibus", a)
+__languages_dict = {}
def get_language_name(_locale):
lang = _locale.split("_")[0]
lang = lang.lower()
if lang in __languages_dict:
lang = __languages_dict[lang]
- lang = locale.dgettext("iso_639", lang)
+ lang = gettext.dgettext("iso_639", lang)
else:
lang = _(u"Other")
- lang = locale.dgettext("ibus", lang)
+ lang = gettext.dgettext("ibus", lang)
return lang
def __start_element(name, attrs):
global __languages_dict
try:
- iso_639_1_code = attrs["iso_639_1_code"].decode("utf-8")
- name = attrs["name"].decode("utf-8")
+ iso_639_1_code = attrs[u"iso_639_1_code"]
+ name = attrs[u"name"]
__languages_dict[iso_639_1_code] = name
except:
pass
@@ -56,9 +58,15 @@ def __end_element(name):
def __char_data(data):
pass
-iso_639_xml = "/usr/share/xml/iso-codes/iso_639.xml"
-p = xml.parsers.expat.ParserCreate()
-p.StartElementHandler = __start_element
-p.EndElementHandler = __end_element
-p.CharacterDataHandler = __char_data
-p.ParseFile(file(iso_639_xml))
+def __load_lang():
+ iso_639_xml = "/usr/share/xml/iso-codes/iso_639.xml"
+ p = xml.parsers.expat.ParserCreate()
+ p.StartElementHandler = __start_element
+ p.EndElementHandler = __end_element
+ p.CharacterDataHandler = __char_data
+ p.ParseFile(file(iso_639_xml))
+
+__load_lang()
+
+if __name__ == "__main__":
+ print get_language_name("zh_CN")