检测TravisCI中对django翻译(PO)文件的更改

我正在使用
Django (1.7) 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之后,差异将总是显示至少1个插入和1个删除,对吧?

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

如果diff中有多个插入和1个删除,则此脚本应以status = 1退出.

点赞