xgettext - 提取可翻译字符串并更新 .pot

发布于 2024-10-14 13:15:15 字数 342 浏览 3 评论 0原文

我继承了一个sample.pot 文件。现在,我在 a1.c 和 a2.cpp 中添加了新消息。我是否可以使用 xgettext 并将内容输出到同一个 example.pot 而不是创建一个新的?例如:-

xgettext -d sample -s -o sample.pot a1.c
xgettext -d sample -s -o sample.pot a2.cpp

这是更新模板以便保留旧消息的首选方法吗?另一个问题是我们如何区分源代码中的可翻译字符串和普通字符串。我假设 xgettext 将从提到的源代码文件中提取所有字符串。

如果有人可以分享正确的方法,那就太好了..谢谢

I have inherited a sample.pot file. Now, I have added new messages in a1.c and a2.cpp. Is it possible for me to use xgettext and output the contents to same sample.pot instead of creating a new one? Eg:-

xgettext -d sample -s -o sample.pot a1.c
xgettext -d sample -s -o sample.pot a2.cpp

Is this preferred way to go in order to update the template such that old messages are also preserved? The other question is how do we distinguish translatable strings from normal strings in source code. I assume xgettext will pull all strings from mentioned source code file.

It would be great if anybody can share the correct approach..Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生面具三千个 2024-10-21 13:15:15

-j--join-existing 选项(“将消息与现有文件连接”)是否无法满足您的需要?

请注意,您可以在命令行上指定多个输入文件。

xgettext -d sample -s -j -o sample.pot a1.c a2.cpp

Does the -j, --join-existing option ("join messages with existing file") not do what you need?

Note that you can specify more than one input file on the command line.

xgettext -d sample -s -j -o sample.pot a1.c a2.cpp
浮华 2024-10-21 13:15:15

实现此目的的最简单方法是:

xgettext -o sample.pot -s a1.c a2.cpp sample.pot

您不需要 -j--join-existing 因为 xgettext 接受 .po.pot 文件作为常规输入文件。

选项-j--join-existing很少有用。与 -D--directory 结合使用时,用作输入文件的输出文件 sample.pot未在目录列表中搜索。如果您使用 -l c--language=c 您需要 -j--join-existing 因为sample.pot 否则将被解析为 C/C++ 源文件。

此外,-osample.pot--output=sample.pot-dsample-效果完全相同-默认域=样本。您可以安全地忽略其中之一。

The simplest way to achieve this is:

xgettext -o sample.pot -s a1.c a2.cpp sample.pot

You don't need -j, --join-existing because xgettext accepts .po and .pot files as regular input files.

The option -j, --join-existing is rarely useful. In conjunction with -D, --directory it has the effect that the output file sample.pot used as an input file is not searched in the list of directories. If you use -l c, --language=c you need -j, --join-existing because sample.pot would otherwise be parsed as a C/C++ source file.

Besides, -o sample.pot, --output=sample.pot has exactly the same effect as -d sample, --default-domain=sample. You can safely omit one of them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文