Настройки сортировки - invariant/linguistic sorting collation

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

Настройки сортировки - invariant/linguistic sorting collation

Post by gene.pavlovsky »

Приветствую!

Может кто-нибудь объяснить простым языком, чем отличаются три доступных варианта настройки Setup > System settings > Sorting collation?
Ordinal, я так понимаю, просто сортировка по порядковому номеру символов в таблице ASCII / Unicode.
Не очень понятно, что такое invariant и linguistic.

У меня файлы-директории в большинстве своём латиницей, но бывает кириллица, корейский.
Игрался этими настройками, обратил внимание, что при использовании lingustic collation настройка case sensitive не работает (для латиницы, по крайней мере).
Т.е. linguistic collation + case sensitive: порядок директорий B b C. Если поменять collation на invariant, то порядок B C b.

И ещё, можно ли как-то сделать, чтобы lowercase был первее uppercase - b B C?

Благодарю
User avatar
HaRT
Moderator
Posts: 10850
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Настройки сортировки - invariant/linguistic sorting collation

Post by HaRT »

gene.pavlovsky wrote: Sun 24 Mar, 2024 00:05 можно ли как-то сделать, чтобы lowercase был первее uppercase - b B C?
Можно написать свою функцию сравнения и переключаться на неё, когда нужно. (Но это может оказаться медленно в больших директориях.) Посмотрите тему «Пользовательский режим сортировки для панелей» — там и примеры, и обсуждение особенностей использования.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Настройки сортировки - invariant/linguistic sorting collation

Post by Shmuel »

HaRT wrote: Sun 24 Mar, 2024 00:51 Можно написать свою функцию сравнения и переключаться на неё, когда нужно. (Но это может оказаться медленно в больших директориях.)
В своё время (много лет назад), когда собственно добавлялась в Фар возможность "кастомной" сортировки, её скорость была сопоставима с "нативной", в том числе на больших директориях.

Естественно, скорость кастомной сортировки напрямую зависит от пользовательской функции сравнения - если она сложная и/или неэффективно написана, скорость сортировки соответственно понизится.
Last edited by Shmuel on Sun 24 Mar, 2024 01:18, edited 1 time in total.
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

Настройки сортировки - invariant/linguistic sorting collation

Post by gene.pavlovsky »

Мне пока не так сильно этого хочется, чтобы заморачиваться с кастомным сравнением, но здорово знать, что такая возможность существует.

Всё же таки хочется знать, что именно делают варианты invariant / linguistic для sorting collation? Т.е. какие различия на практике, какой вариант кто использует? И какой, кстати, стоит по умолчанию?
Ну или как минимум какие флаги устанавливают эти варианты, а там я могу почитать доки от Microsoft на эту тему. Хотя когда я последний раз это пробовал, было понятно, что ничего непонятно. Какая-то у них терминология для этих тем, непонятная простым смертным. Хотелось бы скорее наглядных примеров...
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

Настройки сортировки - invariant/linguistic sorting collation

Post by gene.pavlovsky »

Спасибо, я это всё уже читал, но мало чего понял из терминологии )))
Culture, invariant - тёмный лес какой-то. Они бы лучше привели побольше примеров из реальной жизни.
Почитал ещё раз.
The invariant culture is culture-insensitive; it's associated with the English language but not with any country/region.
Если я правильно понимаю, то invariant не зависит от того, какой язык/локаль используется в системе, т.е. результат будет всегда одно и тот же. Правда непонятно, какой именно? Особенно если сортируем имена файлов с не-латинским алфавитом.

Слова "linguistic" я в этих статьях не нашёл. Равносилен ли он использованию CurrentCulture? CurrentCulture, как я понял, зависит от настройки Windows: Time & Language > Region > Regional format.
К примеру у меня в системе стоит Windows display language "English (United States)", но Regional format "English (Ireland)" (24-часовое время, неделя начинается с понедельника, и т.д.).
В PowerShell запускаю
Get-Culture | Format-List -Property *
И вижу en-IE.
Если всё вышеперечисленное верно, то разница между "invariant" и "linguistic" на моей система такая же, как между en и en-IE? В обоих случаях не очень понятно, как система решает, как сортировать русский, корейский и т.д.
Post Reply

Return to “Обсуждение Far Manager”