Comment puis-je basculer le langage de sortie de commande de ma langue maternelle vers l'anglais, afin de pouvoir poster ma question Ask Ubuntu avec une sortie de commande en anglais (messages d'erreur)?
export LC_ALL=C
suffit. Toutes les sorties de commandes ultérieures seront en anglais.
Plus d'informations: Que fait "LC_ALL = C"?
Si vous souhaitez revenir au langage natif, désactivez la variable LC_ALL
:
unset LC_ALL
Voici ma fonction bash pour basculer entre les environnements locaux DE et EN.
Vous pouvez étendre ce code avec vos langues préférées.
Pour l'utiliser, placez-le dans votre ~/.bashrc
(ou ~/.bash_profile
) -
Appelez-le avec _configure_locale EN
pour passer à l'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 modifier les 3 variables d'environnement LC_ALL
, LANG
, LANGUAGE
pour éviter les comportements malveillants de certains programmes.
Étendre le code à votre langue maternelle est assez simple. Vous pouvez trouver les valeurs nécessaires en appelant la commande suivante
env |egrep -e 'LC_ALL|LANG'
Ouvrez un terminal Ctrl + Alt + T et tapez:
LANG=en_US.UTF-8 bash
ou :
LC_ALL=C bash
Maintenant, la sortie du terminal est en anglais. Vous pouvez le vérifier avec locale
.
Il est possible d’effectuer une commande à cet effet avec un permanent alias
. Ouvrez le fichier .bashrc
avec votre éditeur préféré et insérez-y 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 shell anglais, tapez exit
.
Source:
Ceci est configuré via les paramètres locale , qui peuvent être définis via la variable d’environnement. Il y a quatre couches de variables; le premier défini est prioritaire:
LANGUAGE
- ne pas utiliser c'est rarement utile et peut causer des bugs. Malheureusement, certaines versions d'Ubuntu l'ont configurée, vous devrez donc peut-être la désactiver. LC_ALL
- remplace les paramètres spécifiques à la catégorie, principalement destinés à être utilisés par les programmes qui souhaitent s'exécuter 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 "plain", avec tous les messages non traduits, les formats de date et d’heure par défaut, ASCII en tant que jeu de caractères, 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 des caractères en ASCII (donc pas d'Unicode, latin-1, etc.).
Voir Que dois-je définir pour mes paramètres régionaux et quelles en sont les implications? pour une présentation plus détaillée des paramètres régionaux.
La méthode la plus simple consiste à ouvrir le terminal en appuyant sur Alt + F2 et en exécutant cette commande:
env LANGUAGE=en gnome-terminal
dans votre ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
alors
source ~/.bashrc
Vérifiez-le
$ 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ésélectionner d’abord?
LC_ALL Remplace les paramètres LC_ * individuels: si LC_ALL est défini, aucun les éléments ci-dessous ont un effet.
lien
Fait.
Lire d'autres questions sur les étiquettes command-line locale