Guide de localisation
Fuseau horaire
Afin de tenir votre système à l'heure correctement, vous devez sélectionner votre fuseau horaire pour que votre système sache où il se trouve.
Fonctionnement des locales
Que sont les locales ?
Une locale est un jeu d'informations que la plupart des programmes utilisent pour déterminer les réglages spécifiques à un couple langue-pays.Les locales et leurs données font partie de la bibliothèque système et se trouvent dans la plupart des systèmes. Un nom de locale se présente généralement sous la forme ab_CD
où ab
est le code de langue à deux (ou trois) lettres (comme spécifié dans ISO-3166). Des variantes sont souvent ajoutées au nom de locales, par exemple, en_GB.UTF-8
ou de_DE@euro
. Reportez-vous à Wikipedia pour en savoir plus sur les locales et pour lire les articles en relation.
Variables d'environnement pour les locales
Les variables qui contrôlent les différents aspects du réglage des locales sont présentées ci-dessous. Toutes prennent un nom de locale de la forme ab_CD
indiquée ci-dessus.
Nom de la variable | Explication |
---|---|
LANG | Définit tous les paramètres d'une locale d'un seul coup, tout en autorisant des personnalisation individuelles ultérieures via le paramètre LC_* présenté ci-dessous. |
LC_COLLATE | Définit l'orde alphabétique des chaînes de caractères. Ceci affecte par exemple la sortie des listings de répertoires. |
LC_CTYPE | Définit les propriétés de gestion des caractères par le système ; en particulier quels caractères sont considérés comme faisant partie de l'alphabet, des chiffres etc. Cela détermine aussi le jeu de caractères utilisé, quand cela s'applique. |
LC_MESSAGES | Les traductions des programmes qui utilisent un schéma de localisation basé sur des messages (la majorité des programmes GNU, voir les chapitres suivants pour une information plus détaillée sur ceux qui l'utilisent, et comment faire en sorte que ceux qui ne l'utilisent pas fonctionnent). |
LC_MONETARY | Définit l'unité monétaire et le format des valeurs numériques exprimées dans cette unité. |
LC_NUMERIC | Définit le format des valeurs numériques non monétaires. Ceci affecte des choses telles que le séparateur de milliers et le séparateur des décimales. |
LC_TIME | Définit le format des dates et de l'heure. |
LC_PAPER | Définit la taille par défaut du papier. |
LC_ALL | Une variable spéciale pour écraser tous les autres paramètres. |
Certains programmes sont écrits d'une manière telle qu'ils s'attendent à un ordre alphabétique basé sur l'anglais, alors que certaines locales comme l'Estonien, utilisent un ordre différent. En conséquence, il est recommandé de définir LC_COLLATE à C pour des paramètres intéressant le système entier.
L'utilisation de LC_ALL est fortement déconseillée car cela ne peut plus être écrasé ultérieurement. N'utilisez cela que pour des tests et jamais dans un fichier de démarrage.
La plupart du temps, les utilisateurs ne définissent la variable LANG qu'à une échelle globale.
Générer des locales spécifiques
Vous n'utiliserez probablement qu'une, ou peut-être deux, locales sur votre système. Vous pouvez spécifier les locales dont vous aurez besoin dans /etc/locale.gen.
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
Use an
@euro
value from /usr/share/i18n/SUPPORTED as the locale when using the Euro currency symbol (€) on non UTF-8 based locales.L'étape suivante consiste à exécuter la commande locale-gen
. Elle génère toutes les locales que vous avez spécifiées dans le fichier /etc/locale.gen.
root #
locale-gen
* Generating 4 locales (this might take a while) with 1 jobs * (1/4) Generating en_GB.ISO-8859-1 ... [ ok ] * (2/4) Generating en_GB.UTF-8 ... [ ok ] * (3/4) Generating de_DE.ISO-8859-1 ... [ ok ] * (4/4) Generating de_DE.ISO-8859-15@euro ... [ ok ] * Generation complete
Vous pouvez vérifier que les locales que vous avez sélectionnées sons disponibles en exécutant locale -a
.
user $
locale -a
C POSIX de_DE de_DE.iso88591 de_DE.iso885915@euro de_DE@euro deutsch en_GB en_GB.iso88591 en_GB.utf8 german
The /usr/lib/locale/locale-archive file can be shown by localedef.
user $
localedef --list-archive
Its raw content can be displayed using the strings command.
user $
strings /usr/lib/locale/locale-archive | less
Configurer une locale
OpenRC
Lorsque vous utilisez OpenRC, les configurations des locales sont stockées dans des variables d'environnement. Elles sont généralement définies dans le fichier /etc/env.d/02locale (pour des configurations s'appliquant au système entier), et peuvent être gérées via la commande eselect locale
. Par exemple, pour définir la variable LANG
à la valeur C
:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] POSIX [3] en_US [4] en_US.iso885915 [5] en_US.utf8 [ ] (free form)
root #
eselect locale set 1
Bien-sûr, vous pouvez éditer le fichier à la main et diversifier les variables de la locale.
The command above lists the suffix in lower case without any hyphens, glibc understands both forms of the suffix, many other programs don't. The most common example of which is X. So it is best to always use UTF-8 in preference to utf8.
LANG="de_DE.UTF-8"
LC_COLLATE="C"
In some cases users may notice glitchy non-English representation in some applications like Krusader (https://bugs.kde.org/show_bug.cgi?id=371582). Removing or commenting the LC_ALL=""
line from /etc/env.d/02locale should fix the problem.
Il est également possible, et très courant en particulier dans un environnement UNIX traditionnel, de laisser la configuration globale inchangée, c.à.d. dans la locale "C
". Les utilisateurs peuvent toujours spécifier leur locale préférée dans leur propre fichier rc de shell :
export LANG="de_DE.UTF-8"
export LC_COLLATE="C"
Une autre manière de configurer le système, c'est de le laisser dans la locale par défaut C, mais d'activer la représentation UTF-8 des caractères en même temps. Cette option se met en place en utilisant les réglages suivants dans /etc/env.d/02locale :
LC_CTYPE=de_DE.UTF-8
En utilisant l'extrait de code ci-dessus, les utilisateurs seront en mesure de voir les noms de fichiers correctement localisés, sans être forcés d'adopter votre langue préférée.
Une fois que vous avez définie la locale correcte, assurez-vous de mettre à jour vos variables d'environnement pour que votre système les prenne en compte.
Pour une locale au niveau du système entier :
root #
env-update && source /etc/profile
Pour une locale spécifique à l'utilisateur :
user $
source ~/.bashrc
Après cela, vous devez tuer votre serveur X en pressant Ctrl + Alt + Backspace, vous déconnecter, puis vous reconnecter en tant qu'utilisateur.
Vérifiez maintenant si les changements sont effectifs :
user $
locale
The values of locale environment variables that have been explicitly set e.g. in an export statement (if using bash) are listed without double quotes. Those whose value has been inherited from other locale environment variables have their values in double quotes.
systemd
Si vous utilisez systemd, vous devriez définir votre locale avec la commande localectl
. Consultez la liste des locales disponibles avec :
root #
localectl list-locales
Puis, définissez la locale dont vous avez besoin :
root #
localectl set-locale LANG=de_DE.utf8
Pour terminer, vérifiez si le résultat est correct :
root #
localectl | grep "System Locale"
System Locale: LANG=de_DE.utf8
Agencement de clavier pour la console
OpenRC
L'agencement de clavier utilisé par la console est défini dans le fichier /etc/conf.d/keymaps par la variable keymap
. Les valeurs acceptables peuvent être trouvées dans /usr/share/keymaps/YOUR_ARCH/. i386 possède des subdivisions supplémentaire pour les agencements(qwerty/, azerty/, etc.). Quelques langues possèdent des options multiples, et vous devrez peut-être faire des essais pour déterminer laquelle vous convient le mieux.
keymap="de"
#keymap="de-latin1"
#keymap="de-latin1-nodeadkeys"
systemd
Avec systemd, l'agencement de clavier utilisé par la console peut être défini en utilisant la commande localectl
. Commencez par vérifier les agencements disponibles :
root #
localectl list-keymaps
Puis, définissez quel agencement vous voulez pour la console :
root #
localectl set-keymap it
Pour terminer, vérifiez si l'agencement a été correctement pris en compte :
root #
localectl | grep "VC Keymap"
VC Keymap: it
Agencement de clavier pour le serveur X
OpenRC
L'agencement de clavier qui sera utilisé par le serveur X est défini dans le fichier /etc/X11/xorg.conf par l'option XkbLayout
.
systemd
Avec systemd, l'agencement de clavier pour le serveur X11 peut être défini en utilisant la commande localectl
. Commencez par consulter les agencements disponibles pour X11 :
root #
localectl list-x11-keymap-layouts
Puis définissez l'agencement que vous voulez pour X11 :
root #
localectl set-x11-keymap it
Pour terminer, vérifiez si l'agencement de clavier pour le serveur X11 a été correctement pris en compte :
root #
localectl | grep "X11 Layout"
X11 Layout: it
NLS
Pour que la localisation basée sur les messages fonctionne dans les programmes qui en assurent la prise en charge, vous devez probablement compiler ces programmes avec l'option nls
(Native language support) de la variable USE activée. La plupart des programmes utilisant nls ont aussi besoin de la bibliothèque gettext pour extraire et utiliser les messages localisés. Bien sur, Portage l'installera automatiquement si besoin est.
Après avoir activé l'option nls
de la variable USE, il peut être nécessaire de réinstaller certains paquets :
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
LINGUAS
LINGUAS causes packages to implicitly skip locales. When using it, the package manager cannot determine which locales were omitted. Do not use LINGUAS if you intend to redistribute binary packages.
There is also an additional LINGUAS variable that is used by some gettext-based build systems to control which localization files are built and installed. The variable takes in space-separated list of language codes, and a suggested place to set it is /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Ajout de la variable LINGUAS. Par exemple pour l'allemand, le finnois et l'anglais:) LINGUAS="de fi en"
Note that there is a large difference between LINGUAS being unset and being set to an empty value: Unset LINGUAS means to install all available languages. By contrast, with LINGUAS=""
, most ebuilds would install only the packages' default language but none of the LC_MESSAGES
files.
Incorrect setting of LINGUAS may lead to incomplete translation of some applications, such as KDE Plasma and its apps. Try to remove LINGUAS and rebuild related packages if you encounter this problem.
L10N
A USE_EXPAND variable called L10N decides which extra localization support will be installed. This is commonly used for downloads of additional language packs by packages. Similar to LINGUAS, the variable takes a space separated list of language tags, and it can be set in /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Add in the L10N variable. For instance, for German and Brazilian Portuguese:) L10N="de pt-BR"
To set it per-package, edit /etc/portage/package.use and prefix the requested language packs with "l10n_", as shown in the next example:
app-text/aspell l10n_de l10n_pt-BR
Note that while the common two letter language codes (like de
or fr
) are identical in LINGUAS and L10N, more complex entries have a different syntax because L10N uses IETF language tags (aka BCP 47). For example, pt_BR
and sr@latin
in LINGUAS become pt-BR
and sr-Latn
in L10N, respectively.
A list of L10N values that can be used is provided as /var/db/repos/gentoo/profiles/desc/l10n.desc:
user $
grep -i portuguese /var/db/repos/gentoo/profiles/desc/l10n.desc
pt - Portuguese pt-BR - Portuguese (Brazil) pt-PT - Portuguese (Portugal)
After setting the L10N USE_EXPAND variable it may be necessary to re-emerge some packages:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
Voir aussi
- Configuring locales (Gentoo Handbook)
- Keyboard layout inside the Evdev article
- X resources
- Localization/Guide/The Euro symbol — how to display the Euro symbol (€) for the console and in X.
Ressources externes
Références
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Alexander Holler, Steven Lucy, Benny Chuang, Lars Weiler, Tobias Scherbaum, Flammie Pirinen, , Francisco Blas Izquierdo Riera (klondike)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.