Other languages => Русский => Topic started by: killaruns on 26 August 2021, 10:45:40
Title: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 26 August 2021, 10:45:40
Добрый день, Artix OpenRC Plasma При старте системы SDDM на английском языке. Плазма и другие компоненты подхватывают русскую локаль.
Как передать русскую локаль в SDDM при старте системы ?
PS Если после успешного входа в KDE5 вызвать диалог SDDM через тест темы оформления, он уже будет на русском языке
Решение : Спасибо VictorBrand Красивое решение вопроса (только OpenRC) https://forum.artixlinux.org/index.php/topic,2973.msg19660.html#msg19660 (https://forum.artixlinux.org/index.php/topic,2973.msg19660.html#msg19660)
Спасибо Max https://forum.artixlinux.org/index.php/topic,2973.msg19634.html#msg19634 (https://forum.artixlinux.org/index.php/topic,2973.msg19634.html#msg19634)
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: VictorBrand on 26 August 2021, 13:41:53
А текстовая консоль у вас русифицирована? Какая системная локаль установлена? А то у плазмы свои языковые настройки, отличные от общесистемных.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 26 August 2021, 18:50:18
Шта? Откуда этот вывод? Если вы руками выставляли эти переменные, то зря. Для установки русской локали нужно только следующее, добавить в /etc/locale.conf:
Шта? Откуда этот вывод? Если вы руками выставляли эти переменные, то зря. Для установки русской локали нужно только следующее, добавить в /etc/locale.conf:
# в файле /etc/X11/xorg.conf.d/00-keyboard.conf # в секции Section "InputClass" # изменить "ru" на "en" Option "XkbLayout" "en"
...
Соответственно Вам - наоборот.
Осторожнее с такими настройками. Если так сделать, то для Х-сервера глобально выставится настройка, что есть только один язык - русский. И переключиться будет нельзя, и ввести пароль, который, вестимо, с латинией, тоже нельзя будет. В этом файле нужно прописывать именно два языка через запятую, например, так: Option "XkbLayout" "us,ru". У вас с такой настройкой при входе в систему должна быть только одна раскладка клавиатуры - английская (что, впрочем, вам не мешает), а потом у вас грузится плазма, которая переопределяет настройки Х-сервера своими значениями.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: x230 on 28 August 2021, 13:45:04
-
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: x230 on 28 August 2021, 13:50:03
В данный момент у меня (/etc/X11/xorg.conf.d/00-keyboard.conf) - так:
# Read and parsed by systemd-localed. It's probably wise not to edit this file # manually too freely. Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:alt_shift_toggle" EndSection
И вероятно прав товарищ VictorBrand Чтоб не потерять другую локаль так лучше, чтобы и "en" и "ru" были ...
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 28 August 2021, 21:43:29
Поменял настройки в этих файлах на такие
/etc/X11/xorg.conf.d/00-keyboard.conf
Quote
# Read and parsed by systemd-localed. It's probably wise not to edit this file # manually too freely. Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbLayout" "us,ru" EndSection
/etc/locale.conf
Quote
LANG=ru_RU.UTF-8 LC_COLLATE=C
После выполнил sudo locale-gen и сделал перезагрузку, результата нет. При старте SDDM на английском.
Кто то из русского сообщества может подтвердить работоспособность русской локали при первом старте SDDM с OpenRC?
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: VictorBrand on 28 August 2021, 22:09:58
Сейчас проверил (Artix OpenRC). Интерфейс у SDDM действительно только на английском, независимо от настроек локали (пробовал русскую и немецкую). Наверное, это такой баг SDDM (или фича), что он не локализован. Возможно, его как-то можно настроить через менюшки кед, но у меня нет ни кед, ни плазмы (BTW I use Openbox), либо же где-то найти языковые пакеты под него (НЯЗ, плазма русифицируется через установку дополнительных языковых пакетов).
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 28 August 2021, 23:09:36
Сейчас проверил (Artix OpenRC). Интерфейс у SDDM действительно только на английском, независимо от настроек локали (пробовал русскую и немецкую). Наверное, это такой баг SDDM (или фича), что он не локализован. Возможно, его как-то можно настроить через менюшки кед, но у меня нет ни кед, ни плазмы (BTW I use Openbox), либо же где-то найти языковые пакеты под него (НЯЗ, плазма русифицируется через установку дополнительных языковых пакетов).
Думаю дело не в пакете или баге 1. Если войти в кеды, потом вызвать диалог SDDM то все отображается уже русская локаль в SDDM. Еще можно проверить так
У меня есть догадка, что возможно локаль запускается после SDDM но как точно это проверить и куда смотреть не разобрался.
В генту давно по умолчанию используется openrc и при компиляции ядра также. Здесь в wiki (https://wiki.artixlinux.org/) имеются ссылки. Возможно я ошибаюсь так как не ручаюсь за последовательность загрузки сервисов в том порядке в котором отображает эта команда
В генту давно по умолчанию используется openrc и при компиляции ядра также. Здесь в wiki (https://wiki.artixlinux.org/) имеются ссылки.
Тут есть один нюанс, в Артиксе изменили способ загрузки десктопных менеджеров. В Генте по-православному есть единственный демон xdm, для которого в настройках прописывается, какой именно десктопный менеджер он запускает (напр. lightdm, sddm etc.). В Артиксе же убрали xdm и сделали свои собственные загрузочные скрипты для каждого из десктопных менеджеров, напр., lightdm-openrc, sddm-openrc и т.д., чтобы в OpenRC всё было аналогично другим системам инициализации (как, напр., lightdm-runit, sddm-s6 и т.д.). Возможно, разработчики тут немного намудрили и локаль действительно загружается послеsddm-openrc. Я сам так и не разобрался, где именно и как OpenRC загружает локали.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 05 September 2021, 21:02:28
Тут есть один нюанс, в Артиксе изменили способ загрузки десктопных менеджеров. В Генте по-православному есть единственный демон xdm, для которого в настройках прописывается, какой именно десктопный менеджер он запускает (напр. lightdm, sddm etc.). В Артиксе же убрали xdm и сделали свои собственные загрузочные скрипты для каждого из десктопных менеджеров, напр., lightdm-openrc, sddm-openrc и т.д., чтобы в OpenRC всё было аналогично другим системам инициализации (как, напр., lightdm-runit, sddm-s6 и т.д.). Возможно, разработчики тут немного намудрили и локаль действительно загружается послеsddm-openrc. Я сам так и не разобрался, где именно и как OpenRC загружает локали.
Пробовал искать в скриптах, нашел вот такое: cat /etc/init.d/sddm
after bootmisc consolefont modules netmount after ypbind autofs openvpn gpm lircmd after quota keymaps local before alsasound want logind use xfs
provide xdm }
Так понимаю как раз, что за чем запускать. Осталось понять где грузится локаль, не смог найти.
PS. На виртуальке попробовал Artix KDE runit, там так же при старте SDDM на английском.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: VictorBrand on 06 September 2021, 01:11:16
В общем, с локалью я разобрался. Настройки локали загружаются через скрипт, который лежит в /etc/profile.d/, а он запускается скриптом /etc/profile. Сам этот скрипт выполняется тогда, когда вы входите в командную оболочку (shell) и при этом вводите пароль. (Если просто запускаете терминал с bash, то выполняется /etc/bashrc и ~/.bashrc). Ну так вот, этот скрипт (/etc/profile) в нормальных менеджерах входа вроде lightdm запускается из скрипта Xsession, каковой к этим менеджерам прилагается. Для sddm такого по умолчанию не завезли, надо прыгать с бубном и настраивать как-то.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: killaruns on 06 September 2021, 15:33:59
В общем, с локалью я разобрался. Настройки локали загружаются через скрипт, который лежит в /etc/profile.d/, а он запускается скриптом /etc/profile. Сам этот скрипт выполняется тогда, когда вы входите в командную оболочку (shell) и при этом вводите пароль. (Если просто запускаете терминал с bash, то выполняется /etc/bashrc и ~/.bashrc). Ну так вот, этот скрипт (/etc/profile) в нормальных менеджерах входа вроде lightdm запускается из скрипта Xsession, каковой к этим менеджерам прилагается. Для sddm такого по умолчанию не завезли, надо прыгать с бубном и настраивать как-то.
Большое спасибо за такой подробный разбор. Теперь понятно почему так происходит. Возможно позже кто то поделится красивым решением. Для себя оставлю как есть.
Title: Re: SDDM как установить русский язык пои входе в систему ?
Post by: VictorBrand on 06 September 2021, 16:18:06
Короче, мне удалось понять, как настроить локаль в этом вашем sddm. Ларчик (ломом) просто открывался.
Если у Вас работает это решение, возможно были ещё какие то правки ?
ОК. Не правки, но дело в том, что я не ставил sddm в автозагрузку, а загружал его через rc-service sddm start уже после логина в bash, когда локаль уже была загружена.
Тогда нужно сделать чуть менее красиво и отредактировать файл /etc/init.d/sddm и вставить перед строчкой command=.... следующее:
Как раз есть в планах посмотреть Gentoo, поэтому я и выбрал OpenRC. Попробую посмотреть в Калькулейте. демона sddm и его конфиг.
Блин, я же писал выше, что в Artix-Openrc демоны дисплейных менеджеров сконфигурированы иначе, чем в генте и её производных (раньше было не так, но с весны этого года поменялось). Так что смотреть, конечно, можно, но в данном конкретном случае это мало чем поможет.
Инит-скрипты не стоит трогать. Для этого существуют конфигурационный файлы.
Можно и потрогать, если понимать, что к чему и быть готовым к тому, что они перезапишутся при обновлении.
Проблема здесь в том, что к моменту запуска sddm системная локаль ещё не установлена (она устанавливается во время логина, после того, как пользователь введёт пароль), т.е. ещё не существует переменной окружения LANG. В конфигурационных файлах OpenRC, лежащих в директории /etc/conf.d, прописываются значения переменных, которые используются скриптами запуска демонов (эти скрипты лежат в /etc/init.d/). Но проблема в том, что, оказывается, недостаточно просто объявить переменную LANG в конфигурационном файле, надо её ещё и экспортировать, чтобы она стала переменной окружения и демон sddm её получил. Я не знаю, работает ли команда export, если её прописать в конфигурационном файле OpenRC (а не в скрипте запуска демона), но можно попробовать сделать всё через конфиг /etc/conf.d/sddm: