Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : George Zavyalov                      2:5020/400     23 Jun 2003  17:54:42
 To : All
 Subject : Re: Русификация FreeBSD (ru_SU.CP1251)
 -------------------------------------------------------------------------------- 
 
   Может быть кто-то всё же окажет любезность объяснить мне, где у меня лажа...
   Или, хотя бы, наставит на путь истинный... ;-)
 
   Итак, имеем:
 
   1) locale ru_SU.CP1251, взятую с http://193.125.152.109/pub/FreeBSD/local/
  (cp1251-freebsd.tar.gz    5,726   10-Sep-2000  ru_SU.CP1251 locale (tested
 under FreeBSD 2.2.x) )
   2) LC_MESSAGES, LC_NUMERIC, LC_MONETARY (по совету знакомого админа) взяты
 из ru_RU.KOI8-R (с тупой заменой Koi8-символов на win1251).
 
 Итог:
 [root@pom]# cd /usr/share/locale && ls -l|grep 1251 && cd ru_SU.CP1251 && ls
 -l
 drwxr-xr-x  2 root  wheel  512 Feb 26 17:37 bg_BG.CP1251
 lrwxr-xr-x  1 root  wheel   30 Mar 17 17:32 ru_RU.CP1251 ->
 /usr/share/locale/ru_SU.CP1251
 drwxr-xr-x  2 root  wheel  512 Jun 21 16:10 ru_SU.CP1251
 total 20
 -rw-r--r--  1 root  wheel  6618 Mar 17 17:32 LC_COLLATE
 -rw-r--r--  1 root  wheel  3214 Mar 17 17:32 LC_CTYPE
 -rw-r--r--  1 root  wheel    27 Jun 20 16:50 LC_MESSAGES
 -rw-r--r--  1 root  wheel    37 Apr 28 15:16 LC_MONETARY
 -rw-r--r--  1 root  wheel     8 Apr 28 15:18 LC_NUMERIC
 -rw-r--r--  1 root  wheel   266 Mar 17 17:32 LC_TIME
 
  3) В /etc/login.conf:
     russian|Russian Users Accounts:\
         :charset=CP1251:\
         :lang=ru_SU.CP1251:\
         :tc=default:
 
      Перевёл себя и рута в login_class russian (5-е поле в master.passwd)
 
  4) В /etc/profile:
     LANG=ru_SU.CP1251; export LANG
     LC_ALL=ru_SU.CP1251; export LC_ALL
     MM_CHARSET=CP1251; export MM_CHARSET
  5) В /etc/csh.login:
     setenv LANG ru_SU.CP1251
     setenv MM_CHARSET CP1251
  6) В /etc/ttys:
     ttyv0   "/usr/libexec/getty Pc"         cons25r on  secure
     ...........................
     ttyv7   "/usr/libexec/getty Pc"         cons25r on  secure
  7) В /etc/rc.conf:
     keymap=ru.cp1251
     keychange="61 ESC[K"
     scrnmap="win2cpp866"
     font8x16=cp866-8x16
     font8x14=cp866-8x14
     font8x8=cp866-8x8
 
     (Для справки:
 [root@pom]# cd /usr/share/syscons/fonts && ls -l|grep 866
 -r--r--r--  1 root  wheel   4967 Oct  9  2002 cp866-8x14.fnt
 -r--r--r--  1 root  wheel   5675 Oct  9  2002 cp866-8x16.fnt
 -r--r--r--  1 root  wheel   2850 Oct  9  2002 cp866-8x8.fnt
 -r--r--r--  1 root  wheel   5676 Oct  9  2002 cp866b-8x16.fnt
 -r--r--r--  1 root  wheel   5676 Oct  9  2002 cp866c-8x16.fnt
 -r--r--r--  1 root  wheel   5068 Oct  9  2002 cp866u-8x14.fnt
 -r--r--r--  1 root  wheel   5776 Oct  9  2002 cp866u-8x16.fnt
 -r--r--r--  1 root  wheel   2950 Oct  9  2002 cp866u-8x8.fnt
 [root@pom]# cd /usr/share/syscons/keymaps && ls -l|grep ru
 -rw-r--r--  1 root  wheel  16395 Mar 17 17:36 ru.cp1251.kbd
 -r--r--r--  1 root  wheel  16241 Oct  9  2002 ru.cp866.kbd
 -r--r--r--  1 root  wheel  16243 Oct  9  2002 ru.iso5.kbd
 -r--r--r--  1 root  wheel  16225 Oct  9  2002 ru.koi8-r.kbd
 -r--r--r--  1 root  wheel  16231 Oct  9  2002 ru.koi8-r.shift.kbd
 [root@ipom]# cd /usr/share/syscons/scrnmaps && ls -l
 total 14
 -r--r--r--  1 root  wheel  392 Oct  9  2002 iso-8859-1_to_cp437.scm
 -r--r--r--  1 root  wheel  392 Oct  9  2002 iso-8859-4_for_vga9.scm
 -r--r--r--  1 root  wheel  392 Oct  9  2002 iso-8859-7_to_cp437.scm
 -r--r--r--  1 root  wheel  385 Oct  9  2002 koi8-r2cp866.scm
 -r--r--r--  1 root  wheel  386 Oct  9  2002 koi8-u2cp866u.scm
 -r--r--r--  1 root  wheel  390 Oct  9  2002 us-ascii_to_cp437.scm
 -rw-r--r--  1 root  wheel  376 Mar 17 17:28 win2cpp866.scm
 
 ru.cp1251.kbd взята с http://freebsd.by.ru/fonts/ru.cp1251.kbd.gz
 win2cpp866.scm взята с http://www.ciam.ru/~sem/progs/win2cpp866.scm
 
  8) В /usr/share/nls создал пустую:
 drwxr-xr-x  2 root  wheel  512 Jun 23 16:54 ru_SU.CP1251
     и линк
 lrwxr-xr-x  1 root  wheel   12 Jun 23 16:55 ru_RU.CP1251 -> ru_SU.CP1251
 
  9) В ~/.login_conf:
     me:\
     :CHARSET=CP1251:\
     :LANG=ru_SU.CP1251:
 
  Вроде бы всё...
 
  Теперь о симптомах:
  1) Русские символы, вроде бы, печатаются и воспроизводятся:
   [root@pom]# echo ыаписмисмис > win.txt
   [root@pom]# cat win.txt
   ыаписмисмис
 
  2)Запускаем тестовые программки из комплекта установленной локали:
    a)  [root@pom]# cd ~/cp1251/cp1251        
        [root@pom]# ls -l
        total 18
        -rw-r--r--  1 nomad  wheel   607 Mar  9  1999 Makefile
        -rw-r--r--  1 nomad  wheel  1014 Mar  9  1999 README
        -rw-r--r--  1 nomad  wheel  1392 Mar  9  1999 map.CP1251
        drwxr-xr-x  2 nomad  wheel   512 Mar  9  1999 ru_SU.CP1251
        -rw-r--r--  1 nomad  wheel   924 Mar  9  1999 ru_SU.CP1251_collate
        -rw-r--r--  1 nomad  wheel  1049 Mar  9  1999 ru_SU.CP1251_ctype
        -rw-r--r--  1 nomad  wheel   266 Mar  9  1999 ru_SU.CP1251_time
        -rw-r--r--  1 nomad  wheel   209 Mar  9  1999 testlc.c
        -rwxr-xr-x  1 nomad  wheel   971 Mar  9  1999 testlc.pl
        [root@pom]# make
        cc -o testlc testlc.c
        chmod 0755 testlc
        [root@pom]# more testlc.c
        #include <ctype.h>
        #include <stdio.h>
        #include <locale.h>
 
        main () {
 
        if (setlocale(LC_ALL,"ru_SU.CP1251")==NULL ) {
                  printf("Unable to set locale\n");
                  exit(1);
                } else
        printf("Ok\n");
        }
        [root@pom]# ./testlc
        Unable to set locale
    
    б)[root@pom]# cat testlc.pl
 
 #!/usr/bin/perl
 
 use locale; 
 use POSIX qw(setlocale LC_ALL); 
 
 setlocale(LC_ALL, "ru_SU.CP1251"); 
 
 $test = 'АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯ ABCDEFGHIJKLMNOPQRSTUVWXYZ
 0123456789';
 $r = 'Русские идут, сказали русские и пошли на руССкие холмы.';
 
 print "Checking for lower/upper case\n";
 print "Upper: $test\n";
 $test = lc($test);
 print "Lower: $test\n";
 $test = uc($test);
 print "Upper: $test\n";
 print "\n";
 print "Checking for case insensitive replace\n";
 print "Old: $r\n";
 $r =~ s/РуСсКиЕ/russian/gi;
 print "New: $r\n";
 
 for ($i=192;$i<=255;$i++) {
   $l = chr($i);
   $char{$l}=1;
 }
 $char{'Ё'}=1;
 $char{'ё'}=1;
 for ($i=65;$i<91;$i++) {
   $l = chr($i);
   $char{$l}=1;
 }
 for ($i=97;$i<123;$i++) {
   $l = chr($i);
   $char{$l}=1;
 }                              
 for ($i=48;$i<58;$i++) {
   $l = chr($i);
   $char{$l}=1;
 }                              
 print "\n";
 print "Checking for sortering order\n";
 
 foreach $l (sort keys(%char)) {
   print "$l";
 }
 print "\n";
 [root@pom]# ./testlc.pl
 perl: warning: Setting locale failed.
 perl: warning: Please check that your locale settings:
         LC_ALL = "ru_SU.CP1251",
         LANG = "ru_SU.CP1251"
     are supported and installed on your system.
 perl: warning: Falling back to the standard locale ("C").
 Checking for lower/upper case
 Upper: АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯ ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
 Lower: АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯ abcdefghijklmnopqrstuvwxyz 0123456789
 Upper: АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯ ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
 
 Checking for case insensitive replace
 Old: Русские идут, сказали русские и пошли на руССкие холмы.
 New: Русские идут, сказали русские и пошли на руССкие холмы.
 
 Checking for sortering order
 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzЁёАБВГДЕЖЗИЙКЛМHО
 ПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя
 
   В общем, работает середина на половину... ;-(
   Сакраментальный вопрос - где грабли (хотя, как я всё это собирал - грабли
 могут быть где угодно)... :-(((
 
 Егор.
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Русификация FreeBSD   Ђ«ҐЄбҐ© ѓа зсў   12 Jun 2003 02:44:51 
 Re: Русификация FreeBSD   Borodin Anatoly   12 Jun 2003 04:00:34 
 Re: Русификация FreeBSD   Rashid N. Achilov   12 Jun 2003 06:48:00 
 Re: Русификация FreeBSD   Ђ«ҐЄбҐ© ѓа зсў   12 Jun 2003 12:43:55 
 Re: Русификация FreeBSD   Rashid N. Achilov   12 Jun 2003 14:17:04 
 Re: Русификация FreeBSD   Ђ«ҐЄбҐ© ѓа зсў   16 Jun 2003 01:47:34 
 Re: Русификация FreeBSD   Cyrill Malevanov   17 Jun 2003 00:29:58 
 Re: Русификация FreeBSD   Max Khon   15 Jun 2003 21:07:30 
 Re: Русификация FreeBSD   Eugene Grosbein   16 Jun 2003 17:08:51 
 Re: Русификация FreeBSD   Max Khon   16 Jun 2003 16:37:48 
 Re: Русификация FreeBSD   Ђ«ҐЄбҐ© ѓа зсў   17 Jun 2003 00:43:27 
 Re: Русификация FreeBSD   Max Khon   17 Jun 2003 06:02:44 
 Re: Русификация FreeBSD   George Zavyalov   18 Jun 2003 14:21:33 
 Re: Русификация FreeBSD   Max Khon   18 Jun 2003 22:31:40 
 Re: Русификация FreeBSD   George Zavyalov   19 Jun 2003 14:35:24 
 Re: Русификация FreeBSD (ru_SU.CP1251)   George Zavyalov   23 Jun 2003 17:54:42 
 Re: Русификация FreeBSD (ru_SU.CP1251)   Max Khon   23 Jun 2003 22:05:34 
 Re: Русификация FreeBSD (ru_SU.CP1251)   George Zavyalov   24 Jun 2003 11:11:15 
 Re: Русификация FreeBSD (ru_SU.CP1251)   Max Khon   24 Jun 2003 13:09:40 
 Re: Русификация FreeBSD (ru_SU.CP1251)   George Zavyalov   24 Jun 2003 19:48:32 
Архивное /ru.unix.bsd/166791b85637e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional