1

概括 :

我有一个使用 GNU Autotools 的项目。我有一个锅文件。我需要更新它。有没有为我运行 xgettext 的神奇“制作”任务(我很懒?)

详细版本:

你好

我正在尝试使用 GNU autotools 和 gettext 设置一个项目。

我正在尝试遵循“懒惰”的路径(即只编写 configure.ac、Makefile.am 等,并让工具尽可能为我生成其余部分)。

我在我的包上使用了一次 gettextize,所以我创建了一个 package.pot 文件,并派生了一个 fr.po 文件(我正在尝试翻译法语)。

我从来没有设法翻译我的代码,但我发现这可能是因为代码不在正确的位置。翻译后的字符串在 lib 而不是 main 中,文档很不清楚在这种情况下我必须做什么。如果我的 main 调用了 lib 中的函数,并且 lib 中的函数正在使用 _()。在这种情况下我应该使用 dgettext 的 gettext 吗?我的库只是为了组织目的而在这里,所以我可以使用相同的域(整个应用程序只有一个 package.pot 文件)。

所以,为了尝试一些更简单的事情,我把我的字符串移到了 main (目前它实际上只是一个 hello world)。所以我需要更新 package.pot 文件,至少,要意识到字符串位置发生了变化,需要吗?在这种情况下,我会手动使用 xgettext(痛苦地将所有有趣的 cpp 文件的列表传递给它,当我有多个文件时,这将是一件很痛苦的事情),还是在某个地方有一个“做任何事情”任务我能跑 ?

这可能看起来很愚蠢,但我一直无法找到它。

此外,欢迎任何有关查找我的代码未翻译原因的帮助任何不在http://www.gnu.org/software/gettext/FAQ.html#integrating_noop中的内容)都是受欢迎的!

谢谢

酸碱度

4

1 回答 1

2

好的,事实证明:

  • 在 po/ 文件夹的生成 Makefile 中有一个 update-po 任务,这正是我想要的;
  • 此任务查找 POTFILES.in 文件中引用的文件,我忘记更新该文件。

所以这一件愚蠢的事情。

于 2009-10-07T12:10:50.577 回答