# localectl, eselect y OpenRC / SystemD

## JotaStar

Hola,

Tengo una duda del comando de eselect.

He migrado el init de Gentoo de OpenRC a SystemD (muy a mi pesar) y tengo la duda de si "eselect" tiene algo que ver con OpenRC o no. 

Lo digo porque después de trastear bastante con el systemd, he puesto la config y comandos tal y como dice la Wiki para las LOCALES y lanzando comandos de 

```
localectl
```

 seguía viendo todo en inglés.

Hasta que no he hecho un 

```
eselect locale set es_ES@euro
```

 no ha cambiado a español.

Mi pregunta es: ¿de qué sirve los comandos como 

```
localectl set-locale LANG=es_ES
```

 si no le hace caso?

Lanzando un 

```
localectl
```

 todo está correcto.

Gracias.

----------

## natrix

Una consulta, en tu make.conf tienes las siguientes líneas o algo similar:

```
LINGUAS="es es_ES"

L10N="es es-ES es-419"
```

----------

## JotaStar

Hola natrix.

Sí.

```
LINGUAS="es es_ES"

L10N="es es-ES"

```

Como dije, la salida de localectl está bien:

```

jota@gentoohost ~ $ localectl 

   System Locale: LANG=es_ES.utf8

       VC Keymap: es

      X11 Layout: es

```

Independientemente de que use UTF8 o no, mi pregunta es si está relacionado el comando eselect con OpenRC o no... 

Qué hace el comando?:

```
jota@gentoohost ~ $ localectl set-locale LANG="es_ES"
```

Si hasta que no hago el eselect no cambia el idioma?

Por qué por lo que entiendo las locales se generan con locale-gen

```
gentoohost jota # locale-gen 

 * Generating locale-archive: forcing # of jobs to 1

 * Generating 2 locales (this might take a while) with 1 jobs

 *  (1/2) Generating es_ES.ISO-8859-15@euro ...                           [ ok ]

 *  (2/2) Generating es_ES.UTF-8 ...                                      [ ok ]

 * Generation complete

gentoohost jota # 

```

Entendería que el localectl debería configurar el sistema con ese idioma... Y da igual que haga un env-update o source /etc/profile... Hasta que no hago el eselect no cambia el idioma.

Gracias.

----------

## quilosaq

 *JotaStar wrote:*   

> ...
> 
> He migrado el init de Gentoo de OpenRC a SystemD (muy a mi pesar) y tengo la duda de si "eselect" tiene algo que ver con OpenRC o no. 
> 
> ...

 

https://wiki.gentoo.org/wiki/Localization/Guide/es#Configurar_una_localizaci.C3.B3n

Tienen una relación indirecta.

eselect asigna valores a variables de entorno (también puede hacer otras muchas cosas) y, al menos algunos scripts de openrc las leen y las usan.

 *JotaStar wrote:*   

> ...
> 
> Entendería que el localectl debería configurar el sistema con ese idioma... Y da igual que haga un env-update o source /etc/profile... Hasta que no hago el eselect no cambia el idioma. 
> 
> ...

 

¿Cómo haces para saber que no cambia el idioma?

----------

## JotaStar

Gracias por tu respuesta

He puesto la misma pregunta en el foro de instalación y seguimos teniendo las mismas dudas...

https://forums.gentoo.org/viewtopic-t-1052398.html

He probado todo, podéis ver los outputs de los comandos en el post anterior y nada, hasta que no hay un "eselect" no hay cambio de idioma.

Lo curioso es que el teclado sí que lo cambia.

 *Quote:*   

> Tienen una relación indirecta. 
> 
> eselect asigna valores a variables de entorno (también puede hacer otras muchas cosas) y, al menos algunos scripts de openrc las leen y las usan.

 

Entiendo que utilicen las mismas variables de entorno, pero vuelvo a mi pregunta, qué hace entonces localectl?

 *Quote:*   

> ¿Cómo haces para saber que no cambia el idioma?

 

Ningúna aplicación de consola está en español, por ejemplo nano. Tampoco Xfce4 ni el Firefox, nada...

Nuevamente, hasta que no hago el eselect que, como dices, cambia las variables del entorno, no surge efecto el cambio de idioma... Por consiguiente, nuevamente, ¿qué hace localectl set-locale...?

Como dije, tengo bloqueado el paquete de OpenRC, inicio con systemD desde lilo sin problemas...

Una pena ver como una a una todas las distribuciones de linux van claudicando a systemd... (por culpa de grandes como Debian, GNOME, KDE...)

Salu2.

----------

## quilosaq

```
(root)# localectl set-locale LANG="es_ES"
```

 sólo sirve para almacenar LANG="es_ES" en el archivo 

```
/etc/locale.conf
```

Para que el valor de esa variable pase a las variables de entorno que se cargan durante el login, hay que ejecutar el comando 

```
(root)# env-update
```

Con esto ya se tendrá LANG con el valor deseado en el siguiente login que se haga. Si además queremos actualizar LANG en nuestra sesión actual (sin hacer logout/login), hay que ejecutar 

```
source /etc/profile
```

.

LANG es usada por algunos programas (sencillos, como nano) para presentar los textos en ese idioma. Programas mas complejos, como Firefox, necesitan que se defina LINGUAS o L10N para ser construidos (no siempre es posible) de acuerdo a esas preferencias.

¿Por qué eselect si que funciona? Porque 

```
(root)# eselect locale set ...
```

 ejecuta internamente un env-update.

----------

## JotaStar

 *quilosaq wrote:*   

> 
> 
> ```
> (root)# localectl set-locale LANG="es_ES"
> ```
> ...

 

Bueno, pues definitivamente algo me habré cargado ya que, como dije anteriormente, los comandos de env-update && source /etc/profile no me actualizan el idioma aunque reinicie.

Probaré a hacer una instalación limpia de Gentoo a ver.

Gracias.

----------

## quilosaq

Si sólo tienes problema con el idioma quizá tengas mal seteado LANG en tu ~/.bashrc.

----------

## papu

Yo uso openrc, quizás te sirve esto que dije en otro post.

https://forums.gentoo.org/viewtopic-p-7971710.html#7971710

 :Wink: 

----------

