Come posso cambiare la lingua di output dei comandi dalla mia lingua madre all'inglese, quindi posso pubblicare la mia domanda su Ubuntu con l'output del comando inglese (messaggi di errore)?
Come posso cambiare la lingua di output dei comandi dalla mia lingua madre all'inglese, quindi posso pubblicare la mia domanda su Ubuntu con l'output del comando inglese (messaggi di errore)?
export LC_ALL=C
è sufficiente. Tutti i successivi comandi saranno in inglese.
Ulteriori informazioni: Che cosa fa "LC_ALL = C"?
Se vuoi ripristinare la lingua nativa, disattiva la variabile LC_ALL
:
unset LC_ALL
Questa è la mia funzione bash per passare da DE a locale EN.
Puoi estendere questo codice con le tue lingue preferite.
Per utilizzarlo, inseriscilo nella tua ~/.bashrc
(o ~/.bash_profile
) -
Chiamalo con _configure_locale EN
per passare all'inglese.
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
}
In generale suggerisco di cambiare tutte e 3 le variabili d'ambiente LC_ALL
, LANG
, LANGUAGE
per evitare comportamenti scorretti di alcuni programmi.
Estendere il codice alla tua lingua nativa è abbastanza semplice. Puoi trovare i valori necessari invocando il seguente comando
env |egrep -e 'LC_ALL|LANG'
Apri un terminale Ctrl + Alt + T e digita:
LANG=en_US.UTF-8 bash
o :
LC_ALL=C bash
Ora l'output del terminale è in inglese. Puoi controllarlo con locale
.
È possibile eseguire un comando per farlo con un permanente alias
. Apri il file .bashrc
con il tuo editor preferito e inserisci il seguente codice:
alias basheng='LANG=en_US.UTF-8 bash'
o :
alias basheng='LC_ALL=C bash'
Riavvia la shell Bash. Ora hai il comando basheng
. Digitalo nel Bash per ottenere una shell Bash inglese. Per lasciare il tipo di shell inglese exit
.
Fonte:
Questo è configurato tramite le impostazioni locale , che possono essere impostate tramite la variabile di ambiente. Ci sono quattro livelli di variabili; il primo impostato ha la precedenza:
LANGUAGE
- non utilizzare è raramente utile e può causare bug. Sfortunatamente, alcune versioni di Ubuntu lo hanno impostato, quindi potrebbe essere necessario disattivarlo. LC_ALL
: sovrascrive le impostazioni specifiche per categoria, destinate principalmente ai programmi che desiderano eseguire nelle impostazioni internazionali predefinite. Non inteso per essere utilizzato come impostazioni globali. LC_
: LC_CTYPE
, LC_MESSAGES
, LC_TIME
, .... LANG
: imposta le impostazioni internazionali predefinite per tutte le categorie, destinate a essere utilizzate in impostazioni utente globali. Le impostazioni locali "semplici", con tutti i messaggi non tradotti, i formati di ora e numero predefiniti, ASCII come set di caratteri, ecc. sono chiamati C
. Questa locale è presente su ogni sistema.
Pertanto, per eseguire un programma con messaggi in inglese, esegui
unset LANGUAGE; LC_MESSAGES=C myprogram --option
o
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Per eseguire un programma con tutte le localizzazioni disattivate, esegui
env -u LANGUAGE LC_ALL=C myprogram --option
ma attenzione che questo cambi la codifica dei caratteri in ASCII (quindi nessun Unicode, latin-1, ecc.).
Vedi A cosa devo impostare le mie impostazioni internazionali e quali sono le implicazioni in tal senso? per una panoramica più dettagliata delle impostazioni locali.
Il modo più semplice è aprire il terminale premendo Alt + F2 ed eseguendo questo comando:
env LANGUAGE=en gnome-terminal
nel tuo ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
poi
source ~/.bashrc
Controllalo
$ 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=
Perché prima disinserire?
LC_ALL Sovrascrive le singole impostazioni LC_ *: se LC_ALL è impostato, nessuno di il sotto ha qualche effetto.
link
Fatto.
Leggi altre domande sui tag command-line locale