我正在try xnec2c个gettext翻译.
gettext
在构建时生成一个po/xnec2c.锅
文件,我已将该.pot
文件翻译为de_de,并将其放在/usr/share/locale/de de/lc messages/xnec2c.采购订单
中(也try 为.pot
和.mo
).
如果我调用xnec2c作为LC_ALL=de_DE ./xnec2c
,那么我知道它得到了区域设置,因为小数点在浮点值中变成了逗号,而不是句点,但是文本没有被翻译.我也试过设置LC_MESSAGES=de_DE
,但文本语言没有改变.
_()
宏定义为:
#define _(String) dgettext (PACKAGE, String)
autoconf
的PACKAGE
在configure.ac
中被定义为"xnec2c",它在config.h
中正确地显示出来.
控制台输出使用vfprintf
,如下所示,注意_(format)
的使用:
vfprintf(stderr, _(format), args);
我已经验证了要打印的格式化字符串是否存在于已翻译的文本中.锅铲.
我该如何解决这个问题?我已经阅读了相当多的gettext文档,不确定下一步要try 什么.
(这里有"gtk"标签,因为我们也在使用翻译后的.glade文件,以防相关.)
以下是一些示例(机械翻译为de
不是我的母语$LANG
):
xnec2c.锅
#: src/callback_func.c:684
msgid "View Currents"
msgstr ""
#: src/callback_func.c:810
msgid "GNUplot files (*.gplot)"
msgstr ""
#: src/callbacks.c:88 src/callbacks.c:328 src/callbacks.c:2065
msgid "Really quit xnec2c?"
msgstr ""
/usr/share/locale/de de/lc messages/xnec2c.采购订单
msgid "View Currents"
msgstr "Ströme anzeigen"
msgid "GNUplot files (*.gplot)"
msgstr "GNUplot-Dateien (*.gplot)"
msgid "Really quit xnec2c?"
msgstr "Wirklich verlassen xnec2c?"