LINUX.ORG.RU

Gentoo, русский язык в Xfce

 , ,


1

3

Пользовался KDE в Генту, решил КДЕ снести, поставил Xfce. В KDE с языком всё было нормально. locale и от юзера (в Xfce) и от root (на tty) гласит:

LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=
Нужные локали сгенерированы, LINGUAS=«ru». Консольные программы от root на tty разговаривают по-русски, они же в Xfce - по-английски. С графическими программами в Xfce так же. Как русифицировать?

★★

локаль хфце должна зависеть от переменной LC_MESSAGES, может быть она как-то у тебя отличается от остальных, например букву T в слове UTF написал по-русски =)

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Так. Только сейчас заметил - да, LC_MESSAGES установлена почему-то в en_US.UTF-8.

в 02locale сказано только, что LANG=«ru_RU». Подёргал eselect locale туда-сюда, LC_MESSAGES не меняется. Каг таг и где его тогда лучше определить?

Valdor ★★
() автор топика
pinkbyte@oas1 ~ $ locale
LANG=ru_RU.UTF-8
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=
cat /etc/env.d/02locale
LANG="ru_RU.UTF-8"

Вариант с utf8 может не работать, пробуй

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
~ # locale
LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=ru_RU.utf8

УМВР. Gentoo, XFCE.

bsdfun ★★★★★
()
Ответ на: комментарий от Pinkbyte
> locale-gen
 * Generating 6 locales (this might take a while) with 1 jobs
 *  (1/6) Generating en_US.UTF-8 ... [ ok ]
 *  (2/6) Generating en_US.ISO-8859-1 ... [ ok ]
 *  (3/6) Generating ru_RU.UTF-8 ... [ ok ]
 *  (4/6) Generating ru_RU.KOI8-R ... [ ok ]
 *  (5/6) Generating ru_RU.CP1251 ... [ ok ]
 *  (6/6) Generating ru_RU.ISO-8859-5 ... [ ok ]
 * Generation complete
> eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   en_US
  [3]   en_US.iso88591
  [4]   en_US.utf8
  [5]   POSIX
  [6]   ru_RU
  [7]   ru_RU.cp1251
  [8]   ru_RU.iso88595
  [9]   ru_RU.koi8r
  [10]  ru_RU.utf8 *
  [11]  russian
  [ ]   (free form)
> eselect locale set 10
Setting LANG to ru_RU.utf8 ...
Run ". /etc/profile" to update the variable in your shell.
> . /etc/profile
> locale
LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=

Я НЕ ПОНИМАТЬ!

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

Создай файл

/etc/env.d/02locale
с содержимым:

LANG="ru_RU.UTF-8"

Затем сделай locale-gen && . /etc/profile (не надо через eselect локаль ставить).

Если не поможет, попробуй добавить туда строку LC_MESSAGES=«ru_RU.UTF-8». Но должно работать и без того.

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

Всю жизнь настраивал локаль руками в обход eselect locale, потому что Gentoo UTF-8 guide(да, это волосатых времен документ, но тем не менее) не упоминает про eselect locale.

Проблем с локалями не испытываю.

И да, у тебя точно что-то не так, у меня eselect locale говорит:

pinkbyte@phantom ~ $ eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   POSIX
  [3]   ru_RU.UTF-8 *
  [ ]   (free form)

Обрати внимание на присутствие ru_RU.UTF-8 и отсутствие ru_RU.utf8

А вообще - воспользуйся советом Y. Если всё же принципиально нужно использовать eselect locale - пиши багрепорт о том, что с русской локалью это работает хреново.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Stil
pinkbyte@phantom ~ $ grep -P '^\w.*[uU][tT][fF].*' /etc/locale.gen
ru_RU.UTF-8 UTF-8
pinkbyte@oas1 ~ $ locale -a
C
POSIX
ru_RU.utf8

Хм, забавно. Похоже я был не прав и локаль можно задавать обоими способами. Тогда я затрудняюсь сказать, что за проблема у ТСа.

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

У меня на эквивалентных выхлопах команд выше в еселекте есть оба 2 варианта (ru_RU.utf8 ru_RU.UTF-8)...

# grep -P '^\w.*[uU][tT][fF].*' /etc/locale.gen 
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
# locale -a
C
en_US.utf8
POSIX
ru_RU.utf8
# eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   en_US.utf8
  [3]   POSIX
  [4]   ru_RU.utf8
  [5]   ru_RU.UTF-8 *
  [ ]   (free form)
# 

это я к тому, что

Похоже я был не прав и локаль можно задавать обоими способами

похоже, что это таки разные вещи

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

После этой команды всё стало хорошо, спасибо.

Valdor ★★
() автор топика

если ты пускаешь крысфце из ~/.xinitrc, то пускай её как-то так:

LANG="ru_RU.UTF-8" startxfce

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