我有一个使用 XML 文件的 Qt 项目。这些 XML 文件包含人类可读的文本,该文本应使用 Qt 工具(lupdate、lrelease、QtLinguist)进行翻译。
问题是,是否可以通过 lupdate 在 .ts 文件中生成条目,而无需使用 QT_TR_NOOP() 宏和 friend 从源代码文件中的 XML 文件复制字符串?或者一般来说,如何翻译 Qt 项目的非源文件中的字符串?
最佳答案
我们遇到了同样的问题:包含人类可读字符串的 XML 文件。
我们的解决方案是确保 XML 文件中的人类可读字符串易于提取(我们将它们放在 LABEL
属性中)并且我们开发了一个可以解析 XML 文件的小工具,提取字符串,生成上下文(通过从 XML 文件中提取数据),然后生成包含 QT_TR_NOOP()
列表的 CPP 头文件。
此文件已添加到 lupdate
使用的项目文件 (.pro) 中。
这个解决方案对我们来说很好,但我们必须非常小心两件事:
- 每次 XML 文件的内容发生变化时运行此工具。
- 确保 XML 文件采用 UTF-8 编码。
关于c++ - Qt 从非源文件中翻译字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4892575/