Como usar o gettext para tornar os arquivos QML traduzíveis

10

Eu gostaria de escrever um aplicativo QtQuick baseado em Python (PySide ) e QML .

Eu sei que os aplicativos do Qt têm sua própria tecnologia de tradução, mas eu gostaria de ficar com gettext para isso 1. Gostaria de saber se é possível:

  • Marque strings para tradução em arquivos QML de maneira que as ferramentas gettext possam extraí-las em um arquivo .pot
  • Tenha o gettext traduzindo arquivos QML em tempo de execução.

Eu sei que isso é feito no Unidade de código 2D , em C ++, então estou pensando como isso pode ser feito com o Python.

Nota: estou falando de usar exclusivamente gettext em tempo de execução, não de converter entre os formatos gettext e Qt Linguist.

    
por David Planella 25.05.2012 / 11:40

2 respostas

5

De modo geral, não há como usar a tradução do gettext no QT, porque a biblioteca usa um mecanismo de tradução interno (arquivos Qtranslate e .ts) como declarado aqui QTBUG-2404 .

No entanto, existe uma alternativa viável.

Envio com QT existe um kit de ferramentas chamado lconvert que pode ser usado para converter arquivos .ts para .po e vice-versa.

Você pode extrair toda a sua tradução com:

lupdate

Em seguida, use lconvert para obter um arquivo po:

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

Após a tradução, você pode converter o arquivo po para ts:

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

Então você pode usá-lo em seu software.

lupdate pode ser usado tanto para o QT como para o QtQuick.

    
por Angelo 28.05.2012 / 08:36
0

Você pode hackear a fonte do lupdate usando algo que você queira substituir pelo qsTr. (é fácil) e, em seguida, use você hackeado lupdate + lconvert + you custome libintl para alcançar o objetivo de gettext de uso.

    
por snyh 25.11.2013 / 02:17