【问题标题】:xgettext - extract translatable strings and update .potxgettext - 提取可翻译的字符串并更新 .pot
【发布时间】:2011-01-28 20:21:21
【问题描述】:

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

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

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

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

【问题讨论】:

  • 见彼得布雷特回答:就是这样!

标签: c++ c gettext xgettext


【解决方案1】:

-j--join-existing 选项(“将消息与现有文件加入”)不能满足您的需要吗?

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

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

【讨论】:

  • +1: 这样做的方法:使用 -j 和 ${list_of_files_to_i18nize}
  • 谢谢@Peter 和@neuro..这正是我要找的标志。显然,我将它与合并选项混淆了。
【解决方案2】:

实现这一点的最简单方法是:

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++ 源文件。

此外,-o sample.pot--output=sample.pot-d sample--default-domain=sample 的效果完全相同。您可以放心地省略其中之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多