LINUX.ORG.RU

Снова Arch, локаль


0

1

Значит проблема такая. Если стоит русская локаль (ru_RU.UTF-8) в /etc/locale.conf то все приложения пытаются перейти на русский (pacman скажем).

Если стоит английская локаль (en_US.UTF-8) то в терминале (xfce4-terminal) не выводятся русские символы. Подозреваю что дело в терминале, т.к. в Firefox'е и Thunar'е все ок.

В офф. вики по этому поводу ничего не накопал.

Deleted

Добавлю лишь, что, скажем i3status при запуске выводит

Could not set locale. Please make sure all your LC_* / LANG settings are correct.

Если кто подскажет как правильно установить LC_* ? LANG опции буду признателен.

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

Проверил, в lxterminal и roxterminal такая-же ситуация. Игра со шрифтом и способом ввода в настройках эмуляторов не помогает.

Станно, что русских символов не видно только в эмуляторах терминала.

В остальных приложениях все ок.

Deleted
()

А сделай-ка grep en_US.UTF-8 /etc/locale.gen

Намёк понятен?

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

Станно, что русских символов не видно только в эмуляторах терминала. В остальных приложениях все ок.

Всё нормально, гуёвые приложения плевать хотели на locale.gen. Ты там вообще русскую локаль оставляешь?

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

Я не про locale.gen говорил а про locale.conf. В locale.gen есть en us utf и ru ru utf.

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

Сейчас не дома, как вернусь покажу. По памяти, но не точно могу сказать, что там будут en_US.UTF-8, ru_RU.UTF-8, C и POSIX.

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

Could not set locale. Please make sure all your LC_* / LANG settings are correct.

# localectl set-locale LANG="en_US.UTF-8"

И глянь у себя просто

locale

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 2)
Ответ на: комментарий от Deleted
$ cat /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
$ locale-gen
$ cat /etc/env.d/02locale 
LANG="en_US.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="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=""

Файл, в котором устанавливаются LC_* переменные в твоем дистре может отличаться.
LC_ALL всегда держи пустой.
LC_MESSAGES отвечает за язык, на котором будут «говорить» приложения.

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

Выхлопы

Так, по сообщениям, могу понять, что допустил ужасную ошибку - с самого начала не предоставил файлы конфигурации и выхлопы locale. Исправляюсь:

locale.gen:

# ...
es_US.UTF-8 UTF-8
# ...
ru_RU.UTF-8 UTF-8
# ...

locale.conf:

LANG="en_US.UTF-8"

Выхлоп locale:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Выхлоп locale -a:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
es_US.utf8
ru_RU.utf8

Пока попробую удалить locale.conf, запустить еще разок locale-gen, переустановить glibc и попробовать те команды, что мне тут посоветовали.

Deleted
()

Сначала раскомментируешь в /etc/locale.gen те локали, которые тебе пригодятся, и делаешь locale-gen от рута. Подозреваю, что эти две:

en_US.UTF-8
ru_RU.UTF-8

Потом в /etc/locale.conf прописываешь, какую локаль хочешь. Локаль — это _и_ сообщения в терминале, _и_ сопутствующие вещи типа формата даты или чисел. Если хочешь английские сообщения, но русскую локаль, делай так:

LANG=ru_RU.UTF-8
LC_MESSAGES=en_US.UTF-8

Гуёвые же приложения обычно учитывают эти настройки локали частично, т. е. у популярных тулкитов (Gtk, Qt/kdelibs) есть свой инструментарий для локализации, который настраивается отдельно.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от greenman

Да! От безысходности удалил все комментарии из locale.gen и увидел eS блин eS!

$ vi /etc/locale.gen
$ locale-gen
$ echo 'LANG="en_US.UTF-8"' > /etc/locale.conf
$ /etc/profile.d/locale.sh

Все! Как часы работает - локаль en_US, i3status не плюется, xfce-terminal видит русские буквы!

Спасибо всем за помощь и прошу прощения за свою невнимательность.

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

Хотел просто английскую локаль. Но были проблемы с i3status и эмулятором терминала.

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