Есть необходимость выставить LANG в "ru_RU.utf8", а LC_MESSAGES в "en_EN.utf8". Интересует *правильный*, для Arch Linux, способ задания подобных переменных. Желательно, чтобы это выставлялось только для одного пользователя (используется GDM), но устроит и общесистемный вариант.
Последние годы все дистрибутивы стали предполагать, что пользователь выставляет LANG и не манипулирует отдельными переменными LC_*.
P.S.: как я понимаю - добавить файл с LC_MESSAGES в /etc/profile.d/ и надеятся на то, что /etc/rc.sysinit выполнит этот файл после системного /etc/profile.d/locale.sh - не стоит.
Решено: LANG, LC_* + GDM (LANG, LC_*, GDM_LANG, GDM)
Модератор: Модераторы разделов
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Решено: LANG, LC_* + GDM
а почему не рассматривается вариант с $HOME/.profile ? тем более, что нужно затронуть только одного юзера.
он же позже исполняется, заодно поверх все и запишет, не?
он же позже исполняется, заодно поверх все и запишет, не?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
ATIpro
- Сообщения: 614
- ОС: Arch Linux x86_64
Re: Решено: LANG, LC_* + GDM
Можно добавить в /etc/profile
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Решено: LANG, LC_* + GDM
Т.е. я правильно понимаю, что единственно идеологически правильного (как, скажем, в Gentoo Linux - в /etc/env.d/) и рекомендуемого способа нет и можно добавлять туда, где удобно (вплоть до расширения формата /etc/rc.conf и исправления /etc/rc,sysinit)?
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Решено: LANG, LC_* + GDM
А есть всякие $HOME/.$SHELL_login или $HOME/.$SHELL_profile? просто если есть, то $HOME/.profile не обрабатывается, и вместо $HOME/.profile можно использовать вышеперечисленные файлы.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
Davinel
- Сообщения: 481
- ОС: Ubuntu
Re: Решено: LANG, LC_* + GDM
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Решено: LANG, LC_* + GDM
Всё фигня, кроме пчёл...
Поизучал скрипты GDM и выяснил, что его скрипт, запускающий X-сессию пользователя (gnome-session или другую) предварительно перекрывает LANG (неважно где оно было выставлено до этого) языком, выбранным при логине в GDM (а какой-нибудь язык выбран всегда).
Но к счастью - перед сбросом LANG, скрипт вызывает ~/.profile и ~/.xprofile, в которых можно сбросить значение языка, установленное в GDM, и установить свои значения для LC_*. Не опасаясь, что скрипты GDM заменят LANG.
Решение:в одном из следующих файлов: /etc/profile, $HOME/.profile, /etc/xprofile или $HOME/.xprofile
Интересно, что багрепорты на подобное поведение GDM имеются, но без ответа. Например: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471508. Есть и другие, тоже без внятных ответов.
Поизучал скрипты GDM и выяснил, что его скрипт, запускающий X-сессию пользователя (gnome-session или другую) предварительно перекрывает LANG (неважно где оно было выставлено до этого) языком, выбранным при логине в GDM (а какой-нибудь язык выбран всегда).
Но к счастью - перед сбросом LANG, скрипт вызывает ~/.profile и ~/.xprofile, в которых можно сбросить значение языка, установленное в GDM, и установить свои значения для LC_*. Не опасаясь, что скрипты GDM заменят LANG.
Решение:
Код: Выделить всё
unset -v GDM_LANG
export LANG='ru_RU.utf8'
export LC_MESSAGES='en_US.utf8'Интересно, что багрепорты на подобное поведение GDM имеются, но без ответа. Например: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471508. Есть и другие, тоже без внятных ответов.
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: Решено: LANG, LC_* + GDM
Странно, у меня в gdm и функции выбора локали-то нет. И переменная GDM_LANG отсутствует...
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu