2012-05-14 3 views
0

Lorsque les fichiers * .ui sont enregistrés, ils génèrent un fichier * .h qui définit et implémente une méthode de traduction "retranslateui()" qui utilise un appel QApplication :: translate où le contexte de la traduction est égal au nom de la classe d'interface utilisateur.QT: Outil de ligne de commande UIC et paramètre -tr

Je dois pouvoir remplacer cela et mettre mon propre nom de contexte personnalisé.

La raison pour laquelle vous devez savoir est que nous avons des tables de traduction héritées non-QT, avec 14 langues. J'ai construit un outil qui traduit ces chaînes dans un fichier * .TS. Le problème est qu'il n'y a PAS DE CONTEXTE, c'est juste une liste de chaînes, donc mon outil force un contexte pour l'ensemble de mon application. La génération automatique des appels de méthode de traduction où le contexte = le nom de la classe d'interface utilisateur échoue à ma traduction de l'interface utilisateur.

J'ai trouvé que l'utilitaire de ligne de commande UIC, en créant ce fichier * .h à partir du fichier * .ui a un paramètre pour définir une méthode de traduction différente. Je peux utiliser ceci pour acheminer vers ma propre méthode de traduction qui ajoutera sur le contexte unique. Mon problème est que je ne peux pas trouver comment changer l'appel UIC de qmake pour inclure ce paramètre avec une valeur personnalisée.

+0

Vous pouvez ajouter des paramètres à la ligne de commande UIC, mais il fonctionnera pour tous les fichiers ui. 'QMAKE_UIC + = -paramètres à ajouter' –

+0

Ajoutez ceci au fichier * .pro, correct? – JasonGenX

+0

Parce que les traductions ui seraient un gros désordre –

Répondre

1

Vous pouvez modifier la propriété QMAKE_UIC dans votre fichier .pro

QMAKE_UIC += -params to add 
Questions connexes