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
- Un éditeur de texte. N'importe lequel fera l'affaire, même si VIM excellera.
- 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 champt_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é.
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 let_fmt
champ, exécutez./encodestr "Time: %T"
; cela renverra<U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
et ainsi vous aurez la lignet_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
Où 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.
-
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 -v
oùcustom
est le nom de vos paramètres régionaux. -
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 commandesudo cp locale /usr/share/i18n/locales/
oùlocale
est le nom de fichier de vos paramètres régionaux personnalisés. -
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 lignecustom UTF-8
, où custom est le nom de vos paramètres régionaux. -
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. -
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 lelocale
commande. Il devrait émettre une liste avec des éléments commeLANGUAGE
,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, cetteSECTION="locale"
oùSECTION
est la section etlocale
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"
où 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":XX
où XX
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.
Veuillez commenter les incohérences ou les fausses déclarations dans ce guide !