Linux.org.ua

Мовні питання => Українізація дистрибутивів => Гілку створено: DalekiyObriy від 2014-08-11 21:56:56

Тема: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-08-11 21:56:56
чи знає хтось чому е/є в українській локалі мають однакову позицію при сортуванні?

echo -e "євгеніка\nебонітовий\nепатаж" | LC_COLLATE=uk_UA.UTF-8 sort
ебонітовий
євгеніка
епатаж

Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: keithfay від 2014-08-13 10:37:25
Знайшов подібне питання:
http://unix.stackexchange.com/questions/17198/where-has-my-uniq-or-sort-u-line-gone-with-some-unicode-characters
Дійсно доволі дивно. Правильний результат дає наступна команда:
yaroslav@Zensor-A:~$ echo -e "євгеніка\nебонітовий\nепатаж\nЄвропа\nєдність\nеластичність" | LANG=С sort
Європа
ебонітовий
еластичність
епатаж
євгеніка
єдність
А при сортуванні із параметром LANG=uk_UA.UTF-8, сортується за другою літерою.
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-08-13 18:43:15
LANG=С - неприйнятно, бо локаль C працює з байтами
поки не поладимо uk_UA, прийнятний варіант видає en_US.UTF-8
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: Re. від 2014-08-13 21:28:41
Ммм (https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/locales/uk_UA#l491)?
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: Re. від 2014-08-13 21:30:25
А де добродій Лісівка? Він же винуватець. Ховається? ::)
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-08-20 06:30:58
звіт про помилку + латка (https://sourceware.org/bugzilla/show_bug.cgi?id=17293)
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-08-20 06:40:28
Там ще одне питання є чи дійсно треба ігнорувати м’який знак при сортуванні (те що зараз робиться)?
Бо, звичайно, можна сказати що так буде правильно і навести аргументи, але схоже в офіційних документах/словниках м’який знак має фіксовану позицію при сортуванні. Тож, якщо українська локаль буде мати порядок відмінний від офіційного це може призвести до неочікуваних результатів.

Як на мене, якщо вже бути послідовним і дійсно не вважати м’який знак літерою, то й місце він мусить займати останнє, а зараз з одного боку сортування кладе ь перед ю, а з іншого ігнорує його при пом’якшенні літер.
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: yurchor від 2014-08-20 17:46:14
Там ще одне питання є чи дійсно треба ігнорувати м’який знак при сортуванні (те що зараз робиться)?
Бо, звичайно, можна сказати що так буде правильно і навести аргументи, але схоже в офіційних документах/словниках м’який знак має фіксовану позицію при сортуванні. Тож, якщо українська локаль буде мати порядок відмінний від офіційного це може призвести до неочікуваних результатів.

Як на мене, якщо вже бути послідовним і дійсно не вважати м’який знак літерою, то й місце він мусить займати останнє, а зараз з одного боку сортування кладе ь перед ю, а з іншого ігнорує його при пом’якшенні літер.
Підтримую.
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-08-20 18:41:55
закинув оновлену латку, яка також виправляє порядок м’якого знаку
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-09-08 21:22:52
Додав до латки тести для локалі uk_UA.
Маю прохання, хто може зайти і ввічливо копнути (ланка на ваду (https://sourceware.org/bugzilla/show_bug.cgi?id=17293)), напр., запитавши чи є шанс, що закинуть виправлення до випуску glibc 2.21
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: yurchor від 2014-09-08 21:25:44
Додав до латки тести для локалі uk_UA.
Маю прохання, хто може зайти і ввічливо копнути (ланка на ваду (https://sourceware.org/bugzilla/show_bug.cgi?id=17293)), напр., запитавши чи є шанс, що закинуть виправлення до випуску glibc 2.21
1. Дякую.
2. Немає сенсу, у Правіна немає права доступу до запису у сховище.
3. Навряд, код уже заморожено, скоріше впишуть до наступного випуску (у лютому 2015 року), якщо хтось взагалі зглянеться (там після відходу Уве якась анархія).
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-09-09 18:32:34
Додав до латки тести для локалі uk_UA.
Маю прохання, хто може зайти і ввічливо копнути (ланка на ваду (https://sourceware.org/bugzilla/show_bug.cgi?id=17293)), напр., запитавши чи є шанс, що закинуть виправлення до випуску glibc 2.21
1. Дякую.
2. Немає сенсу, у Правіна немає права доступу до запису у сховище.
3. Навряд, код уже заморожено, скоріше впишуть до наступного випуску (у лютому 2015 року), якщо хтось взагалі зглянеться (там після відходу Уве якась анархія).
Кепсько, може спробувати через процес внесків (https://sourceware.org/glibc/wiki/Contribution%20checklist) ?
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: yurchor від 2014-09-09 18:37:38
Додав до латки тести для локалі uk_UA.
Маю прохання, хто може зайти і ввічливо копнути (ланка на ваду (https://sourceware.org/bugzilla/show_bug.cgi?id=17293)), напр., запитавши чи є шанс, що закинуть виправлення до випуску glibc 2.21
1. Дякую.
2. Немає сенсу, у Правіна немає права доступу до запису у сховище.
3. Навряд, код уже заморожено, скоріше впишуть до наступного випуску (у лютому 2015 року), якщо хтось взагалі зглянеться (там після відходу Уве якась анархія).
Кепсько, може спробувати через процес внесків (https://sourceware.org/glibc/wiki/Contribution%20checklist) ?
Можливо, я не пробував.
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2014-09-10 00:05:35
Відсилати латки до локалей тре в поштове коло glibc-locale, і схоже туди вже автоматично відіслано латку (https://sourceware.org/ml/libc-locales/2014-q3/msg00162.html) з вади. Тож лишається лише копати їх періодично (https://sourceware.org/glibc/wiki/Contribution%20checklist#Ping_and_keep_pinging):

Цитата
14. Ping and keep pinging

If your patch is not reviewed it may just mean that the reviewers are busy. Please ping and keep pinging the patch on a weekly basis.

але там така кількість автоматично генерованих листів, що сумніваюся, що хтось значний його пильно переглядає. Хіба що Ульриху написати персонально...  :-/
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2015-01-02 07:34:42
Написав мейнтейнерам, відповів Joseph Myers, відправив курити інструкції (https://sourceware.org/glibc/wiki/Contribution%20checklist)

Ніби зробив і відіслав в поштову групу (https://sourceware.org/ml/libc-locales/2015-q1/msg00000.html)

До речі, схоже в ICU є проблема з сортуванням: не ігноруються апострофи (жоден з трьох), і не ігнорується дефіс... Схоже й там тре про ваду писати...
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: yurchor від 2015-01-02 08:40:17
Написав мейнтейнерам, відповів Joseph Myers, відправив курити інструкції (https://sourceware.org/glibc/wiki/Contribution%20checklist)

Ніби зробив і відіслав в поштову групу (https://sourceware.org/ml/libc-locales/2015-q1/msg00000.html)

До речі, схоже в ICU є проблема з сортуванням: не ігноруються апострофи (жоден з трьох), і не ігнорується дефіс... Схоже й там тре про ваду писати...
Спасибі, що не полишили цього так.  З Новим Роком! :)
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2015-05-27 03:36:02
Ну от і року не пройшло, як латку (після численних прохань, пінгувань та перероблювань) закинули в master в glibc: https://sourceware.org/bugzilla/show_bug.cgi?id=17293

Поздоровляю всіх! :)
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: Дмитро Редчук від 2015-06-30 15:14:19
закинув оновлену латку, яка також виправляє порядок м’якого знаку
ДЯКУЮ :)

Знадобилося: https://stackoverflow.com/questions/31135676/postgresql-sorting-with-cyrillic-ь

У мене зараз glibc 2.19.
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2015-07-01 22:18:31
Супер, радий, що стало у пригоді :)

Тепер у нас є ще пару проблемок:
1) http://unicode.org/charts/collation/chart_Cyrillic.html
Літери г та ґ мають однакову позицію, якщо я правильно розумію це окремі літери і вони мусять стояти окремо.

До речі зараз в glibc обговорюють автоматичне оновлення локалей з Unicode тож ця проблема може скоро з'явитися в glibc.

2) в останній glibc (у Fedora 22) слова що мають дефіс йдуть перед такими словами, що його не мають, тобто вебархів йде після веб-архів; теоретично має бути навпаки (і так було в Fedora 21 і раніше), я не знаю звідки ця зміна прийшла, тре досліджувати
Тема: Re: Неправильне сортування е/є в uk_UA.UTF-8
Автор: DalekiyObriy від 2016-03-27 21:54:52
Маю прохання до спільноти, в мене є колега, що працює з українською на Лінуксі, але вона працює на Ubuntu 14.04, де ще не виправлена проблема сортування українських літер (потрібна версія glibc 2.22). Чи не міг би хтось згенерувати українську локаль з glibc 2.22 для Ubuntu 14.04, щоб оновити на її системі?
Я можу зробити це швидко на Fedora, але хотілося би бути впевненим, що вона запрацює на Ubuntu 14.04, а я завтра вранці вирушаю в тижневу подорож, тож не встигаю це зробити правильно.
Наперед дякую.