разный язык для 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