
Creé mis propios locale
mensajes de correo personalizados y los coloqué en /etc/locale.conf
los que surten efecto exitosamente si inicio sesión en una consola virtual (Ctrl+Alt+F2). Sin embargo, en mi sesión de Gnome3 esas variables no están configuradas. Para aplicaciones de terminal, podría simplemente colocarlas en el, .bashrc
pero eso no me ayudará con aplicaciones gráficas como Thunderbird y Pidgin.
He intentado seguir estos consejos:La configuración regional en la inicialización del shell no es utilizada por la sesión de GNOMEe incluso emuló el error enConfiguración regional - ArchWikicreando un .pam_environment
archivo, pero los locale
s siguen siendo los establecidos por Gnome3. Hay un diálogo de configuración en los ajustes de Gnome, pero solo permite establecer un conjunto muy limitado de locale
combinaciones predefinidas y no hay forma de personalizarlas.
Los archivos relevantes en mi directorio de inicio:
user@localhost:~$ ls -lah .dmrc .pam_environment .session .xsession .xsessionrc
lrwxrwxrwx. 1 user user 16 12. Jun 08:57 .dmrc -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 11. Jun 20:23 .pam_environment -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:09 .session -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:07 .xsession -> /etc/locale.conf
lrwxrwxrwx. 1 user user 9 13. Jun 11:22 .xsessionrc -> .xsession
-rw-rw-r--. 1 user user 66 13. Jun 11:13 .profile
user@localhost:~$ cat .profile
source /etc/locale.conf
Los contenidos de /etc/locale.conf
:
LANG="en_US.utf8"
LC_TIME="de_MY.utf8" # NB: de_MY
LC_MONETARY="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
¿Alguien sabe cómo configurar locale
mensajes de correo personalizados en Gnome3?
Respuesta1
Información de contexto
Probé la solución en Fedora 21 con GNOME Shell 3.14.4, pero creo que también se puede aplicar a otras versiones.
Lo primero que hay que entender es que el entorno de escritorio GNOME anula las definiciones regionales de todo el sistema y, por lo tanto, no se ve afectado por /etc/locale.conf
. Además, puede haber aplicaciones que tengan su propia configuración regional y no utilicen el sistema o la configuración de GNOME en absoluto. En esta guía describiré una manera de personalizar la configuración regional según sus necesidades y GNOME y el sistema serán consistentes desde la perspectiva local.
Comprobar el estado de la configuración regional actual
Configuración de todo el sistema
DeGuía del administrador del sistema Fedora 21:
La configuración regional de todo el sistema se almacena en el
/etc/locale.conf
archivo, que el sistema lee durante el inicio temprano.sistemaddemonio. La configuración regional configurada en/etc/locale.conf
es heredada por cada servicio o usuario, a menos que los programas o usuarios individuales los anulen.
Para ver el estado actual de la configuración regional podemos ejecutar:
$ localectl status
System Locale: LANG=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
VC Keymap: us
X11 Layout: us
Configuración de GNOME
$ gsettings get org.gnome.system.locale region
'en_US.UTF-8'
GNOME tiene sólo una configuración. Al echar un vistazo rápido acódigo fuente de gnome-control-centerparece que cuando set_localed_locale()
se llama a la función, establece todas las categorías siguientes (LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MEASUREMENT, LC_PAPER) en la misma configuración regional definida en org.gnome.system.locale region
.
Mezclar diferentes configuraciones regionales parece imposible sin crear una configuración regional personalizada, pero afortunadamente no es una tarea muy compleja.
Crear una configuración regional personalizada
Creo que la forma más sencilla de explicarlo es con el ejemplo. En mi caso específico quería tener una configuración regional personalizada, basada principalmente en hebreo (él_IL) pero con LC_NAME, LC_MESSAGES dees_USy LC_TIME (con modificado first_weekday
y first_workday
) dees_ES.
Obteniendo archivos de definición regional
Deberías tener una idea de qué configuraciones regionales quieres mezclar. Primero debemos ubicar los archivos de definición relacionados, que se pueden encontrar en /usr/share/i18n/locales/
. Volviendo a mi ejemplo, necesitaba lo siguiente:él_IL,es_USyes_ES. Configuré una carpeta de trabajo en mi casa y copié los archivos necesarios en ella:
$ cd /usr/share/i18n/locales
$ mkdir -v ~/custom-locale ; cp -v he_IL en_US en_GB ~/custom-locale/
Crear un nuevo archivo de definición
Decidí llamar a mi localidad.hc_ILy tomóél_ILcomo base. Las siguientes líneas crean un nuevo archivo hc_IL
con el contenido de he_IL
y en el camino reemplazan todas las apariciones de una cadena.él_ILdentro del archivo conhc_IL.
$ cd ~/custom-locale/
$ sed 's/he_IL/hc_IL/g' he_IL > hc_IL
Modificar el nuevo archivo de definición
Ahora podemos personalizar la nueva configuración regional según nuestras necesidades. Abra el archivo recién creado ~/custom-locale/hc_IL
con su editor de texto favorito. yo sueloempuje(tiene resaltado de sintaxis adecuado para archivos de definición regional):
$ vim ~/custom-locale/hc_IL
Para aquellos que aún no han elegido su editor favorito yempujeno es su taza de té, puede usarlogedit:)
$ gedit ~/custom-locale/hc_IL
La estructura del archivo no es muy complicada. Básicamente, está construido a partir de secciones. Delocal(5)páginas man:
La definición de configuración regional tiene una parte para cada categoría de configuración regional. Cada parte se puede copiar desde otra ubicación existente o se puede definir desde cero. Si se debe copiar la categoría, la única palabra clave válida en la definición esCopiarseguido del nombre de la configuración regional que se debe copiar.
La noción deCopiares muy útil. Ahorra tiempo y el archivo resultante es claro y conciso. Por ejemplo, en lugar de copiar secciones enteras, puedes tener:
LC_MESSAGES
copy "en_US"
END LC_MESSAGES
Se puede acceder a la documentación completa sobre un archivo de definición regional a través de:
$ man 5 locale
Sin embargo, si solo desea crear una configuración regional personalizada, que es una combinación de las existentes, no es necesario comprender todos los detalles.
En mi caso modifiqué las siguientes categorías y palabras clave:
LC_IDENTIFICACIÓN
title "Custom Hebrew locale" source "mydomain.ws" address "http:////www.mydomain.ws" contact "" email "[email protected]" tel "" fax "" language "Hebrew" territory "Israel" revision "1.0" date "2015-04-21"
Nota:Todos "categoría.."líneas en elLC_IDENTIFICACIÓNLa sección se ha modificado durante la creación del archivo usando
sed
. Entonces ya no necesitamos tocarlos.LC_TIME
Copié la sección completa dees_ESy modifiqué solo las líneas que indican el primer día de la semana y el primer día laborable:
first_weekday 1 first_workday 1
El resto de categorías las dejé como están o reemplacé su contenido con elCopiardirectiva como en:
LC_NAME copy "en_US" END LC_NAME
Eso es todo, el archivo de definición está listo. No olvides guardar el archivo :)
Compile y copie la nueva configuración regional
La compilación de la nueva configuración regional se realiza usando el siguiente comando comoraízo usandosudo. Reemplace hc_IL
con su localidad:
$ sudo localedef -c -v -i hc_IL -f UTF-8 hc_IL.UTF-8
Si la compilación tiene éxito, los datos locales compilados se agregan al archivo comprimido /usr/lib/locale/locale-archive
.
Copie el nuevo archivo de definición de configuración regional en el directorio de definiciones de configuración regional. Reemplace hc_IL
con su localidad:
$ sudo cp -v hc_IL /usr/share/i18n/locales/
Activando la nueva configuración regional
En este paso queremos configurar el sistema y GNOME para usar la nueva configuración regional.
Configuración de todo el sistema
Edite el /etc/locale.conf
archivo comoraízy configure cada línea que comience con LC_
su nueva ubicación. Por ejemplo:
LANG=en_US.UTF-8
LC_NUMERIC=hc_IL.utf8
LC_TIME=hc_IL.utf8
LC_MONETARY=hc_IL.utf8
LC_PAPER=hc_IL.utf8
LC_MEASUREMENT=hc_IL.utf8
Configuración de GNOME
Para activar la nueva configuración regional en GNOME, ejecute el siguiente comando. Reemplace hc_IL
con su localidad:
$ gsettings set org.gnome.system.locale region "hc_IL.utf8"
Validar la nueva configuración
El último paso es validar que todo funciona como se esperaba. Para recargar todas las configuraciones, lo más fácil para mí fue reiniciar.
- Consulte la sección "Comprobación del estado local actual" para comprobar que la configuración del sistema sea correcta.
Utilice GNOME Shell y las aplicaciones dependientes de la configuración regional (gráficas y de consola) y verifique que se comporten como se espera con la nueva configuración regional. Por ejemplo, si personalizó LC_TIME, puede ejecutar el
date
comando para validar el formato de fecha:$ date +%x 21/04/15
Nota:Todo fue probado en Fedora 21 con GNOME 3.14. Otras distribuciones de Linux pueden requerir pasos adicionales o diferentes.
Por favor comente si encuentra algún problema con las instrucciones.