GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment personnaliser une locale système ?

Au système Administration Prise en charge de la langue Texte. Je ne peux choisir que des paramètres régionaux standard, mais j'aimerais affiner. 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 faire cela dans Ubuntu ?

Meilleure réponse

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

Trouvez un guide

La première chose dont vous avez besoin pour personnaliser une locale est de connaître le format de la locale. Cet éditeur de paramètres régionaux Web contient une description complète de chaque champ d'un paramètre régional, même s'il n'est pas utilisable par n'importe qui d'une manière immédiate. 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. N'importe lequel fera l'affaire, même si VIM excellera.
  2. Un convertisseur texte-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 d'y enregistrer tout ce qui concerne le travail que vous ferez sur la locale.

Convertisseur de texte en unicode (encodestr)

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

Enregistrez le code suivant dans un fichier. Ce fichier sera identifié par votre système comme un script python, ce qui est bien car c'en est un. Ce guide suppose que vous avez appelé le script encodestr .

#!/usr/bin/env python3

import sys

def main():
    if len(sys.argv) != 2:
        exit(f'Usage: {sys.argv[0]} <string to encode>')
    print(encode(sys.argv[1]))

def encode(s):
    return ''.join(f"<U{ord(c):04X}>" for c in s)

if __name__ == '__main__':
    sys.exit(main())

Après l'avoir enregistré, donnez au fichier l'autorisation d'exécution - cela vous sera utile. Vous pouvez le faire en utilisant nautilus, ou en exécutant depuis un terminal la commande suivante, sur le répertoire dans lequel vous avez enregistré le script :chmod +x encodestr .

Vous pouvez maintenant tester ce script en l'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

La modification d'une locale existante est le cas le plus simple, car idéalement, vous choisirez une locale qui correspond presque totalement à vos besoins, auquel cas vous n'aurez à faire que de petites modifications. Pour le personnaliser, vous pouvez utiliser le guide pour savoir quelles sections sont celles 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 ouvrirez une locale est que vous lirez des mots anglais autant que bizarres <UXXXX> codes. Vous devrez être capable de créer ces codes - c'est là que le encodestr le script arrive.

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

Par exemple, le LC_TIME section contient le champ t_fmt , et plein d'autres. Chaque champ a sa propre description sur le guide.

Maintenant que vous savez quels champs modifier, utilisez à nouveau le guide pour savoir quelles valeurs le champ accepte.

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

Juste au moment où vous savez quoi écrire sur les champs que vous souhaitez modifier, exécutez le texte à travers le encodestr script pour obtenir son équivalent encodé.

En relation :Comment exécuter une application pendant une durée définie dans le shell ?

REMARQUE : Tous les champs n'ont pas besoin d'être encodés, utilisez une locale existante comme référence si nécessaire.

Par exemple, si vous souhaitez avoir le format d'heure Time: %T dans le t_fmt champ, exécutez ./encodestr "Time: %T"; cela renverra <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> et ainsi vous aurez la ligne t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> dans votre région (dans sa section respective, bien sûr).

Après avoir modifié tous les champs souhaités, vous devrez procéder à l'installation des paramètres régionaux sur le système, afin qu'ils puissent être utilisés. Passez à la section d'installation pour cela.

Créer un paramètre régional à partir de rien

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

LC_SECTION
copy "locale"
END LC_SECTION

LC_SECTION est la section que vous souhaitez modifier, et locale est la locale à partir de laquelle vous voulez copier cette section.

Par exemple, si vous souhaitez copier le format de l'heure dans les paramètres régionaux anglais, vous aurez ce texte dans votre fichier de paramètres régionaux personnalisés :

LC_TIME
copy "en_GB"
END LC_TIME

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

Installation de vos paramètres régionaux personnalisés

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

  1. Compilez vos paramètres régionaux. Ne pas paniquer! Cela ne prend pas de temps. Exécutez simplement la commande sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -vcustom est le nom de vos paramètres régionaux.

  2. Copiez vos paramètres régionaux dans /usr/share/i18n/locales/ annuaire. 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/locale est le nom de fichier de 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 elle est cruciale. Exécutez sudo locale-gen . Il est fort probable qu'il génère des références aux paramètres régionaux disponibles si nécessaire.

  5. Dites à votre système d'utiliser les paramètres régionaux. Si vous souhaitez que les paramètres régionaux soient utilisés à l'échelle du système, modifiez le /etc/environment dossier. Sinon, vous pouvez modifier votre ~/.profile fichier, ou tout autre qui provient au démarrage. Si vous ne savez pas ce que cela signifie, ne vous inquiétez pas, utilisez simplement le ~/.profile dossier. Pour savoir ce que vous devez y écrire, lancez d'abord le locale commande. Il devrait émettre une liste avec des éléments comme LANGUAGE , LC_MESSAGES , LC_CTYPE et plein d'autres. Vous écrirez, pour chacune des sections que vous souhaitez (listées par la commande précédente), sur des lignes distinctes, cette SECTION="locale"SECTION est la section et locale le nom de vos paramètres régionaux personnalisés.

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

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

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

Par exemple, si vous souhaitez utiliser les paramètres régionaux néerlandais et la langue anglaise, 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 tester cela en exécutant le locale commande à nouveau.

Connexe :Iptables - impossible d'initialiser le filtre de table ?

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


Ubuntu
  1. Comment installer Ruby sur Windows 10

  2. Comment changer les paramètres régionaux du système sur RHEL7 Linux

  3. Comment installer Gradle sur Ubuntu 18.04

  4. Comment configurer les paramètres régionaux du système sur CentOS 7

  5. Comment configurer les paramètres régionaux du système sur Ubuntu 16.04

Comment ajouter une imprimante à Ubuntu

Comment réinstaller Ubuntu

Comment installer urBackup sur Ubuntu 20.04

Comment installer Dropbox sur Ubuntu 18.04 et 16.04

Comprendre le fonctionnement d'un système de messagerie

Comment personnaliser Cinnamon Desktop dans le système Linux