我应该检查*.mo文件吗?

27

我应该将*.mo翻译文件提交到版本控制系统吗?

这是一个普遍的问题。但我特别地在使用git仓库的Django项目中工作。

3个回答

20

一般的回答是:
如果你需要这些文件来编译或部署(简而言之:与你的组件(从版本控制系统中查询的文件集)“工作”),那么是的,它们应该存储在其中(这里指Git)。 对于其他类型的文件(例如项目文件),情况也是如此。

.mo文件是特殊的:

django-admin.py compilemessages utility.

这个工具可以运行所有可用的.po文件并创建.mo文件,它们是gettext优化使用的二进制文件。
意思是:
- 每次需要时都应该能够重新构建它们(从而保证它们与其.po文件同步) - Git在二进制存储方面不太好,这将避免为每个更改存储完整版本
因此,特定的答案并不那么清晰:
- 如果您的po文件很稳定,并且不会经常发生变化,您可以明确地存储.mo文件 - 您应该绝对存储一个大的README文件,解释如何从po文件生成mo。

1
如果您需要这些文件来编译或部署,那么这意味着您还应该提交您的库和所有依赖项。而这是一个大忌讳。 - ravenwing
@ravenwing(将近12年后)。我同意:最佳实践是声明其依赖项,而不是包含它们,并查看第三方工具是否会从外部引用中获取这些依赖项(例如maven/mvnpom.xml和Nexus.org中获取)。 - VonC

17

一般而言,不要将生成的内容存储在版本控制中。

如果需要罕见的工具,可以将其包含在tarball中,甚至可以拥有单独的存储库或仅包含这些生成文件的离线分支(例如git.git存储库中的“html”和“man”分支)。


0

对于提出的问题,Jakub answer 的回答非常好。

但是有人可能会问:

那么我应该把这些文件存储在哪里?每次部署代码时都要生成它们吗?

对于这个问题... 这取决于情况。你可以将其部署在tarball中(如Jakub所建议的),甚至更好的方法是创建pip或系统包(适用于Fedora的RPM,适用于Debian的DEB等)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接