En el sistema → Administración → Soporte de idiomas → Texto. Solo puedo elegir configuraciones regionales estándar, pero me gustaría ajustarlas. Por ejemplo, en Windows podría personalizar manualmente cosas como el formato de hora y fecha, unidades de medida, separador decimal, moneda, etc. ¿Cómo puedo hacer esto en Ubuntu?
Mejor respuesta
Esta respuesta demostrará cómo personalizar completamente una configuración regional, opcionalmente usando una configuración regional existente como base. El tipo de configuración regional que se usará en esta respuesta es i18n
tipo; dicho tipo de lugar estará implícito en cada mención de la palabra "lugar" en el cuerpo de la respuesta.
Buscar una guía
Lo primero que necesita para personalizar una configuración regional es conocer el formato de la configuración regional. Este editor de configuración regional web tiene una descripción completa de cada campo en una configuración regional, a pesar de que cualquiera no puede utilizarlo de inmediato. Esta será la guía de uso.
Herramientas necesarias
Las únicas herramientas que necesita para trabajar con locales son
- Un editor de texto. Cualquiera servirá, aunque VIM sobresaldrá.
- Un convertidor de texto a Unicode. Lo más probable es que no tuvieras uno, así que te proporcionaré uno simple. Lea la siguiente subsección para obtenerlo.
Te recomiendo que crees un directorio y guardes en él todo lo relacionado con el trabajo que harás en la configuración regional.
Convertidor de texto a Unicode (encodestr)
Guarde el siguiente código en un archivo. Su sistema identificará este archivo como una secuencia de comandos de python, lo cual está bien porque es uno. Esta guía asume que llamaste al script encodestr
.
#!/usr/bin/env python3
import sys
def main():
if len(sys.argv) != 2:
exit(f'Usage: {sys.argv[0]} <string to encode>')
print(encode(sys.argv[1]))
def encode(s):
return ''.join(f"<U{ord(c):04X}>" for c in s)
if __name__ == '__main__':
sys.exit(main())
Una vez que lo haya guardado, otorgue permiso de ejecución al archivo; esto será útil. Puede hacerlo usando nautilus, o ejecutando desde una terminal el siguiente comando, en el directorio en el que guardó el script:chmod +x encodestr
.
Ahora puede probar este script ejecutándolo en el mismo directorio:./encodestr hello
. Debería obtener una salida igual a <U0068><U0065><U006C><U006C><U006F>
.
Modificar una configuración regional existente
La modificación de una configuración regional existente es el caso más fácil, ya que idealmente elegirá una configuración regional que se adapte a sus necesidades casi por completo, en cuyo caso solo necesita realizar pequeñas modificaciones. Para personalizarlo, puede usar la guía para saber cuáles de las secciones son las que desea cambiar y cómo puede cambiarlas. Todas las configuraciones regionales instaladas residen en /usr/share/i18n/locales
, sin embargo, la guía contiene casi todas las configuraciones regionales jamás creadas.
Sin embargo, lo primero que notará cuando abra una configuración regional es que leerá palabras en inglés tanto como raras <UXXXX>
códigos. Deberá poder crear estos códigos:aquí es donde encodestr
viene el guión.
Cuando sabe qué secciones tiene que cambiar, necesita conocer cada campo contenido en la sección.
Por ejemplo, el LC_TIME
La sección contiene el campo t_fmt
, y muchos otros. Cada campo tiene su propia descripción en la guía.
Ahora que sabe qué campos modificar, use la guía nuevamente para averiguar qué valores acepta el campo.
Por ejemplo, el campo t_fmt
acepta texto y las variables strfmt comunes.
Justo cuando sepa qué escribir en los campos que desea modificar, ejecute el texto a través de encodestr
script para obtener su equivalente codificado.
Por ejemplo, si desea tener el formato de hora Time: %T
en el t_fmt
campo, ejecute ./encodestr "Time: %T"
; esto devolverá <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
y así tendrás la línea t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
en su localidad (en su sección respectiva, por supuesto).
Después de haber modificado todos los campos que deseaba, deberá proceder a instalar la configuración regional en el sistema, para que pueda usarse. Proceda a la sección de instalación para esto.
Crear una configuración regional desde cero
A diferencia de modificar uno, el otro método que puede usar para crear su configuración regional personalizada es trabajar en él desde cero. Esto no es muy difícil si, de nuevo, usas la guía. Sin embargo, aquí hay un consejo útil:puede copiar secciones de otras configuraciones regionales sin necesidad de copiar y pegar. métodos. Solo tienes que seguir este formato:
LC_SECTION
copy "locale"
END LC_SECTION
Donde LC_SECTION
es la sección que desea modificar y locale
es la configuración regional desde la que desea copiar esa sección.
Por ejemplo, si desea copiar el formato de hora en la configuración regional en inglés, tendrá este texto en su archivo de configuración regional personalizado:
LC_TIME
copy "en_GB"
END LC_TIME
Y eso le ahorra mucho trabajo y le asegura que cualquier cambio realizado en la configuración regional a la que se hace referencia se reflejará en la suya.
Instalación de su configuración regional personalizada
Los pasos que mostraré a continuación pueden no ser óptimos, pero funcionan.
-
Compile su configuración regional. ¡No entrar en pánico! Esto no lleva tiempo. Simplemente ejecute el comando
sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v
dondecustom
es el nombre de su localidad. -
Copie su configuración regional en
/usr/share/i18n/locales/
directorio. Definitivamente necesitarás sudo privilegios para hacer esto, y puede hacerlo con el comandosudo cp locale /usr/share/i18n/locales/
dondelocale
es el nombre de archivo de su configuración regional personalizada. -
Especifique su configuración regional en
/var/lib/locales/supported.d/
. Por ejemplo, cree un nombre de archivo/var/lib/locales/supported.d/asd
y agregue la líneacustom UTF-8
, donde personalizado es el nombre de su configuración regional. -
Ejecuta el comando mágico. En realidad, no sé qué hace exactamente este comando, pero es crucial. Ejecute
sudo locale-gen
. Lo más probable es que genere referencias a las configuraciones regionales disponibles donde sea necesario. -
Dígale a su sistema que use la configuración regional. Si desea que la configuración regional se utilice en todo el sistema, modifique el
/etc/environment
expediente. Si no, puedes modificar tu~/.profile
archivo, o cualquier otro que se obtenga al inicio. Si no sabe lo que significa esto último, no se preocupe, simplemente use~/.profile
expediente. Para saber lo que tienes que escribir en él, primero ejecuta ellocale
dominio. Debería generar una lista con elementos comoLANGUAGE
,LC_MESSAGES
,LC_CTYPE
y muchos otros. Escribirá, para cada una de las secciones que desee (enumeradas por el comando anterior), en líneas separadas, esteSECTION="locale"
dondeSECTION
es la sección ylocale
el nombre de su configuración regional personalizada.
Por ejemplo, si desea utilizar el formato de hora de los Países Bajos, pero el idioma inglés, escriba:
LANGUAGE="en_GB:en"
LC_TIME="nl_NL"
LC_ALL="locale"
donde locale
es el nombre de su entorno local personalizado. Si desea utilizar una configuración regional para todo excepto para el idioma, puede escribir LANG="locale"
y (en otra línea, por supuesto) LANGUAGE="locale":XX
donde XX
es el código de 2 letras del idioma que desea.
Por ejemplo, si desea utilizar la configuración regional holandesa y el idioma inglés, puede utilizar:
LANG="nl_NL"
LANGUAGE="nl_NL:en"
Has terminado
La próxima vez que inicie sesión, su configuración regional debería estar en uso. Puede probar esto ejecutando locale
comando de nuevo.
¡Por favor comente sobre inconsistencias o declaraciones falsas en esta guía!