Información de contexto

Información de contexto

Creé mis propios localemensajes de correo personalizados y los coloqué en /etc/locale.conflos 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, .bashrcpero 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_environmentarchivo, pero los locales 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 localecombinaciones 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 localemensajes 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.confarchivo, que el sistema lee durante el inicio temprano.sistemaddemonio. La configuración regional configurada en /etc/locale.confes 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_weekdayy 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_ILcon el contenido de he_ILy 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_ILcon 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_ILcon 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_ILcon 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.confarchivo 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_ILcon 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 datecomando 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.

información relacionada