保存 *.ui 文件时,它们会生成一个 *.h 文件,该文件定义并实现了一个翻译方法“retranslateui()”,该方法使用 QApplication::translate 调用,其中翻译的上下文等于 UI 类名。
我需要能够覆盖它并输入我自己的自定义上下文名称。
如果您必须知道,原因是我们有一个非 QT 遗留翻译表,有 14 种语言。我构建了一个将这些字符串转换为 *.TS 文件的工具。问题是,没有上下文,它只是一个简单的字符串列表,所以我的工具为我的整个应用程序强制一个上下文。在上下文 = UI 类名的情况下,自动生成翻译方法调用使我的 ui 翻译失败。
我发现 UIC 命令行实用程序,从 *.ui 文件创建这个 *.h 文件有一个参数来定义不同的翻译方法。我可以使用它来路由到我自己的翻译方法,该方法将添加到单个上下文中。我的问题是我不知道如何从 qmake 更改 UIC 调用以包含此参数和自定义值。