在C ++项目中嵌入XML字符串资源

问题描述 投票:2回答:1

我有一个需要翻译的C ++插件项目。因此我创建了一个可用于访问字符串的Dictionary类。但是,我不完全确定存储字符串的最佳方法是什么。我正在考虑创建一个XML文件并在那里存储所有字符串,并将它们的不同语言环境存储在一个变量名下,例如

<sHello>
  <en_GB>Hello</en_GB>
  <fr_FR>Bonjour</fr_FR>
  ...
</sHello>

但是,我不希望不必将XML文件与其他可分发的文件一起分发。插件需要跨平台,所以我在Visual Studio中开发Windows版本,在XCode中开发Mac OS版本。优选地,我的Dictionary类中用于访问XML值的C ++代码在两个平台上都是相同的,这意味着我可以将XML包含在相应的项目中,而不必担心维护2个单独的代码库。

是否可以将XML文件作为编译资源嵌入,使其不需要分发?

c++ xml dictionary cross-platform translation
1个回答
1
投票

分发xml文件有什么问题?

如果您真的不想分发XML文件,可以创建一个小的实用程序,将xml文件转换为C ++源文件,如下所示:

// autogenerated by <put your fancy name here>
// Don't hand edit this source file

const char xmlfile[] = "<sHello>\
  <en_GB>Hello</en_GB>\
  <fr_FR>Bonjour</fr_FR>\
  ...\
</sHello>";

您可以使用任何其他合适的格式代替XML,例如json或您认为最适合您需求的任何格式。

© www.soinside.com 2019 - 2024. All rights reserved.