Как перевести свойство ListElement с Ubuntu SDK

У меня есть кулак Касание Ubuntu выполнение приложения QML, и я готов перевести его. Каждый раз, когда я использую строку UI в qml файлах, я старался использовать i18n.tr ("мой текст").

Таким образом, теперь я должен генерировать горшок, почтовые, и mo файлы. Я нашел этот вопрос и соответствующий ответ, даже если я не уверен, что это актуально (например, снимок экрана, сделанный zeokila, не соответствует тому, что я вижу в своей версии QtCreator...?).

Возможно, всестороннее практическое руководство существует?

Таким образом, мой вопрос - конкретно это:

как может строки в свойствах ListElement быть принятым во внимание xgettext при генерации файла горшка?

Я не могу использовать i18n.tr здесь, поскольку это приводит к "ListElement: не может использовать сценарий для значения свойства" ошибка.

С простым QT qsTr () и lupdate, можно использовать QT_TR_NOOP () для создания этих строк видимыми к lupdate.

Как сделать это с xgettext?

3
задан 13 April 2017 в 15:23

1 ответ

Единственное обходное решение для "ListElement: не может использовать сценарий для значения свойства" ошибка, которую я знаю, должен полагаться свойство dynamicRoles :

import QtQuick 2.0
import Ubuntu.Components 0.1


Rectangle {
    width: 200 // this is a property
    height: 200

    Item{
        ListModel {
            id: myListModel;
            dynamicRoles: true
        }
        Component.onCompleted: {
            myListModel.append({ "name": i18n.tr("Hello") } )
            foo.text = myListModel.get(0).name;
        }
    }

    Item {
        Text {
            id: foo
            }
    }

     Button {
         anchors.centerIn: parent
         text: i18n.tr("Press me")
     }

}

Создание ListElement тот путь позволяет, Вы для вызова i18n.tr() и xgettext правильно добавляете его к файлу горшка:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-03 18:19+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: foo.qml:15
msgid "Hello"
msgstr ""

#: foo.qml:28
msgid "Press me"
msgstr ""
4
ответ дан 1 December 2019 в 16:02

Другие вопросы по тегам:

Похожие вопросы: