如何在gettext系统中控制翻译?

时间:2014-04-29 07:39:30

标签: c++ internationalization gettext

我在linux环境下的c ++应用程序中广泛使用了gettext系统,以便翻译成不同的语言。一切正常。 现在,假设整个应用程序已从德语翻译成英语。但我需要查询一些应该是德语的字符串(意味着查询原始字符串)。

喜欢gettext(" Energie") - >这是用德语翻译成" Energy"用英语和用户可以看到,但我需要字符串" Energie"。

可能有很多解决方案,但我特别关注gettext系统。在gettext系统中有没有办法检索原始文本?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

使用gettext进行反向翻译是不可能的。这是法语的简单.PO文件:

msgid "a strawberry"
msgstr "une fraise"

msgid "a drill"
msgstr "une fraise"

你不能反向翻译" une fraise"回到英语,因为有两种可能的含义,gettext不知道你的意思。

答案 1 :(得分:0)

也许你需要Python gettext文档所谓的“延迟翻译”:而不是在定义时应用翻译功能,而是在打印时执行。

而不是这个,它将在每种语言中使用不同的数组索引:

name = _('Energie')
dict[name] = 50
print('%s is %d' % (name, dict[name]))

这样做:

name = 'Energie'
dict[name] = 50
print('%s is %d' % (_(name), dict[name]))

(假设_()被用作真正的翻译函数;如果它是一个预处理器指令,这将无法工作,因为我在C环境中经常会这样做。)