Información y configuración del idioma del sistema con locale
Si únicamente queremos saber el idioma configurado en el sistema, podemos hacerlo con echo $LANGUAGE
Pero si queremos más información, tenemos dos comandos que nos permiten trabajar con el idioma del sistema: locale
y localectl
En este artículo veremos el uso del comando locale.
Su uso más básico, si parámetros, nos devuelve la configuración local actual para cada categoría:
$ locale LANG=es_ES.UTF-8 LANGUAGE=es_ES LC_CTYPE="es_ES.UTF-8" LC_NUMERIC="es_ES.UTF-8" LC_TIME="es_ES.utf8" LC_COLLATE="es_ES.UTF-8" LC_MONETARY="es_ES.UTF-8" LC_MESSAGES="es_ES.UTF-8" LC_PAPER="es_ES.UTF-8" LC_NAME="es_ES.UTF-8" LC_ADDRESS="es_ES.UTF-8" LC_TELEPHONE="es_ES.UTF-8" LC_MEASUREMENT="es_ES.UTF-8" LC_IDENTIFICATION="es_ES.UTF-8" LC_ALL=
Los valores de estas variables son: idioma_país.codificación. En mi caso, me muestra que tengo configurado en español de España y con una codificación UTF-8. Para ver todas las codificaciones disponibles, podemos usar locale -m
Podemos ver todos las configuraciones disponibles en nuestro sistema con locale -a:
$ locale -a C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IL en_IL.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 es_AR.utf8 es_BO.utf8 es_CL.utf8 es_CO.utf8 es_CR.utf8 es_CU es_CU.utf8 es_DO.utf8 es_EC.utf8 es_ES.utf8 es_GT.utf8 es_HN.utf8 es_MX.utf8 es_NI.utf8 es_PA.utf8 es_PE.utf8 es_PR.utf8 es_PY.utf8 es_SV.utf8 es_US.utf8 es_UY.utf8 es_VE.utf8 POSIX
Por lo que en cualquier momento podría cambiar a otra configuración. Si quisiera configurar mi sistema a español de Argentina, escribiré:
sudo update-locale LANG=es_AR.UTF-8 LANGUAGE
O editando el fichero de configuración /etc/default/locale
o /etc/locale.conf
(según la distribución) y escribir en ese fichero:
LANG=es_AR.UTF-8
Si queremos mostrar el contenido de las variables de entorno de locale, podemos hacerlo con locale -k, excepto para las que sólo contienen una cadena, como LANG o LANGUAGE, que lo haremos con echo:
$ echo $LANG es_ES.UTF-8 $ echo $LANGUAGE es_ES
Para las colecciones sí que lo haremos con locale -k:
$ locale -k LC_MONETARY int_curr_symbol="EUR " currency_symbol="€" mon_decimal_point="," mon_thousands_sep="." mon_grouping=3;3 positive_sign="" negative_sign="-" int_frac_digits=2 frac_digits=2 p_cs_precedes=0 p_sep_by_space=1 n_cs_precedes=0 n_sep_by_space=1 p_sign_posn=1 n_sign_posn=1 crncystr="+€" int_p_cs_precedes=0 int_p_sep_by_space=1 int_n_cs_precedes=0 int_n_sep_by_space=1 int_p_sign_posn=1 int_n_sign_posn=1 duo_int_curr_symbol="EUR " duo_currency_symbol="€" duo_int_frac_digits=2 duo_frac_digits=2 duo_p_cs_precedes=0 duo_p_sep_by_space=1 duo_n_cs_precedes=0 duo_n_sep_by_space=1 duo_int_p_cs_precedes=0 duo_int_p_sep_by_space=1 duo_int_n_cs_precedes=0 duo_int_n_sep_by_space=1 duo_p_sign_posn=1 duo_n_sign_posn=1 duo_int_p_sign_posn=1 duo_int_n_sign_posn=1 uno_valid_from=10101 uno_valid_to=99991231 duo_valid_from=10101 duo_valid_to=99991231 conversion_rate=1;1 monetary-decimal-point-wc=44 monetary-thousands-sep-wc=46 monetary-codeset="UTF-8"