Lo usé wget
por primera vez después de instalar Lion OS X y noté que wget se localizó en mi idioma nativo. Ejecutar el set
comando en la terminal mostró que mi LANG
variable representa mi idioma local. ¿Dónde puedo cambiar esto o hacer que wget
ignore esta configuración?
actualizar
Esto es lo locale
que me da:
LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=
Por lo tanto, todos los resultados de los no parámetros (como avisos y mensajes de depuración) están en lituano. Ese es mi problema. Me gustaría que volviera a estar en inglés.
Estoy usando zsh
como mi shell de inicio de sesión.
De forma predeterminada, Terminal establece las variables de entorno locales para que coincidan con el idioma seleccionado actualmente y los formatos de hora/fecha/número que utiliza Terminal, que se selecciona a través de
Preferencias del sistema > Idioma y texto
(Ese es el nombre en Lion. En sistemas anteriores, el nombre exacto del panel de preferencias puede variar).
Una solución temporal es arrastrar el inglés a la parte superior de la lista de idiomas, luego abrir la Terminal y luego volver a colocar el lituano en la parte superior. Entonces solo Terminal estará en inglés. Sin embargo, se restablecerá a lituano si cierra y reinicia la Terminal.
Un enfoque persistente es decirle a Terminal que no establezca las variables de entorno locales, desactivando
Terminal > Preferencias > Configuración > [perfil] > Avanzado > Establecer variables de entorno locales al inicio
Luego, la configuración regional será "C" de manera predeterminada sin especificar un idioma, y la mayoría de los programas tendrán el inglés de manera predeterminada.
Tenga en cuenta que desactivar esto significa que algunos programas no sabrán qué codificación de caracteres está usando Terminal y asumirán que es solo ASCII o ISO-Latin-1. Entonces, si Terminal está usando UTF-8 (el valor predeterminado), esos programas pueden o no comportarse como se desea.
Si se trata principalmente de wget
, le recomiendo que haga una copia del perfil de configuración predeterminado, desactive la configuración regional en su perfil personalizado y solo use ese perfil cuando use wget
, para que pueda continuar usando UTF-8 con soporte completo. al usar otros programas, usando la configuración predeterminada.
Como han mencionado otros, también puede anular la configuración regional inicial proporcionada por Terminal en un script de inicio de shell. Para zsh, póngalo en ~/.zshrc. Para bash, use ~/.bashrc (y si aún no tiene uno, cree un ~/.bash_profile que ejecute ~/.bashrc).
Consulte x-man-page://1/locale para obtener más información sobre cada uno de los valores del entorno local.
Sin embargo, si simplemente unset LANG
lo configurara o lo configurara en "C", eso normalmente se aplicaría a todos sus shells y programas, mientras que la mayoría de las veces probablemente desee usar UTF-8 y hacer que Terminal configure las variables locales para que coincidan, para conseguir el mayor grado de cooperación, fidelidad y funcionalidad.
Por lo tanto, si va a seguir esa ruta, le sugiero que escriba código para editar, en lugar de reemplazar, los valores iniciales, de modo que conserve la información de codificación ("UTF-8") y simplemente fuerce el idioma al inglés. en lugar de establecer las variables en "C".
Por ejemplo, esto funciona en zsh y bash:
# Replace Lithuanian with English
export LANG=${LANG/lt_LT/en_US}
Cuando LANG="lt_LT.UTF-8"
, esto lo cambiará a LANG="en_US.UTF-8"
. No tengo wget
disponible para probar esto, pero esto debería ser suficiente.
Hacerlo de esta manera significa que si cambia la preferencia de codificación de caracteres en la Terminal, no la anulará en su secuencia de comandos de inicio de shell.
LANG
comando de redefinición: echo ${LANG/*./en_US.}
reemplaza el nombre cultural actual con en_US
independientemente de cuál sea; trabaja en bash
, ksh
, zsh
.Está puesto aquí...
Si desea más o menos opciones en el menú desplegable, diríjase a la pestaña Codificaciones para ver aún más de la recompensa.
LANG=
y los demás valores predeterminados en "C"
.Resolví este problema configurando el idioma en mi archivo .profile que se carga cada vez que inicio una terminal.
export LANG="en_US.UTF-8"
export LC_ALL="POSIX"
LC_ALL
overrides LANG
, por lo que su primer comando no tendrá efecto.POSIX
es equivalente a C
y eso no hace frente a Unicode en absoluto.Basado más en la experiencia de Linux, si no desea cambiar su localización completamente con LC_LANG, pero solo desea tener mensajes del sistema en inglés, debe configurar
LC_COLLATE=C (to have standard sorting in ls, etc)
LC_CTYPE=en_US.UTF-8
LC_MESSAGES
variable que controla en qué idioma deben salir los mensajes (si está instalado).Las otras respuestas son correctas, es decir, sobre la Terminal
configuración para establecer las variables de entorno locales en el inicio y el uso del shell /etc/profile
. Sin embargo, hay otra forma que vale la pena entender, especialmente si el "problema" se experimenta debido a un inicio de ssh
sesión remoto.
OpenSSH (como se usa en Linux, BSD y macOS) puede enviar variables de entorno desde el entorno del cliente al shell que inicia el servidor. Solo hace esto si el cliente está configurado para enviarlos y el servidor está configurado para aceptarlos. El cliente ( ~/.ssh/config
) necesitaría tener:
SendEnv LANG LC_*
y el servidor ( /etc/ssh/sshd_config
) necesitaría:
AcceptEnv LANG LC_*
Si ambos están en su lugar, el local del cliente se propaga al shell de inicio de sesión en el servidor ssh:
$ ssh me@my-mac locale
LANG="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_ALL=
La configuración de servidor necesaria no existe de forma predeterminada en Snow Leopard ; está allí en la Sierra . ¡Recuerde reiniciar el servidor SSH después de modificar /etc/sshd_config
!
Usando un servidor debian en francés y un cliente macsox bash, "simplemente" tuve que agregar esto a mi .bash_profile en el directorio de usuarios de macosx:
exportar LANG=fr_FR.UTF-8
Resuelto.
bmike
wget
? ¿Y quélocale
muestra y es lo mismo que espera de su selección de idioma en el panel de preferencias del sistema Idioma y texto ?