Comment puis-je changer la langue de sortie de la commande de ma langue maternelle en anglais pour pouvoir poser ma question Ask Ubuntu avec une sortie de commande en anglais (messages d'erreur)?
Comment puis-je changer la langue de sortie de la commande de ma langue maternelle en anglais pour pouvoir poser ma question Ask Ubuntu avec une sortie de commande en anglais (messages d'erreur)?
Réponses:
export LC_ALL=C
est assez. Toutes les commandes suivantes seront en anglais.
Plus d'informations: Que fait "LC_ALL = C"?
Si vous souhaitez revenir à la langue maternelle, désélectionnez la LC_ALL
variable:
unset LC_ALL
Voici ma fonction bash pour basculer entre les paramètres régionaux DE et EN.
Vous pouvez étendre ce code avec vos langues préférées. Pour l'utiliser, mettez-le dans votre ~/.bashrc
(ou ~/.bash_profile
) -
Appelez-le avec _configure_locale EN
pour basculer en anglais.
function _configure_locale() { # [profile]
local profile=${1:-EN}
case ${profile} in
DE|DE_DE|de_DE)
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_US:en"
;;
EN|EN_US|en|en_US)
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
;;
*)
echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
;;
esac
LC_PAPER="de_DE.UTF-8"; # independent from locale
LESSCHARSET="utf-8"; # independent from locale
MM_CHARSET="utf-8" # independent from locale
echo "locale settings" "${LANG}";
export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}
En général , je suggère de changer les 3 variables d'environnement LC_ALL
, LANG
, LANGUAGE
pour éviter les mauvais comportements de certains programmes.
L'extension du code dans votre langue maternelle est assez simple. Vous pouvez trouver les valeurs nécessaires en appelant la commande suivante
env |egrep -e 'LC_ALL|LANG'
case
et en spécifiant l'entrée pour qu'elle soit conforme au <lang>_<country>
format. Ensuite, vous pouvez simplement le passer, en supposant que UTF-8. Si vous êtes vraiment intéressé par une solution bien rangée, vous devriez probablement vérifier les entrées de l'utilisateur locale -a
pour vous assurer que les paramètres régionaux demandés sont réellement installés.
Ouvrez un terminal Ctrl+ Alt+ Tet tapez:
LANG=en_US.UTF-8 bash
ou :
LC_ALL=C bash
Maintenant, la sortie du terminal est en anglais. Vous pouvez vérifier avec locale
.
Il est possible de faire une commande pour le faire avec un permanentalias
. Ouvrez le .bashrc
fichier avec votre éditeur préféré et insérez le code suivant:
alias basheng='LANG=en_US.UTF-8 bash'
ou :
alias basheng='LC_ALL=C bash'
Redémarrez le shell Bash. Maintenant vous avez la commande basheng
. Tapez-le dans le Bash pour obtenir un shell Bash anglais. Pour quitter le type de shell anglais exit
.
La source:
LANG
n'est pas suffisant pour tenter toutes les sorties.
LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash
meilleur?
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
.
Ceci est configuré via les paramètres régionaux , qui peuvent être définis via une variable d'environnement. Il y a quatre couches de variables; le premier qui est défini est prioritaire:
LANGUAGE
- ne l'utilisez pas, c'est rarement utile et peut causer des bugs. Malheureusement, certaines versions d’Ubuntu le configurent, vous devrez donc peut-être le désactiver.LC_ALL
- remplace les paramètres spécifiques à la catégorie, destinés principalement aux programmes qui souhaitent s'exécuter dans les paramètres régionaux par défaut. Non destiné à être utilisé comme paramètres globaux.LC_
: LC_CTYPE
, LC_MESSAGES
, LC_TIME
, ....LANG
- définit les paramètres régionaux par défaut pour toutes les catégories, destinés à être utilisés dans les paramètres utilisateur globaux.Les paramètres régionaux «ordinaires», avec tous les messages non traduits, les formats d’heure et de nombre par défaut, le jeu de caractères ASCII, etc. sont appelés C
. Cette locale est présente sur tous les systèmes.
Ainsi, pour exécuter un programme avec des messages en anglais, exécutez
unset LANGUAGE; LC_MESSAGES=C myprogram --option
ou
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Pour exécuter un programme avec toute la localisation désactivée, exécutez
env -u LANGUAGE LC_ALL=C myprogram --option
mais attention, cela change le codage de caractères en ASCII (donc pas d'Unicode, latin-1, etc.).
Voir A quoi dois-je définir mes paramètres régionaux et quelles en sont les conséquences? pour un aperçu plus détaillé des lieux.
LANGUAGE
est qu'il passe avant LC_ALL
, ce qui cause des bogues, car les programmes sont configurés LC_ALL
pour obtenir une sortie prévisible, puis confus, car ils n'obtiennent pas la sortie attendue.
LANGUAGE
est néanmoins une mauvaise idée, car les avantages sont très minces alors que les bugs peuvent être ennuyeux et difficiles à trouver. Vous avez raison cependant, je devrais mentionner la non-prise LANGUAGE
.
Le moyen le plus simple consiste à ouvrir le terminal en appuyant sur Alt + F2 et en exécutant la commande suivante:
env LANGUAGE=en gnome-terminal
dans votre ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
ensuite
source ~/.bashrc
Vérifie ça
$ locale
LANG=pl_PL.utf8
LANGUAGE=
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES=C
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=
Pourquoi désarmer d'abord?
LC_ALL Remplace les paramètres individuels de LC_ *: si LC_ALL est défini, aucun des éléments ci-dessous n'a d'effet.
Terminé.
LANG
cette façon, et cela pourrait aider, mais nous n'exigeons pas que les messages d'erreur copiés soient en anglais. Nous exigeons que ce que l'auteur a écrit soit en anglais (bien que nous le traduisions habituellement au lieu de poser des questions). Donc, une question écrite en anglais avec un texte de terminaison espagnol convient, alors qu'une question écrite en espagnol avec un texte de terminaison en anglais ne l’est pas.