Aunque funciona, me deja un poco "desorientado" pues aunque no cerrase y lanzase de nuevo la sesión X , los "eterm" y "xterm" deberían leer el ".basrc" cada vez que son lanzados. Realmente para todas las variables LC_*, LANG y LANGUAGE que definía, su cambio era reflejado al lanzar los "eterm" y "xterm", pero aunque no definía LC_ALL, esta seguía apareciendo con algún valor que no sabía de donde lo leía (¿podría tenerlo en algún tipo de cache?)
Por ahora como solución temporal, mantendré la variable LC_COLLATE=C, aunque creo que debe haber algún bug en los ficheros "/usr/share/i18n/locales/es_ES" y "/usr/share/i18n/locales/es_ES@euro" en sus secciones LC_COLLATE que es donde supongo que se definen las reglas de ordenación (no obstante esto son suposiones, pues no soy un experto).
Esto ya como curiosidad:¿alguien podría recordarme como se hace que las consolas en modo texto vuelva a leer los archivos de configuración sin salir y volver a entrar? (se que se puede hacer pero no recuerdo como) Igualmente, ¿hay algún método para que las X re-lean los archivos de configuración sin tener que cerrarlas y volverlas a abrir?
Daniel Peña wrote:
Gracias Santiago,primero he instalado el paquete user-euro-es (y purgado el user-es) para tener también soporte para el euro (ejecutando "eurocastellanizar"). Después he modificado el fichero /etc/language-euro-es para reflejar los cambios que sugieres. Este fichero se lee desde el ".bashrc" para intentar que el "eterm" o "xterm" también lo lean. En modo consola funciona perfectamente.He ejecutado "dpkg-reconfigure locales" y a la pregunta "Which locale should be the default in the system environment?" elijo "None" para evitar que automáticamente asigne cualquier valor.Pero utilizando las X, lanzando un "eterm" o un "xterm", no se como la variable LC_ALL se pone automáticamente a "es_ES@euro". He hecho un "grep -r 'LC_ALL' *" en "/etc" , en "/usr" y en "/home/MiHome" y no encuentro el script dónde se fija la variable (supongo que debe haber algo parecido al ".bash_profile" o ".bashrc" para esos programas).Santiago Vila wrote:On Sat, 26 Jun 2004, Daniel Peña wrote:Antes de nada indicar que utilizo Debian Woody (stable). Al hacer un "ls" con una simple expresión regular "ls [A-Z][A-Z]*" (trato de listar los ficheros cuyos nombres comiencen con 2 letras mayúsculas), inexplicablemete me lista todo el directorio y todos los que cuelgan de él sin tener en cuenta la expresión regular, como si hubiese hecho un "ls *". Tras horas de pruebas, se me enciende la bombilla: ¿No será algo relaccionado con los locales? Tengo instalado el paquete "user-es" para "castellanizar" Debian, y las variables de entorno LANG, LANGUAGE, LC_ALL, LC_MESSAGES con el valor de "es_ES" (con los locales es_ES y es_ES@euro generados). Con esto obtengo los mensajes del sistema y las páginas "man" en castellano.Tras hacer (en bash) "export LC_ALL=C" el "ls [A-Z][A-Z]*" funciona comosupongo que debe hacerlo, pero pierdo los mensajes del sistema y las páginas "man" en castellano. Ahora están en inglés.Tras hacer pruebas haciendo combinaciones entre todas las variables LC_*(LC_CTYPE, LC_COLLATE, etc...) y los valores "C" y "es_ES" e incluso "none", veo ejecutando el programa "locale" que da igual el valor quetengan las variables LC_* mediante "export", pues el valor que se asignea LC_ALL, es el valor que toman el resto de LC_*. Ahora la pregunta: ¿Cómo podría obtener mensajes y páginas "man" en castellano y que el "ls" funcione correctamente con esa expresión regular?Prueba esto: * No le des ningún valor a la variable LC_ALL. En ninguna parte. * export LANG=es_ES * export LC_COLLATE=C Así todas las variables valdrán "es_ES" menos LC_COLLATE que valdrá "C" y que por lo que parece, es la variable que determina cuál será la "traducción" de [A-Z].