Распаковать initrd с установочного диска; перевести сообщения в bash-скрипте; прикрутить выбор языка и установку шрифта русского, чтоб читать всё это счастье; запаковать обратно.
Вот только надо ли оно? Неужели его больше одного раза приходится видеть на пачке одинаковых машин?
Распаковать initrd с установочного диска; перевести сообщения в bash-скрипте; прикрутить выбор языка и установку шрифта русского, чтоб читать всё это счастье; запаковать обратно.
Вот только надо ли оно? Неужели его больше одного раза приходится видеть на пачке одинаковых машин?
Типа, я этого не знал...
А по пунктам можно?
И с ответами, а не с намёками...
Добавить в ~/initrd/etc/rc.S установку шрифта (setfont -v) и переменной, хоть той же LANG, по запросу аналогично запросу раскладки клавиатуры.
В ~/initrd/usr/lib/setup/* вывод сообщений сделать в зависимости от LANG или что там признаком выбрали.
Посмотреть на то, что нужно для dialog для вывода русских кнопок Да, Нет и т.п.
-- Эй-эй, стойте, а что, есть вы тоже за меня будете?
-- Ага!
(q) Вовка в тридевятом царстве
Добавить в ~/initrd/etc/rc.S установку шрифта (setfont -v) и переменной, хоть той же LANG, по запросу аналогично запросу раскладки клавиатуры.
В ~/initrd/usr/lib/setup/* вывод сообщений сделать в зависимости от LANG или что там признаком выбрали.
Посмотреть на то, что нужно для dialog для вывода русских кнопок Да, Нет и т.п.
-- Эй-эй, стойте, а что, есть вы тоже за меня будете?
-- Ага!
(q) Вовка в тридевятом царстве
Оцэ дило!
Спасибо, попробую...
А про Вовку зря...
Я и так про себя сам всё знаю... :D
cdrw,
просто вопросы не совсем конкретные, непонятно, что вызвало затруднения. В этом конкретном случае это, похоже, непонятки с последовательностью старта, но чудес не случилось, всё как во "взрослой" slackware, только busybox вместо почти всего на свете.
Из чего состоит процесс локализации консоли? Коротенечко:
1) экранный шрифт. Загружается в знакогенератор видеоадаптера. По большому счёту, одного этого уже достаточно, чтобы иметь на экране вывод русских сообщений. (setfont font)
2) таблица перекодировки.
Пример использования -- мануалы по локализации консоли в слаке для koi8-r со шрифтом Cyr_a8x16 или другим Cyr_a* шрифтом. setfont Cyr_a8x16 -m koi2alt -- устанавливается экранный шрифт в альтернативной кодировке (cp866, "родной" для видеоадаптеров персоналок, поскольку содержит псевдографику в позициях, которым видеоадаптер дублирует 8 вертикаль 9-й), а каждый выводимый символ преобразует из koi8-r в альтернативную кодировку по таблице koi2alt.
3) таблица клавиатуры (loadkeys) привязывающая сканкоды клавиш к конкретным символам.
4) локаль -- настройки национальных особенностей -- дата, время, разделители и т.п. Генерируется из исходников описания локали или поставляется в бинарном виде. Примеры генерации можно посмотреть в gentoo или в мануалах по русификации слаки примерно 7 версии и раньше (localedef).
5) текстовые ресурсы программ для того или иного языка в той или иной кодировке (gettext предоставляет для этого богатые возможности, базируясь на переменной LANG).
Из чего состоит процесс локализации консоли? Коротенечко:
1) экранный шрифт. Загружается в знакогенератор видеоадаптера. По большому счёту, одного этого уже достаточно, чтобы иметь на экране вывод русских сообщений. (setfont font)
2) таблица перекодировки.
Пример использования -- мануалы по локализации консоли в слаке для koi8-r со шрифтом Cyr_a8x16 или другим Cyr_a* шрифтом. setfont Cyr_a8x16 -m koi2alt -- устанавливается экранный шрифт в альтернативной кодировке (cp866, "родной" для видеоадаптеров персоналок, поскольку содержит псевдографику в позициях, которым видеоадаптер дублирует 8 вертикаль 9-й), а каждый выводимый символ преобразует из koi8-r в альтернативную кодировку по таблице koi2alt.
3) таблица клавиатуры (loadkeys) привязывающая сканкоды клавиш к конкретным символам.
4) локаль -- настройки национальных особенностей -- дата, время, разделители и т.п. Генерируется из исходников описания локали или поставляется в бинарном виде. Примеры генерации можно посмотреть в gentoo или в мануалах по русификации слаки примерно 7 версии и раньше (localedef).
5) текстовые ресурсы программ для того или иного языка в той или иной кодировке (gettext предоставляет для этого богатые возможности, базируясь на переменной LANG).
Русификация "большой" слаки сводится всего лишь к
1) передаче ядру для определённости параметра vt.default_utf8=0|1 -- какая консоль будет по умолчанию. Прописывается в /etc/lilo.conf, поскольку lilo грузит ядро и передаёт ему параметры. После загрузки меняется скриптами unicode_start/unicode_stop.
2) загрузке шрифта в знакогенератор и установке таблицы перекодировки при выводе. setfont font -m table.
3) for n in 1 2 3 4 5 6 ; do echo -ne "\033%G" > /dev/tty$n ; done -- делается для "сброса" всех 6 умолчальных терминалов, если этого не сделать, шрифт применится только в том tty, в котором выполнен setfont. Для неюникодной консоли команда терминала другая -- "\033(K". Количество смотреть и править в /etc/inittab.
4) загрузке раскладки клавиатуры loadkeys ... влияет только на ввод с клавиатуры.
5) установке переменных LANG, LC_* по потребностям. При этом софт смотрит на LANG и выбирает сообщения для указанного языка и кодировки (при помощи gettext или иных средств локализации).
6) установке требуемых пакетов kbd, glibc-i18n и т.п.
В initrd/ образе в целях экономии нет языковых ресурсов -- устанавливай/не устанавливай LANG -- русский текст брать негде.
По-умолчанию в новых ядрах консоль уже в utf8.
А остальное надо: loadkeys сделали? Оно там и так есть, ещё до логина. Шрифтик на место положили? Положили. setfont поставили/позвали? Поставили/позвали. По хорошему, посмотреть в /etc/inittab и tty-шки тоже инициализировать, а то без шрифта останутся.
Разве нет?
Вот ради русского в cfdisk надо смотреть, что ему от gettext-а надо добавить...