Консоль
Скачать файл раскладки клавиатуры ru-utf.map.gz и положить его в /usr/share/kbd/keymaps/i386/qwerty/
Создаём (или изменяем) файлы
/etc/rc.d/rc.keymap:
loadkeys ru-utf.map.gz
/etc/rc.d/rc.font:
#!/bin/sh
unicode_start cyr-sun16
/etc/profile.d/lang.sh:
export LANG=ru_RU.UTF-8
/etc/rc.d/rc.font
/usr/share/locale/locale.alias: изменяем строчку
russian ...
на
russian ru
ru ru_RU
ru_RU ru_RU.UTF-8
Midnight Commander
Накладываем патч, собираем пакет (надо добавить строчку накладывания патча в mc.SlackBuild). Это верно для slang2. Если у вас стоит slang 1.4.9 или более древний, то его стоит обновить до slang2. Доступны готовые пакеты.
Октябрь 6, 2006 в 11:15 дп
Можно снимать целый телесериал в стиле «Санта-Барбара» под названием «Жизнь и Борьба с Юникод» :-) Да, за ним будущее, но пока что старые аксакалы ставят таки КОИ8.
Октябрь 6, 2006 в 5:37 пп
Ну Patrick Volkerding в скриптах сам рекомендует пока воздерживаться от юникода, но реально проблема одна – это mc. Для всего остального есть вполне адекватная замена.
P. S. А процесс русификации в Slackware всегда такой был :)
Октябрь 7, 2006 в 10:02 дп
У меня с самого начала debian на utf-8 настроен. И никаках проблем нет.
МС вообще не пользовался, не пользуюсь, и не собираюсь пользоваться.
Zsh-beta юникод поддерживает, а это для меня самое главное.
И домен свой я хостера попросил сразу же на utf-8 перевести.
Ноябрь 1, 2006 в 3:09 дп
Я бы посоветовал, прежде чем пользоваться инфой автора, збэкапить все те файлы, что он предложил изменить.
Его руководство неверно для этой версии. Если нет желания огрести гимора после его советов, забэкапте эти файлы, а когда убедитесь, поищите в других местах, как правильно переводить локаль.
Google в помощь
Ноябрь 1, 2006 в 5:48 дп
Для 11 неверно? И что же не работает? У меня всё получилось.
Ноябрь 1, 2006 в 7:35 дп
Проверил на чистой установке. Всё прекрасно работает. Правый Alt переключает раскладку (en/ru). Русские имена файлов видны. Что ещё нужно?!
Может, у вас в ядре нет nls UTF-8?
Ноябрь 14, 2006 в 1:31 дп
Кстати, mc лучше собирать самому – поскольку с выходом slang2 в нём появилась поддержка юникода.
Патч от Archlinux (естественно, подходит и для Slackware). В mc.SlackBuild нужно поменять всего лишь строчку патчения (zcat на bzcat и соответствующее имя файла) и положить патч в каталог с mc.SlackBuild
Ноябрь 14, 2006 в 7:56 пп
Это проще всего написать: не работает и всё, а сказать где не работает и тем более разобраться почему не работает – религия не позволяет.
От себя скажу, что при локализации мною был пройден практически такой же путь. За исключением пары замечаний:
- в строке echo -n -e ‘33%G’ > /dev/tty$n вордпресс скушал обратный слеш и и нолик, но при правке указанного автором файла итак большинство об этом догадалось.
- ещё я пересобрал freetype предварительно убрав в freetype.SlackBuild знак комментария со строки zcat $CWD/freetype.bytecode.interpreter.diff.gz | patch -p1 –verbose || exit 1
PS: спасибо за совет с пересборкой mc. Сегодня же попробую.
Ноябрь 14, 2006 в 8:19 пп
мда, действительно, съел :(, \ 0 33%G должно быть (без пробелов).
А freetype я забыл пересобрать, вроде и так шрифты в порядке. Но, конечно, пересобрать стоит.
Ноябрь 19, 2006 в 7:23 пп
Собрал slang2 и mc с вышеупомянутым патчем. Вроде всё нормально работает за исключением подсказок, которые под панелями. Конечно они нафиг не нужны, но всё равно неприятно. Это как-то лечится?
Ноябрь 19, 2006 в 7:38 пп
Ну можно их отключить в Options->Layout->hIntbar visible
У меня локаль en_US.UTF-8, там такой проблемы нет. Думаю, что просто патч не лечит это.
Декабрь 1, 2006 в 2:32 пп
в форуме выложили файлики для решения проблемы с хинтами: они оказались просто перекодированными в utf исходными файлами из mc. Так что проблема решается так:
$ su
# cd /usr/share/mc
# cp mc.hint.ru mc.hint.ru.koi8r
# iconv -f=koi8-r -t=utf8 mc.hint.ru.koi8r > mc.hint.ru
# cp mc.hlp.ru mc.hlp.ru.koi8r
# iconv -f=koi8-r -t=utf8 mc.hlp.ru.koi8r > mc.hlp.ru
Декабрь 17, 2006 в 10:56 дп
У меня такая проблема русскии буквы показывает знаком вопроса … я уже не знаю что делать помогите
Декабрь 17, 2006 в 1:25 пп
@GRE@T:
А где русские буквы не отображаются? В иксах? Если в иксах, то скорее всего используется шрифт, в котором нет глифов для русских букв.
Декабрь 24, 2006 в 12:18 пп
Статья переработана, изменения внесены в корневой пост. Отмечу, что исправлять /usr/bin/unicode_start не надо, юникод в виртуальных консолях достигается добавлением /etc/rc.d/rc.font в /etc/profile.d/lang.sh (при изменении unicode_start у меня на всех консолях, кроме первой, русского языка не было).
Январь 4, 2007 в 5:44 пп
В консоли русификация работает. А вот в иксовой консоли – konsole – при запуске пишется «putfont: PIO_FONT: Invalid argument».
Если попытаться написать по-русски что-нибудь в этой консоли, то в ней станет автоматом набираться ахинея. ===> Alt+F4 для закрытия konsole ===> вместо этого происходит переход на 4-ый терминал. ===> Alt+F7 для возврата в иксы ===> Всё в порядке.
Если опять запустить konsole, ситуация повториться
В чём проблема? Точнее, как её решить?
Январь 4, 2007 в 9:34 пп
Решил проблему следующим образом.
В файле /etc/rc.d/rc.keymap вместо
loadkeys ru-utf.map.gz
вписал цикл
if [ -x /usr/bin/loadkeys ]; then
/usr/bin/loadkeys ru-utf.map.gz
fi
putfont: PIO_FONT: Invalid argument
в иксах как рукой сняло.
Январь 4, 2007 в 9:40 пп
Чуть не забыл… =)
Ещё были внесены изменения в /etc/profile.d/lang.sh
#!/bin/sh
export LANG=»ru_RU.utf8″
case `tty` in
/dev/tty[0-9]|/dev/vc/[0-9]*)
/usr/bin/unicode_start
. /etc/rc.d/rc.font
;;
esac
Вот после всего этого ошибка и пропала.
Январь 11, 2007 в 11:53 дп
я новенький в линуксе
скажите это инструкция чтобы имена файлов отображались в юникоде? и будут ли тогда отображатся не только русские но и украинские имена? если мне ещё надо иногда украинскую раскладку, что мне сделать?
если не в лом укажите что можно свеженькое по этому поводу почитать? везде нахожу какие то древние мануалы и .т.д.
Январь 12, 2007 в 11:25 пп
ага, эта инструкция в частности для того чтобы имена файлов отображались в юникоде. Про украинский язык сказать ничего не могу. Могу посоветовать дистрибутив DeepStyle (кажется, он так называется), который частично украинизирован.
Январь 13, 2007 в 6:46 дп
@inv:
Я не видел ни разу украинских имен файлов, но думаю, что будут отображаться, при юникодной локали.
В /usr/share/i18n/SUPPORTED вот что сказано:
ru_UA.UTF-8 UTF-8
Так что добавляем в файл /etc/locales.gen строчку ru_UA.UTF-8 UTF-8, далее
$ sudo locale-gen
что бы сгенерировать локаль, далее по-желанию добавляем строчку
LANG=ru_UA.UTF-8
в файл /etc/environment.
Все, должна работать украинская локаль, и отображаться украинские имена файлов.
@Igor:
Не вижу смысла в «украинизации», «русификации» и пр.
Посмотрим, что делают японцы, которым еще труднее чем нам. Так вот, они занимаются интернационализацией.
Январь 13, 2007 в 10:13 дп
украинская локаль нужна только для системных сообщений на украинском языке. Для чтения имён файлов на украинском, думаю, нужна лишь ua-utf.map.gz или что-нибудь в этом роде.
Роман:
Беда в терминологии – неважно, как называть этот процесс…
Январь 15, 2007 в 1:58 дп
mc.SlackBuild
…
…
tar xjvf $CWD/mc-$VERSION.tar.bz2
cd mc-$VERSION
zcat $CWD/mc-4.6.1.php.syntax.diff.gz | patch -p1 –verbose || exit 1
chown -R root:root .
find . -perm 664 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
…
…
можно ли после строчки zcat $CWD/mc-4.6.1.php.syntax.diff.gz | patch -p1 –verbose || exit 1
написать bzcat $CWD/mc-4.6.1-utf8-r1.patch.bz2 | patch -p1 –verbose || exit 1
или это в другой части файла писать?
патч взят из cvs.archlinux… что вверху страницы, он для slang2?
Январь 16, 2007 в 12:20 дп
да, именно тут. Патч один на все шланги. Просто если slang был бы версии 1, то пришлось бы патчить и его, вот.
Январь 16, 2007 в 10:53 дп
Igor спасибо огромное, хотя я уже проверил и до прочтения, можно ещё вопрос тут такая фигня
сначала сделал всё как написано в шапке
потом в соответствии с GiN
потом с другого форума ещё посмотрел
Изменил
/etc/profile.d/lang.sh:
#!/bin/sh
export LANG=ru_RU.UTF8
на en_US.UTF8
/usr/share/locale/locale.alias:
russian ru
ru ru_RU
ru_RU ru_RU.UTF-8
тут всё восстановил как было по-умолчнанию
всё стало нормально с манами и т.д.
вот только потом что-то сделал или так и раньше было
при входе через консоль(не под Х) обычным юзером не рутом
Keymap 0: Permission denied
Keymap 1: Permission denied
Keymap 2: Permission denied
KDSKBENT: Operation not permitted
loadkeys : could not deallocate keymap 3
Keymap 0: Permission denied
Keymap 1: Permission denied
Keymap 2: Permission denied
KDSKBENT: Operation not permitted
loadkeys : could not deallocate keymap 3
пермишены вроде везде где догадался проверил
Январь 16, 2007 в 12:16 пп
судя по
http://www.linuxquestions.org/questions/showthread.php?t=425006
могу посоветовать переставить kbd.. У меня такой проблемы нет…
Январь 24, 2007 в 8:45 пп
А как там с k3b, если юзать такую локаль в Slackware.
Все ли хорошо с русскими именами файлов, если потом читать диски из оффтопа?
Январь 24, 2007 в 8:51 пп
Про русские имена сказать ничего не могу… Ибо не пользуюсь таковыми… Если это и проблема. то юникода, а не Slackware…
Январь 31, 2007 в 10:43 дп
2 inv
Аналогичная проблема. Однако, всё работает. Никто толком ответить не может… =(
====================================
Keymap 0: Permission denied
Keymap 1: Permission denied
Keymap 2: Permission denied
KDSKBENT: Operation not permitted
loadkeys: could not deallocate keymap 3
====================================
K3B использует mkisofs, который не понимает, что значит перекодировать utf8 в utf16. Надо залезть в исходники cdrtools от S11 и наложить патч «cdrtools-2.01a24-UTF8-patch-20040210.txt» ВРУЧНУЮ. Я сейчас этим и занимаюсь.
Февраль 3, 2007 в 2:17 пп
GiN:
только под юзером проблема?
Февраль 13, 2007 в 8:35 дп
Да. Проблема только под юзером.
(я не GiN, просто решил тож сделать)
Февраль 13, 2007 в 8:42 дп
Ага, попробую, наверное, в четверг посмотреть, что и как…
Февраль 13, 2007 в 8:54 дп
жду с нетерпением :)
Февраль 14, 2007 в 3:48 пп
2 Igor
Проблема только под не-root’ом.
____________________
Кстати, cdrtools-2.01 я пересобрал в новый пакет (с поддержкой локали utf-8). Все русские символы в joliet’е записываются великолепно.
Февраль 15, 2007 в 5:12 дп
2 GiN
ну так может выложишь пакет куда-нибудь? :)
Февраль 15, 2007 в 9:58 дп
И SlackBuild ;), если можно
Февраль 16, 2007 в 10:11 дп
2 GiN: Выложи плиз патч и SlackBuild. И ещё вопрос: после прикручивания utf8 к cdrtools, можно в k3b (0.12.17) выбирать входную кодировку uft8? Заранее спасибо.
Февраль 17, 2007 в 1:25 пп
При изменении lang.sh все действия, описанные в нём, выполняются от залогиненного только что пользователя (как проверку можно вписать echo `whoami` в /etc/profile/lang.sh). Поэтому от простого пользователя выполняется /etc/rc.d/rc.font, который запускает unicode_start, в котором есть замечательная строчка dumpkeys | loadkeys –unicode, при выполнении которой и наблюдается ругань. Её можно просто закомментировать. Буду рад, если кто-то сообщит, влияет ли это на функциональность системы и программ.
Вроде понятно объяснил? :)
Февраль 17, 2007 в 1:26 пп
Прошу прощения, что не в четверг. Было много работы, да я ещё и приболел маленько =)
Февраль 21, 2007 в 3:16 пп
Пакет cdrtools-2.01-i486-1GiN.tgz хотел выложить на linuxpackages.net =), но там нет возможности хранения файлов =( — нужно выкладывать где-нибудь, а туду сцылку бросать.
Если кому-то ещё интересно, прошу сказать, куда выложить [Только, не на рапиду =)].
Февраль 21, 2007 в 8:24 пп
ну сам пакет мне неинтересен. А вот SlackBuild для него можно, кажется, выложить на SlackBuilds.org…
а вы проверили моё сообщение от February 17th, 2007 at 1:25 pm ?
Февраль 21, 2007 в 9:35 пп
Я использовал оригинальный слакбилд.
Скачал патч, изменил его для исходников от S11, да наложил. Далее можно запаковать все сырцы обратно в .tar.bz2, так как слакбилд начинает установку с их распаковки, либо подправить сам слакбилд. Вот и всё.
Думаю, что правильнее было бы засунуть патч в сам SlackBuild. Так и сырцы были бы не тронуты, и одним слакбилдом можно было бы выложить все изменения, требуемые для локали utf-8. Но мне это как-то не нужно.
Если интересно, могу сюда вписать содержимое моего «перепатча». Может, и ошибки там найдёте. =) На его основе и напишите свой .SlackBuild.
Ваше сообщение прочитал, но проверять пока не стал, хотя идею, думаю, понял.
Февраль 21, 2007 в 9:53 пп
Да, патчу был бы рад =)
Февраль 21, 2007 в 10:36 пп
cdrtools-2.01-UTF-8-patch-Slack11-GiN
Для повышения самоуважения =) нужно изменить суффикс в «mkisofs 2.01+UTF8-S11-GiN» на что-нибудь своё, но только аккуратно – без точек, а то K3B скажет, что версия mkisofs палёная.
=start=================================
diff -Naur cdrtools-2.01-orig/mkisofs/joliet.c cdrtools-2.01/mkisofs/joliet.c
— cdrtools-2.01-orig/mkisofs/joliet.c 2003-04-28 00:36:08.000000000 +0200
+++ cdrtools-2.01/mkisofs/joliet.c 2004-02-09 22:08:09.000000000 +0100
@@ -263,11 +263,60 @@
buffer[i] = inls->charset2uni[uc].uni2; /* final UNICODE */
/* conversion */
buffer[i + 1] = inls->charset2uni[uc].uni1;
- }
- if (size & 1) { /* beautification */
- buffer[size - 1] = 0;
+ // convert UTF-8 to UTF-16
+ int octet = tmpbuf[j];
+ if (octet == 0)
+ break;
+ else
+ if ((octet & 0×80) == 0) {
+ buffer[i] = 0;
+ buffer[i + 1] = octet;
+ }
+ else
+ if ((octet & 0xE0) == 0xC0) {
+ int octet2 = tmpbuf[j + 1];
+ if (octet2 == 0)
+ break;
+ int code = ((octet & 0×1F) > 8;
+ buffer[i + 1] = code & 0xFF;
+ j++;
+ }
+ else
+ if ((octet & 0xF0) == 0xE0) {
+ int octet2 = tmpbuf[j + 1];
+ int octet3 = tmpbuf[j + 2];
+ if (octet2 == 0 || octet3 == 0)
+ break;
+ int code = ((octet & 0×0F) > 8;
+ buffer[i + 1] = code & 0xFF;
+ j += 2;
+ }
+
+ if (buffer[i] == 0) {
+ // replace illegal characters by ‘_’
+ switch (uc) {
+ case ‘*’:
+ case ‘/’:
+ case ‘:’:
+ case ‘;’:
+ case ‘?’:
+ case ‘\\’:
+ case »:
+ buffer[i + 1] = ‘_’;
+ }
+ }
}
+
+ // fill end of buffer with zeros
+ for (; i whole_name, (*l)->whole_name);
#endif
- jsort_goof++;
+ if (strncmp((*r)->whole_name, «/rr_moved/», 10) != 0)
+ jsort_goof++;
}
/*
* Put the ‘.’ and ‘..’ entries on the head of the sorted list.
diff -Naur cdrtools-2.01-orig/mkisofs/mkisofs.c cdrtools-2.01/mkisofs/mkisofs.c
— cdrtools-2.01-orig/mkisofs/mkisofs.c 2004-01-07 00:23:46.000000000 +0100
+++ cdrtools-2.01/mkisofs/mkisofs.c 2004-02-10 21:49:50.000000000 +0100
@@ -62,7 +62,7 @@
struct directory *root = NULL;
int path_ind;
-char version_string[] = «mkisofs 2.01″;
+char version_string[] = «mkisofs 2.01+UTF8-S11-GiN»;
char *outfile;
FILE *discimage;
@@ -1990,6 +1990,15 @@
printf(» The official method to create Sparc boot CDs is to use -sparc-boot\n»);
printf(» In case of problems first test with an official version of mkisofs.\n»);
#endif
+ printf(«\n»);
+ printf(«Modified by Joerg P. M. Haeger for webCDwriter\n»);
+ printf(«NOTE: this version of mkisofs is an inofficial (modified) release of mkisofs\n»);
+ printf(» and thus may have bugs that are not present in the original version.\n»);
+ printf(» Please send bug reports and support requests to .\n»);
+ printf(» The original author should not be bothered with problems of this version.\n»);
+ printf(«\n»);
+ printf(» Modified by GiN[8-bend] special for Slackware 11\n»);
+ printf(«\n»);
exit(0);
break;
case OPTION_NOSPLIT_SL_COMPONENT:
diff -Naur cdrtools-2.01-orig/mkisofs/write.c cdrtools-2.01/mkisofs/write.c
— cdrtools-2.01-orig/mkisofs/write.c 2003-07-13 14:42:16.000000000 +0200
+++ cdrtools-2.01/mkisofs/write.c 2004-02-09 22:08:10.000000000 +0100
@@ -684,7 +684,8 @@
(*r)->whole_name, (*l)->whole_name,
(*r)->name);
#endif
- sort_goof++;
+ if (strstr((*r)->whole_name, «/rr_moved/») == NULL)
+ sort_goof++;
}
}
/*
=================================end=
Февраль 21, 2007 в 10:38 пп
АААААААААААААААААААА!
Этот блог переформатировал мой патч =(
Такой точно работать не будет.
Февраль 21, 2007 в 11:13 пп
можно в почту (cheer.igor gmail.com) ? Это же просто diff файл… Выложу куда-нибудь на googlepages.com или linuxforum.ru (вы, кстати, сами можете туда выложить =))
Февраль 23, 2007 в 9:58 пп
Письмо с патчем и пакетом (в подарок ;-) ) выслал.
Февраль 28, 2007 в 12:53 пп
Igor, выложите пожалуйста для общественности :)
Февраль 28, 2007 в 3:53 пп
done: http://linuxforum.ru/index.php?showtopic=35238
Февраль 26, 2008 в 12:51 пп
http://ru.wikibooks.org/wiki/%D0%A0%D1%83%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_Slackware_12
Очень хороший гайд.
Только вот «ru-utf.map.gz» рекомендую подправить, заменив [Shift]+[3]=[#] на [Shift]+[3]=[№], что бы в консоли была возможность набора символа «№».
Февраль 26, 2008 в 5:31 пп
ну гайд, возможно, и хороший, только название неправильное. Не русификация там описана, а настройка для новичков, видимо.
Август 18, 2008 в 5:35 пп
Помогите разобраться, делаю всё как написано в иксах с русификацией всё норм, MC пересобрал, в консоле иероглифы
Август 18, 2008 в 5:36 пп
боюсь, что помогут лучше на linuxforum.ru, например.