Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何使用qml进行翻译_Qt_Qml - Fatal编程技术网

Qt 如何使用qml进行翻译

Qt 如何使用qml进行翻译,qt,qml,Qt,Qml,我想在我的工具栏上进行翻译。工具栏是一个列表模型: import QtQuick 1.1 ListModel { id:tBar ListElement { buttonText: QT_TR_NOOP("Cars In Speed Function") bottomText: "" event: "carsInSpdFn" buttonLevel: "0"

我想在我的工具栏上进行翻译。工具栏是一个列表模型:

import QtQuick 1.1

    ListModel {
        id:tBar
     ListElement {
            buttonText: QT_TR_NOOP("Cars In Speed Function")
            bottomText: ""
            event: "carsInSpdFn"
            buttonLevel: "0"
            buttonBurst: false
            icon: "qrc:/icons/histogram_128x128_w.png"
            color: "#369c3b"
            active: true

            permissionLevel: 0
        }
        ListElement {
            buttonText: QT_TR_NOOP("Clear all logs")
            bottomText: ""
            event: "cleraAllLogs"
            buttonLevel: "0"
            buttonBurst: false
            icon: "qrc:/icons/trash_128x128_w.png"
            color: "steelblue"
            active: true

            permissionLevel: 3
        }
在文件中调用该列表以获取属性变量值。 主文件:

/..
DynamicApp{
    id: statistics
    objectName: "Statistics"
    toolbarModel: ToolbarModel{}




    title:  qsTr("Statistics management")
    icon:   "qrc:/icons/statistics_128x128_w.png"
../
dynamiccapp是qml文件,其中定义了应用程序的窗口。定义的工具栏模型是“属性变量”。 动态CAPP:

/..
Rectangle {
    id: app
    width: main.width
    height: main.height
    color: layout_id.bgColor
    opacity: 0    

    property variant parameter;
    property bool useToolbar: true
    property bool useTopbar: true
    property bool activeApp: false

    property variant toolbarModel
    property string title: ""
    property string icon: ""
../
我知道如何通过qsTr或qsTranslate转换模型列表,但我不知道如何将其校准为属性变量,因为存在对所有文件模型的调用。
您能解释一下如何在我的应用程序中翻译此列表吗?

有关将其添加到app.pro中所需的翻译。您需要做一个hack来添加QML翻译,以便lupdate能够实际访问它们。例如,在我们的项目中,我们有:

# English
TRANSLATIONS += settings/language/set_language/setting_en.ts
# Spanish
TRANSLATIONS += settings/language/set_language/setting_es.ts
之后,为了在lupdate中包含qml文件,我们做了一个在internet上发现的技巧

evil_hack_hahaha_add_what_ever_you_want_etc {
SOURCES += path_to_qml/*.qml \
    path_to_qml2/*.qml \
    ...
}
之后,在控制台中运行

lupdate NAMEOFPROFILE.pro
现在,您将生成包含qml的.ts

完成翻译工作后,记得

lrelease NAMEOFPROFILE.pro
祝你好运