在setuptools打包中顺利集成mo文件
mo-installer的Python项目详细描述
帮助在setuptools包中安装gettext mo文件。
当前状态
此软件包功能齐全,但仍应视为beta版,因为它没有经过足够的测试
目标
setuptools目前很少支持gettextmo文件的生成和打包。babel提供了一个很好的集成,但它是一个相当大的包。为了帮助开发人员顺利地将gettext国际化集成到他们的包中,这将是一个带有示例的小包。
用法
要在生成时生成MO文件,包开发人员只需:
在目录中的某个地方准备它的po文件。在该目录下,可以安装po文件:
- 直接在名为domain-lang.po(例如:msg-fr_FR.po)的目录中
- 在lang子目录中,例如lang/domain.po(例如:fr/msg.po)
- 在LC_MESSAGES子目录中,例如lang/LC_MESSAGES/domain.po(例如:fr/LC_MESSAGES/msg.po)
在其setup.py中声明他要使用mo_installer,并且po文件在哪里:
setup( ... setup_require = ["mo_installer"], locale_src = src_locale_top_level_dir, )
就这些!
mo_installer模块自动添加一个从build_py自动调用的build_mosetuptools命令。它构建mo文件并将其安装在locale/lang/LC_MESSAGES文件夹中的主包下所以,在上面的例子中,我们以一个locale/lang/LC_MESSAGES/msg.mo文件结束。
配置
可以使用setup参数配置源和目标文件夹:
- locale_src是源目录(相对于源安装,即包含setup.py文件的目录)。默认情况下,它是主包下的locale。
- locale_dir是顶级区域设置目录(相对于主包)默认情况下是locale。
默认值尝试与babel兼容。
安装
最终用户安装
可以从PyPI安装包但是使用pip时不需要安装:setup_require自动找到包并将其安装到本地.eggs目录中
显影装置
如果要在自己的代码中贡献或集成mou安装程序,您应该从GitHUB获得完整树的副本:
git clone https://github.com/s-ball/mo_installer.git [your_working_copy_folder]
常见问题解答
问:我已经配置了我的项目,但是找不到python setup.py install阻塞mo_installer。
A:pip知道如何在生成之前获取安装要求但是,当您直接运行python setup.py install时,没有地方下载它们,因为安装已经启动。在这种情况下,必须使用pip手动安装mo_installer。
问:由mo_installer生成的MO文件似乎不包含哈希表
A:没有。由于mo_installer基于msgfmt.py,因此无法生成哈希表,gettext将使用二进制搜索顺便说一下,babel也不会生成任何哈希表。
运行测试
由于该项目打算与pypi兼容,您只需使用以下命令从主文件夹运行测试:
python setup.py test
有些测试依赖于pyfakefs,当您运行python setup.py test时,它会自动从PyPI中插入但不需要使用mo_installer,也不需要由pip install mo_installer安装。
贡献
由于这个项目是在我的空闲时间开发的,我不能保证很快的反馈。无论如何,我很高兴在github上收到问题或请求。
版本控制
此项目使用标准的Major.Minor.Patch版本控制模式在主版本中,需要公共api的稳定性(至少在1.0.0版本发布之后)。
许可证
这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE文件了解详细信息