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

最佳答案

从您的问题尚不清楚,您是否希望在程序实际运行时更改翻译,还是仅是想在程序已编译后更改翻译。

如果您指的是稍后的内容,则无需执行任何操作。这就是gettext的工作原理。您创建核心数据库,然后将翻译作为不同的文件插入。

如果您实际上是指前者,那么就没有办法。 gettext无法保证实际翻译的加载方式,因此在运行时替换翻译数据库并不安全。

如果程序知道翻译可能会更改,则可能要做的是手动刷新数据库并重新加载它。调用textdomain(3)切换到另一个文本域,然后再返回可能会重新加载数据库。

关于c++ - 在运行时为gettext添加翻译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47050948/

10-16 04:29