Forzare uno script per l'esecuzione in inglese

1

Il mio Mac sta eseguendo Mavericks in inglese, ma poiché la mia regione è impostata in Portogallo e la mia tastiera è quella portoghese, quando eseguo alcuni script mostrano messaggi in portoghese. Generalmente odio eseguire software creati da persone non native in portoghese perché la traduzione è sempre pessima. Termino con messaggi come "cubra non è definito". Che diavolo è un "cubra"?

Quindi, questi script stanno leggendo qualcosa dal sistema e passando al portoghese. C'è un modo per costringerli a correre sempre in inglese?

Il mio terminale ha questa opzione selezionata:

Terminal > Preferences > Settings > [profile] > Advanced > Set locale environment variables on startup
    
posta SpaceDog 16.01.2014 - 14:17
fonte

2 risposte

2

Dipende dal programma. Se usa gettext che è una libreria comune per l'internazionalizzazione, allora l'impostazione della variabile di ambiente LANG su en_US (o en_UK se vuoi l'inglese Enligh e l'inglese americano) dovrebbe fare il trucco.

Se solo desidera che applicazioni specifiche usino messaggi in inglese, puoi eseguire alias il comando con qualcosa come LANG=en_US command-you-want-in-english .

L'aliasing dipende da quale shell stai usando, ma in bash (la shell predefinita su MacOSX) inseriresti il seguente comando in .bashrc o .bash_profile :

alias command='LANG=en_US command'

In caso di dubbi, consulta la pagina man o il manuale per il comando che stai eseguendo per vedere se forniscono dettagli su come viene implementata la loro internazionalizzazione e su come puoi controllarlo come utente.

    
risposta data 16.01.2014 - 14:35
fonte
0

Poiché non hai deselezionato "Imposta le variabili dell'ambiente locale all'avvio", Terminal imposta LANG in base alla regione selezionata in Preferenze di Sistema.

$ defaults read -g AppleLocale
ja_JP
$ locale
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=
$ asd
bash: asd: コマンドが見つかりません

Puoi modificare LANG aggiungendo una riga come questa a ~/.bash_profile :

export LANG=en_US.UTF-8

Dopo di ciò i comandi di cui sopra dovrebbero stampare qualcosa del tipo:

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
$ asd
bash: asd: command not found

LC_ALL non deve essere impostato. LANG e LC_ALL sono modi diversi per cambiare le effettive variabili LC_ mostrate tra LANG e LC_ALL sopra. LANG viene utilizzato come valore predefinito per le variabili locali non impostate. LC_ALL sostituisce le variabili locali anche se sono state impostate e, se è impostata, la modifica di altre variabili locali non ha alcun effetto.

Se si deseleziona "Imposta variabili ambiente locale all'avvio" e non si configurano le variabili locali in nessun luogo, le shell useranno le impostazioni locali C per impostazione predefinita. Tuttavia, rende difficile lavorare con testo non ASCII. In bash i caratteri non ASCII vengono visualizzati e inseriti come sequenze di escape e ad esempio ä viene interpretato come M-l . Puoi correggere tutti quelli di cambiando output-meta, input-meta e convert-meta in ~ / .inputrc , ma anche allora pbpaste e pbcopy mescolano caratteri UTF-8, ls mostra caratteri non ASCII come punti interrogativi e non è possibile digitare caratteri non ASCII in Emacs. A mio parere, è più semplice utilizzare le impostazioni internazionali UTF-8.

    
risposta data 19.01.2014 - 06:28
fonte

Leggi altre domande sui tag