2009-01-08 18 views
3

J'écris une application qui est actuellement une application QT4 pure. Il est conçu pour fonctionner correctement sur Linux et Windows.Utilisation des mécanismes de localisation de KDE4 dans une application QT4 pure

Cependant, je prévois de l'intégrer un peu dans KDE à l'avenir et voici les problèmes de localisation/traduction.

QT4 utilise son propre mécanisme tr()/tr(). Arg(). Arg() et les fichiers .ts/.qm. KDE4 utilise les mécanismes gettext et i18n/i18np et les fichiers .po. Comment, facilement, puis-je utiliser le mécanisme de KDE4 dans mon application QT4 sans avoir à l'intégrer étroitement avec KDE maintenant (le rendant apparemment non-exécutable sous Windows)?

Est-ce possible?

Merci!

+0

Bien qu'il soit loin d'être parfait, KDE4 a un certain support de Windows. Vous pouvez consulter le projet KDE sur Windows (http://windows.kde.org/) pour plus d'informations. Si vous pouviez passer à KDE complet, cela ferait au moins disparaître ce problème/ –

+0

C'est très loin d'être parfait;) Cependant Henrik Hartz ci-dessous apporte d'excellentes nouvelles! –

Répondre

0

Je pense que vous devrez en choisir un et aller avec, si c'est une application multi-plateforme, je serais avec la méthode de QT. La raison en est que KDE enveloppe sa chaîne internationalisée avec des macros i18 *() et QT utilise des macros tr(), puisqu'une macro ne peut pas produire une autre macro, il n'y a aucun moyen sauf si vous avez # ifdef sur tout votre code, ou table à cordes massive ... qui sucent tous les deux.

+0

D'où ma question: est-il possible et facile d'utiliser les méthodes KDE4 (fichiers gettext, po) pour éviter le besoin futur de convertir toutes les choses de traduction. –

+0

Eh bien ma réponse est "il n'y a pas de bonne solution pour les deux en ce moment." D'après la réponse d'Henrik Hartz, il semblerait que QT 4.5 va l'améliorer. –