我想在工具栏上进行翻译。工具栏是一个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
}
该列表在文件中调用属性变量值。 主文件:
/..
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。 你能解释一下如何在我的应用程序中翻译这个列表吗?
答案 0 :(得分: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
现在你将生成.ts,包括qml的.ts。
完成翻译工作后,请记得
lrelease NAMEOFPROFILE.pro
祝你好运!