View previous topic :: View next topic |
Author |
Message |
Magister Cistiorum n00b
Joined: 22 Dec 2010 Posts: 14
|
Posted: Sat Mar 10, 2012 4:50 pm Post subject: Недорусифицированная консоль |
|
|
Русифицировал консоль согласно документации с официального сайта и вике.
В /etc/env.d/02locale написал следующее:
Code: | LANG=en_US.UTF8
LC_COLLATE=C |
В /etc/profile.d/ положил скрипт, меняющий LANG на ru_RU.UTF8:
Code: | export LANG=ru_RU.UTF8 |
В /etc/conf.d/consolefont выставил cyr-sun16 в качестве шрифта, используемого в консоли:
Code: | consolefont="cyr-sun16" |
Включил запуск /etc/init.d/consolefont в default runlevel:
Code: | rc-update add consolefont default |
Поправил LINGUAS в make.conf:
и сделал потом
Code: | emerge --update --deep --with-bdeps=y --newuse world |
В результате консоль русифицировалась - сокращённые названия месяцев в выводе ls -l пишутся по-русски, vim все сообщения выводит по-русски и т.д. Но в некоторых случаях в выводе тех или иных приложений наблюдаются "прямоугольники" вместо символов (предположительно кириллических): man выводит "прямоугольники" вместо кириллицы в сообщениях (например, если запросить несуществующую man-страницу), в интерфейсе elinks (например, в окне поиска) в надписях все кириллические символы тоже заменены на "прямоугольники", периодически эти же "прямоугольники" проскакивают в выводе emerge (хотя по большей части кириллица там выводится в читаемом виде). Пробовал менять шрифт с cyr-sun16 на ter-k14n - ситуация не поменялась (если не считать появления боли в глазах после пары минут созерцания этого вырвиглазного шрифта ).
В чём я накосячил? |
|
Back to top |
|
|
FlaTHunTeR n00b
Joined: 03 Dec 2007 Posts: 54 Location: из утробы матери...
|
Posted: Sun Mar 11, 2012 7:16 am Post subject: Re: Недорусифицированная консоль |
|
|
Magister Cistiorum wrote: | В /etc/env.d/02locale написал следующее:
Code: | LANG=en_US.UTF8
LC_COLLATE=C |
В /etc/profile.d/ положил скрипт, меняющий LANG на ru_RU.UTF8:
Code: | export LANG=ru_RU.UTF8 |
|
Вот здесь.
Есть такая замечательная утилита: eselect называется. Настоятельно рекомендую ознакомиться!
А если вынастолько ленивы что вам некогда, то:
Code: |
-> USE="unicode" emerge -uND world
|
Code: |
-> cat /etc/rc.conf|grep uni | grep -v "#"
unicode="YES"
|
Code: |
-> cat /etc/locale.gen (можно оставить вообще только ru_RU.UTF-8 UTF-8)
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
|
Code: |
-> eselect locale list |grep ru_RU.utf8
[10] ru_RU.utf8
|
Code: |
-> eselect locale set 10 (смотреть вывод предыдущей команды: номер может не совпадать с примером)
|
ну и нужен шрифт поддерживающий юникод: к примеру terminus(consolefont="ter-k14n")
PS: мог и забыть что-нибудь... _________________ "...and so remember, it's better to burn out then to fade away." (Kurt Cobain) |
|
Back to top |
|
|
TigerJr Guru
Joined: 19 Jun 2007 Posts: 540
|
Posted: Sun Mar 11, 2012 11:29 am Post subject: |
|
|
Я думаю там всё уже есть скомпилено...
Скорее у тебя часть либов собрались после бинарей которые использовали либы, если так
перебери мир ещё раз и проверь всё ли перебралось
Code: |
emerge -uND world
emerge world -ep |
_________________ Do not use gentoo, it die |
|
Back to top |
|
|
Magister Cistiorum n00b
Joined: 22 Dec 2010 Posts: 14
|
Posted: Sun Mar 11, 2012 9:25 pm Post subject: Re: Недорусифицированная консоль |
|
|
FlaTHunTeR wrote: | В /etc/env.d/02locale написал следующее:
Есть такая замечательная утилита: eselect называется. Настоятельно рекомендую ознакомиться!
|
Собственно, если верить вике (и исходникам eselect-овского модуля locale), eselect locale set ничего не делает, кроме как выставляет LANG в /etc/env.d/02locale. Так что никаких принципиальных преимуществ использование eselect перед ручной правкой этого конфига не даёт. Выставлять LANG=ru_RU.utf8 сразу в /etc/env.d/02locale я не стал, потому что, опять же если верить вике:
Quote: | В некоторых случаях (когда /etc/init.d/consolefont еще не отработал - например, в процессе загрузки fsck может что-нибудь выводить) это приводит к выводу нечитаемых сообщений - белые квадраты вместо кириллических символов. |
Потому вынес включение русской локали в /etc/profile.
TigerJr wrote: |
Я думаю там всё уже есть скомпилено...
|
Именно так.
TigerJr wrote: |
Скорее у тебя часть либов собрались после бинарей которые использовали либы, если так
перебери мир ещё раз и проверь всё ли перебралось
Code: |
emerge -uND world
emerge world -ep |
|
Сделал. Не помогло. Я же правильно понял, что проверка, всё ли перебралось, заключается в том, чтобы в выводе emerge world -ep напротив всех пакетов должно стоять "R"?
Как показала enca, man выводит сообщения об ошибках в koi8-r. Собственно, перегонка iconv-ом из koi8-r в utf8 подтвердила это - пропущенные через iconv, эти сообщения обретали вполне читабельный русскоязычный вид.
Что характерно, даже на некоторых англоязычных man-страницах наблюдаются белые прямоугольники вместо отдельных символов. Попробовал такую man-страницу сохранить в файл и посмотреть, что про него скажет enca. Получилось вот такое:
Code: | $ man emerge > man\ emerge.txt
$ enca man\ emerge.txt
Universal transformation format 8 bits; UTF-8
Surrounded by/intermixed with non-text data
Doubly-encoded to UTF-8 from ISO-8859-5
|
Определить, в какой кодировке выводит elinks, даже не знаю как. Там интерактивный интерфейс - его в файл не сохранишь, чтобы enca-е скормить его потом или через iconv пропустить.
Вобщем воз и ныне там. |
|
Back to top |
|
|
FlaTHunTeR n00b
Joined: 03 Dec 2007 Posts: 54 Location: из утробы матери...
|
Posted: Mon Mar 12, 2012 7:13 am Post subject: Re: Недорусифицированная консоль |
|
|
Magister Cistiorum wrote: |
Собственно, если верить вике (и исходникам eselect-овского модуля locale), eselect locale set ничего не делает, кроме как выставляет LANG в /etc/env.d/02locale. Так что никаких принципиальных преимуществ использование eselect перед ручной правкой этого конфига не даёт.
|
Ну никто и не говорил что она делает что-то принципиально другое. А ознакомиться я рекомендовал со всей утилитой, а не отдельным её модулем.
Magister Cistiorum wrote: |
Я же правильно понял, что проверка, всё ли перебралось, заключается в том, чтобы в выводе emerge world -ep напротив всех пакетов должно стоять "R"?
|
Не правильно. Это означает что данные пакеты уже установлены и будут пересобраны. Ответ на этот вопрос можно найти в логе.
PS: На той же странице вики есть таки пункт 7.5.3, но вот насколько он необходим сейчас неизвестно. С момента последней правки того пункта прошло почти 2 года.
PPS: А вообще из меня в этом деле советчик не ахти. Сам я никогда не русифицировал консоль т.к. не вижу в этом смысла. _________________ "...and so remember, it's better to burn out then to fade away." (Kurt Cobain) |
|
Back to top |
|
|
Magister Cistiorum n00b
Joined: 22 Dec 2010 Posts: 14
|
Posted: Sun Mar 18, 2012 8:43 pm Post subject: Re: Недорусифицированная консоль |
|
|
FlaTHunTeR wrote: |
PS: На той же странице вики есть таки пункт 7.5.3, но вот насколько он необходим сейчас неизвестно. С момента последней правки того пункта прошло почти 2 года. |
А вот тут действительно я клювом прощёлкал. Спасибо. Вообще, по результатам гуглинга выяснил, что помимо этого метода, есть ещё как минимум 2: ставить man из оверлея (название оверлея, увы, не сохранил) и использовать man-db вместо man. Собственно, последним способом и воспользовался.
По поводу elinks: проблема в самом elinks, не в локализации. Решается добавлением Code: | set terminal.linux.charset = "koi8-r" | в elinks.conf. Вроде бы должны пофиксить в будущих релизах. |
|
Back to top |
|
|
burik666 n00b
Joined: 28 Jan 2007 Posts: 51 Location: Санкт-Петербург
|
Posted: Thu May 24, 2012 12:42 am Post subject: Re: Недорусифицированная консоль |
|
|
[quote="Magister Cistiorum"] FlaTHunTeR wrote: |
По поводу elinks: проблема в самом elinks, не в локализации. Решается добавлением Code: | set terminal.linux.charset = "koi8-r" | в elinks.conf. Вроде бы должны пофиксить в будущих релизах. |
А почему koi8-r если локаль UTF-8? _________________ Linux for you
gentoo.bloodhost.ru Gentoo mirror (Russia, Saint-Petersburg) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|