在脚本中有一个变量,其结果为 qsTr 或在 QML 中多次调用 qsTr
Having a variable in a script with the result of qsTr or call a lot of times qsTr in QML
这似乎是一个愚蠢的问题,但我有一个函数,其中有一个 for-cycle 并且我多次调用 qsTr
函数,就像这个:
function example() {
var groups = []
for (var g=0; g<io_data.length; g++) {
groups.push( { "label": qsTr("I/O Group"),
"value": String(g+1),
"headers": [
qsTr("Entry"),
qsTr("Panel"),
qsTr("Loop"),
qsTr("Device")
]
} )
}
}
当然根据文档 qsTr
是一个获得相应翻译的函数,所以如果我有一个太大的 for-cycle 我想在这种情况下有变量会好得多对于每个 qsTr
翻译,像这样:
var ioGroupLabel = qsTr("I/O Group")
大家怎么看?
标记字符串的最常用方法是使用 qsTr() 函数。例如:
Text {
id: txt1;
text: qsTr("Back");
}
此代码使 "Back" 成为翻译文件中的关键条目。在运行时,翻译系统查找关键字"Back",然后获取当前系统语言环境对应的翻译值。结果返回到文本 属性,用户界面将显示当前语言环境的 "Back" 的适当翻译。
在您的例子中,将创建 5 个关键条目:"I/O Group"、"Entry"、"Panel"、"Loop"、"Device"。无论您在源代码中做了多少 for-cycles。
一般来说,如果您知道可以减少特定函数(例如 qsTr
)的调用量而无需太多开销,那就去做吧。
UPD:关于性能衡量,可以参考this project.
这张图片将向您展示先前声明而不是调用 qsTr
(运行 和 testCount=9999999
)的效率如何。
这似乎是一个愚蠢的问题,但我有一个函数,其中有一个 for-cycle 并且我多次调用 qsTr
函数,就像这个:
function example() {
var groups = []
for (var g=0; g<io_data.length; g++) {
groups.push( { "label": qsTr("I/O Group"),
"value": String(g+1),
"headers": [
qsTr("Entry"),
qsTr("Panel"),
qsTr("Loop"),
qsTr("Device")
]
} )
}
}
当然根据文档 qsTr
是一个获得相应翻译的函数,所以如果我有一个太大的 for-cycle 我想在这种情况下有变量会好得多对于每个 qsTr
翻译,像这样:
var ioGroupLabel = qsTr("I/O Group")
大家怎么看?
标记字符串的最常用方法是使用 qsTr() 函数。例如:
Text {
id: txt1;
text: qsTr("Back");
}
此代码使 "Back" 成为翻译文件中的关键条目。在运行时,翻译系统查找关键字"Back",然后获取当前系统语言环境对应的翻译值。结果返回到文本 属性,用户界面将显示当前语言环境的 "Back" 的适当翻译。
在您的例子中,将创建 5 个关键条目:"I/O Group"、"Entry"、"Panel"、"Loop"、"Device"。无论您在源代码中做了多少 for-cycles。
一般来说,如果您知道可以减少特定函数(例如 qsTr
)的调用量而无需太多开销,那就去做吧。
UPD:关于性能衡量,可以参考this project.
这张图片将向您展示先前声明而不是调用 qsTr
(运行 和 testCount=9999999
)的效率如何。