Non conosco alcun locale che, per impostazione predefinita, ordina in questo ordine. La soluzione è creare un'impostazione internazionale personalizzata con un ordinamento personalizzato. Se qualcuno, quattro anni dopo, vuole ordinare in modo personalizzato, ecco il trucco.
La stragrande maggioranza delle versioni locali non specifica il proprio ordinamento, ma piuttosto copia l'ordinamento definito in /usr/share/i18n/locales/iso14651_t1_common
modo che sia ciò che si desidera modificare. Invece di cambiare l'ordinamento per quasi tutte le impostazioni locali modificando l'originale iso14651_t1_common
, ti suggerisco di fare una copia. I dettagli su come funziona l'ordinamento e su come creare un'impostazione internazionale personalizzata nella $HOME
directory senza accesso root si trovano in questa risposta a una domanda simile .
Dai un'occhiata a come a
e A
sono ordinati in base alle loro voci in iso14651_t1_common
:
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
b
e B
sono simili:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
Lo vediamo al primo passaggio, entrambi a
e A
hanno il simbolo di fascicolazione <a>
, mentre entrambi b
e B
hanno il simbolo di fascicolazione <b>
. Poiché <a>
appare prima <b>
in iso14651_t1_common
, a
e A
sono legati prima b
e B
. Il secondo passaggio non rompe i legami perché tutti e quattro i caratteri hanno il simbolo di fascicolazione <BAS>
, ma durante il terzo passaggio i legami vengono risolti perché il simbolo di fascicolazione per le lettere minuscole <MIN>
appare sulla riga 3467, prima del simbolo di fascicolazione per le lettere maiuscole <CAP>
(linea 3488) . Così l'ordinamento finisce come a
, A
, b
, B
.
Scambiando il primo e il terzo simbolo di fascicolazione <BAS>
, le lettere vengono ordinate prima per caso (in basso, poi in alto), quindi per accento ( significa non accentate), quindi per ordine alfabetico. Tuttavia , entrambi <MIN>
e <CAP>
vengono prima delle cifre numeriche, quindi ciò avrebbe l'effetto indesiderato di inserire le cifre dopo le lettere.
Il modo più semplice per mantenere prima le cifre mentre tutte le lettere minuscole vengono prima di tutte le lettere maiuscole è quello di forzare tutte le lettere a legare durante il primo confronto impostandole tutte uguali <a>
. Per assicurarsi che si ordinino in ordine alfabetico all'interno del caso, cambiare l'ultimo simbolo di fascicolazione dal IGNORE
primo simbolo di fascicolazione corrente. Seguendo questo schema, a
diventerebbe:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
A
potrebbe diventare:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
b
potrebbe diventare:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
B
potrebbe diventare:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
e così via per il resto delle lettere.
Dopo aver creato una versione personalizzata di iso14651_t1_common
, segui le istruzioni nella risposta sopra collegata per compilare la tua localizzazione personalizzata.