La localisation (aussi appelée régionalisation) consiste à modifier le comportement d'un programme pour qu'il agisse d'une manière propre à une région. Quand un programme formate les nombres et les dates d'une façon particulière pour votre région du monde ou quand il affiche des messages (ou accepte des entrées) dans votre langue maternelle, le programme est dit localisé. Cette section décrit les étapes qu'a franchi Subversion pour être localisable.
La plupart des systèmes d'exploitation modernes intègrent la notion de « paramètres régionaux courants » (current locale en anglais), c'est-à-dire la région ou le pays dont les conventions sont appliquées. Ces conventions, généralement choisies par un mécanisme de configuration pour la durée du fonctionnement d'un programme sur l'ordinateur, affectent la façon dont les données sont présentées à l'utilisateur ainsi que la façon dont les entrées de l'utilisateur sont traitées.
Sur la majorité des systèmes de type Unix, vous pouvez vérifier la valeur des paramètres régionaux en cours en lançant la commande locale :
$ locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL="C" $
L'affichage comprend une liste de variables
d'environnement relatives à des conventions locales et leur
valeurs. Dans cet exemple, toutes les variables possèdent la
valeur par défaut C
, mais les utilisateurs
peuvent modifier ces valeurs et leur affecter des valeurs
propres à leur pays ou à leur langue. Par exemple, si
quelqu'un fixe la valeur de la variable
LC_TIME
à fr_CA
, les
programmes sauront qu'il doivent afficher les dates et les
heures conformément aux attentes des canadiens francophones.
Et si quelqu'un fixe la valeur de la variable
LC_MESSAGES
à zh_TW
,
les programmes sauront qu'il doivent afficher les messages à
destination de l'utilisateur en chinois traditionnel. Modifier
la variable LC_ALL
équivaut à donner à
toutes les variables de paramètres régionaux la valeur choisie
pour LC_ALL
. La valeur de la variable
LANG
est utilisée par défaut pour toute
variable de paramètre régional qui n'a pas de valeur
attribuée. Pour voir la liste de toutes les variables de
paramètres régionaux sur un système Unix, lancez la commande
locale -a
.
Sous Windows, la configuration des paramètres régionaux s'effectue par l'intermédiaire de l'élément « Options régionales, date, heure et langue » du panneau de configuration. Vous pouvez y voir et y sélectionner les valeurs de chacune des variables disponibles, voire personnaliser les conventions d'affichage de nombreux paramètres (à un niveau de détail presque maladif).
Le client Subversion, svn, utilise la
configuration courante des paramètres régionaux de deux
manières. D'abord, il prend en compte la valeur de la
variable LC_MESSAGES
et essaie d'afficher
tous les messages dans la langue indiquée.
Par exemple :
$ export LC_MESSAGES=de_DE $ svn help cat cat: Gibt den Inhalt der angegebenen Dateien oder URLs aus. Aufruf: cat ZIEL[@REV]... …
Ce comportement est identique sur les systèmes Unix et
Windows. Notez cependant que, bien que votre système
d'exploitation puisse supporter certaines valeurs de
paramètres régionaux, Subversion ne parle peut-être pas toutes
ces langues. Afin d'afficher ces messages localisés, des
volontaires (humains) doivent fournir des traductions dans
chaque langue. Les traductions sont écrites en utilisant le
paquetage GNU gettext, ce qui produit des modules de
traduction dont l'extension du nom de fichier est
.mo
. Par exemple, le fichier des
traductions allemandes s'appelle de.mo
.
Ces fichiers de traductions sont installés quelque part sur
votre système. Sous Unix, ils sont généralement placés dans
/usr/share/locale/
, alors que sous Windows
on les trouve souvent dans le dossier
\share\locale\
de la zone d'installation
de Subversion. Une fois installé, un module est renommé
d'après le programme pour lequel il fournit des traductions.
Par exemple, le fichier de.mo
sera
peut-être finalement installé en tant que
/usr/share/locale/de/LC_MESSAGES/subversion.mo
.
En parcourant les fichiers .mo
installés,
vous pouvez voir quelles langues le client Subversion
parle.
La prise en compte des paramètres régionaux se fait aussi au niveau de la façon dont svn interprète vos entrées. Le dépôt stocke tous les chemins, noms de fichiers et messages de propagation en Unicode, plus exactement en UTF-8. En ce sens, le dépôt est internationalé, c'est-à-dire que le dépôt peut accepter des entrées en n'importe quelle langue. Cela signifie cependant que le client Subversion ne doit envoyer vers le dépôt que des noms de fichiers et des messages de propagation en UTF-8. Pour ce faire, il doit convertir les données depuis les paramètres régionaux courants vers l'UTF-8.
Par exemple, supposons que vous créez un fichier nommé
caffè.txt
et qu'ensuite, lorsque vous
propagez ce fichier, vous fournissez le message de
propagation suivant :
« Adesso il caffè è più forte ». Le nom du fichier
et le message de propagation contiennent tous deux des
caractères non-ASCII, mais puisque vos paramètres régionaux
sont it_IT
, le client Subversion sait qu'il
doit les interpréter comme de l'italien. Il utilise alors un
jeu de caractères italiens pour convertir ces données en UTF-8
avant de les envoyer au dépôt.
Remarquez que bien que le dépôt exige des noms de fichiers et des messages de propagation au format UTF-8, il ne s'intéresse pas au contenu du fichier. Subversion traite le contenu des fichiers comme des chaînes d'octets « opaques » ; ni le client ni le serveur ne tentent de comprendre le jeu de caractères ou le codage du contenu d'un fichier.