Проблемы с локалями. Сбивается язык

Доброго времени суток!

Проблема следующая: установил Кальку, при установке выбирал немецкий язык как основной. Позже добавил русский язык для системы как основной. Две раскладки, все перевелись на русский, проблем не было. Всё настроил, обновился - язык слетел. Меню на правую кнопку мышки основное на англ, дополнительное на русском. Весь Дельфин на английском, менеджер настроек системы - половина на русском, половина на английском. Это уже второй раз. Первый раз подобная проблема возникла, когда поиграл я с настройками тем. Галочку в одном месте поставил, сейчас пишу пост с телефона, поэтому не скажу точно где.

Какой вывод я могу сделать? Система либо сырая, либо что-то упущено или непродуманно. Приятного от таких последствий мало. Так ещё больше проблем доставляет то, что в настройках языковых всего 2 языка - нем и рус. Откуда английский?

Существует ли способ все вернуть на свои места не переустанавливая систему? Потому что, если сравнить временные затраты на перестановку и настройку через конфиги без опыта, то первый вариант предпочтительней, так как по времени занимает всего 10 минут, а второй может отнять пол дня, потому что, наврядли мне кто-то пошагово тут объяснит как где и что нужно сделать…

Как вариант для себя на сегодня, при текущих проблемах, я вижу только чистую установку с использованием английского языка. Видимо тогда уже ничего не слетит. Но все же, хотелось бы чтобы эта проблема в будущем была решена.

Жду комментариев.

  1. Английский язык ниоткуда. Откуда это про остальные языки. Практически все программы пишутся на английском языке. Потом, по мере знаний языков, автор или сообщество может добавить файлы переводов на другие языки.
  2. Зайти в консоль под root, Дать команду “eselect locale list”. Выбрать номер нужной локали и дать “eselect locale set {номер}”. После чего дать “. /etc/profile” и перезагрузиться.

calculate /home/Necr0x # eselect locale list
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_COLLATE to default locale: No such file or directory
Available targets for the LANG variable:
[1] C
[2] C.utf8
[3] POSIX
[4] en_US.utf8
[5] ru_RU.utf8 *
[ ] (free form)
calculate /home/Necr0x # eselect locale set 5
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_COLLATE to default locale: No such file or directory
Setting LANG to ru_RU.utf8 …
Run “. /etc/profile” to update the variable in your shell.

Причем здесь советы по выбору системной локали?

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

Поэтому и желание переустановки системы тоже действие странное.

Попробуйте создать пользователя, зайдите под ним и проверьте, что будет с локалями у этого пользователя.

Если решать кардинально, то достаточно будет пересоздать шаблонами своего пользователя.

В кедах по умолчанию выставлено использовать системную локаль.

Протестировал вчера на виртуалке. Сделал как автор поста, а именно:

  1. Установил CLD свежей версии на момент тестирования (cld-20201230-x86_64). При загрузке с LiveCD выбрал немецкий язык.
  2. Далее сделал смену локали на русский язык командой cl-setup-locale --locale ru_RU.
  3. Перезагрузился, окно входа стало по-русски.
  4. Зашёл в систему - в главном меню пункты Выход и Недавние программы стали английскими, остальное по-русски. По ПКМ на свободном месте рабочего стола выводится контекстное меню полностью на английском.

english-01

  1. При попытке установить любое приложение в консоли через emerge сначала выдаёт 2 строчки с ошибкой:
    setlocale: unsupported locale setting

Аналогичная проблема описана тут Gentoo Forums :: View topic - [SOLVED] setlocale: unsupported locale setting

Попутно выяснилось, что при запуске команд locale и locale -a как под пользователем, так и под root имеются ошибки на
LC_CTYPE, CL_MESSAGES, LC_ALL
ошибки

Ошибки с LC_CTYPE, CL_MESSAGES решаются добавлением нужных строк в /etc/env.d/02locale параметров для них по примеру ссылки выше.

Ошибку с LC_ALL победить не удалось…

  1. Опытным путём было установлено, что в KDE при выборе региона Россия и назначении вручную немецких форматов, либо при выборе региона Германия интерфейс тоже становится наполовину английским. Получается, если через утилиты поставить одну локаль (русский), а через панель управления KDE выбрать другой регион, то появляются такие неприятности с переводом.

По аналогии с # This file lists locales that you wish to have built. You can find a list# of - Pastebin.com добавил руками немецкую локаль, Перегенерировал командой в консоли locale-gen, перезагрузил, теперь интерфейс на русском, регион в настройках KDE стоит Германия (Deutschland) и всё работает.

PS. А ещё пропала ошибка с LC_ALL в выводе команд locale и locale -a

1 Like

image

Первым языком в KDE стоит русский. Так, для сведения.

1 Like

Сперва ответ на посл комментарий: не должен быть. Если выставить русский, то локаль так же слетает. У меня на другом дистре в КДЕ стоит сейчас Английский первым и при этом всё на русском, потому что в Локализации стоит Россия, русский для системы. Ниже вся информация с пруфами.

  1. Выставляем русский язык в:

“Локализация - форматы - регион - Россия”
"Настроить форматы отдельно - “русский”

Контекстное меню на правую мышку работает отлично. Всё на русском языке. Консоль не сыпит ошибками насчёт локали. Пробуем загрузить картинку в интернет (работает на любых сайтах и форумах в любых странах) Пруф на Ютубе 1

  1. Теперь меняем на немецкий:

“Локализация - форматы - регион - Германия”
"Настроить форматы отдельно - “немецкий”

Локаль слетает. Контекстное меню на правую мышку на английском. Менеджер настроек КДЕ на двух языках в перемешку англ и нем. Консоль сыпит ошибками насчёт локали. Пробуем загрузить картинку в интернет (больше НЕ работает на любых сайтах и форумах в любых странах Fehlercode: RESULT_CODE_KILLED_BAD_MESSAGE) Дельфин отображает меню слева на английском, название папки “Рабочий стол” на рабочем столе на немецком. Папки в дом каталоге на русском. Но если нужно что-то сохранить через браузер например, то создаются новые стандартные папки на немецком. Пруф на ютубе 2

  1. Если оставить Регион “Россия” и форматы выставить “немецкий”, то проблема также остаётся. Контекстное меню на правую мышку работает в перемешку, на русском и английском. Менеджер настроек КДЕ на двух языках в перемешку рус и англ. Консоль сыпит ошибками насчёт локали. Пробуем загрузить картинку в интернет (больше НЕ работает на любых сайтах и форумах в любых странах Fehlercode: RESULT_CODE_KILLED_BAD_MESSAGE) Дельфин отображает меню слева на русском, название папки “Рабочий стол” на рабочем столе на русском. Папки в дом каталоге на русском. Пруф на Ютубе 3

Заключение. По нормальному должно быть так:

“Локализация - форматы - регион - Россия”
"Настроить форматы отдельно - “немецкий”

При даных настройках не должна слетать локаль, в консоли не должны сыпаться ошибки, контекстное меню на правую мышку должно быть полностью на русском языке, менеджер настроек КДЕ должен быть полностью на русском языке.

Тестировал на виртуальной машине с установленой Калькой cld-20201230-x86_64.iso. Так же попутно было выявлено, что система стартует без Иксов, приходилось писать “startx” и после перезагрузки и после логаута. Возможно это просто особенность виртуалки, не осмелюсь утверждать. Прошу исправить данный баг.

Я скачал Linux Another, установил, и полёт нормальный. У меня установлен вариант 3, менеджер настроек КДЕ при этом полностью на русском, работает загрузка файлов в интернет через браузер, контекстное меню на правую мышку полностью на русском, папки в дом каталоге пользователя на русском, меню Дельфина тоже на русском. В данном конкретном случае Калька для меня ещё сыровата. Прошу без наездов, но такие вещи должны работать как нужно из коробки. Буду тестировать и отписывать больше. Пруф на Ютубе “как должно быть”

Решение:

/etc/locale.gen

en_US.utf8 UTF-8
ru_RU.utf8 UTF-8
de_DE.utf8 UTF-8

/etc/env.d/02locale

LANG=“ru_RU.utf8”
LC_NUMERIC=POSIX

locale-gen

При условии настроек:

“Локализация - форматы - регион - Россия”
"Настроить форматы отдельно - “Германия”

reboot - всё на русском, кроме форматов отдельно, они на немецком

Ждем фикс. Чтобы всё работало “из коробки”.

На установленном дистрибутиве по умолчанию локали генерируются только две: en_US, и выбранная. Для использования нескольких локалей необходимо создать шаблон /etc/locale.gen.clt:

# Calculate mergepkg(sys-libs/glibc)!=
en_US.utf8 UTF-8
ru_RU.utf8 UTF-8
de_DE.utf8 UTF-8

И затем перенастроить локаль cl-setup-locale -l ru_RU