Автор Тема: В консоли всё стало на англ.языке [Решено]  (Прочитано 1943 раз)

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
В какой-то момент, возможно после apt-cache show от рута, всё в консоли стало на английском, как вернуть обратно русиш?
« Последнее редактирование: 16.11.2015 13:21:54 от Cool_Lamer »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: В консоли всё стало на англ.языке
« Ответ #1 : 26.09.2015 19:06:39 »
после apt-cache show от рута
Это вряд ли.

Скриншот приложите.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: В консоли всё стало на англ.языке
« Ответ #2 : 26.09.2015 20:01:37 »
Приведите вывод команды:
locale
А вообще установить русскую локаль в p7 systemd можно при помощи команды:
localectl set-locale LANG=ru_RU.UTF-8
Если будут проблемы с переключением раскладки загляните сюда: http://forum.altlinux.org/index.php?topic=29570.msg207202#msg207202

Также локаль можно установить локально для каждого пользователя в файле ~/.config/locale.conf
« Последнее редактирование: 26.09.2015 20:07:14 от Антон Мидюков »

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Re: В консоли всё стало на англ.языке
« Ответ #3 : 26.09.2015 21:18:07 »
Скриншот приложите.
Скриншоты чего?

# locale
LANG=POSIX
LC_CTYPE=en_US.utf8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

локаль в p7 systemd[/code]
нет, стоит sysv

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: В консоли всё стало на англ.языке
« Ответ #4 : 26.09.2015 21:46:13 »
Скриншоты чего?
Честно, не понял что конкретно "стало на английском". Я почему-то подумал, что у вас в эмуляторе терминала стало всё по-английски.

Сравнивайте:
# 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=

http://www.shellhacks.com/ru/Kak-Izmenit-Lokal-Yazyk-i-Kodirovku-v-Linux
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: В консоли всё стало на англ.языке
« Ответ #5 : 26.09.2015 22:09:09 »
# locale
LANG=POSIX
Ну, у root она и должна быть английской.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: В консоли всё стало на англ.языке
« Ответ #6 : 26.09.2015 22:13:13 »
Ну, у root она и должна быть английской.
Упс, да кстати, в консоли вывод совпадает с выводом Cool_Lamer.

В терминале через 'su -' выдаёт то, что выше я привёл.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: В консоли всё стало на англ.языке
« Ответ #7 : 26.09.2015 23:43:11 »
Скриншот приложите.
Скриншоты чего?

# locale
LANG=POSIX
LC_CTYPE=en_US.utf8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

локаль в p7 systemd[/code]
нет, стоит sysv

А если так?
# locale | sed 's/=..*/=ru_RU.UTF-8/g' > /root/.i18n

Чтобы получилось так
# cat ~/.i18n
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=

А после релогин, нечто так
# 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=

sed меняет после = все подстроки, длинна которых после равно, от одного символа и больше, и результат загоняется в файл.
Чтобы LC_ALL оставить без параметра.

Переинсталляция пакета вернёт root'у posix-локаль в tty{1,2,3,4,5,6}
# rpm -qf /root/.i18n
rootfiles-alt-alt11
Внутри файла скрипт.
« Последнее редактирование: 27.09.2015 01:30:52 от Speccyfighter »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: В консоли всё стало на англ.языке
« Ответ #8 : 27.09.2015 02:33:22 »
Переинсталляция пакета вернёт root'у posix-локаль в tty{1,2,3,4,5,6}

Не вернёт, так как в спеке пакета rootfiles-alt-alt11 в секции files вот такая строчка есть:
%config(noreplace) /root/.??*То бишь файлы с маской /root/.??* считаются конфигами и при наличии не затираются.
« Последнее редактирование: 27.09.2015 02:36:31 от Антон Мидюков »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: В консоли всё стало на англ.языке
« Ответ #9 : 27.09.2015 05:51:36 »
Переинсталляция пакета вернёт root'у posix-локаль в tty{1,2,3,4,5,6}

Не вернёт, так как в спеке пакета rootfiles-alt-alt11 в секции files вот такая строчка есть:
%config(noreplace) /root/.??*То бишь файлы с маской /root/.??* считаются конфигами и при наличии не затираются.

Точно.
С rpm'ом надо как в первослаке файлы руками рассовывать.
Так он не умеет:
Цитировать
   --force-maintainer    Overwrite preexisting config files
И врядли будет уметь.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: В консоли всё стало на англ.языке
« Ответ #10 : 27.09.2015 07:20:13 »
Так он не умеет:
Цитировать (выделенное)

       --force-maintainer    Overwrite preexisting config files

И врядли будет уметь.

Можно вот так сделать:
apt-get remove --purge пакет && apt-get install пакет
Но надо смотреть, чтоб при удалении пол системы не удалилось.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: В консоли всё стало на англ.языке
« Ответ #11 : 27.09.2015 12:58:27 »
Так он не умеет:
Цитировать
       --force-maintainer    Overwrite preexisting config files
И врядли будет уметь.

Можно вот так сделать:
apt-get remove --purge пакет && apt-get install пакет

apt-rpm на эту опцию, скрутит смачный кукиш:
$ man apt-get|col -bfx|sed -n '233,235p'
       --purge
              Использовать purge (зачистку) вместо remove  (удаления)  для  всех  пакетов,  которые
              будут удалены. Эта опция не имеет эффекта на системах использующих RPM.

Но надо смотреть, чтоб при удалении пол системы не удалилось.

Удалятся только три пакета. Но какие?!
  basesystem interactivesystem rootfiles
ВНИМАНИЕ: Будут удалены важные для работы системы пакеты
Обычно этого делать не следует. Вы должны точно понимать возможные последствия!
  basesystem rootfiles (по причине basesystem)

С apt-rpm, как в первослаке, - rpm2cpio и расталкивать руками пофайлово.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: В консоли всё стало на англ.языке
« Ответ #12 : 27.09.2015 13:16:12 »
Не понял - что мешает положить в
/etc/sysconfig/i18n или /root/.i18n   файл собственного содержания?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: В консоли всё стало на англ.языке
« Ответ #13 : 27.09.2015 13:18:16 »
Хотя я конечно знаю зачем это сделано. - Что-бы при поломке локали можно-бы было хоть по-латински увидеть что происходит в системе и что надо чинить. Хотя идеально для России был-бы транслит.
« Последнее редактирование: 27.09.2015 13:20:04 от ruslandh »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: В консоли всё стало на англ.языке
« Ответ #14 : 27.09.2015 14:10:10 »
Хотя я конечно знаю зачем это сделано. - Что-бы при поломке локали можно-бы было хоть по-латински увидеть что происходит в системе и что надо чинить. Хотя идеально для России был-бы транслит.

Можно обойти это не меняя /root/.i18n который из rootfiles:
# LC_ALL=ru_RU.UTF-8 apt-get remove rootfiles -s

А на это LC_ALL=... сделать руту алиас в /root/.bashrc. Например RU.
Два лишних символа вбить не сложно.

# alias RU='LC_ALL=ru_RU.UTF-8'
# RU apt-get remove rootfiles -s