This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
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.
En général, les 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 leurs 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'ils 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'ils 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 commentaires 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 commentaires 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 commentaire de propagation suivant :
« Adesso il caffè è più forte ». Le nom du fichier et le
commentaire 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 commentaires 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.