Comment puis-je changer la langue de sortie des commandes de ma langue maternelle à l'anglais, afin de pouvoir poster ma question Ask Ubuntu avec une sortie de commande en anglais (messages d'erreur) ?
Réponses
Trop de publicités?export LC_ALL=C
est suffisante. Toutes les sorties de commande ultérieures seront en anglais.
Plus d'informations : Que fait "LC_ALL=C" ?
Si vous souhaitez revenir à la langue maternelle, désactivez l'option LC_ALL
variable :
unset LC_ALL
Fonction bash pour le terminal
Voici ma fonction bash pour passer de la locale DE à la locale 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 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 changer les 3 variables d'environnement LC_ALL
, LANG
, LANGUAGE
pour éviter les mauvais comportements de certains programmes.
S'adapter à votre langue
Étendre le code à votre langue maternelle est assez simple. Vous pouvez trouver les valeurs nécessaires en invoquant la commande suivante
env |egrep -e 'LC_ALL|LANG'
Ouvrir un terminal Ctrl + Alt + T et le type :
LANG=en_US.UTF-8 bash
o :
LC_ALL=C bash
Maintenant la sortie du terminal est en langue anglaise. Vous pouvez le vérifier avec locale
.
Il est possible de créer une commande pour faire cela avec une permanent alias
. Ouvrez le .bashrc
avec votre éditeur préféré et mettez-y le code suivant :
alias basheng='LANG=en_US.UTF-8 bash'
o :
alias basheng='LC_ALL=C bash'
Redémarrez le Shell de Bash. Maintenant vous avez la commande basheng
. Tapez-le dans le Bash pour obtenir un Bash anglais Shell. Pour quitter le Shell anglais, tapez exit
.
Quelle:
Ceci est configuré via locale qui peuvent être définis via une variable d'environnement. Il existe quatre couches de variables ; la première qui est définie a la priorité :
-
LANGUAGE
- ne l'utilisez pas, il est rarement utile et peut provoquer des bogues. Malheureusement, certaines versions d'Ubuntu le définissent, vous devrez donc peut-être le désactiver. -
LC_ALL
- Remplace les paramètres spécifiques à la catégorie, destiné principalement à être utilisé par les programmes qui veulent s'exécuter dans la locale par défaut. Ils ne sont pas destinés à être utilisés comme paramètres globaux. - Les variables spécifiques à une catégorie commençant par
LC_
:LC_CTYPE
,LC_MESSAGES
,LC_TIME
, . -
LANG
- définit la locale par défaut pour toutes les catégories, destinée à être utilisée dans une configuration utilisateur globale.
La locale "simple", avec tous les messages non traduits, les formats d'heure et de chiffres par défaut, le jeu de caractères ASCII, etc. est appelée 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
o
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Pour exécuter un programme avec toutes les localisations désactivées, exécutez
env -u LANGUAGE LC_ALL=C myprogram --option
mais attention, cela bascule le codage des caractères en ASCII (donc pas d'Unicode, de latin-1, etc.).
Ver Sur quoi dois-je régler mes paramètres locaux et quelles sont les implications de cette opération ? pour un aperçu plus détaillé des locales.
Dans votre ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
puis
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ébloquer d'abord ?
LC_ALL Remplace les paramètres individuels de LC_* : si LC_ALL est défini, aucun des paramètres de LC_* ne sera modifié. ci-dessous n'a d'effet.
- Réponses précédentes
- Plus de réponses