翻译闭源Qt / QML应用程序

时间:2016-08-29 11:47:58

标签: string qt qml translation reverse-engineering

我有一个废弃的二进制文件,它使用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 个答案:

答案 0 :(得分:2)

有两种方法:

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

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