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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Anikeev                    2:5035/10.102  01 Apr 2003  10:26:01
 To : All
 Subject : Локализация под Виндой, будь она неладна!
 -------------------------------------------------------------------------------- 
 
 
  Обращаюсь теперь и сюда, поскольку в локальных курских эхах мне никто помочь
 не смог.
  Везде в Интернете пишут, что локализация (имею в виду русификацию) Перла под
 виндой возможна, но никто не сообщает, под какой версией злополучной винды это
 возможно, а также проверял ли он лично эту возможность. У меня сложилось
 впечатление, что просто переписывается некое начальное ошибочное сообщение,
 автор которого неизвестен и, видимо, работает в компании Микрософт.
 
  Вот к чему приводит попытка локализации у меня. Все необходимые сведения есть
 ниже. Привожу текст программы полностью, а также результат ее выдачи
 (частично). Результат могу прокомментировать словами Hиколая Озерова: "Hет!
 Такой хоккей нам не нужен!"
 
  Кто-нибудь может посоветовать, возможна ли локализация в данном случае, или
 надо переходить на _правильные_ ОС, к которым винду с некоторых времен я
 перестал относить?..
 
  Буду весьма признателен за _конструктивные_ ответы. Попавшиеся мне ФАКи я
 перечитал без особого результата и за 2 недели поисков не продвинулся ни на
 йоту.
  Или я слишком многого ожидаю от локализации? А я лишь хочу, чтобы "\w\W" в
 регулярных выражениях правильно определяли и русские буквы, а сортировка была
 правильной (включая букву е: (йо)). Хотя без последнего можно и обойтись...
 
 === Hачало 9_6.Pl ===
 
 # Итак на входе - русская Win98SE и ActivePerl 5.005_03 build 522, запуск
 # скрипта из-под FAR.
 # то же и для версии Activeperl 5.0.8 build 805
 
 use  integer;
 
 print "\n";
 use POSIX qw(locale_h);
 open (OUT, ">1.866");
 
 $loc = '--- '.(&POSIX::setlocale( &POSIX::LC_ALL, "russian_russia.866" )
                                            or die $!);
 $loc2 = '--- no locale' ;
 
 for ($ii = 0; $ii < 256; $ii += 16)
   {
     $jj=$ii+16-1;
 
     use locale;
 
     @q1=map { chr() } $ii..$jj;    #  все символы диапазона
     @q2=grep /\w/, @q1;            #  только буквы
     @q3=sort @q2;                  #  и после сортировки
 
     $q1=pack "a" x 16, @q1;
     $q2=pack "a" x 16, @q2;
     $q3=pack "a" x 16, @q3;
 
     no locale;
 
     @w1=map { chr() } $ii..$jj;
     @w2=grep /\w/, @w1;
     @w3=sort @w2;
 
     $w1=pack "a" x 16, @w1;
     $w2=pack "a" x 16, @w2;
     $w3=pack "a" x 16, @w3;
 
     write OUT;
   }
 print "OK! \n";
 format OUT_TOP =
 --------------------------------------------------------------
 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<       @<<<<<<<<<<<<<<<<<<<<<
 $loc,                                  $loc2
 --------------------------------------------------------------
 .
 
 format OUT =
 @<<..@<<: map : @<<<<<<<<<<<<<<<       map : @<<<<<<<<<<<<<<<
 $ii,$jj,        $q1,                         $w1
 @<<..@<<: grep: @<<<<<<<<<<<<<<<       grep: @<<<<<<<<<<<<<<<
 $ii,$jj,        $q2,                         $w2
 @<<..@<<: sort: @<<<<<<<<<<<<<<<       sort: @<<<<<<<<<<<<<<<
 $ii,$jj,        $q3,                         $w3
 
 .
 
 __END__
 
 *******************************************************************
 Вот часть выдачи программы при запуске из-под FAR под виндой
 и иллюстрация издевательства над русскими буквами при
 "локализации".
 Более половины больших русских букв перестают быть
 буквами, а также примерно 1/4 маленьких. Зато буквами остается груда
 хлама из верхней части кодовой таблицы.
 Обратите также внимание на результаты сортировки! Это действительно
 "перлы".
 При выключенной локали - никаких проблем.
 
 --------------------------------------------------------------
 - --- Russian_Russia.1251                --- no locale
 --------------------------------------------------------------
 112..127: map : pqrstuvwxyz{|}~.       map : pqrstuvwxyz{|}~.
 112..127: grep: pqrstuvwxyz            grep: pqrstuvwxyz
 112..127: sort: pqrstuvwxyz            sort: pqrstuvwxyz
 
 128..143: map : АБВГДЕЖЗИЙКЛМHОП       map : АБВГДЕЖЗИЙКЛМHОП
 128..143: grep: АБГКМHОП               grep:
 128..143: sort: ГБАHКМОП               sort:
 
 144..159: map : РСТУФХЦЧШЩЪЫЬЭЮЯ       map : РСТУФХЦЧШЩЪЫЬЭЮЯ
 144..159: grep: РЪЬЭЮЯ                 grep:
 144..159: sort: РЭЪЬЮЯ                 sort:
 
 160..175: map : абвгдежзийклмноп       map : абвгдежзийклмноп
 160..175: grep: бвгеикп                grep:
 160..175: sort: еикпгвб                sort:
 
 176..191: map : °±Ііґµ¶·ё№є»јЅѕї       map : °±Ііґµ¶·ё№є»јЅѕї
 176..191: grep: ІіґёєјЅѕї              grep:
 176..191: sort: ґёєѕЅіІїј              sort:
 
 192..207: map : АБВГДЕЖЗИЙКЛМНОП       map : АБВГДЕЖЗИЙКЛМНОП
 192..207: grep: АБВГДЕЖЗИЙКЛМНОП       grep:
 192..207: sort: АБВГДЕЖЗИЙКЛМНОП       sort:
 
 208..223: map : РСТУФХЦЧШЩЪЫЬЭЮЯ       map : РСТУФХЦЧШЩЪЫЬЭЮЯ
 208..223: grep: РСТУФХЦЧШЩЪЫЬЭЮЯ       grep:
 208..223: sort: РСТУФХЦЧШЩЪЫЬЭЮЯ       sort:
 
 224..239: map : рстуфхцчшщъыьэюя       map : рстуфхцчшщъыьэюя
 224..239: grep: рстуфхцчшщъыьэюя       grep:
 224..239: sort: рстуфхцчшщъыьэюя       sort:
 
 240..255: map : Ёётуфхцчшщъыьэюя       map : Ёётуфхцчшщъыьэюя
 240..255: grep: Ёётуфхцчшщъыьэюя       grep:
 240..255: sort: Ёётуфхцчшщъыьэюя       sort:
 
 === Конец 9_6.Pl ===
                                      Alexander Anikeev
 e-mail:   anikeev@kursknet.ru
 
 --- Russian_Russia.1251                --- no locale
  * Origin: ### Per anus ad astra ### (2:5035/10.102)
 
 

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

 Тема:    Автор:    Дата:  
 Локализация под Виндой, будь она неладна!   Alexander Anikeev   01 Apr 2003 10:26:01 
 Re: Локализация под Виндой, будь она неладна!   Artem Chuprina   01 Apr 2003 14:14:18 
 Локализация под Виндой, будь она неладна!   Alexander Anikeev   01 Apr 2003 14:08:20 
 Re: Локализация под Виндой, будь она неладна!   Konstantin Tokar   01 Apr 2003 16:33:50 
 Re: Локализация под Виндой, будь она неладна!   Nick Kostirya   01 Apr 2003 16:49:37 
 Re: Локализация под Виндой, будь она неладна!   Anatoly Moskovsky   01 Apr 2003 14:47:10 
 Локализация под Виндой, будь она неладна!   Alexander Anikeev   01 Apr 2003 14:17:12 
 Re: Локализация под Виндой, будь она неладна!   Anatoly Moskovsky   01 Apr 2003 16:32:18 
 Локализация под Виндой, будь она неладна!   Alexander Anikeev   02 Apr 2003 07:31:04 
 Локализация под Виндой, будь она неладна!   Alexander Anikeev   02 Apr 2003 07:36:59 
Архивное /ru.perl/38183e89813a.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional