Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Недорусифицированная консоль
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
Magister Cistiorum
n00b
n00b


Joined: 22 Dec 2010
Posts: 14

PostPosted: Sat Mar 10, 2012 4:50 pm    Post subject: Недорусифицированная консоль Reply with quote

Русифицировал консоль согласно документации с официального сайта и вике.

В /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:
LINGUAS="ru en"

и сделал потом
Code:
emerge --update --deep --with-bdeps=y --newuse world


В результате консоль русифицировалась - сокращённые названия месяцев в выводе ls -l пишутся по-русски, vim все сообщения выводит по-русски и т.д. Но в некоторых случаях в выводе тех или иных приложений наблюдаются "прямоугольники" вместо символов (предположительно кириллических): man выводит "прямоугольники" вместо кириллицы в сообщениях (например, если запросить несуществующую man-страницу), в интерфейсе elinks (например, в окне поиска) в надписях все кириллические символы тоже заменены на "прямоугольники", периодически эти же "прямоугольники" проскакивают в выводе emerge (хотя по большей части кириллица там выводится в читаемом виде). Пробовал менять шрифт с cyr-sun16 на ter-k14n - ситуация не поменялась (если не считать появления боли в глазах после пары минут созерцания этого вырвиглазного шрифта :) ).

В чём я накосячил?
Back to top
View user's profile Send private message
FlaTHunTeR
n00b
n00b


Joined: 03 Dec 2007
Posts: 54
Location: из утробы матери...

PostPosted: Sun Mar 11, 2012 7:16 am    Post subject: Re: Недорусифицированная консоль Reply with quote

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 (смотреть вывод предыдущей команды: номер может не совпадать с примером)

Code:

-> locale-gen

ну и нужен шрифт поддерживающий юникод: к примеру terminus(consolefont="ter-k14n")

PS: мог и забыть что-нибудь...
_________________
"...and so remember, it's better to burn out then to fade away." (Kurt Cobain)
Back to top
View user's profile Send private message
TigerJr
Tux's lil' helper
Tux's lil' helper


Joined: 19 Jun 2007
Posts: 78
Location: /dev/spb7

PostPosted: Sun Mar 11, 2012 11:29 am    Post subject: Reply with quote

Code:
locale -a


Я думаю там всё уже есть скомпилено...

Скорее у тебя часть либов собрались после бинарей которые использовали либы, если так

перебери мир ещё раз и проверь всё ли перебралось

Code:

emerge -uND world

emerge world -ep

_________________

gentoway or not gentoway?
Back to top
View user's profile Send private message
Magister Cistiorum
n00b
n00b


Joined: 22 Dec 2010
Posts: 14

PostPosted: Sun Mar 11, 2012 9:25 pm    Post subject: Re: Недорусифицированная консоль Reply with quote

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:
Code:
locale -a


Я думаю там всё уже есть скомпилено...

Именно так.
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
View user's profile Send private message
FlaTHunTeR
n00b
n00b


Joined: 03 Dec 2007
Posts: 54
Location: из утробы матери...

PostPosted: Mon Mar 12, 2012 7:13 am    Post subject: Re: Недорусифицированная консоль Reply with quote

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
View user's profile Send private message
Magister Cistiorum
n00b
n00b


Joined: 22 Dec 2010
Posts: 14

PostPosted: Sun Mar 18, 2012 8:43 pm    Post subject: Re: Недорусифицированная консоль Reply with quote

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
View user's profile Send private message
burik666
n00b
n00b


Joined: 28 Jan 2007
Posts: 50
Location: Санкт-Петербург

PostPosted: Thu May 24, 2012 12:42 am    Post subject: Re: Недорусифицированная консоль Reply with quote

[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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
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