Anciennes méthode de localisation

From FreeCAD Documentation
Revision as of 14:55, 25 August 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:

Ceci est un regroupement d'anciennes méthodes de localisation utilisées par FreeCAD par le passé. Elles montrent une partie des processus internes, mais les techniques de la page Localisation doivent être utilisées à partir de maintenant.

Translation avec Qt-Linguist (ancienne voie)

Les informations suivantes ne doivent plus être utilisées et deviendront probablement obsolètes. Ces informations sont conservées ici afin que les programmeurs puissent se familiariser avec leur fonctionnement. -

  • Ouvrez tous les dossiers de langue de FreeCAD indiqués ci-dessous
  • Vérifiez qu’il n’existe pas de fichier .ts avec votre code de langue ("fr" pour le français, "de" pour l’allemand, etc ...)
  • S'il existe, vous pouvez télécharger ce fichier si vous souhaitez modifier/réviser/améliorer la traduction (cliquez sur le fichier, puis téléchargez-le)
  • S'il n'existe pas, téléchargez le fichier .ts sans code de langue (ou tout autre fichier .ts disponible, cela fonctionnera aussi)
  • Renommez ce fichier avec votre code de langue
  • Ouvrez-le avec le programme Qt-Linguist
  • Commencez à traduire (Qt Linguist est très facile à utiliser)
  • Une fois que c'est complètement fait, sauvegardez votre fichier
  • envoyez-nous les fichiers afin que nous puissions les inclure dans le code source de freecad afin que les autres utilisateurs en bénéficient également.

Fichiers de traduction disponibles



Préparer vos propres modules/applications pour la traduction

Prérequis

Pour localiser votre module d’application, vous avez besoin de l’aide de Qt. Vous pouvez le télécharger à partir du Trolltech-Website, mais elle figure également dans LibPack :

qmake
génère des fichiers de projet.
lupdate
extrait ou met à jour les textes originaux de votre projet en scannant le code source.
Qt-Linguist
Le Qt-Linguist est très facile à utiliser et vous aide à traduire avec de jolies fonctionnalités telles qu'un livre de phrases pour les phrases courantes.

Projet Setup

Pour démarrer la localisation de votre projet, allez à la partie graphique de votre module et tapez sur la ligne de commande:

qmake -project

Ceci analyse votre répertoire de projet pour les fichiers contenant des chaînes de texte et crée un fichier de projet comme dans l'exemple suivant:

######################################################################
 # Automatically generated by qmake (1.06c) Do 2. Nov 14:44:21 2006
 ######################################################################
 
 TEMPLATE = app
 DEPENDPATH += .\Icons
 INCLUDEPATH += .
 
 # Input
 HEADERS += ViewProvider.h Workbench.h
 SOURCES += AppMyModGui.cpp \
            Command.cpp \
            ViewProvider.cpp \
            Workbench.cpp
 TRANSLATIONS += MyMod_de.ts

Vous pouvez ajouter manuellement des fichiers ici. La section TRANSLATIONS contient une liste de fichiers avec la traduction pour chaque langue. Dans l'exemple ci-dessus, MyMod_de.ts est la traduction allemande.

Vous devez maintenant exécuter lupdate pour extraire tous les littéraux de chaîne de votre interface graphique. L'exécution de lupdate après des modifications du code source est toujours sûre, car elle ne supprime jamais les chaînes de vos fichiers de traduction. Il ajoute seulement de nouvelles chaînes.

Vous devez maintenant ajouter les fichiers .ts à votre projet Visual Studio. Spécifiez la méthode de construction personnalisée suivante pour eux:

python ..\..\..\Tools\qembed.py "$(InputDir)\$(InputName).ts"
                 "$(InputDir)\$(InputName).h" "$(InputName)"

Remarque: Entrez ceci sur une ligne de commande, le saut de ligne n’est utilisé que pour la présentation.

En compilant le fichier .ts de l'exemple ci-dessus, un fichier d'en-tête MyMod_de.h est créé. Le meilleur endroit pour inclure ceci est dans App <Modul> Gui.cpp. Dans notre exemple, il s'agirait de AppMyModGui.cpp. Là vous ajoutez la ligne

new Gui::LanguageProducer("Deutsch", <Modul>_de_h_data, <Modul>_de_h_len);

publier votre traduction dans l'application.

Configuration des fichiers Python pour la traduction

Pour faciliter la localisation des fichiers py, vous pouvez utiliser l'outil "pylupdate4" qui accepte un ou plusieurs fichiers py. Avec l'option -ts, vous pouvez préparer/mettre à jour un ou plusieurs fichiers .ts. Par exemple, pour préparer un fichier .ts en français, entrez simplement dans la ligne de commande:

pylupdate4 *.py -ts YourModule_fr.ts

l'outil pylupdate analysera vos fichiers .py à la recherche des fonctions translate() ou tr() et créera un fichier YourModule_fr.ts. Ce fichier peut être traduit avec QLinguist et un fichier YourModule_fr.qm produit à partir de QLinguist ou avec la commande

lrelease YourModule_fr.ts

Attention, l'outil pylupdate4 n'est pas très performant pour la reconnaissance des fonctions translate(), elles doivent être formatées de manière très spécifique (voir les fichiers du module Draft pour des exemples). Dans votre fichier, vous pouvez ensuite configurer un traducteur comme ceci (après avoir chargé votre QApplication mais AVANT de créer un widget qt):

translator = QtCore.QTranslator()
translator.load("YourModule_"+languages[ln])
QtGui.QApplication.installTranslator(translator)


Vous pouvez également créer le fichier XML Draft.qrc avec le contenu suivant:

<RCC>
<qresource prefix="/translations" > 
<file>Draft_fr.qm</file> 
</qresource> 
</RCC>

et exécutant pyrcc4 Draft.qrc -o qrc_Draft.py crée un grand fichier Python contenant toutes les ressources. BTW cette approche fonctionne également pour mettre des fichiers d'icônes dans un fichier de ressources