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

10

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

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

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

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

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

    
задан David Planella 25.05.2012 в 09:40
источник

2 ответа

5

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

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

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

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

lupdate

Затем используйте lconvert , чтобы получить файл po:

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

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

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

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

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

    
ответ дан Angelo 28.05.2012 в 06:36
0

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

    
ответ дан snyh 25.11.2013 в 01:17