У меня есть следующий перл программаСортировка чешски в Perl
use 5.014_001;
use utf8;
use Unicode::Collate::Locale;
require 'Unicode/Collate/Locale/cs.pl';
binmode STDOUT, ':encoding(UTF-8)';
my @old_list = (
"cash",
"Cash",
"cat",
"Cat",
"čash",
"dash",
"Dash",
"Ďash",
"database",
"Database",
);
my $col= Unicode::Collate::Locale->new(
level => 3,
locale => 'cs',
normalization => 'NFD',
);
my @list = $col->sort(@old_list);
foreach my $item (@list){
print $item, "\n";
}
Эта программа выводит на выход:
наличными Cash кошка Cat ДЕНЕЖНЫХ тире тире Dash базы данных базы данных
Я считаю, что ac areful наблюдатель должен сделать вывод, что в Чехии либо
- č является первым классом письмо, а ð нет.
- ЮНИКОДу :: Разобрать :: Locale сортировкой Чехии в Perl не является правильным
Я хотел бы верить (1), а также следующие подкрепляет мой случай:
http://en.wiktionary.org/wiki/Index_talk:Czech
, где указано:
Позвольте нам сортировать записи по существующим чешским соглашениям, насколько это практически возможно. То есть, только следующие символы имеют какое-либо сортировки значения:
а č defgh ч ijklmnopqr ř s š tuvwxyz ž
Но я смущен, потому что я думал, что «D с ау над ним» (и это в нижнем регистр эквивалент), является первоклассной буквой чешского алфавита.
Где @tchrist, когда он мне нужен?
Буду признателен за понимание.
Я знаю почти ничего о чешском языке, но если CLDR не укажет, что на чешском языке * ď * является его собственной буквой, сгруппированной после * d *, так как * č * является собственной буквой, сгруппированной после * c *, тогда это объясняет, что вы видите. Можно ввести пошив в коллаторе, если вам нужно, чтобы он вел себя иначе, чем с по умолчанию '--locale =>" cs ", используя тщательно обработанный аргумент' --entry' для конструктора с переопределяющим DUCET элементы точно определены. Я не получил ваш пинг, потому что вы не прокомментировали мое сообщение или добавили комментарий в одну из моих цепочек комментариев. – tchrist