Intro à la location via la programmation

Transcription

Intro à la location via la programmation
Localisation
Cours 3
The Translation Project
Deux outils pour localiser :
gettext et poEdit
[email protected]
Plan
●
Translation Project
poEdit
–
gettext
–
Configuration
–
fichiers .po, .mo.,
.pot
–
Création de catalogues
–
Edition
poEdit
–
Mémoire de traduction
–
Enregistrement /
Compilation en .mo
–
Autres configurations
–
●
●
Exemple de logiciel
localisé via des .po
–
SuperTuxKart
Le GNU Translation Project
The GNU Translation Project - 1
●
●
●
●
●
Le TP a été créé dans le but de mettre à
disposition des outils d'internationalisation et
localisation de logiciels libres
Il a été créé par François Pinard en 1996
Il a longtemps été hébergé par le laboratoire
DIRO de l'Université de Montréal.
Depuis 2007, c'est Vrijschrift qui l'héberge.
http://translationproject.org/html/welcome.ht
ml
The Translation Project - 2
●
●
Le TP propose à la fois des outils tels que :
–
gettext : extracteur de texte à localiser + règles d'I18N
–
poEdit : éditeur de texte à localiser
–
Virtaal : autre éditeur de texte à localiser
Et héberge des projets de traduction de logiciels / projets
libres (des « packages »):
–
Doodle
–
Iso 3166
–
Iso 639
–
Klavaro (apprentissage de la typographie)
–
Solfege
–
….
gettext et poEdit
●
●
gettext est un utilitaire qui permet d'extraire
les textes à traduire hors de logiciels, sous
la forme de ressources appelées
« catalogues »
poEdit est un logiciel de traduction de ces
catalogues
gettext
●
Gettext propose une série d'outils :
–
A set of conventions about how programs should be written to
support message catalogs : .po files
–
A directory and file naming organization for the message catalogs
themselves.
–
A runtime library supporting the retrieval of translated messages.
●
C'est pour C un équivalent du RessourceBundle + Locale de Java
–
A few stand-alone programs to massage in various ways the sets of
translatable strings, or already translated strings.
–
A library supporting the parsing and creation of files containing
translated messages.
–
A special mode for Emacs1 which helps preparing these sets and
bringing them up to date.
–
gettext s'utilise en ligne de commande, dans Unix.
Fichiers .po / .pot / .mo
●
●
po : portable objects
–
Les fichiers .po sont créés par le programme xgettext depuis de programmes
sources à l'origine écrits en C
–
poEdit permet de traduire aussi les ressources émanant de programmes écrits en
d'autres langages de programmation : Java, python, Perl, ...
–
Les fichiers .po sont lisibles et éditables par des humains
–
Un fichier .po associe à chaque texte source une traduction
–
Il y a un .po par langue
–
Lors de l'extraction, xgettext créée un catalogue dont les parties sources sont
renseignées et les parties cibles vides, attendant une traduction
–
Le programme msgmerge injecte et gère les traductions une fois réalisées
pot : portable object template
–
●
Une collection de traductions de base au format .po (un modèle)
mo : movable objects
–
Ils sont la version « machine » des .po files
Format des fichiers .po - 1
●
Les fichiers .po sont des listes de segments
(entries) à traduire. Chaque entrée est (dans
les cas les plus compliqués) de cette forme :
white-space
# translator-comments
#. extracted-comments
#: reference...
#, flag...
#| msgid previous-untranslated-string
msgid untranslated-string
msgstr translated-string
●
Dans la plupart des cas, elle ressemble à :
#: lib/error.c:116
msgid "Unknown system error"
msgstr "Error desconegut del sistema"
Format des fichiers .po - 2
●
Un contexte de traduction peut être donné
de la façon suivante :
#: lib/error.c:116
msgctxt refering to interface C34
msgid "Unknown system error"
msgstr "Error desconegut del sistema"
●
Il peut y avoir plusieurs segments dans une
entrée, par exemple pour les pluriels :
#: src/msgcmp.c:338 src/po-lex.c:699
#, c-format
msgid "found %d fatal error"
msgid_plural "found %d fatal errors"
msgstr[0] "s'ha trobat %d error fatal"
msgstr[1] "s'han trobat %d errors fatals"
Format des fichiers .po - 3
●
Un segment long sera découpé :
msgid ""
"Here is an example of how one might continue a very long string\n"
"for the common case the string represents multi-line output.\n"
●
Les premières lignes commençant par des
dièses sont des commentaires
#: src/msgcmp.c:338 src/po-lex.c:699
#, c-format
msgid "found %d fatal error"
msgid_plural "found %d fatal errors"
msgstr[0] "s'ha trobat %d error fatal"
msgstr[1] "s'han trobat %d errors fatals"
poEdit
●
●
PoEdit est un logiciel qui permet la localisation de
fichiers .po
Il est disponible à la fois sur Linux, Mac et
Windows
●
Il est simple d'utilisation
●
Il permet de compiler les .po en .mo
●
Il permet d'utiliser des modèles de catalogues .pot
●
Il utilise Unicode pour afficher les fichiers .po
●
Son interface est elle-même disponible en
plusieurs langues
Exemple de localisation avec poEdit :
le jeu SuperTuxKart!
Installez, jouez !
●
SuperTuxKart est un jeu libre et gratuit.
●
Son internationalisation est faite par gettext
●
Sa localisation est réalisée via des fichiers .po
●
Téléchargez-le ici :
–
●
Installez-le sur D:\Applications
–
●
http://supertuxkart.sourceforge.net/Downloads#header_win
Acceptez d'installer le moteur C++ et la bibliothèque
supplémentaire
Jouez avec pour vous y familiariser !
–
Repérez en jouant les chaînes de caractères de l'interface
qui sont à traduire
Choix de la langue d'interface
●
Ouvrir une fenêtre DOS et se placer dans SuperTuxKart:
–
Démarrer / Tous les programmes / Accessoires / Invite de commandes
–
Se placer dans le répertoire d'installation de SuperTuxKart
●
●
●
●
●
D : pour changer de disque
« cd .. » pour remonter d'un répertoire (change directory)
dir pour lister les dossiers et fichiers
« cd Users » pour passer dans le dossier « Users »
« cd Pro » + Tab : complétion automatique
–
–
●
« cd "Program Files" » ou « cd Applications »
Corriger pour demander « cd "Program Files (x86)" »
cd « Super » + Tab
–
Pour se retrouver dans le répertoire de SuperTuxKart>
●
Changer la langue : « Set LANGUAGE=en »
●
Démarrer : « .\SuperTuxKart »
Le fichier fr.po de SuperTuxKart
#. I18N: shown when hit by cake. %1 is the attacker, %0 is the victim.
#: src/items/cake.cpp:149
msgid "%0 eats too much of %1's cake" À éditer dans 1 premier
temps avec jEdit.
msgstr ""
L'installer sur D : si non
disponible !
#. I18N: shown when a player receives a plunger
in his face
#: src/items/plunger.cpp:134
msgid "%0 gets a fancy mask from %1"
msgstr ""
#. I18N: shown when hit by bowling ball. %1 is the attacker, %0 is
#. the victim.
#: src/items/bowling.cpp:115
msgid "%0 is bowled over by %1"
msgstr ""
#. I18N: shown when hit by cake. %1 is the attacker, %0 is the victim.
#: src/items/cake.cpp:151
msgid "%0 is dubious of %1's cooking skills"
msgstr ""
Exemple de segment à traduire
#. I18N: ./data/gui/options_players.stkgui
#. I18N: In players configuration menu
#: data/po/gui_strings.h:507
msgid "Add Player"
msgstr ""
Traduction dans poEdit
Configuration
Configuration de poEdit - 1
●
Lancer poEdit
●
Fichier/Préférences
Personnalisation de poEdit
●
Dans l'onglet
Personnalisation
–
Vous pouvez
indiquer vos
coordonnées
(droits d'auteur)
–
Elles seront
enregistrées dans
le .po
–
Vous pouvez
choisir la langue
de l'interface de
poEdit
Configuration de poEdit - 2
●
●
Dans le volet Éditeur
Choisir les options
suivantes
–
Compilation
automatique de
fichiers textes .po en
fichiers binaires .mo
–
Résumé après mise
à jour du catalogue
–
Conversion CR/LF
●
●
Unix
Ne pas charger le
format des
catalogues existants
Traduction dans poEdit
Création de catalogues
Configuration de poEdit - 3
●
Mémoire de
traduction
–
●
voir leur
manipulation de
plus bas
Analyseurs
–
Permet de
spécifier un
autre langage de
programmation à
utiliser par
poEdit
Configuration de poEdit - 4
●
Dans le menu Affichage
●
Choisir « Fenêtre de commentaires »
Créer un nouveau catalogue – 1
à patir d'un modèle .pot
●
Dans le menu Fichier
●
Choisir « Nouveau catalogue depuis un fichier POT »
Choisir supertuxkart.pot qui se trouve
dans le dossier \SuperTuxKart\data\po
Créer un nouveau catalogue - 2
●
Renseigner les champs
●
Attention : la langue suit l'ISO 639
Créer un nouveau catalogue - 3
●
Enregistrer sous fr_iplv
Lancement traduction
●
La fenêtre d'édition se lance
Traduction dans poEdit
Édition
Edition – 0 - Principe
●
Le traducteur travaille dans la fenêtre du bas
●
La fenêtre du haut donne le contexte
●
Les notes de traduction aident à la traduction
●
Le traducteur peut ajouter ses commentaires (CTR L+M)
●
Validation du segment courant et le passage au suivant : CTRL+Entrée
Edition - 1
●
Le menu Démarrer donne quelques raccourcis :
●
La validation de segment se fait par CTRL+Entrée
●
CTRL+Flèche Haut : message précédent
●
CTRL+Flèche Bas: message suivant
●
CTRL+Shift+Flèche Haut : message précédent incomplet
●
CTRL+Shift+Flèche Bas: message suivant incomplet
Edition - 2
●
●
●
●
Le menu Editer donne d'autres raccourcis :
« Traduction approximative » est un statut du segment indiquant que
la traduction doit être améliorée
Commentaire permet d'insérer un commentaire
« Voir les références » va chercher des informations dans le fichier de
programme source dont est issu ce segment à traduire. Ne fonctionne
que si les sources sont présents.
Edition – 3 – Gestion des variables
●
●
Dans les segments apparaissent des variables
indiquées par des %
Principes :
–
Reproduire dans la traduction toutes les variables
–
Ne pas changer les chiffres ou lettres suivant %
–
Les placer correctement suivant la syntaxe de la
langue cible
Traduction dans poEdit
Mémoire de traduction
Mémoire traduction - création
Mémoires de traduction - 1
●
Dans poEdit, la mémoire de traduction est
gérée dans le menu :
–
Fichier/Préférences,
●
●
onglet Mémoire de traduction
Principe :
–
Compiler une mémoire de traduction en
collectant l'ensemble des traductions
disponibles dans les fichiers .po d'une série de
dossiers
Mémoires de traduction - 1bis
Mémoires de traduction - 2
●
Pour créer une
mémoire de
traduction :
–
Cliquer sur le
bouton
« Ajouter » pour
ajouter une
langue
–
la choisir dans la
liste
–
Accepter
Mémoires de traduction - 3
●
Ensuite :
–
Cliquer sur le
bouton «Construire
une base de
données»
–
Une fenêtre s'ouvre,
vous permettant
d'indiquer des
dossiers contenants
des .po
–
Cliquez sur
« Parcourir » pour
les sélectionner
Mémoires de traduction - 4
●
Puis :
–
Répétez
l'opération pour
tous les dossiers
que vous voulez
inclure
–
La recherche sera
récursive dans les
sous dossiers
–
Faites « Suivant »
pour lancer la
recherche de .po
●
●
●
Mémoires de traduction - 5
Alors :
–
La liste des .po
trouvés s'affiche
Pour lancer la
création de la
mémoire
–
Cliquer sur « Finir »
–
Laissez agir
Sortez de cette
fenêtre avec :
–
Accepter
Mémoire traduction - utilisation
●
●
Utilisation de mémoire - 1
Ouvrir un fichier .po:
–
Ex : fr_iplv.po)
Pour voir les
propositions de la
mémoire
–
Faire un clic droit
sur un segment à
traduire
–
Les propositions
sont listées
–
Sélectionner la
meilleure pour la
copier
Utilisation de mémoire - 2
Proposition intégrée
Traduction dans poEdit
Sauvegarde - compilation
Enregistrement : compilation
●
Lorsque vous demandez la sauvegarde d'un .po,
poEdit le sauvegarde et le compile en un .mo
–
Ceci n'est effectué que si l'option de création de .mo est
mise en place dans les Préférences / Éditeur
Compilation
●
●
●
Cela a pour conséquence de créer un .mo de même
nom que le .po, dans le même dossier
C'est ce .mo qui est utilisé directement par le
programme pour afficher les textes traduits
Dans l'exemple ci-dessous :
–
fr_CA.po n'a pas été compilé par sauvegarde
–
fr_iplv.po l'a été en un fr_iplv.mo
Traduction dans poEdit
Pluses
Gestion de catalogues
●
Permet de
–
Définir un
répertoire de
travail par
défaut
–
Donner un nom
à ce répertoire
de travail
–
Changer son
nom
–
Mettre à jour
les fichiers de
ce catalogue
Autres commandes - 1
●
Fichier / Ouvrir...
–
●
Ouvrir simplement un .po existant
Fichier / Nouveau Catalogue
–
Créer un nouveau catalogue

Documents pareils