Page suivante Page précédente Table des matières
i18n est un système d'internationalisation qui est utilisé pour fournir des versions internationalisées d'une application ou d'un projet. La difficulté dans l'écriture des applications est que celles-ci supportent seulement la langue qui a été utilisée pour leur réalisation ; visuellement, cela se remarque sur les étiquettes, les entrées de menus, etc. Le but de l'internationalisation est de fournir des applications et des fonctions de bibliothèque dans la langue de l'utilisateur et donc de permettre aux utilisateurs qui ne sont pas capables de comprendre la langue originale d'utiliser plus aisément les fonctionnalités.
KDE, en tant qu'un des environnements de bureau les plus modernes, a décidé qu'un de ses nombreux objectifs est de fournir aux utilisateurs des applications dans leur langue natale et de simplifier le travail des développeurs voulant fournir leurs applications dans n'importe laquelle des langues supportées.
Techniquement, cela est réalisé par le Système de Fichiers Standard de
KDE qui contient le support de la localisation pour les langues en terme de
documentation et en permettant l'internationalisation de l'application grâce à
la classe KLocale
de la bibliothèque KDE-core. Cette classe fait toute la
traduction, suivant la langue de préférence définie dans le Centre de Contrôle
de KDE.
Par ailleurs, le développeur doit savoir deux choses pour permettre à son application d'utiliser cette fonctionnalité :
kapp.h
dans votre code source lorsqu'un texte visible
apparaît dans votre application, par exemple dans les fichiers sources qui
contiennent des QLabelsi18n()
fournie par kapp.h
afin de
réaliser la traductionklocale
fournie par kapp.h
C'est globalement tout ce que vous avez à penser pendant le codage. Notez que
vous ne devez pas internationaliser les chaînes de caractères de configuration
qui sont utilisées par KConfig
car d'une part, ce n'est pas
nécessaire et d'une autre part, la lecture ne fonctionnera plus.
KDevelop simplifie aussi le travail des développeurs pour inclure le support
de langues natives dans leurs applications. Lorsque vous créez un nouveau
projet KDE, un sous-dossier po
est ajouté dans le dossier principal de
votre projet. C'est ici que sera placé le fichier <application>.pot
lorsque sa génération sera terminée. Le fichier .pot contient déjà toutes les
chaînes qui utilisent la macro i18n(), vous devez donc seulement écrire votre
code en utilisant à nouveau cette macro. De temps en temps, vous devrez faire
un "Projet"-"Exécuter make messages et fusionner" qui extrait
automatiquement à nouveau toutes les macros et reconstruit le fichier .pot.
Pour ajouter une langue à votre application, choisissez
"Projet"-"Ajouter un fichier de traduction" qui ouvre la boîte de dialogue de
sélection de langue. Choisissez la langue désirée et cliquez sur OK. Ensuite,
le fichier <lang>.po correspondant sera généré dans le dossier
po
. Vous pouvez alors commencer à traduire le fichier po en le
sélectionnant dans le dossier po dans l'onglet RFV ou depuis LFV, dossier
"Traductions". Si vous avez installé KTranslator, le fichier .po sera ouvert dans la
fenêtre "Outils", sinon comme un fichier texte dans la fenêtre
en-tête/ressource. KTranslator simplifie énormément la traduction des
chaînes de caractères en analysant les traductions existantes de votre
installation locale de KDE si bien qu'elles peuvent être directement
utilisées.
Pour l'édition à la main, nous allons prendre un exemple :
#: kscribble.cpp:619
msgid "Opens an existing document"
msgstr ""
Vous voyez ci-dessus une chaîne de caractères qui a été extraite de la ligne
619 du fichier kscribble.cpp
. msgid
et msgstr
sont
des balises qui donnent des informations pour la traduction ;
msgstr
contiendra la traduction de la chaîne. Vous devez veiller à
respecter les séquences d'échappement comme \n ou \t qui devront apparaître
aussi dans la traduction. Une traduction en français ressemblerait donc à ceci :
#: kscribble.cpp:619
msgid "Opens an existing document"
msgstr "Ouvre un document existant"
C'est tout ce que vous devez faire pour traduire ; lorsque vous avez terminé, enregistrez le fichier. Lorsque "make" s'exécute dans le dossier po, les fichiers de messages seront traités et des erreurs pourront apparaître si les chaînes de caractères ne sont pas conformes, par exemple si des séquences d'échappement sont manquantes. Éditez ensuite à nouveau la chaîne du message correspondant et assurez-vous que "make" s'exécute sans erreurs.
De plus, vous devrez être très vigilants lorsque vous traduisez des chaînes contenant un "et commercial" (NdT : le symbole &). La lettre après ce symbole est utilisée comme accélérateur clavier en complément de la touche ALT pour accéder à la barre de menus ou à des éléments de menus en déplaçant plus rapidement le focus du clavier vers l'élément sélectionné. Si la même lettre d'accélérateur apparaît dans la même zone de focus de clavier (qui peut être tantôt le widget principal, tantôt une boîte de dialogue), chaque widget après le premier ne peut pas être accédé par l'accélérateur clavier présumé. Donc, même les traducteurs ont une responsabilité dans l'utilisabilité de l'application dans leur langue. Il n'y a également aucune garantie que la lettre originale apparaîtra dans la traduction donc les traducteurs doivent travailler avec précaution et tester l'application dans leur langue après avoir installé la traduction pour s'assurer qu'elle s'exécute sans dysfonctionnements.
L'équipe KDE fournit aussi de nombreux contacts pour les développeurs qui contribuent au projet KDE en tant que traducteurs. Ceux-ci sont organisés en équipes par langue et coordonnent leur travail de traduction. Pour une liste récente et savoir à qui demander de traduire votre application, consultez http://www.kde.org.
Les informations ci-dessous sont extraites du site web de KDE et contiennent les adresses des contacts en date du 6 mars 1999. Si vous voulez rejoindre une équipe, veuillez contacter directement l'un des coordinateurs.
La traduction de KDE est organisée par Juraj Bednar mailto:bednar@rak.isternet.sk et Matthias Elter me@kde.org
Vous pouvez vous abonner à la liste de discussion kde-i18n-doc@kde.org de KDE sur l'internationalisation en envoyant un mail à kde-i18n-doc-request@kde.org et en mettant le mot "subscribe" dans la ligne de sujet. Avant de commencer un travail de traduction, veuillez contacter les coordinateurs d'équipe de traduction correspondants pour éviter un travail en double.
coordinateur : Jañ-Mai DRAPIER jdrapier@club-internet.fr
site web : http://perso.club-internet.fr/jdrapier
coordinateur : Sebastià Pla sastia@redestb.es
coordinateur : Miroslav Flídr flidr@kky.zcu.cz
coordinateur : Erik Kjær Pedersen erik@binghamton.edu
coordinateur : Thomas Diehl th.diehl@gmx.net
site web : http://www.dtp-service.com/kde/de/
liste de discussion : envoyez un mail avec le sujet 'subscribe' à : kde-i18n-de-request@kde.org
Forum web pour discussions et avis des utilisateurs : http://www.dtp-service.com/discus_d
coordinateur : Theodore J. Soldatos theodore@eexi.gr
coordinateur : Wolfram Diestel diestel@rzaix340.rz-uni-leipzig.de
coordinateur : Boris Wesslowski, Alonso Lara Boris@Wesslowski.com
site web : http://members.xoom.com/keko5/
liste de discussion : envoyez un mail avec le sujet 'subscribe' à : kde-es@kde.org
coordinateur : Hasso C. Tepper hasso@ewsound.estnet.ee
coordinateur : Kim Enkovaara kim.enkovaara@iki.fi
coordinateur : Francois-Xavier Duranceau duranceau@kde.org
site web : http://i18n.kde.org/teams/fr/apps/wip-apps.html
liste de discussion : envoyer un message vide à : kde-francophone-subscribe@egroups.fr
coordinateur : Erez Nir erez-n@actcom.co.il
coordinateur : Vladimir Vuksan vuksan@veus.hr
coordinateur : Marcell Lengyel miketkf@yahoo.com site web : http://sophia.jpte.hu/~kde
coordinateurs : Logi Ragnarsson logir@imf.au.dk, Thorarinn R. Einarsson thori@mindspring.com, Bjarni R. Einarsson bre@netverjar.is, Hrafnkell Eiriksson hkelle@rhi.hi.is, Gudmundur Erlingsson gudmuner@lexis.hi.is, Richard Allen ra@hp.is
coordinateur : Andrea Rizzi rizzi@kde.org
coordinateur : LinuxKorea Co. kde@linuxkorea.co.kr
coordinateur : Sasha Konecni sasha@msi-uk.com
coordinateur : flidr@CyberGate.zcu.cz flidr@CyberGate.zcu.cz
coordinateur : Hans Petter Bieker zerium@webindex.no
coordinateur : Piotr Roszatycki dexter@fnet.pl
coordinateur : Pedro Morais pmmm@camoes.rnl.ist.utl.pt
coordinateur : Elvis Pfützenreuter epx@netville.com.br
coordinateur : Paul Ionescu ipaul@romsys.ro
coordinateur : Denis Y. Pershin dyp@inetlab.com
coordinateur : Juraj Bednar bednar@isternet.sk
liste de discussion : envoyez un mail avec le sujet 'subscribe' à : sk-i18n@rak.isternet.sk
coordinateur : blazzupancic@hotmail.com blazzupancic@hotmail.com
coordinateur : Anders Widell d95-awi@nada.kth.se
coordinateur : Gorkem Cetin gorkem@linux.org.tr
coordinateur : Wang Jian larkw@263.net
coordinateur : Chou Yeh-Jyi ycchou@ccca.nctu.edu.tw
Page suivante Page précédente Table des matières