将XML字符串资源嵌入C 项目



我有一个C 插件项目,需要翻译。因此,我创建了一个可用于访问字符串的字典类。但是,我不确定存储字符串的最佳方法是什么。我正在考虑创建一个XML文件,并将所有字符串存储在其中的不同地区,以一个变量名称,例如

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

但是,我宁愿不必与其他分销商一起分发XML文件。插件需要是跨平台,因此我正在Visual Studio和Xcode中的Mac OS版本中开发Windows版本。最好是,在我的字典类中,用于访问XML值的C 代码在两个平台上都是相同的,这意味着我只能将XML包括在相应的项目中,而不必担心维护2个单独的代码库。

是否可以以不需要分发的方式嵌入XML文件作为编译资源?

分发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或您认为最适合自己的需求的任何其他格式。

最新更新