разный язык для UI и локали
Maxim Kuleshov
kuleshov на org.vrn.ru
Вт Окт 14 13:55:21 BST 2008
On Mon, 13 Oct 2008 11:57:09 +0400
Maxim Kuleshov wrote:
> Приветствую.
>
> Каким образом заставить ubuntu 8.04.1 поддерживать разные языки для
> локали и интерфейса?
>
> Вот содержимое /etc/environment:
> LANGUAGE="en_US:en"
> LANG="ru_RU.UTF-8"
>
> Вот /etc/default/locale
> LANG="ru_RU.UTF-8"
> LANGUAGE="en_US:en"
>
> И тем не менее, после перезагрузки переменная LANGUAGE не определена и
> поэтому язык интерфейса - русский. Более того, попытка запустить хотя
> бы одно приложение с переопределенной этой переменной успеха не имеет.
> Например:
>
> env LANGUAGE=en_US:en gnome-terminal
>
> Запускает терминал, но в нем также LANGUAGE не определен.
>
> Где копать такие настройки?
>
По-немножку начинаю разбираться. Значит так - терминал ничего не
сбрасывает, просто запуск нового терминала реально ничего не запускает
(просто открывает новое окно) поэтому и переменная среды не сохраняется
(в случае с запуском через env LANGUAGE=.... естественно)
LANGUAGE стирается GDM'ом из странных соображений, что в нем язык не
совпадает с языком в GDM_LANG, а последний в свою очередь уже берется
из LANG (или из ~/.dmrc - но там одновременно задается и язык и локаль).
(факт стирания можно в /etc/gdm/Xsession посмотреть)
Соответственно мне нужно некое место, которое глобально в рамках сессии
уже вслед за gdm вернет мне LANGUAGE к нужному мне значению.
Что это за место?
Нужно чтобы оно не параллельно запускалось со всеми процесами (как
список приложений для сесиии), а _перед_ всеми приложениями, чтобы и
панель и прочее было на английском. Ну и чтобы это место было
user-specific (а то глобально есть /etc/gdm/PreSession и т.п.)
Подробная информация о списке рассылки ubuntu-ru