qt - 在脚本中有一个带有 qsTr 结果的变量,或者在 QML 中多次调用 qsTr
问题描述
这似乎是一个愚蠢的问题,但我有一个函数,我有一个 for 循环并且我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")
]
} )
}
}
当然根据文档是一个获取对应翻译的函数,所以如果我有一个太大的for循环,我想在这种情况下为每个翻译qsTr
都有变量会更好,如下所示:qsTr
var ioGroupLabel = qsTr("I/O Group")
你们有什么感想?
解决方案
根据官方文档:
标记字符串的最常用方法是使用 qsTr() 函数。例如:
Text {
id: txt1;
text: qsTr("Back");
}
此代码使“返回”成为翻译文件中的关键条目。在运行时,翻译系统查找关键字“Back”,然后获取当前系统语言环境的相应翻译值。结果返回到 text 属性,用户界面将显示当前语言环境的“Back”的适当翻译。
在您的情况下,将创建 5 个关键条目:“I/O 组”、“条目”、“面板”、“循环”、“设备”。无论您在源代码中执行了多少 for 循环。
一般而言,如果您知道可以减少特定函数(例如qsTr
)的调用量而无需太多开销,那就去做吧。
UPD:关于性能测量,你可以参考这个项目。
推荐阅读
- javascript - Discord.js ReferenceError:尝试测试嵌入时未定义通道
- android - Volly 在 Android 中给了我 com.android.volley.AuthFailureError
- r - 将函数参数另存为字符
- python - discordpy中的会员语音状态返回值问题
- date - 是否有任何函数或依赖项可以将日期中的月份转换为 dataweave1(mule3)中所需的语言?
- html - HTML 输入 Type="file" 按钮过大,不能改变按钮的宽度
- html - 如何在 Shopify html 框中自定义选取框 HTML 填充和边距
- javascript -
执行 RemoveFormat 时删除标签 - android - 没有为类“BasicMessageChannel”定义“setMockMessageHandler”
' - gtsummary - gtsummary:单变量和多变量