web-dev-qa-db-fra.com

Comment utiliser i18n.tr dans les projets Ubuntu Touch

J'utilise i18n.tr depuis un certain temps dans mes buntu-Touch projets. Je sais de quoi parle cette fonction mais je ne sais pas comment ajouter une traduction à mon projet.

Où dois-je placer mon fichier de traduction? Avec quel nom? Comment son contenu doit-il être écrit? Comment dois-je le connecter à mon application? Comment puis-je le tester avec qmlscene?

5
George Sofianos

Jetez un oeil à TouchWriter code et surtout son README, où toutes les commandes nécessaires sont données.

Résumé rapide

  • Vous devez lier le domaine de texte avant d'utiliser gettext. En C++, vous pouvez le faire comme ceci:

    bindtextdomain("domainname", "somedir");
    textdomain("domainname");
    

    En Qml, vous pouvez probablement faire quelque chose comme ceci:

    i18n.bindtextdomain("domainname", "somedir");
    i18n.domain = "domainname";
    

    Assurez-vous de le faire avant 18n.tr est utilisé.

  • Générer .pot modèle et source .po fichiers, utilisez ces commandes:

    xgettext -C --qt --keyword=tr -p somedir -o messages.pot
    msginit -i somedir/messages.pot -o somedir/somelanguage.po
    

    (remplacez somedir par le répertoire auquel votre domaine est lié et somelanguage par la langue dans laquelle vous souhaitez traduire).

  • Générer .mo fichiers de la source .po fichiers, utilisez msgfmt po-file -o mo-file commande.

  • Compilé .mo les fichiers doivent être placés dans un répertoire auquel vous avez lié le domaine de texte, plus précisément dans

    somedir/somelanguage/LC_MESSAGES/domainname.mo
    

    (remplacez somedir, somelanguage et domainname par vos valeurs).

2
Dmitry Shachnev