No conozco ninguna configuración regional que, por defecto, se ordene en ese orden. La solución es crear una configuración regional personalizada con un orden de clasificación personalizado. Si alguien, cuatro años después, quiere ordenar de manera personalizada, este es el truco.
La gran mayoría de las configuraciones regionales no especifican su propio orden de clasificación, sino que copian el orden de clasificación definido de /usr/share/i18n/locales/iso14651_t1_common
modo que eso es lo que querrá editar. En lugar de cambiar el orden de clasificación para casi todas las configuraciones regionales modificando el original iso14651_t1_common
, le sugiero que haga una copia. Los detalles sobre cómo funciona el orden de clasificación y cómo crear una configuración regional personalizada en su $HOME
directorio sin acceso a la raíz se encuentran en esta respuesta a una pregunta similar .
Eche un vistazo a cómo a
y A
se ordenan en función de sus entradas en iso14651_t1_common
:
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
b
y B
son similares:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
Vemos que en la primera pasada, tanto a
y A
tener el símbolo de cotejo <a>
, mientras tanto b
y B
tienen el símbolo cotejo <b>
. Ya <a>
aparece antes <b>
en iso14651_t1_common
, a
y A
están atados antes b
y B
. La segunda pasada no rompe los lazos porque los cuatro caracteres tienen el símbolo de clasificación <BAS>
, pero durante la tercera pasada los lazos se resuelven porque el símbolo de clasificación para letras minúsculas <MIN>
aparece en la línea 3467, antes del símbolo de clasificación para letras mayúsculas <CAP>
(línea 3488) . Por lo que el orden de clasificación termina como a
, A
, b
, B
.
Intercambiar el primer y el tercer símbolo de clasificación ordenaría las letras primero por mayúsculas y minúsculas, luego por acento ( <BAS>
significa no acentuado), luego por orden alfabético. Sin embargo , tanto <MIN>
y <CAP>
venir antes de los dígitos numéricos, así que esto tendría el efecto no deseado de poner dígitos después de las letras.
La forma más fácil de mantener los dígitos primero mientras se hacen que todas las letras minúsculas aparezcan antes de todas las letras mayúsculas es forzar que todas las letras se unan durante la primera comparación estableciéndolas todas iguales <a>
. Para asegurarse de que se ordenan alfabéticamente dentro de mayúsculas y minúsculas, cambie el último símbolo de clasificación IGNORE
al primer símbolo de clasificación actual. Siguiendo este patrón, a
se convertiría en:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
A
se convertiría:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
b
se convertiría:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
B
se convertiría:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
y así sucesivamente para el resto de las letras.
Una vez que haya creado una versión personalizada de iso14651_t1_common
, siga las instrucciones en la respuesta vinculada anteriormente para compilar su configuración regional personalizada.