J'aimerais écrire une application QtQuick basée sur Python ( PySide ) et QML .
Je sais que les applications Qt ont leur propre technologie de traduction, mais je voudrais m'en tenir à gettext pour celui-ci. J'aimerais savoir s'il est possible de:
.pot
Je sais que cela se fait dans le code Unity 2D , en C++. Je me demande donc comment cela peut être fait avec Python.
Remarque: je parle d'utiliser exclusivement gettext au moment de l'exécution, pas de convertir entre les formats gettext et Qt Linguist.
De manière générale, il n’existe aucun moyen d’utiliser la traduction gettext dans QT car la bibliothèque utilise un mécanisme de traduction interne (fichiers Qtranslate et .ts), comme indiqué ici QTBUG-2404 .
Cependant, il existe une alternative viable.
QT contient une boîte à outils appelée lconvert qui peut être utilisée pour convertir des fichiers .ts en .po et vice versa.
Vous pouvez donc extraire toute votre traduction avec:
lupdate
Puis utilisez lconvert pour obtenir un fichier po:
lconvert -of po -o file.po file.ts
Après traduction, vous pouvez reconvertir le fichier po en ts:
lconvert -of ts -o file.ts file.po
Ensuite, vous pouvez l'utiliser dans votre logiciel.
lupdate peut être utilisé à la fois pour QT et QtQuick.
Vous pouvez pirater la source de lupdate en utilisant quelque chose que vous aimez remplacer par qsTr. (est facilement) et ensuite vous utilisez piraté lupdate + lconvert + vous custome libintl pour atteindre utiliser objectif gettext.