Voronov.S.V |
|
Темы:
1
Сообщения:
31
Участник с: 21 июня 2016
|
Небольшая заметка, надеюсь кому-нибудь поможет. На днях обсуждалась тема по поводу проблем с локализацией XFCE. Вроде и прописано все как надо, а язык интерфейса не меняется. Сегодня ставил на ноут Arch и столкнулся со следующим не стандартным поведением. Пересказывать вики в подробностях я не буду, можно почитать. Переменные окружения LC_* получают свое значение через setlocale по следующему принципу: 1. Проверяют задана ли LC_ALL, которая переопределяет все другие переменные 2. Проверяется, заданы ли значения явно, если заданы, присваивается соответствующее значение. 3. Если явно не заданы, Проверяется LANG и если LANG задана, то присваивают себе ее значение. 4. Если ничего не подходит, получают стандартное значение. Об этом можно почитать в man 7 locale или на вики: LANG: default localeLANG задает локаль по умолчанию, значение заданное в этой переменной используется во всех LC_*, если они явно не заданы. Теперь смотрим что делал я. 1. Расcкомментировал нужные строчки в /etc/locale.gen 2. Сгенерировал локали: 3. Выбрал нужную локаль Все это стандартные действия, выполняемые мной на момент первого запуска установленного арча.Когда я поставил i3wm и часть приложений они запустились с англоязычным интерфейсом. Сразу посмотрель что у меня с LANG
Проверил вручную что там задал systemd
Но как интерпретировать эти данные? Ведь LANG задана, а вручную я LC_* не задавал. А в выводе явно отображаются LC_* Смотрю порсто locale
Уже интересней? systemd показывает одни настройки локали, locale - другие. Решаю выставить принудительно все настройки и перезагружаюсь.
Проверяю:
Теперь с localectl все нормально. Смотрю вывод locale
WTF? Что происходит - непонятно. Пробовал задавать пользовательские настройки локали в ~/.config/locale.conf - не помогло, такое ощущение что файл просто не читался. Решил проблему следующим образом:
На сим был таков. Все заработало, но это неприятный костыль, причины которого до сих пор не понятны. Кто знает как это решить "правильно" сообщите. На двух системах, где тоже установлен archlinux при стандартном localectrl set-locale LANG=ru_RU.UTF-8 все работает и всегда работало с момента перехода на systemd на множестве инсталляций archlinux. Мракобесие, однако. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Просто не используйте команды systemd (для локали, времени, хоста и т.п.), они то ли сами кривые, то ли пока ещё плохо поддерживаются. А ещё после настройки желательно перезагружаться, чтобы всё применилось как полагается. |
warlock9000 |
|
Темы:
6
Сообщения:
766
Участник с: 21 марта 2016
|
lampslaveа что, что то поломали? У меня все работает |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Не знаю, просто есть негативный опыт. |
Voronov.S.V |
|
Темы:
1
Сообщения:
31
Участник с: 21 июня 2016
|
lampslave а какая разница, если даже вручную прописанный файл /etc/locale.conf не читается системой? locale выдавал совершенно левые настройки, не соответствующие /etc/locale.conf, и только экспорт в переменные окружения помогли всей остальной системе и приложениям увидеть локаль. |
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
Насколько я понимаю имеется два случая установки/переустановки локали в системе 1. Начальный момент установки системы, используя установочный образ (в принципе, сюда же можно отнести и изменение локали на установленной системе, используя установочный образ) — используется systemd-firstboot. 2. Изменение локали на установленной системе средствами самой системы — используется systemd. А читая man localectl и man systemd-firstboot, решил для себя - делать все ручками, по старинке, так оно спокойнее и понятнее.
Ошибки не исчезают с опытом - они просто умнеют
|
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Voronov.S.V, покажи cat /etc/profile.d/locale.sh cat /etc/profile
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Voronov.S.VЕсли /etc/locale.conf не работает, значит дело не в команде systemd, а в том, что локаль задана где-то ещё. |
Voronov.S.V |
|
Темы:
1
Сообщения:
31
Участник с: 21 июня 2016
|
nafanja locale.sh /etc/profile |
Voronov.S.V |
|
Темы:
1
Сообщения:
31
Участник с: 21 июня 2016
|
vasekЕсли я правильно понял вопрос, то нет, я все делаю в рабочей системе уже. Вся моя установка сводится к нескольким командам типа cfdisk, mkfs, mount, pacstrap, genfstab, arch-chroot, grub-install, grub-mkconfig, exit, reboot :) Всю остальную настройку я произвожу уже в установленной системе. Т.е. генерация локали, и выбор LANG через systemd |