Forzando una secuencia de comandos para ejecutarse en inglés

1

Mi Mac está ejecutando Mavericks en inglés, pero como mi región está configurada para Portugal y mi teclado es el portugués, cuando ejecuto algunos scripts, muestran mensajes en portugués. Por lo general, odio ejecutar software creado por personas no nativas en portugués porque la traducción siempre es mala. Termino con mensajes como "cubra no está definido". ¿Qué diablos es una "cubra"?

Entonces, estos scripts están leyendo algo del sistema y cambiando a portugués. ¿Hay alguna forma de obligarlos a correr siempre en inglés?

Mi terminal tiene esta opción seleccionada:

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

2 respuestas

2

Depende del programa. Si usa gettext , que es una biblioteca común para hacer la internacionalización, entonces establecer la variable de entorno LANG en en_US (o en_UK si desea que British Enligh vs. American English) haga el truco.

Si solo quiere que aplicaciones específicas usen mensajes en inglés, entonces puede asignar un alias al comando a algo como LANG=en_US command-you-want-in-english .

El alias depende de la shell que estés usando pero en bash (la shell predeterminada en MacOSX) pondrías el siguiente comando en tu .bashrc o .bash_profile :

alias command='LANG=en_US command'

En caso de duda, consulte la página de manual o el manual del comando que está ejecutando para ver si proporcionan detalles sobre cómo se implementa su internacionalización y cómo usted como usuario puede controlarlo.

    
respondido por el verdammelt 16.01.2014 - 14:35
0

Como no ha desactivado "Establecer las variables de entorno de configuración regional en el inicio", el terminal establece LANG según la región seleccionada en Preferencias del 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: コマンドが見つかりません

Puedes cambiar LANG agregando una línea como esta a ~/.bash_profile :

export LANG=en_US.UTF-8

Después de eso, los comandos anteriores deberían imprimir algo como esto:

$ 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 no tiene que ser configurado. LANG y LC_ALL son formas diferentes de cambiar las variables reales LC_ que se muestran entre LANG y LC_ALL anteriores. LANG se utiliza como un valor predeterminado para las variables de configuración regional no configuradas. LC_ALL anula las variables de configuración regional, incluso si se han establecido, y si está establecida, el cambio de otras variables de configuración regional no tiene ningún efecto.

Si desactiva "Establecer variables de entorno de configuración regional en el inicio" y no configura las variables de configuración regional en cualquier lugar, shells utilizará la configuración regional de C de forma predeterminada. Sin embargo, dificulta el trabajo con texto no ASCII. En bash, los caracteres no ASCII se muestran e insertan como secuencias de escape y, por ejemplo, ä se interpreta como M-l . Puede corregirlos mediante cambiando output-meta, input-meta y convert-meta in ~ / .inputrc , pero incluso entonces pbpaste y pbcopy jumble los caracteres UTF-8, ls muestra los caracteres no ASCII como signos de interrogación, y no puede escribir caracteres que no sean ASCII en Emacs. En mi opinión, es más fácil utilizar una configuración regional UTF-8.

    
respondido por el user495470 19.01.2014 - 06:28

Lea otras preguntas en las etiquetas