Наличие в скрипте переменной с результатом qsTr или многократный вызов qsTr в QML - PullRequest
0 голосов
/ 09 мая 2019

Это может показаться глупым вопросом, но у меня есть функция, в которой у меня есть цикл 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")
                                ]
                     } )
    }
}

Конечно, согласно документации qsTr - это функция, которая получает соответствующий перевод, поэтому, если у меня слишком большой цикл for, я полагаю, что в этом случае намного лучше иметь переменные для каждого * 1006. * перевод, как это:

var ioGroupLabel = qsTr("I/O Group")

что вы, ребята, думаете?

1 Ответ

1 голос
/ 15 мая 2019

Согласно официальной документации :

Наиболее распространенный способ маркировки строк - функция qsTr ().Например:

Text {
    id: txt1;
    text: qsTr("Back");
}

Этот код делает «Назад» ключевой записью в файлах перевода.Во время выполнения система перевода ищет ключевое слово «Back» и затем получает соответствующее значение перевода для текущей локали системы.Результат возвращается в текстовое свойство, и пользовательский интерфейс покажет соответствующий перевод «Назад» для текущей локали.


В вашем случае будет создано 5 ключевых записей: «I /O Group "," Entry "," Panel "," Loop "," Device ".Независимо от того, сколько циклов вы выполняете в исходном коде.


В общем, если вы знаете, что вы можете уменьшить количество вызовов конкретной функции (например, qsTr) без особых накладных расходов -- просто сделайте это.


UPD: Что касается измерения производительности, вы можете обратиться к этому проекту .

Это изображение покажет вамнасколько эффективно предыдущее объявление вместо вызова qsTr (работает с testCount=9999999).enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...