Dans toute sa splendeur, I18N n'est pas spécifique à FreeBSD et est une convention. Nous vous encourageons à aider FreeBSD à suivre cette convention.
Le paramétrage des “locales” est basé sur trois termes principaux: le code de la langue, le code du pays, et le codage des caractères. Les noms de “locales” sont construits à partir de ces trois éléments comme suit:
CodeLangue
_CodePays
.CodageCaractères
Afin de localiser un système FreeBSD pour une langue spécifique (ou tout autre UNIX® supportant l'I18N), l'utilisateur doit déterminer les codes spécifiques pour le pays et la langue (les codes pays indiquent aux applications quelle variation d'une langue donnée utiliser). De plus, les navigateurs Web, les serveurs SMTP/POP, les serveurs Web... agissent en fonction de ces codes. Ce qui suit est un exemple de codes langue/pays:
Code langue/pays | Description |
---|---|
en_US | Anglais - Etats Unis |
ru_RU | Russe pour la Russie |
zh_TW | Chinois traditionnel pour Taiwan |
Certaines langues utilisent les codages non-ASCII sur 8 bits ou codent des caractères sur plusieurs octets, voir multibyte(3) pour plus de détails. Les vieilles applications ne les reconnaissent pas ou les remplacent à tord par des caractères de contrôle. Les applications récentes reconnaissent normalement les caractères 8 bits. En fonction de l'implémentation, les utilisateurs devront peut être compiler une application avec le support des caractères sur 8 bits ou multi-octets, ou la configurer correctement. Afin d'accepter l'usage et le traitement de tels caractères, le catalogue des logiciels portés de FreeBSD fournit pour certains programmes une version dans chaque langue. Référez-vous à la documentation I18N de chaque logiciel porté respectif.
Spécifiquement, l'utilisateur doit consulter la
documentation de l'application pour décider de comment
la configurer correctement ou comment passer les valeurs
correctes à la procédure configure, au
Makefile
ou au compilateur.
Quelques éléments à garder à l'esprit sont:
Les jeux de caractères au codage simple des caractères de la bibliothèque C (voir multibyte(3)), par exemple ISO8859-1, ISO8859-15, KOI8-R, et CP437.
Les codages étendus ou multi-octets, e.g. EUC, Big5.
Vous pouvez contrôler la liste des jeux de caractères actuellement actifs dans le registre de l'IANA.
FreeBSD utilise à la place un codage des “locales” compatible avec X11.
Dans le système de logiciels portés et
pré-compilés de FreeBSD, les applications I18N ont
été nommées avec I18N
dans
leur nom pour une identification aisée. Cependant, elles
ne supportent pas toujours la langue désirée.
Généralement il est suffisant
d'exporter le nom de la “locale” grâce à
la variable LANG
sous l'interpréteur
de commandes utilisé lors de la session. Cela
pourra être fait dans le fichier
~/.login_conf
de l'utilisateur ou le
fichier de configuration de l'interpréteur de commandes
de l'utilisateur (~/.profile
,
~/.bashrc
, ~/.cshrc
).
Il n'est pas nécessaire de configurer
toutes les autres variables de localisation
comme LC_CTYPE
, LC_CTIME
.
Veuillez consulter la documentation de FreeBSD
spécifique à votre langue pour plus d'informations.
Vous devrez configurer les deux variables d'environnement suivantes dans vos fichiers de configuration:
LANG
pour la famille de fonctions POSIX®
setlocale(3)
MM_CHARSET
pour le jeu de caractères MIME
des applications
Cela comprend la configuration de l'interpréteur de commandes, la configuration spécifique des applications, et celle de X11.
Il existe deux méthodes pour configurer les “locales”, elles sont décrites ci-dessous. La première (celle qui est recommandée) est d'assigner les variables d'environnement dans une classe de session, et la seconde est d'ajouter le paramétrage des variables d'environnement dans les fichiers d'initialisation de l'interpréteur de commandes du système.
Cette méthode permet d'assigner une fois pour toute les variables d'environnement nécessaires pour le nom des “locales” et le jeu de caractères MIME et cela pour toutes les sessions au lieu de le faire à chaque nouvelle session par l'intermédiaire de la configuration des fichiers d'initialisation de l'interpréteur de commandes. La configuration au niveau utilisateur peut être faite par l'utilisateur lui-même et la configuration au niveau administrateur demande les privilèges de super-utilisateur.
Voici un exemple minimal d'un fichier
.login_conf
dans le répertoire
personnel d'un utilisateur, fichier qui a les deux
variables fixées pour le codage Latin-1:
Voici un exemple de fichier
.login_conf
qui fixe les variables
pour le chinois traditionnel dans le codage BIG-5. Notez
les nombreuses variables supplémentaires
paramétrées
parce que certains logiciels ne respectent pas les
variables des “locales” correctement pour le
chinois, le japonais, et le coréen.
Voir la configuration au niveau administrateur et la page de manuel login.conf(5) pour plus de détails.
Vérifiez que que la classe de session d'utilisateur dans /etc/login.conf
fixe la bonne langue.
Soyez sûr que ces paramètres
apparaissent dans /etc/login.conf
:
nom_langue
:intitulé_comptes
:\
:charset=jeu_caractères_MIME
:\
:lang=nom_locale
:\
:tc=default:Donc si l'on reste sur notre exemple précédent utilisant le Latin-1, cela donnera quelque chose comme:
Avant de modifier les classes de session des utilisateurs, exécutez la commande suivante:
#
cap_mkdb /etc/login.conf
pour rendre visible à
l'intégralité du système la
nouvelle configuration du fichier
/etc/login.conf
.
Utilisez vipw
pour ajouter de
nouveaux utilisateurs, et créer une entrée
ressemblant à celle-ci:
langue
:0:0:Nom d'utilisateur:/home/utilisateur:/bin/shUtilisez adduser
pour ajouter de
nouveaux utilisateurs, et faites ce qui suit:
Paramétrez defaultclass =
dans
langue
/etc/adduser.conf
. Gardez à
l'esprit que vous devez dans ce cas entrer une classe par
default
(défaut) pour tous les
utilisateurs d'autres langues.
Une variante est d'entrer la langue spécifiée à chaque fois que adduser(8) affiche
Enter login class: default []:
.
Une autre alternative est d'employer ce qui suit pour chaque utilisateur de langue différente que vous désirez ajouter:
#
adduser -class langue
Si vous utilisez pw(8) pour ajouter de nouveaux utilisateurs, appelez la fonction de cette manière:
#
pw useradd nom_utilisateur
-L langue
Cette méthode n'est pas recommandée parce qu'elle demande une configuration différente pour chaque interpréteur de commandes choisi. Utilisez la méthode utilisant les classes de session utilisateur à la place.
Pour ajouter le nom de la “locale” et le jeu
de caractère MIME, positionnez juste les deux variables
d'environnement comme montré ci-dessous dans les fichiers
d'initialisation de l'interpréteur de commandes
/etc/profile
et/ou
/etc/csh.login
. Nous utiliserons la
langue allemande comme exemple ci-dessous:
Dans /etc/profile
:
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
Ou dans /etc/csh.login
:
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
Alternativement, vous pouvez ajouter les instructions
précédentes à
/usr/share/skel/dot.profile
(similaire
à ce qui fut utilisé dans
/etc/profile
ci-dessus), ou
/usr/share/skel/dot.login
(similaire
à ce qui fut utilisé dans
/etc/csh.login
ci-dessus).
Pour X11:
Dans $HOME/.xinitrc
:
LANG=de_DE.ISO8859-1; export LANG
Ou:
setenv LANG de_DE.ISO8859-1
En fonction de votre interpréteur de commandes (vois ci-dessus).
Pour tous les ensembles de jeu de caractères
utilisés par la bibliothèque C,
positionnez les bonnes polices de caractères pour la console
dans /etc/rc.conf
pour la langue en
question avec:
nom_police
font8x14=nom_police
font8x8=nom_police
Le nom_police
provient ici du
répertoire /usr/share/syscons/fonts
,
sans le suffixe .fnt
.
Vérifiez également que vous avez
paramétré les bonnes tables de clavier et de
correspondance d'affichage pour votre jeu de caractères C par
l'intermédiaire de sysinstall
(/stand/sysinstall
sous les versions de FreeBSD antérieures à la 5.2).
Une fois dans sysinstall, sélectionnez
, puis
.
Alternativement, vous pouvez ajouter ce qui suit au fichier
/etc/rc.conf
:
table_correspondance_affichage
keymap=nom_table_clavier
keychange="numéro_touche_fonction séquence
"La table_correspondance_affichage
ici provient du répertoire
/usr/share/syscons/scrnmaps
sans le suffixe
.scm
. Une table de correspondance
d'affichage avec une police de correspondance est
généralement nécessaire pour passer de 8
à 9 bits la matrice de caractère d'une carte VGA
dans une zone pseudo-graphique, i.e., déplacer les lettres en
dehors de cette zone si la police d'écran utilise une colonne de
8 bits.
Si vous avez le “daemon”
moused activé par défaut
grâce à la ligne suivante dans votre
/etc/rc.conf
:
alors lisez les informations sur le curseur de souris dans le paragraphe suivant.
Par défaut le curseur du pilote syscons(4) de
la console occupe la zone d'adresses 0xd0-0xd3 dans le jeu de
caractères.
Si votre langue utilise cette zone, vous devez déplacer la zone
du curseur en dehors. Pour effectuer cela sous FreeBSD, ajoutez
la ligne suivante dans /etc/rc.conf
:
Le nom_table_clavier
provient ici
du répertoire /usr/share/syscons/keymaps
sans le suffixe .kbd
. Si vous n'êtes
pas sûr de la table de clavier à utiliser, vous pouvez
employer kbdmap(1) pour tester la table sans avoir à
redémarrer.
Le keychange
est généralement
utilisé pour programmer les touches de fonction pour
correspondre avec le type de terminal sélectionné
parce que les séquences de touches de fonction ne peuvent
être définies dans la table de clavier.
Soyez également sûr de configurer le type
de console correct dans le fichier /etc/ttys
pour toutes les entrées ttyv*
. Les
correspondances actuellement pré-définies sont:
Jeu de caractères | Type de terminal |
---|---|
ISO8859-1 ou ISO8859-15 | cons25l1 |
ISO8859-2 | cons25l2 |
ISO8859-7 | cons25l7 |
KOI8-R | cons25r |
KOI8-U | cons25u |
CP437 (jeu de caractères VGA par défaut) | cons25 |
US-ASCII | cons25w |
Pour les langues au caractères étendus ou
multi-octets, utilisez le logiciel porté adéquat
de votre répertoire
/usr/ports/
.
Certains logiciels apparaissent comme utilisant la console alors
que le système lui voit un vtty série, par
conséquent vous devez réserver suffisamment de vttys
pour X11 et la console pseudo-série. Voici une liste partielle
des applications pour utiliser d'autres langues sous la
console:langue
Langue | Emplacement |
---|---|
Chinois traditionnel (BIG-5) | chinese/big5con |
Japonais | japanese/kon2-16dot ou
japanese/mule_freewnn |
Coréen | korean/han |
Bien qu'X11 ne fasse pas partie du projet FreeBSD, nous avons inclus quelques éléments d'informations ici pour les utilisateurs de FreeBSD. Pour plus de détails, référez-vous au site Web d'Xorg ou à celui du serveur X11 que vous utilisez.
Dans le fichier ~/.Xresources
, vous
pouvez en plus adapter les paramètres I18N spécifiques
des applications (e.g., polices de caractères, menus,
etc...).
Installez le serveur Xorg
(x11-servers/xorg-server
) ou le
serveur XFree86™ (x11-servers/XFree86-4-Server
),
puis installez les polices de caractères TrueType®
de la langue concernée.
Un paramétrage correct des “locales” devrait vous
permettre de visualiser les menus dans la langue que vous avez
choisie etc.
Le protocole “X11 Input Method” - méthode de saisie pour X11 (XIM) est un nouveau standard pour tous les clients X11. Toutes les applications X11 devraient être écrites en tant que clients XIM qui reçoivent les entrées de serveurs de saisie XIM. Il existe différents serveurs XIM disponibles pour différentes langues.
Certains jeux de caractères de la bibliothèque C sont généralement codés en dur dans les imprimantes. Les jeux de caractères étendus ou multi-octets demandent une configuration spéciale et nous recommandons d'utiliser apsfilter. Vous pouvez également convertir le document en format PostScript® ou PDF en utilisant des convertisseurs spécifiques à la langue.
Le système de fichiers rapide de FreeBSD (FFS) est complètement sur 8 bits, et peut donc être utilisé avec n'importe quel jeu de caractères de la bibliothèque C (voir multibyte(3)), mais il n'y a aucun jeu de caractères de stocké dans le système de fichiers; i.e., c'est du 8 bits brut et le système ne sait rien sur l'ordre du codage. Officiellement, le FFS ne supporte encore aucun jeu de caractères étendus ou multi-octets. Cependant, certains jeux de caractères étendus ou multi-octets disposent de correctifs indépendants pour FFS activant un tel support. Ce sont seulement des solutions temporaires non portables ou des “bidouilles” et nous avons décidé de ne pas les inclure dans l'arborescence des sources. Référez-vous aux sites Internet des langues respectives pour plus d'informations et pour les correctifs.
Le support FreeBSD du système fichiers MS-DOS® a la capacité paramétrable de faire la conversion entre jeux de caractères MS-DOS®, Unicode et les jeux de caractères choisis pour le système de fichiers FreeBSD. Voir la page de manuel mount_msdosfs(8) pour plus de détails.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.