El 24/12/20 a les 7:29, Joan Montané ha escrit:
Missatge de Joan Montané <[email protected]> del dia dj., 24 de des.
2020 a les 6:47:
Tal com ho veig, la millor opció, de compromís, és canviar la cadena a
coreutils perquè usi %b en comptes de %Ob. Això només afectaria a «ls». L'únic
inconvenient és que a la columna de mesos tindríem la preposició, però les
columnes quadraran.
Si algú vol fer aquesta solució de compromís, no és gens complicat.
En un directori de treball.
Baixeu el fitxer .po (he usat la versió 8.30 per al paquet coreutils de buster)
curl https://translationproject.org/PO-files/ca/coreutils-8.30.79.ca.po
-o coreutils.po
Canvieu els cadenes amb %Ob a %b del fitxer anterior, amb qualsevol
editor de text decent o des de terminal. Aquests canvis només afecte a
«ls -l»:
sed -e "s/^msgstr \"%e %Ob /msgstr \"%e %b /" < coreutils.po >
coreutils-fixed.po
Compileu el .po a .mo
msgfmt coreutils-fixed.po -o coreutils.mo
Amb permisos de root, copieu el .mo al directori que pertoca (si
voleu, feu-vos còpia del .mo que esteu a punt de sobreescriure)
sudo cp ./coreutils.mo /usr/share/locale/ca/LC_MESSAGES/
I ja està, les columnes quadren en fer «ls -l», :)
Salut!
Joan Montané
No ho he provat compilant el locale, però hi hauria una altra possible
solució usant la següent cadena de formatació: "%e %5Ob %Y".
Això forçarà que l'amplada del camp del mes sigui de 5 caràcters, la
longitud del mes més llarg, però té els inconvenients que alinea els
mesos a la dreta, el que queda una mica estrany; i que la longitud del
camp està fixada a la cadena de formatació, i si es tornen a canviar les
abreviatures dels mesos s'hauria de reajustar de nou.
Una mostra ràpida de com quedaria, vist amb Python:
>>> locale.setlocale(locale.LC_ALL, 'ca_ES.utf8')
'ca_ES.utf8'
>>> for i in range(12):
... datetime.date(2020, i+1, 15).strftime("%e %5Ob %Y")
...
'15 gen. 2020'
'15 febr. 2020'
'15 març 2020'
'15 abr. 2020'
'15 maig 2020'
'15 juny 2020'
'15 jul. 2020'
'15 ag. 2020'
'15 set. 2020'
'15 oct. 2020'
'15 nov. 2020'
'15 des. 2020'