在python包中包含本地化的正确方法是什么?
我正在编写自己的python应用程序,我想知道在源代码发行版中包含本地化的正确方法是什么。我努力地写下了这本书;这里甚至没有提到本地化。我用它来提取我的邮件目录并进行编辑 问题在python包中包含本地化的正确方法是什么?,python,linux,gettext,packaging,setuptools,Python,Linux,Gettext,Packaging,Setuptools,我正在编写自己的python应用程序,我想知道在源代码发行版中包含本地化的正确方法是什么。我努力地写下了这本书;这里甚至没有提到本地化。我用它来提取我的邮件目录并进行编辑 问题 在使用setup.py创建源程序包之前,是否可以将*.po自动编译为*.mo?目前我必须在手动编译每种语言之前编译所有内容 我应该在哪里包括那些*.mo-文件?几个linux发行版有不同的位置存放这些文件。在我看来,我在setup.py data_files=[('share/locale/de/LC_MESSAGES
- 在使用setup.py创建源程序包之前,是否可以将
自动编译为*.po
?目前我必须在手动编译每种语言之前编译所有内容*.mo
- 我应该在哪里包括那些
-文件?几个linux发行版有不同的位置存放这些文件。在我看来,我在*.mo
setup.py
真的没有道理。使用pip安装时,它可能在特定的linux机器上工作。但它可能会在bsd或windows上崩溃data_files=[('share/locale/de/LC_MESSAGES', ['locale/de/LC_MESSAGES/project.mo'])
编译_目录
作为源代码构建的必要条件挂接,但我没有发现需要它,因为如果不先编译,就无法测试与python setup.py develope
链接的包中的消息。此外,如果您需要Babel,那么您的源代码构建可能根本不需要.mo
第二个方面:我们的应用程序使用金字塔网络框架,约定使用包数据:
setup(
# ...
package_data={'yourpackage': ['i18n/*/LC_MESSAGES/*.mo' ]},
# ...
然后,如果您的本地化位于yourpackage/i18n/
中,您可以使用pkg\u资源
查找路径,例如:
pkg_resources.resource_filename('yourpackage', 'i18n')
将指向翻译的位置