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

3
我在Linux环境下的C++应用程序中广泛使用了gettext系统进行不同语言的翻译,一切正常。现在,假设整个应用程序已从德语翻译成英语。但是我需要查询一些应该是德语的字符串(即查询原始字符串)。
例如:gettext("Energie") --> 这是德语并翻译为英语中的“Energy”,用户可以看到,但我需要字符串“Energie”。
可能有许多解决方案,但我特别关注gettext系统。在gettext系统中是否有检索原始文本的方法?任何帮助都将不胜感激。
2个回答

2

使用gettext无法进行此类反向翻译。这是一个简单的法语.PO文件:

msgid "a strawberry"
msgstr "une fraise"

msgid "a drill"
msgstr "une fraise"

如果你要将“une fraise”翻译回英文,由于它有两种可能的含义,gettext无法确定你想表达哪一种。


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环境中经常出现这种情况。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接