我知道Qt小部件应用程序通常在编译时和运行时都被翻译成多种语言。有很多信息可以通过标记提取字符串来实现,包括official example。
在这种情况下,没有字符串,但是来自外部(比如配置)文件的输入,GUI根据其内容在运行时构建。虽然外部文件的内容在运行时是已知的,但源代码中没有与之对应的字符,因此没有任何字符可以标记为提取。
解决问题的一种方法是准备与支持的语言一样多的配置文件。但是,遵循通常的工作流程会更好,即
答案 0 :(得分:1)
以下是一种以相对方便的方式实现此目的的方法:
MainWindow
。如果在多个类中使用字符串,请为每个类添加一个条目QString
将const char *
变量转换为<varname>.toUtf8().data()
,以便用作QObject::tr()的参数现在,您可以按照通常的工作流程来翻译Qt小部件应用程序。
当新字符串添加到外部文件时,不要忘记在 *。tri 文件中添加新条目。
您可以从here下载示例。将 data.json 中的语言更改为 en , de , es , pl 或者在每次编译之前 ru 并查看结果。