|
|||||||
1. Introduction
2. Installation 3. Le serveur Web 4. Options de configuration 5. Travailler avec Apache, LightTPD ou Xitami 6. Programmation 7. Debogage 8. Scripts Python 9. Services Karrigell 10. Python Inside HTML 11. HTML Inside Python 12. HTMLTags - génère du HTML en Python 13. Inclure des documents 14. Sessions 15. Authentification 16. Traduction et Unicode 16.1 Introduction 16.2 Programme d'internationalisation 16.3 Prise en charge d'Unicode |
16. Internationalisation et UnicodeComme les lecteurs de la documentation en anglais l'auront remarqué, je ne suis pas originaire d'un pays anglophone (je suis français, et plus précisément breton - "Karrigell" est un mot breton). J'ai donc inclus un programme pour faciliter l'internationalisation des scripts. 16.1 IntroductionLa traduction est effectuée en utilisant le module
Ce fichier texte est transformé en un fichier binaire avec une extension .mo par un programme Python appelé msgfmt.py, écrit par Martin v. Löwis (il est inclus dans le Répertoire Serveur de Karrigell) Dans un script, à chaque fois que vous voulez qu'un message soit traduit ans une langue donnée, au lieu de l'écrire comme une chaîne normale avec des guillemets, on l'écrit comme argument d'une fonction appelée _, de cette façon :
Pour que la traduction dans la langue voulue soit activée :
où domaine est le nom du fichier .po, repBase le répertoire dans lequel se trouve le sous-répertoire langue/LC_MESSAGES, et langue est la langue voulue Par exemple, si la langue est "francais", que le fichier .po file
s'appelle messages.po, et qu'il se trouve dans
16.2 Programme d'internationalisationL'utilisation degettext seul peut s'avérer un peu lourd quand
on écrit ou qu'on met au point un programme ; pour chaque nouvelle chaîne de
caractères à traduire il faut recréer l'ensemble du fichier .po puis le
fichier .mo sans effacer les traductions précédentes. Karrigell fournit une
interface web simple pour créer et modifier les traductions de chaînes, en
cachant le mécanisme sous-jacent de gettext
Pour des raisons de sécurité, ce script est réservé à l'administrateur.
Un script d'authentification est exécuté, il s'appuie sur des condensés md5
stockés dans un fichier appelé Avec votre navigateur, appelez le script Remplissez les champs et validez le formulaire ; les traductions sont automatiquement créées ou modifiées
Vous pouvez vérifier l'effet en appelant le script que vous venez de traiter et en changeant l'ordre des langues dans les préférences La traduction est conservée dans un fichier qui est commun à tous les fichiers d'un même répertoire. On peut aussi éditer tout le dictionnaire en cliquant sur le premier élément de la liste des scripts 16.3 Prise en charge d'UnicodeNouveau dans la version 2.2.2écrit principalement par Radovan GarabikUnicode est un standard normalisé qui sert à représenter tous les styles d'écriture dans le monde. Pour chaque signe (une lettre dans un alphabet, un idéogramme dans une langue asiatique), Unicode définit un nombre unique, appelé "point de code". Comme les ordinateurs et les réseaux ne savent manipuler que des octets, une correspondance doit être définie entre ces "points de code" et un ou plusieurs octets ; ces correspondances sont appelées "encodages" Du fait qu'il existe beaucoup d'encodages différents, quand un programme doit imprimer un signe (une lettre grecque, un signe chinois) il doit recevoir deux informations : la chaîne de caractères qui représente le signe (une séquence d'octets) et l'encodage utilisé. S'il reçoit seulement une chaîne, le programme peut essayer de deviner l'encodage (c'est ce que fait généralement un navigateur web) mais sans aucune garantie de succès Karrigell définit deux paramètres du fichier de configuration pour prendre en charge Unicode :
(1) Sur Microsoft Internet Explorer la préférence de langue est définie par Outils/Options Internet/Général/Langues ; les langues acceptées sont sélectionnées à partir d'une liste et classées par ordre de préférence. Sur Netscape utiliser Edition/Préférences/Langues
|