Gettext:源代码修改后如何更新po和pot文件

17 投票
3 回答
9581 浏览
提问于 2025-04-17 02:44

我有一个用Python写的项目,里面有国际化的字符串。
我修改了源代码,字符串的行数也发生了变化,也就是说在pot和po文件中,字符串的行数指向的地方不对了。

那么,怎么才能把po和pot文件更新到新的字符串位置呢?

3 个回答

0

对于使用meson的人:

<项目ID>-pot<项目ID>-update-po

比如,对于iputils项目:

$ dir="/tmp/build"
$ meson . $dir && ninja iputils-pot -C $dir && ninja iputils-update-po -C $dir

来源: https://mesonbuild.com/i18n-module.html

3

使用 autoconfautomake,你可以简单地进入 po 子目录,然后运行:

make update-po

或者:

make update-gmo

作为一个软件包的维护者,我们通常会进入 build/po 目录,然后运行 update-po。这个命令会更新源代码树中的 .po 文件(假设你是在一个不同的目录下构建)。更新后的 .po 文件会被提交到代码库中,执行完这个命令后,需要准备一个新的提交。

update-gmo 这个命令会生成 .gmo 文件,这些文件通常不会被提交到代码库,通常是在构建过程中自动生成的。

20

你可以看看这个脚本,它可以帮助你用新代码更新你的po文件。这个脚本使用了xgettextmsgmerge这两个工具。

echo '' > messages.po # xgettext needs that file, and we need it empty
find . -type f -iname "*.py" | xgettext -j -f - # this modifies messages.po
msgmerge -N existing.po messages.po > new.po
mv new.po existing.po
rm messages.po

撰写回答