翻译闭源 Qt/QML 应用程序

Translating a closed-source Qt/QML application

我有一个废弃的二进制文件,它使用Qt4+QML。 QML 文件是使用 qrc 嵌入的。由于使用该应用程序会受益的人不会说英语,因此我想翻译该应用程序。

可翻译的字符串已经用qsTr:

标记
 $ strings abplayer | grep qsTr  
                      ? qsTr("Disable auto-play next track")
                      : qsTr("Enable auto-play next track")
                text: qsTr("Now playing");
                text: qsTr("About");
        message: "<small>" + qsTr("Version") + " " + appVersion + "</small><br><br>" +
                 qsTr("A simple audio book player.") + "<br><br>" +
                      qsTr("is empty")
        text: qsTr("indexing")

有什么方法可以旁加载翻译吗?可执行文件是 Linux armel 二进制文件。

有两种方法:

  1. 如果应用程序使用 Qt 的动态链接副本,您应该能够弄清楚它编译时使用的确切编译器版本,然后:

    1. 编译您自己的二进制兼容 Qt 4 副本。
    2. 将捆绑的 Qt dll 替换为您的,并验证它是否仍然有效。
    3. 修改您的 Qt 副本以在 QApplication 构造函数中注入翻译。
  2. 您也可以直接将新的翻译文件追加到可执行文件中,并修补现有的资源目录以指向新的资源文件。