Guide de localisation

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Localization/Guide and the translation is 50% complete.
Outdated translations are marked like this.

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_CDab 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.
Remarque
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.
Attention !
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.

CODE Ajouter des locales à /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
Remarque
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.

FILE /etc/env.d/02localeConfigurer la locale par défaut du système
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 :

FILE ~/.bashrcConfigurer la locale
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 :

CODE Utiliser la locale traditionnelle C tout en spécifiant UTF-8
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.

FILE /etc/conf.d/keymapsDéfinir l'agencement de clavier pour la console
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

Attention !
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.

Remarque
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:

FILE /etc/portage/package.use
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

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.