LINUX.ORG.RU

Как установить LANGUAGE


0

1

В системе (Debian 7.2) для ВСЕХ пользователей хочу использовать украинский и русский языки. Для этого нужно установить LANGUAGE=uk_UA:ru_UA:ru. Вопрос - как это сделать?
Безрезультатно перепробовал следующее:
dpkg-reconfigure locales
update-locale LANG=uk_UA.UTF-8 LANGUAGE=«uk_UA:ru_UA:ru»

Прописовал переменную в файлах:
/etc/default/locale
/etc/environment
/etc/profile.d/myprofile

Во всех случаях locale выдаёт пустую LANGUAGE=

locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Брат жив

roman77 ★★★★★
()

Прописовал переменную в файлах:
/etc/default/locale

Должно было сработать. Может, ты перелогиниться забыл после этого?

А вообще, кто умеет читать LANGUAGE, кроме GNU gettext?

proud_anon ★★★★★
()
Ответ на: комментарий от roman77

Брат жив

Ну, топикстартеру нужно, чтобы не только брат был жив, а чтобы ещё и сестра была наготове на случай, если брат всё-таки помрёт.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Давай сразу сестру, а на брата перейдём потом.

anonymous
()
Ответ на: комментарий от proud_anon

Всё правильно, нужно если на случай отсутствия перевода на украинском включался русский перевод. Если в терминале задать эту переменную и запускать программы из терминала всё прекрасно работает.
И да, я не только перелогинивался но и перезагружался.

sergijoo
() автор топика

Это что за переменная такая? locale знает только LANG:

locale
LANG=ru_RU.koi8-r
LC_CTYPE="ru_RU.koi8-r"
LC_NUMERIC=C
LC_TIME="ru_RU.koi8-r"
LC_COLLATE="ru_RU.koi8-r"
LC_MONETARY="ru_RU.koi8-r"
LC_MESSAGES="ru_RU.koi8-r"
LC_PAPER="ru_RU.koi8-r"
LC_NAME="ru_RU.koi8-r"
LC_ADDRESS="ru_RU.koi8-r"
LC_TELEPHONE="ru_RU.koi8-r"
LC_MEASUREMENT="ru_RU.koi8-r"
LC_IDENTIFICATION="ru_RU.koi8-r"
LC_ALL=
Anon
()
Ответ на: комментарий от sergijoo

gettext берет перевод на основе содержимого переменной LANG. Ему совершенно наплевать на всякие левые переменные. Если, конечно, какой-нибудь извращенец не сделал свою велосипедную реализацию gettext.

Anon
()
Ответ на: комментарий от Excavator

Дело в том что бы я не прописывал в переменную в итоге она пуста.

sergijoo
() автор топика
Ответ на: комментарий от sergijoo

А, я и не глянул, что ОС свежая. У меня-то арчег, который уже год без обновлений сидит.

Anon
()
Ответ на: комментарий от Excavator

Значит так:
1. Прописываю в /etc/default/locale LANGUAGE=«uk_UA:ru_UA:ru»
2. Перезагружаюсь
3. Вывод locale:


LANG=uk_UA.utf8
LANGUAGE=
LC_CTYPE=uk_UA.utf8
LC_NUMERIC=«uk_UA.utf8»
LC_TIME=«uk_UA.utf8»
LC_COLLATE=«uk_UA.utf8»
LC_MONETARY=«uk_UA.utf8»
LC_MESSAGES=«uk_UA.utf8»
LC_PAPER=«uk_UA.utf8»
LC_NAME=«uk_UA.utf8»
LC_ADDRESS=«uk_UA.utf8»
LC_TELEPHONE=«uk_UA.utf8»
LC_MEASUREMENT=«uk_UA.utf8»
LC_IDENTIFICATION=«uk_UA.utf8»
LC_ALL=



Что я делаю не так?

sergijoo
() автор топика
Ответ на: комментарий от sergijoo

LANGUAGE=uk:ru

В таком виде работает, я проверял.
Видимо валидны только значения, соответствующие тому что есть в /usr/share/locale/

Excavator
()
Ответ на: комментарий от Excavator

Не пойму почему но у меня не работает. Ну никак не экспортирует эту переменную.

sergijoo
() автор топика

Оказывается это гном затирает LANGUAGE. В чистой консоли (ctrl+alt+F1) переменная прописывается. Вот теперь бы ещё узнать где покрутить гном что бы не затирало LANGUAGE.

sergijoo
() автор топика
Ответ на: комментарий от sergijoo

Да, скорее всего проблема в гноме/гдм. В кде переменная сохраняется и работает как ожидалось.

Excavator
()

Нашёл где собака зарыта - в gdm3. Вот эти строки:

$ cat /etc/gdm3/Xsession

...
# if GDM_LANG isn't first in LANGUAGE, then unset it.
    if [ -n "$LANGUAGE" ]; then
        if echo "$LANGUAGE" | grep -q -- "^$GDM_LANG"; then
           :
        else
           unset LANGUAGE
        fi
    fi
...
Так что для корректной работы нужно что бы в LANGUAGE в начале было то же что и в GDM_LANG, то есть uk_UA.utf8. Запустил команду:
# update-locale LANG=uk_UA.UTF-8 LANGUAGE=uk_UA.utf8:ru
перезагрузился и во-а-ля, всё работает как и ожидалось. Не понятно только зачем весь этот выпендрёж вместо простого uk:ru?

sergijoo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.