我正在开发一个应用程序,它有很多文本和不同的模块,可以包含或不包含在每个构建中.
对于每个保存的项目,我们自动生成一个包含所有详细信息的报告(即该项目中使用的算法的描述等).目前我们在源代码中将所有文本嵌入为字符串,并且我们还通过po和mo文件支持不同的语言.
系统的优点是动态生成文档和报告文件非常容易.不好的一点是,源代码中有大量文本是丑陋的,格式化(即使用html)不舒服,编辑文本很困难,没有简单的拼写检查和翻译可怕.
所以,最后一个问题是:你宁愿在代码中嵌入文档还是为不同语言编写外部文档文件(例如html)并在运行时解析它们?显然,软件的核心文本,如我们的消息框无论如何都会保留在代码中.
如果重要的话,我正在使用wxWidgets在C++中工作.
我认为在不同版本的代码之间可能发生变化的所有文本都应保存在单独的属性文件中.您可以构建一种机制,将消息ID映射到属性文件中的正确字符串,例如分别在英语和西班牙语属性文件中将map id 15映射到"search"或"busca".因此,属性文件可以是具有id-message对的XML或CSV.运行程序时,将为其提供属性文件作为参数.当它启动时,它首先将属性字符串加载到一个映射中,然后你将使用property [15]而不是字符串"search".当然,您可以使用文本标签而不是数字ID.我还会考虑自动生成属性文件中的文档,也许使用CSS.这使得编辑和翻译消息变得更加容易.