django - 检测 CI 中 Django 翻译 (PO) 文件的更改

标签 django testing continuous-integration translation travis-ci

我正在使用 Django translations对于一个项目,并希望在 TravisCI 上确保在对可翻译字符串进行更改时不会留下翻译。

这是我的 .travis.yml 的简化片段:

script:
 - ...
 - python manage.py makemessages -l ja --no-wrap --no-location
 - git diff --exit-code

重新创建 PO 文件,并在文件更改时失败。到目前为止一切顺利。

不幸的是,每次脚本运行时,django 都会更新 POT-Creation-Date,而且我看不到任何会禁用它的 makemessages 标志,所以即使没有任何变化,文件也会在每次运行时发生变化。

我的思路是否正确,或者是否有更好的方法来检测是否发生了变化?

最佳答案

所以,在 makemessages diff 之后总是会显示至少 1 次插入和 1 次删除,对吗?

git diff --numstat | awk '{if ($1>1 || $2>1) { exit 1 } else { exit 0 }}'

如果 diff 中有超过 1 次插入和 1 次删除,则此脚本应以 status=1 退出。

关于django - 检测 CI 中 Django 翻译 (PO) 文件的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114368/

相关文章:

c# - Microsoft Bot Framework 的自动测试

testing - 如何使用 TestCafe 确定元素属性是否存在?

git - 使用 gitlab 实现 CI

continuous-integration - Github 操作 : aws ecr login fails

python - Django self.request 不通过查询进行过滤

php - 如何测试 Laravel 5.4 中的 "creating"事件是否调用了 Eloquent 模型方法?

python - Django URL 排序

android - CircleCI:在 .yml 文件中为同一存储库中的多个项目设置工作目录

python - 在 Django/Python 中从网站抓取图像的有效方法

python - 找不到满足所有软件包要求的版本