Suite

Impossible de faire fonctionner les traductions du plugin QGIS (i18n) !

Impossible de faire fonctionner les traductions du plugin QGIS (i18n) !


Il est difficile d'être précis, mais j'ai des problèmes pour configurer les fichiers de traduction pour le plug-in que je construis. Le plug-in fonctionne bien, mais je souhaite également activer la traduction de l'interface graphique.

J'ai beaucoup essayé sur Google, mais toutes les instructions que je trouve sont pauvres en détails. Il semble également que d'autres plug-ins du référentiel ne soient pas traduits non plus, cela peut donc être un problème plus important?

J'utilise Ubuntu et QGIS 2.10. Le plug-in est généré à partir du Plugin Builder et modifié dans un éditeur de texte. Les fichiers Ts sont construits à l'aide du "makefile" et édités dans le dossier "i18n". Les fichiers Ts/qm sont déployés correctement, mais ne traduiront pas l'interface graphique ! Le fichier python principal contient du texte à traduire au format "self.tr('texte à traduire')", qui appelle la fonction "QCoreApplication.translate" donc il me semble que tout devrait fonctionner…

J'ai également essayé les paramètres régionaux dans QGIS pour un certain nombre de langues courantes avec des résultats très mitigés. Je ne suis pas sûr d'être seul avec ce problème.

Quelqu'un connaît-il une BONNE instruction pour faire fonctionner la traduction des plug-ins ?


Cet aspect du développement de plugins est en effet mal documenté. J'ai rencontré le même problème et j'ai déjà posté quelques réponses à des questions connexes :

J'espère que ceci vous aidera.


En plus de ce qui a déjà été suggéré : faites attention que dans le fichier Python principal de votre plugin (généralement "pluginname.py") le nom et le chemin du fichier *.qm sont rapportés correctement et de manière cohérente avec ce que vous avez.

Ci-dessous le fragment de code que vous trouvez généralement dans le fichier python (surtout si vous avez commencé à créer le plugin avec PluginBuilder). J'espère que cela t'aides.

Code

initialize locale locale = QSettings().value('locale/userLocale')[0:2] locale_path = os.path.join( self.plugin_dir, 'i18n', 'pluginname_{}.qm'.format(locale)) si os.path.exists(locale_path) : self.translator = QTranslator() self.translator.load(locale_path) QCoreApplication.installTranslator(self.translator)

Voir la vidéo: Configuración repositorios sesión 2018 02 04 10 16 42