xgettext dry 运行 避免在 Github 工作流程中进行不必要的提交
xgettext dry run to avoid unnecessary commits in Github workflow
有什么方法可以对源文件进行 xgettext
的干燥 运行,以便简单地检查与当前 .pot
文件相比是否有任何差异?
我已经设置了一个 Github 工作流程,只要将对源文件的更改推送到存储库,该工作流程就会 运行 xgettext
处理源文件。结果是,对源文件的更改通常不会更改翻译字符串,因此生成的 .pot
文件的唯一区别是创建日期,每次 xgettext
都会更新 运行。这会导致不必要的提交,并触发对我的 weblate 实例的不必要的 webhook 调用,该实例在“更新的”.pot
文件上拾取,并最终使用“更新的”.pot
文件生成自己的合并请求。
如果有办法干 运行 并首先检查字符串中是否存在任何实际差异,我可以避免不必要的提交和 PR 污染我的 repo。有什么想法吗?
我能够在我的 Github 工作流程中添加一个过滤器,检查除了对 .pot
文件中 POT-Creation-Date
的值进行简单更新之外是否有任何重大变化。我在处理 运行 xgettext
的步骤中添加了一个 id
,然后在 运行 xgettext
之后我保存了 pot 文件中更改的重要行数到下一步可以访问的变量:
- name: Update source file translation strings
id: update_pot
run: |
sudo apt-get install -y gettext
xgettext --from-code=UTF-8 --add-comments='translators:' --keyword="pgettext:1c,2" -o i18n/litcal.pot index.php
echo "::set-output name=POT_LINES_CHANGED::$(git diff -U0 | grep '^[+|-][^+|-]' | grep -Ev '^[+-]"POT-Creation-Date' | wc -l)"
然后我在 运行 提交步骤之前检查这个变量:
- name: Push changes # push the output folder to your repo
if: ${{ steps.update_pot.outputs.POT_LINES_CHANGED > 0 }}
uses: actions-x/commit@v4
with:
# The committer's email address
email: 41898282+github-actions[bot]@users.noreply.github.com
# The committer's name
name: github-actions
# The commit message
message: regenerated i18n/litcal.pot from source files
等等
有什么方法可以对源文件进行 xgettext
的干燥 运行,以便简单地检查与当前 .pot
文件相比是否有任何差异?
我已经设置了一个 Github 工作流程,只要将对源文件的更改推送到存储库,该工作流程就会 运行 xgettext
处理源文件。结果是,对源文件的更改通常不会更改翻译字符串,因此生成的 .pot
文件的唯一区别是创建日期,每次 xgettext
都会更新 运行。这会导致不必要的提交,并触发对我的 weblate 实例的不必要的 webhook 调用,该实例在“更新的”.pot
文件上拾取,并最终使用“更新的”.pot
文件生成自己的合并请求。
如果有办法干 运行 并首先检查字符串中是否存在任何实际差异,我可以避免不必要的提交和 PR 污染我的 repo。有什么想法吗?
我能够在我的 Github 工作流程中添加一个过滤器,检查除了对 .pot
文件中 POT-Creation-Date
的值进行简单更新之外是否有任何重大变化。我在处理 运行 xgettext
的步骤中添加了一个 id
,然后在 运行 xgettext
之后我保存了 pot 文件中更改的重要行数到下一步可以访问的变量:
- name: Update source file translation strings
id: update_pot
run: |
sudo apt-get install -y gettext
xgettext --from-code=UTF-8 --add-comments='translators:' --keyword="pgettext:1c,2" -o i18n/litcal.pot index.php
echo "::set-output name=POT_LINES_CHANGED::$(git diff -U0 | grep '^[+|-][^+|-]' | grep -Ev '^[+-]"POT-Creation-Date' | wc -l)"
然后我在 运行 提交步骤之前检查这个变量:
- name: Push changes # push the output folder to your repo
if: ${{ steps.update_pot.outputs.POT_LINES_CHANGED > 0 }}
uses: actions-x/commit@v4
with:
# The committer's email address
email: 41898282+github-actions[bot]@users.noreply.github.com
# The committer's name
name: github-actions
# The commit message
message: regenerated i18n/litcal.pot from source files
等等