wxPython i18n 未加载
wxPython i18n not loading
我无法让我的 i18n 在 wxPython 中加载。这是我的文件结构:
locale
│ lembox.pot
│
├─de_DE
│ └─LC_MESSAGES
│ lembox.mo
│ lembox.po
│
├─en_GB
│ └─LC_MESSAGES
│ lembox.mo
│ lembox.po
│
└─en_US
└─LC_MESSAGES
lembox.mo
lembox.pot
lembox.pot
看起来像这样:
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2016-01-23 23:27+GMT Standard Time\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
示例 .po 文件如下所示:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: LemBox\n"
"POT-Creation-Date: 2016-01-23 23:44+0000\n"
"PO-Revision-Date: 2016-01-23 23:45+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-SearchPath-0: lembox.py\n"
"X-Poedit-SearchPath-1: main_app.py\n"
"X-Poedit-SearchPath-2: utility.py\n"
"X-Poedit-SearchPath-3: hash_util.py\n"
#: hash_util.py:13
msgid "hash_shortcut"
msgstr "Hash bilden"
#: hash_util.py:16
msgid "hash_title"
msgstr "Hashbildung"
#: main_app.py:37
msgid "exit"
msgstr "Beenden"
#: main_app.py:45
msgid "LemBox"
msgstr "LemBox"
#: utility.py:21
#, python-format
msgid "LemBox - %s"
msgstr "LemBox - %s"
#, fuzzy
#~ msgid "Hash"
#~ msgstr "Hash"
在我的代码中,我像这样加载语言环境:
def main():
app = wx.App(False)
locale = wx.Locale()
locale.AddCatalogLookupPathPrefix('.')
locale.AddCatalog('de_DE')
app.MainLoop()
当然,使用这样的文本:_("hash_shortcut")
(当然,之前定义了 _ = wx.GetTranslation
。)
但是,在我的应用程序中,我看到的只是未翻译的字符串。这里有什么问题?
编辑: 我在我的应用程序中看到字面上的“hash_shortcut”、“hash_title”等。
尝试以下操作:
locale = wx.Locale()
locale.AddCatalogLookupPathPrefix('./locale')
locale.Init(wx.LANGUAGE_GERMAN)
locale.AddCatalog('lembox')
Init
从 wxpython 加载默认的德语位,例如日历中的日期,AddCatalog
通常是 messages
,mo 文件是 messsages.mo 但你称它为 lembox.mo
或者,您离开
locale.AddCatalogLookupPathPrefix('.')
照原样,将lembox.mo复制一份到本地目录,仍然使用
locale.AddCatalog('lembox')
我无法让我的 i18n 在 wxPython 中加载。这是我的文件结构:
locale
│ lembox.pot
│
├─de_DE
│ └─LC_MESSAGES
│ lembox.mo
│ lembox.po
│
├─en_GB
│ └─LC_MESSAGES
│ lembox.mo
│ lembox.po
│
└─en_US
└─LC_MESSAGES
lembox.mo
lembox.pot
lembox.pot
看起来像这样:
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2016-01-23 23:27+GMT Standard Time\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
示例 .po 文件如下所示:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: LemBox\n"
"POT-Creation-Date: 2016-01-23 23:44+0000\n"
"PO-Revision-Date: 2016-01-23 23:45+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-SearchPath-0: lembox.py\n"
"X-Poedit-SearchPath-1: main_app.py\n"
"X-Poedit-SearchPath-2: utility.py\n"
"X-Poedit-SearchPath-3: hash_util.py\n"
#: hash_util.py:13
msgid "hash_shortcut"
msgstr "Hash bilden"
#: hash_util.py:16
msgid "hash_title"
msgstr "Hashbildung"
#: main_app.py:37
msgid "exit"
msgstr "Beenden"
#: main_app.py:45
msgid "LemBox"
msgstr "LemBox"
#: utility.py:21
#, python-format
msgid "LemBox - %s"
msgstr "LemBox - %s"
#, fuzzy
#~ msgid "Hash"
#~ msgstr "Hash"
在我的代码中,我像这样加载语言环境:
def main():
app = wx.App(False)
locale = wx.Locale()
locale.AddCatalogLookupPathPrefix('.')
locale.AddCatalog('de_DE')
app.MainLoop()
当然,使用这样的文本:_("hash_shortcut")
(当然,之前定义了 _ = wx.GetTranslation
。)
但是,在我的应用程序中,我看到的只是未翻译的字符串。这里有什么问题?
编辑: 我在我的应用程序中看到字面上的“hash_shortcut”、“hash_title”等。
尝试以下操作:
locale = wx.Locale()
locale.AddCatalogLookupPathPrefix('./locale')
locale.Init(wx.LANGUAGE_GERMAN)
locale.AddCatalog('lembox')
Init
从 wxpython 加载默认的德语位,例如日历中的日期,AddCatalog
通常是 messages
,mo 文件是 messsages.mo 但你称它为 lembox.mo
或者,您离开
locale.AddCatalogLookupPathPrefix('.')
照原样,将lembox.mo复制一份到本地目录,仍然使用
locale.AddCatalog('lembox')