[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Format de data incorrecte de «ls -l»



Comento entre paràfrafs,

Missatge de Ernest Adrogué <nr9@posteo.de> del dia dj., 24 de des.
2020 a les 12:36:
>
> Hola,
>
> 2020-12-24, 09:41 (+0100); Joan Montané escriu:
> > En fi, que segueixo pensant que la solució de compromís és usar %b i
> > tenir la columna de mesos amb preposició, però ben enquadrada.
>
> Crec que no té sentit incloure la preposició en els noms mesos
> abreviats.  Si utilitzem la versió abreviada és que volem estalviar
> espai, i si volem estalviar espai, la preposició sobra completament.
>

Caldria veure l'impacte del canvi que indiques. Per exemple en
aplicacions de calendari. Això també trencaria l'alineament amb el
CLDR.

> Per altra banda, 'ls' no és l'únic programa afectat.  Un altre programa
> afectat és el 'mutt'.  Probablement n'hi ha d'altres.  Aquests programes
> funcionaven perfectament fins que van modificar el text dels noms dels
> mesos en el local ca_ES, l'abril de 2016 [1].  Aquests canvis són
> l'origen de tots aquests problemes.  Tenint en compte que, després de 4
> anys, ni estan resolts, ni tenim clar com resoldre'ls, em sembla que ens
> hem de plantejar seriosament revertir els canvis al local i deixar els
> noms dels mesos com estaven.

Vejam, crec que barregem coses.

No tot funcionava perfectament abans del 2016. Aquests canvis són el
que permeten tenir el format de data correctament escrit, amb la
preposició "de" apostrofa quan cal. Per exemple al calendari de
l'escriptori. Em vaig fer un fart de veure "xxx de abril...".
Considero que sí, s'havien de fer.

Ara hem detectat 2 problemes completament diferents, i és important
diferenciar-los.

Problema 1: aquest és general. Si un programa usa %b o %B en el format
de data, des del 2016 (en producció des del 2018?) això retorna mesos
amb preposició. Ha canviat la cadena del locale. En aquests casos
només cal corregir la traducció perquè usi %Ob o %OB. Forma part de la
feina de traducció/localització. En canviar els valors %b i %B es va
assumir que hi hauria un temps de transició on les traduccions no es
veurien bé (apareixeria la preposició duplicada o sense preposició).
La majoria de traduccions ja s'ha adaptat a usar %Ob i %OB. En queda
algun? Doncs es corregeix en la traducció. És el que caldria fer a
mutt.

Problema 2: aquest és molt particular de «ls», que era el motiu
d'aquest fil. «ls» no fa cas de la cadena de la traducció, perquè fa
10 anys es van carregar un enllaç. I per això fa l'ordre "dia mes"
aparegui com en anglès "mes dia" en fer «ls -l». Afectat totes les
llengües que volen l'ordre "dia mes" i així ho tenen definit en la
traducció de coreutils (curiosament, l'espanyol no ho té).

Com veieu, són problemes completament diferents. El primer té fàcil
solució. El segon també. El problema "difícil"  de resoldre bé és que
en solucionar el problema 2, apareix un 3r problema.

Problema 3: «ls» internament parseja %b perquè tots tinguin la mateixa
amplada i les columnes queden enquadrades. Això és un problema d'i18n.
Podem millorar «ls» o triar una solució de compromís. Hi ha altres
programes afectats que parsegin les dates internament? Parlem-ne,
perquè aleshores sí que podríem millorar l'i18n d'aquests programes.

>
> Un altre argument a favor de revertir el canvis és que el local ca_ES
> actual utilitza extensions que no figuren a l'estàndard POSIX (almenys
> jo no trobo cap referència als elements 'ab_alt_mon' i 'alt_mon' a
> l'especificació POSIX [2]).  És un problema perquè a l'hora d'adaptar
> els programes per tal funcionin amb aquest local, al mateix temps
> estarem introduint una dependència a aquestes extensions que no formen
> part de POSIX.
>

Interessant. No vaig participar directament en el canvi dels mesos del
locale català, però sí que sé que al CLDR el català està definit com
ara ho tenim al locale de la glibc (primer es va fer el canvi al
CLDR). Potser en un futur l'estàndard POSIX afegirà els mesos
alternatius (el català no és l'única llengua que els usa)? O potser
no?

Joan Montané


Reply to: