Localization Older Methods/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>
Ceci est un regroupement d'anciennes méthodees de localisation utilisées par FreeCAD dans le passé. Ils montrent une partie des processus internes, '''mais les techniques sur la page [[Localisation/fr|Localisation]] doivent être utilisées à partir de maintenant.'''


{{docnav
|[[Branding|Branding]]
|[[Extra python modules|Extra python module]]
}}

<div class="mw-translate-fuzzy">
Ceci est un regroupement d'anciennes méthodees de localisation utilisées par FreeCAD dans le passé. Ils montrent une partie des processus internes, '''mais les techniques sur la page [[Localisation/fr|Localisation]] doivent être utilisées à partir de maintenant.'''
</div>


=== Translatiion avec Qt-Linguist (ancienne voie) ===
=== Translatiion avec Qt-Linguist (ancienne voie) ===
Line 9: Line 16:
-
-


<div class="mw-translate-fuzzy">
* Ouvrez tous les dossiers de langue de FreeCAD indiqués ci-dessous
* 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 ...)
* 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 ...)
Line 19: Line 27:
* [http://www.freecadweb.org/tracker/main_page.php 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. <br />
* [http://www.freecadweb.org/tracker/main_page.php 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. <br />
'''Fichiers de traduction disponibles''' <br />
'''Fichiers de traduction disponibles''' <br />
</div>

''' Available translation files '''



* The following links all direct to the sourceforge which is no longer used by FreeCAD. The code is hosted at https://github.com/FreeCAD/FreeCAD.
* The following links all direct to the sourceforge which is no longer used by FreeCAD. The code is hosted at https://github.com/FreeCAD/FreeCAD.
Line 53: Line 65:


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

<pre>
{{Code|code=
qmake -project
qmake -project
}}
</pre>

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:
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:

<pre>
{{Code|code=
######################################################################
######################################################################
# Automatically generated by qmake (1.06c) Do 2. Nov 14:44:21 2006
# Automatically generated by qmake (1.06c) Do 2. Nov 14:44:21 2006
Line 73: Line 88:
Workbench.cpp
Workbench.cpp
TRANSLATIONS += MyMod_de.ts
TRANSLATIONS += MyMod_de.ts
}}
</pre>


Vous pouvez ajouter manuellement des fichiers ici. La section <tt> TRANSLATIONS </tt> contient une liste de fichiers avec la traduction pour chaque langue. Dans l'exemple ci-dessus, "MyMod_de.ts" est la traduction allemande.
Vous pouvez ajouter manuellement des fichiers ici. La section <tt> TRANSLATIONS </tt> contient une liste de fichiers avec la traduction pour chaque langue. Dans l'exemple ci-dessus, "MyMod_de.ts" est la traduction allemande.
Line 80: Line 95:


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

{{Code|code=
{{Code|code=
python ..\..\..\Tools\qembed.py "$(InputDir)\$(InputName).ts"
python ..\..\..\Tools\qembed.py "$(InputDir)\$(InputName).ts"
"$(InputDir)\$(InputName).h" "$(InputName)"
"$(InputDir)\$(InputName).h" "$(InputName)"
}}
}}

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


En compilant le fichier <tt>.ts</tt> 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
En compilant le fichier <tt>.ts</tt> 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

{{Code|code=
{{Code|code=
new Gui::LanguageProducer("Deutsch", <Modul>_de_h_data, <Modul>_de_h_len);
new Gui::LanguageProducer("Deutsch", <Modul>_de_h_data, <Modul>_de_h_len);
}}
}}

publier votre traduction dans l'application.
publier votre traduction dans l'application.


Line 95: Line 114:


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:
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:

<pre>
{{Code|code=
pylupdate4 *.py -ts YourModule_fr.ts
pylupdate4 *.py -ts YourModule_fr.ts
}}
</pre>

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
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

<pre>
{{Code|code=
lrelease YourModule_fr.ts
lrelease YourModule_fr.ts
}}
</pre>

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):
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):

<pre>
{{Code|code=
translator = QtCore.QTranslator()
translator = QtCore.QTranslator()
translator.load("YourModule_"+languages[ln])
translator.load("YourModule_"+languages[ln])
QtGui.QApplication.installTranslator(translator)
QtGui.QApplication.installTranslator(translator)
}}
</pre>

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

<pre>
{{Code|code=
<RCC>
<RCC>
<qresource prefix="/translations" >
<qresource prefix="/translations" >
Line 116: Line 142:
</qresource>
</qresource>
</RCC>
</RCC>
}}
</pre>

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
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


<div class="mw-translate-fuzzy">
{{docnav/fr|[[Branding/fr|Branding]]|[[Extra python modules/fr|Extra python modules]]}}
{{docnav/fr|[[Branding/fr|Branding]]|[[Extra python modules/fr|Extra python modules]]}}
</div>


<div class="mw-translate-fuzzy">
[[Category:Developer Documentation/fr]]
[[Category:Developer Documentation/fr]]
</div>

[[Category:Developer Documentation]]





Revision as of 12:46, 22 October 2019

Other languages:

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

Translatiion 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 son 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

Available translation files



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 elles figurent é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