Introduction
La traduction de l'application est effectuée via des fichiers de propriétés ( clé = traduction) qui sont placés dans des fichiers suffixés par la langue, hormis la traduction par défaut. Par exemple, une traduction en anglais se fera dans un fichier monApplication_en.properties.
Le processus de traduction demande, en général, de reconstruire (donc recompiler) l'application. Il serait éventuellement possible de remplacer un fichier de propriétés dans un jar ( format zip) de l'application mais cette pratique est peu courante.
Fudaa-Crue s'appuie sur 2 Frameworks:
- Fudaa qui a son propre fonctionnement de traduction
- Netbeans-RCP qui se base sur les standards Java et du développement en général.
Fudaa-Crue s'appuie sur l'approche standard de traduction ( et donc de Netbeans RCP).
Etat actuel des traductions
- Le framework Fudaa est entièrement traduit en anglais. Une partie des composants est traduit en espagnol.
- Fudaa-Crue n'est pas traduit actuellement.
Comment différencier les composants de Fudaa de ceux de Fudaa-Crue ?
Les composants issus de Fudaa sont ceux qui ceux utilisés pour afficher et configurer les vues 1D ( courbe) et 2D ( vue planimétrique). Tous les autres messages sont issus de Fudaa-Crue / Netbeans RCP.
Traduction dans Fudaa
Les fichiers de traduction appartiennent aux modules *-common. Par exemple, pour la traduction en anglais des messages, c'est le fichier ebli_en.fr_txt du module ebli_common qui est utilisé.
Dans le cas standard, le code java contient un code ( par exemple save.action.label) et le fichier de propriété contient la traduction ( save.action.label=Enregistrer). Dans Fudaa, le code java contient la traduction, et le fichier de propriétés contient la traduction ( Enregistrer=Save).
Cela avait l'avantage d'avoir un code plus parlant et de facilité les traductions. Or ce n'es pas le cas standard et on ne peut pas profiter des outils mis en place pour les traductions.
Traduction de Fudaa-Crue
Dans Fudaa-Crue, la traduction suite les standards:
- des identifiants sont utilisés dans le code et les fichiers de propriétés donnent la traduction pour chaque code.
- il y a un fichier de propriétés par package
Comment récupérer les fichiers de properties
Il suffit de se placer dans le dossier racine du projet fudaa-crue (soit http://sourceforge.net/p/fudaa/svn/8432/tree/trunk/soft/fudaa-crue/) et de lancer la commande
mvn nl.cloudfarming.mojo:omegat-maven-plugin:copy-sources
Cette commande va créer le dossier translations dans le dossier <Fudaa-Crue>.
Ce dossier contient également les fichiers de configuration pour l'outil Omegat http://www.omegat.org/
La documentation est également disponible sur le plugin maven correspondant soit https://java.net/projects/omegat-maven-plugin/pages/Home
Ensuite, pour chaque fichier Bundle.properties, il suffit de créer un fichier équivalent par exemple Bundle_en.properties pour ajouter une traduction anglaise.
Utilisation de OmegaT
Par défaut, la commande créée un fichier de configuration pour l'outil OmegaT.
Pour lancer l'outil, il suffit de cliquer sur le lien http://omegat.sourceforge.net/webstart/OmegaT.jnlp ou aller sur la page de téléchargement http://www.omegat.org/fr/download_selector/selector.php
La documentation: http://www.omegat.org/fr/documentation.php
Ensuite, il suffit d'ouvrir le fichier <Fudaa-Crue>/translations/omegat/en/omegat pour l'anglais (en). L'outil permet d'optimiser les traductions: il peut proposer des traductions automatiques et évite de traduire n fois la même phrase.
A la fin de la traduction, il faut utiliser l'action "Créer les fichiers traduits" (menu Projet) pour générer les fichiers dans la langue cible. Si l'outil OmegaT ne vous convient pas, il suffit simplement d'ouvrir le projet de créer les fichiers traduit et d'éditer avec votre éditeur de texte ( encodage ISO-8859-1) les fichiers présents dans le dossier <Fudaa-Crue>/translations/omegat/en/omegat/target
Comment intégrer les traductions aux sources ?
Il suffit le lancer la commande maven
mvn nl.cloudfarming.mojo:omegat-maven-plugin:copy-translations
Traduction de Netbeans-RCP
Les composants de Netbeans-RCP peuvent également être traduit. Cela peut se passer via les propriétés standard ou via l'environnement de dev Netbeans RCP et le module Crue UI Branding:
Ensuite, il suffit de rechercher le texte à traduire: