web-dev-qa-db-fra.com

Comment personnaliser les paramètres régionaux du système?

Sur le système Administration Support linguistique Texte. Je ne peux choisir que des paramètres régionaux standard, mais je voudrais affiner le réglage. Par exemple, sous Windows, je pouvais personnaliser manuellement des éléments tels que le format de l'heure et de la date, les unités de mesure, le séparateur décimal, la devise, etc. - comment puis-je le faire dans Ubuntu?

23
Ivan

Cette réponse montrera comment personnaliser entièrement un environnement local, en utilisant éventuellement un environnement local existant comme base. Le type de paramètres régionaux qui sera utilisé dans cette réponse est le type i18n; ce type de locale sera impliqué dans chaque mention du mot "locale" dans le corps de la réponse.

Trouver un guide

La première chose dont vous avez besoin pour personnaliser les paramètres régionaux est de connaître le format de ces paramètres. Cet éditeur de paramètres régionaux Web possède une description complète de chaque champ d'un paramètre régional, bien qu'il ne soit pas utilisable immédiatement par quiconque. Ce sera le guide à utiliser.

Outils nécessaires

Les seuls outils dont vous avez besoin pour travailler avec les paramètres régionaux sont

  1. Un éditeur de texte. Tout ira bien, mais VIM excellera.
  2. Un convertisseur de texte en unicode. On s'attendrait à ce que vous n'en ayez pas, alors je vais vous en fournir un simple. Lisez la sous-section suivante pour l'obtenir.

Je vous recommande de créer un répertoire et de sauvegarder tout ce qui concerne le travail que vous ferez sur les paramètres régionaux.

Convertisseur texte-unicode (encodestr)

REMARQUE: si vous utilisez des caractères non communs , vous pouvez avoir des problèmes avec le script que j'écris ci-dessous; vous voudrez peut-être jeter un coup d'œil aux scripts alternatifs liés par nass .

Enregistrez le code suivant dans un fichier. Ce fichier sera identifié par votre système en tant que script python, ce qui est correct car il en est un. Ce guide suppose que vous avez appelé le script encodestrname__.

#!/usr/bin/python

def encode(string):
    newstring = str()
    for ch in string:
        newstring += "<U%04X>" % ord(ch)
    return newstring

if __== '__main__':
    import sys
    print encode(sys.argv[1])

Une fois que vous l’avez sauvegardé, donnez l’autorisation d’exécution du fichier - cela vous sera utile. Vous pouvez le faire en utilisant nautilus ou en exécutant depuis un terminal la commande suivante dans le répertoire dans lequel vous avez enregistré le script: chmod +x encodestr.

Vous pouvez maintenant tester ce script en exécutant sur le même répertoire: ./encodestr hello. Vous devriez obtenir une sortie égale à <U0068><U0065><U006C><U006C><U006F>.

Modifier une locale existante

Le cas le plus simple est la modification de paramètres régionaux existants. Idéalement, vous devez choisir un paramètre régional qui répond presque totalement à vos besoins. Dans ce cas, vous ne devez effectuer que de petites modifications. Pour le personnaliser, vous pouvez utiliser le guide pour savoir quelles sont les sections que vous souhaitez modifier et comment vous pouvez les modifier. Tous les paramètres régionaux installés résident dans /usr/share/i18n/locales, cependant le guide contient à peu près tous les paramètres régionaux jamais créés.

Cependant, la première chose que vous remarquerez lorsque vous ouvrez un environnement local est que vous lirez des mots anglais autant que des codes bizarres <UXXXX>. Vous devrez être capable de créer ces codes - c’est là que vient le script encodestrname__.

Lorsque vous savez quelles sections vous devez modifier, vous devez connaître chaque champ contenu dans la section.

Par exemple, la section LC_TIME contient le champ t_fmt et de nombreux autres. Chaque champ a sa propre description sur le guide .

Maintenant que vous savez quels champs modifier, utilisez le guide pour déterminer les valeurs acceptées par le champ.

Par exemple, le champ t_fmt accepte le texte et le commun variables strfmt .

Juste quand vous savez quoi écrire sur les champs que vous souhaitez modifier, exécutez le texte à travers le script encodestrpour obtenir son équivalent codé.

REMARQUE: Il n'est pas nécessaire que tous les champs soient codés. Utilisez les paramètres régionaux existants comme référence si nécessaire.

Par exemple, si vous souhaitez que le format d'heure Time: %T dans le champ t_fmt, exécutez ./encodestr "Time: %T"; ceci retournera <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> et vous aurez donc la ligne t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> dans vos paramètres régionaux (dans sa section respective, bien sûr).

Une fois que vous avez modifié tous les champs de votre choix, vous devrez installer les paramètres régionaux sur le système pour pouvoir les utiliser. Passez à la section d'installation pour cela.

Créer une locale à partir de zéro

Au lieu de modifier l’une, l’autre méthode que vous pouvez utiliser pour créer vos paramètres régionaux personnalisés fonctionne à partir de rien. Ce n'est pas très difficile si - encore une fois - vous utilisez le guide . Voici cependant un conseil utile: vous pouvez copier des sections d’autres paramètres régionaux sans utiliser de véritables méthodes copier-coller. Il vous suffit de suivre ce format:

LC_SECTION
copy "locale"
END LC_SECTION

LC_SECTION est la section que vous souhaitez modifier et localeest l'environnement local à partir duquel vous souhaitez copier cette section.

Par exemple, si vous souhaitez copier le format de l'heure dans les paramètres régionaux anglais, le texte ci-dessous sera votre fichier de paramètres régionaux personnalisé:

LC_TIME
copy "en_GB"
END LC_TIME

Et cela vous épargne beaucoup de travail et vous assure que toute modification apportée aux paramètres régionaux référencés sera reflétée dans la vôtre.

Installer vos paramètres régionaux personnalisés

Les étapes que je vais montrer ci-dessous peuvent ne pas être optimales, mais fonctionnent.

  1. Compilez vos paramètres régionaux. Ne paniquez pas! Cela ne prend pas de temps. Il suffit d’exécuter la commande Sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -vcustomest le nom de votre langue.

  2. Copiez vos paramètres régionaux dans le répertoire /usr/share/i18n/locales/. Vous aurez certainement besoin de Sudo privilèges pour le faire, et vous pouvez le faire avec la commande Sudo cp locale /usr/share/i18n/locales/localeest le nom du fichier correspondant à vos paramètres régionaux personnalisés.

  3. Spécifiez vos paramètres régionaux dans /var/lib/locales/supported.d/. Par exemple, créez un nom de fichier /var/lib/locales/supported.d/asd et ajoutez la ligne custom UTF-8, où custom est le nom de vos paramètres régionaux.

  4. Exécutez la commande magique. En fait, je ne sais pas ce que fait exactement cette commande, mais c'est crucial. Exécutez Sudo locale-gen. Il est fort probable qu'il génère des références aux paramètres régionaux disponibles, le cas échéant.

  5. Dites à votre système d'utiliser les paramètres régionaux. Si vous souhaitez que les paramètres régionaux soient utilisés sur l'ensemble du système, modifiez le fichier /etc/environment. Sinon, vous pouvez modifier votre fichier ~/.profile ou tout autre fichier créé au démarrage. Si vous ne savez pas ce que cela signifie ne vous inquiétez pas, utilisez simplement le fichier ~/.profile. Pour savoir ce que vous devez écrire, lancez d'abord la commande localename__. Il devrait générer une liste d'éléments tels que LANGUAGEname__, LC_MESSAGES, LC_CTYPE et beaucoup d'autres. Vous écrirez, pour chacune des sections de votre choix (répertoriées par la commande précédente), sur des lignes distinctes, ce SECTION="locale"SECTIONest la section et localele nom de vos paramètres régionaux personnalisés.

Par exemple, si vous souhaitez utiliser le format d'heure des Pays-Bas, mais l'anglais, écrivez:

LANGUAGE="en_GB:en"
LC_TIME="nl_NL"

REMARQUE: Si vous souhaitez utiliser un paramètre régional pour chaque paramètre de paramètres régionaux, écrivez LC_ALL="locale"localeest le nom de vos paramètres régionaux personnalisés. Si vous souhaitez utiliser des paramètres régionaux pour tout sauf pour la langue, vous pouvez écrire LANG="locale" et (sur une autre ligne, bien sûr) LANGUAGE="locale":XXXXest le code à 2 lettres correspondant à la langue souhaitée.

Par exemple, si vous souhaitez utiliser les paramètres régionaux néerlandais et l'anglais, vous pouvez utiliser:

LANG="nl_NL"
LANGUAGE="nl_NL:en"

Vous avez terminé

La prochaine fois que vous vous connecterez, vos paramètres régionaux devraient être utilisés. Vous pouvez le tester en exécutant à nouveau la commande localename__.

Veuillez commenter les incohérences ou les fausses déclarations dans ce guide!

27
Severo Raz

Vous ne savez pas quel type de personnalisation vous souhaitez, mais vous pouvez définir certaines variables de paramètres régionaux à l'aide de votre ~/.locale. Par exemple, pour obtenir des messages en anglais, mais l'heure allemande et les goûts que j'utilise

export LC_ALL=""
export LANG="en_GB.utf8"
export LC_CTYPE="de_DE.utf8"
export LC_NUMERIC="de_DE.utf8"
export LC_TIME="de_DE.utf8"
export LC_COLLATE="de_DE.utf8"
export LC_MONETARY="de_DE.utf8"
export LC_MESSAGES="en_GB.utf8"
export LC_PAPER="de_DE.utf8"
export LC_NAME="en_GB.utf8"
export LC_ADDRESS="de_DE.utf8"
export LC_TELEPHONE="de_DE.utf8"
export LC_MEASUREMENT="de_DE.utf8"
export LC_IDENTIFICATION="de_DE.utf8"

La génération de paramètres régionaux personnalisés est également possible. Voir par exemple ce guide pour les dates.

8
Carsten Thiel