我想使用pygettext本地化我的应用程序(目前翻译是硬编码的,并且很难修改它们)。我试过了,我设法为单个文件生成.po和.mo文件。根据我在互联网上找到的教程,我把这段代码放在其中一个文件上:
_("Text to translate")
然后,我在每个字符串中都gettext.install()
。我生成.po文件,翻译它然后生成.mo文件。我运行代码,它工作正常。
问题是我的应用程序是非常模块化的(大约45个模块),我认为为每个模块制作这个应用程序会有点混乱。在stackoverflow中搜索,我找到了一个答案,表示将__init__.py
放在__init__.py
文件上已经足够了,但它对我没有用。这是我的import gettext
gettext.install('helloworld', 'translations/')
文件:
NameError: global name '_' is not defined
我删除了主模块的install(),当我运行模块时,我收到错误main folder/
__init__.py
main_module.py
some modules/
__init__.py
module.py
more modules/
__init__.py
module.py
。
如何为所有模块制作单个.mo文件?请注意,它们位于不同的文件夹中:
flat-screen-tv
我正在使用Python 2.7。
提前致谢,如果我需要提供mor信息,请告诉我。