Liquidフィルターのsortの挙動に関して

配列内をa-zで並び替えをしようと思ったのですが

英字だと並び替えができるのですが、日本語だとうまく並び替えができないです。

そういうものなのでしょうか?

他に良いフィルターがあったりするのでしょうか?

(例)
{%- liquid
  assign arr = 'curry,Banana,tea,Apple,peach' | split: ','
  assign arrjp = 'カレー,ばなな,茶,林檎,桃' | split: ','
%}

{{ arr | sort | join: ' ' }} 

{{ arrjp | sort | join: ' ' }}

結果:
Apple Banana curry peach tea
ばなな カレー 林檎 桃 茶

Tono_mg 様

はじめまして、フルバランスの道家です。

ご質問を確認いたしました。

sortにつきましては、英語、ひらがな、カタカタで統一しておく必要がございます。

混在している状態ですと以下のようにJSで実装されるのがよいかと思います。

https://blog.kimizuka.org/entry/2021/06/03/121459

https://note.kiriukun.com/entry/20181129-sort-with-local-compare

なにかヒントになれば幸いです。

私たちの励みにもなりますので、

お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。

分からない点があれば、またいつでもご連絡ください。

フルバランス 道家

ありがとうございます!

やはり混在していると難しいんですね。

SORTフィルターは、数字, 英字大文字, 英字小文字,平仮名,片仮名,漢字… の順番に並ぶので、平仮名片仮名漢字が混ざっている場合は、平仮名の中で並び替えた後に、片仮名の中で並び替えて、最後に漢字を並び替えます。

雨,ウ,う,意,イ,い,亜,ア,あ,c,C,b,B,a,A,3,2,1

1 2 3 A B C a b c あ い う ア イ ウ 亜 意 雨

PHPのmb_convert_kanaのような関数はありません。

わかりやすくありがとうございます。