我希望将我的替换字符串(德语,法语等)保留为标准的文件格式,并且可以在Windows和Linux平台上使用。因此,立即排除VC ++资源文件。
其他人喜欢使用哪种文件格式来保留这些l10n资源?我希望支持的格式还有两个功能:
我的意图是使用一个函数(例如wstring foo = GetString(L"I am %1% years old");
)来提供boost :: format或boost :: wformat函数。请注意,提供给GetString的键是一个字符串,而不是枚举。
显然我可以使用任何我想要的XML格式(或其他)。但我宁愿使用一些有些标准的东西。
答案 0 :(得分:1)
对于标准格式,使用gettext和msgfmt制作二进制.mo文件。格式来自Unix,但可以跨平台使用。 Audacity,Linux / Mac / Windows,使用它。
1)键 是 英文字符串 2)标准格式没有防篡改方法,所以你需要自己做饭。
还有一个编辑器,poEdit和emacs模式,用于处理中间文本.po格式的翻译。
答案 1 :(得分:0)
我们使用了一个名为I18N的库(我确信有大量的实现以相同的方式命名)。密钥和翻译存储在.txt文件中,并使用一些哈希来加快查找速度。我们对其进行了一些修改以改进上下文 - 它使用了文件名的上下文,因此您无法在同一文件中使用相同字符串文字的多个翻译。
用法类似于Translated = String :: Format(I18N(“我是%d岁”),年);
我们会定期针对源代码运行单独的可执行文件,以解析所有各种I18N条目,重新整理它们,并使用任何新增内容更新文件。
不幸的是我在源代码中找不到作者的任何属性。
答案 2 :(得分:0)
不确定是否有,但如果有机会在lisa.org上提到:http://www.lisa.org/Standards.30.0.html