Magazine Internet

Donnez moi du texte

Publié le 05 novembre 2007 par Peck

Retrouvez cet article sur http://linux-attitude.fr/post/Donnez-moi-du-texte
Niveau :

Donnez texteDonnez texteDonnez texteDonnez texteDonnez texte


Connaissez vous la différence entre internationalisation et localisation (i18n et l10n) ? Hé bien il s'agit tout simplement de deux parties du même processus.

L'internationalisation c'est le fait de développer votre code pour qu'il supporte n'importe quelle locale. Par locale on entend la plupart du temps la langue, mais il ne faut pas oublier qu'il y a quelques autres particularités comme l'heure, la monnaie, l'affichage des dates ...

La localisation, c'est le fait de définir les propriétés locales du logiciel. Contrairement à l'internationalisation, ce n'est pas particulièrement un travail de développeur de s'occuper de la localisation. Il s'agit la plupart du temps de traduire du texte (l'heure et la monnaie étant en général fixe et donc déjà localisées).

Gettext est une bibliothèque pour vous faciliter l'internationalisation et la localisation du texte dans vos programmes. Elle a été pensée pour être utilisée dans du code existant aussi bien que dans du nouveau code. Le principe est de conserver les message originaux dans le code (en anglais de préférence) et d'externaliser les versions localisées de ces messages dans d'autres fichiers.


La fonction principale de gettext est ... gettext. On lui passe en paramètre une chaîne de caractères et elle retourne la chaîne de caractères correspondante localisée.
Son activité est simple, elle connaît la locale en cours, en fonction de la locale elle va chercher dans un fichier de texte localisé la chaîne de caractère correspondant à la chaîne originale qu'on vient de lui passer. Si elle la trouve elle retourne celle-ci, sinon elle retourne l'original.
Par conséquent, toutes les chaînes non traduites dans un logiciel sont tout de même présentes, mais en VO.

Commençons par un exemple en php.
En php, comme dans la plupart des autres langages, la fonction gettext() existe aussi sous le nom de _(), bien plus rapide à écrire et aussi plus lisible.


Ouah trop dur ! Mieux, si vous décidez de ne pas traduire votre logiciel maintenant, ce n'est pas grave car la chaîne originale sera retournée (VO).

Nous avons internationalisé notre soft, il faut maintenant le localiser, c'est un peu plus de travail.
Tout d'abord une petite partie dans le code lui-même pour fixer la locale à utiliser :

// locale choisie
setlocale(LC_ALL, "fr_FR.UTF-8");
// choix du fichier de localisation
bindtextdomain('test','/chemin/kivabien');
textdomain('test');

Ensuite, il faut lancer la commande suivante :

$ xgettext test.php


Elle produira un fichier messages.po, c'est lui le fichier de localisation.
Éditez le (avec un simple éditeur pour l'instant) et complétez la ligne msgstr tout en bas du fichier, remplacez les champs qui vous intéressent, et surtout remplacez CHARSET par votre charset (UTF-8 ou ISO-8859-15 en général).

Une fois que c'est traduit, créons le fichier de localisation compilé (test.mo qui sera finalement utilisé par le programme) :

$ msgfmt -o test.mo messages.po


Il faut placer ce dernier fichier dans le répertoire /chemin/kivabien/fr/LC_MESSAGES

Et voila !


Notez que gettext est disponible dans la plupart des langages :


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Donnez la parole aux internautes

    Magnifique mise en oeuvre de communication communautaire décentralisée mise en oeuvre par nos racoons d'outre-atlantique. Plus de 400 commentaires vidéos en... Lire la suite

    Par  Paper Blog
    CINÉMA, INTERNET
  • Donnez vie à vos pages web avec Zimplit

    Zimplit est présenté comme le plus simple des CMS (Content Management System = Système de gestion du contenu) jamais conçu. Il est décrit comme extrêmement... Lire la suite

    Par  Jerome S.
    INTERNET
  • N'achetez plus, donnez et recevez!

    Que les fanatiques d'eBay et PriceMinister soient étonnés, il existe bel et bien des personnes qui ne demandent rien en contrepartie d'objets qu'elles souhaiten... Lire la suite

    Par  Menerve
    INTERNET
  • EasyDon, donnez, recevez

    EasyDon, donnez, recevez

    Les sites de dons fleurissent sur Internet. EasyDon est un nouveau site de dons qui vient juste de démarrer. Il y a encore peu de dons proposés mais il ne... Lire la suite

    Par  Jean-Michel Plisson
    INTERNET
  • iPod shuffle : donnez lui la parole !!!

    iPod shuffle donnez parole

    Apple annonce une nouvelle mouture de son iPod shuffle. Présentée discrètement aujourd’hui, cette version voit sa capacité passer de 2 à 4 Go. Lire la suite

    Par  Sylvain Ratton
    INTERNET
  • Salauds, Donnez votre sang!

    Au Texas, c'est pas Adriana Karembeu qui passe dans des pubs pour le don du sang alors pour en récolter il joue sur le remord des "salauds". Lire la suite

    Par  Sylvestreb
    EMARKETING, FOCUS EMPLOI, INTERNET, MARKETING & PUBLICITÉ
  • Mise à jour du Player : donnez votre avis !

    Bonjour a tous ! Certains d’entre-vous ont peut-être remarqué que deux nouvelles fonctionnalités ont récemment fait leur apparition dans le Player ! Lire la suite

    Par  Bse
    BD, CULTURE, INTERNET, LIVRES

A propos de l’auteur


Peck Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte