维护Qt中UI上的所有字符串资源的最佳方法/常用做法是什么,尤其是组合框中的文本输入/文本等等(因为这些是代码本身经常使用的一次)?
我知道Android有这个字符串资源的东西,只需要在一个位置修改资源。
Qt是否也有这样的东西,或者我是否必须在代码中而不是在UI的XML本身中初始化字符串资源...
答案 0 :(得分:1)
AFAIK,Qt中没有字符串资源的内置机制。如果要在构建时维护字符串,可以在一个.h / .cpp文件中将它们定义为全局变量,并在代码中重用它们。
否则,您可以使用Qt's translator个文件(二进制文件)并将其与您的应用程序一起加载。如果您需要更改字符串,则只需编辑翻译文件(xml)并使用lrelease实用程序“重新编译”它,而无需再次构建应用程序。
答案 1 :(得分:0)
有一种机制可以在应用程序中动态翻译文本,但它与Android字符串资源有点不同,但实现了相同的目标。
Qt使用标准的,众所周知的unix gettext
建模的i18n系统。它的工作方式与iOS NSLocalizedString
非常相似,如果响铃的话。
http://doc.qt.io/qt-5/qobject.html#tr
这也值得一读:
Android方法有点独特,你不应该期望它是一个"标准无处不在"。它有效,没关系,但它不是在桌面上做事的标准方式。