Как использовать gettext для перевода файлов QML

Я хотел бы написать приложение QtQuick на основе Python ( PySide ) и QML .

Я знаю, что в приложениях Qt есть свои собственные технологии перевода, но я бы хотел использовать для этого gettext . Я хотел бы знать, можно ли:

  • пометить строки для перевода в файлах QML таким образом, чтобы инструменты gettext могли извлечь их в файл .pot
  • иметь перевод gettext QML-файлы во время выполнения.

Я знаю, что это делается в коде Unity 2D на C ++, поэтому мне интересно, как это можно сделать с помощью Python.

Примечание: я говорю об использовании исключительно gettext во время выполнения, а не о преобразовании между форматами gettext и Qt Linguist.

10
задан 13 December 2012 в 23:04

2 ответа

Вообще говоря, в QT нет способа использовать перевод gettext, поскольку библиотека использует внутренний механизм перевода (файлы Qtranslate и .ts), как указано здесь QTBUG-2404 .

Однако, есть жизнеспособная альтернатива.

В комплект поставки QT входит инструментарий lconvert , который можно использовать для преобразования файлов .ts в .po и наоборот.

Таким образом, вы можете извлечь весь ваш перевод с помощью:

lupdate

Затем используйте lconvert для получения файла po:

[ 111]

После перевода вы можете преобразовать обратно po-файл в ts:

lconvert -of ts -o file.ts file.po

Затем вы можете использовать его в своем программном обеспечении.

lupdate может использоваться как для QT, так и для QtQuick.

0
ответ дан 13 December 2012 в 23:04

Вы можете взломать источник lupdate, используя то, что вам нравится, вместо qsTr. (легко), а затем используйте взломанный lupdate + lconvert +, который вы используете libintl для достижения цели использования gettext.

0
ответ дан 13 December 2012 в 23:04

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

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