# 11.3. Ajouter une Langue à votre Projet

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.