¿Por qué reemplazar la variable de entorno LANG no cambia el idioma para mí?

11

Estoy tratando de ejecutar una aplicación en otro idioma como mi entorno actual. Para empezar simple, quería cambiar el idioma de ls.

Esto es lo que leí por todas partes (ver abajo para preguntas relacionadas): establecer LANGen una de las configuraciones regionales compatibles, por ejemplo:

LANG=nl_NL.UTF-8 ls /nonexistent

para que muestre la salida holandesa (NL).

Sin embargo, todavía obtengo salida en inglés:

$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory

Mi entorno actual:

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

Para estar seguro, he comprobado:

  • La configuración regional es compatible:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    nl_NL@euro ISO-8859-15
    
  • El entorno local se genera:

    sudo locale-gen nl_NL.UTF-8
    

    y sudo dpkg-reconfigure localestambién muestra que se genera.

  • Instalado el paquete de idioma holandés (ya instalado):

    sudo apt-get install language-pack-nl
    

¿Qué más he probado?

  • Utilizando exportpara configurar ambos LANGy en LANGUAGElugar de anteponer el comando.
  • Ajuste también LC_ALL.

Irónicamente, algunas (¡solo algunas!) Aplicaciones GUI están en holandés, ¡pero no lo he configurado en absoluto!

ingrese la descripción de la imagen aquí

Estoy en Kubuntu 12.04 (.2), ​​por lo que eso importa.

Preguntas similares (sin resultado):

¿Qué hay de malo en mi sistema? ¿Dónde depurar esto más?

gertvdijk
fuente

Respuestas:

12

Porque LANGUAGE, que tiene prioridad sobre LANG, está establecido y sin cambios.

$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet

Más información está en la documentación de gettext de GNU :

GNU gettext da preferencia a LANGUAGE sobre LC_ALL y LANG para el manejo de mensajes, pero aún necesita tener LANG (o LC_ALL) configurado en el idioma principal; Esto es requerido por otras partes de las bibliotecas del sistema.

Gunnar Hjalmarsson
fuente
Juraría que ya había intentado esto. Sin embargo, mirando mi historial de shell, creo que esto se debe a que solo lo intenté antes de generar la configuración regional. ¿Podría incluir una fuente de por qué "LANGUAGE tiene prioridad sobre LANG"? Gracias por el aviso.
gertvdijk