我想将我的替换字符串(德语、法语等)保存为标准的文件格式,并可在 Windows 和 Linux 平台上使用。这样VC++资源文件就直接排除了。
其他人喜欢使用什么文件格式来保存这些本地资源?我希望该格式支持的另外两个功能是:
- 索引 l10n 字符串的“键”本身就是一个英文字符串,而不是一个枚举。
- 格式可以携带消息摘要,所以我可以验证没有篡改。
我的意图是使用一个函数(例如 wstring foo = GetString(L"I am %1% years old");
)来提供 boost::format 或 boost::wformat职能。请注意,提供给 GetString 的键是一个字符串,而不是一个枚举。
显然,我可以使用我想要的任何 XML 格式(或其他格式)。但我宁愿使用有点标准的东西。
最佳答案
对于标准格式,使用 gettext和 msgfmt 制作二进制 .mo 文件。该格式来自 Unix,但可跨平台使用。 Audacity,即 Linux/Mac/Windows,都在使用它。
1) 键是英文字符串。
2) 标准格式没有防篡改方法,因此您需要自己编写。
还有一个编辑器 poEdit 和一个 emacs 模式,用于处理中间文本 .po 格式的翻译。
关于c++ - 一种跨平台的本地化资源格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264969/