在朗读时添加翻译以获取gettext

时间:2017-11-01 08:36:46

标签: c++ linux gettext

我使用gettext在C / C ++程序中翻译一些消息。 在程序中,一些翻译是用户可定义的,因此它们可以在运行时进行更改。 是否可以在运行时更新gettext数据库?

1 个答案:

答案 0 :(得分:0)

从您的问题中不清楚您是否希望在程序实际运行时更改翻译,或者您是否只是意味着在程序编译完成后翻译可能会发生变化。

如果您的意思是后者,那么您无需做任何事情。这就是gettext的工作原理。您创建核心数据库,然后将翻译作为不同的文件插入。

如果你真的是字面意思是前者,那就没办法了。 gettext不保证实际翻译的加载方式,并且在运行时更换翻译数据库是不安全的。就像那样。

如果程序意识到翻译可能会发生变化,那么可能的做法是手动刷新数据库并重新加载。调用textdomain(3)切换到另一个文本域然后返回可能会重新加载数据库。