首页 文章

如何翻译qml

提问于
浏览
1

我想在我的工具栏上进行翻译 . 工具栏是一个listmodel:

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
        }

该列表在file to property variant值中调用 . 主文件:

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




    title:  qsTr("Statistics management")
    icon:   "qrc:/icons/statistics_128x128_w.png"
../

DynamicApp是qml文件,其中定义了应用程序的窗口 . 定义了toolbarModel,它是“属性变体” . DynamicApp:

/..
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翻译模型列表但我不知道如何将其调入属性变量因为调用所有文件toolbarModel . 你能解释一下如何在我的应用程序中翻译这个列表吗?

1 回答

  • 1

    对于翻译,您需要将其添加到APP.pro中 . 你需要做一个黑客来添加QML翻译,以便lupdate可以实际到达它们 . 例如,在我们的项目中,我们有:

    # English
    TRANSLATIONS += settings/language/set_language/setting_en.ts
    # Spanish
    TRANSLATIONS += settings/language/set_language/setting_es.ts
    

    之后,为了在lupdate中包含qml文件,我们在互联网上发现了一个技巧

    evil_hack_hahaha_add_what_ever_you_want_etc {
    SOURCES += path_to_qml/*.qml \
        path_to_qml2/*.qml \
        ...
    }
    

    之后,在控制台中运行

    lupdate NAMEOFPROFILE.pro
    

    现在你将生成包括qml的.ts .ts .

    完成翻译工作后,请记住

    lrelease NAMEOFPROFILE.pro
    

    祝好运!

相关问题