Locale e glibc [era Re: R: R: R: R: gcalctool]

Luca Ferretti elle.uca@infinito.it
Mar 16 Set 2003 11:08:17 CEST


On lun, 2003-09-15 at 11:47 +0200, Bruno Antonini wrote:
> Ciao, vedi sotto.
> 
> > 
> > Evidentemente è un bug di internazionalizzazione che sarebbe il caso di
> > aprire, ammesso che i mantainer lo vogliano correggere e non adducano
> > motivazioni del tipo "Tanto le calcolatrici reali hanno il punto"  :-)
> 
> Temo in effetti che succederebbe qualcosa del genere... :-)
> L'ideale forse sarebbe collegare l'uso del punto
> a un'impostazione generale (come accade in Solaris e
> in Windows).
> 

GNOME non implementa nulla del genere, KDE ha una cosa + o - uguale a
Win, ma a mio avviso è un piccolo spreco, almeno se hanno riprogettato
tutto il supporto

Ci sarebbero infatti le glibc (non glib che serve alle gtk+, ma
proprio glibc) a fornire il supporto per i "locale".

Ho avuto modo di metterci mano a luglio grazie ad una rivista che ha
pubblicato gentoo e, quindi, il tar.gz delle glibc. Vi allego il file
della localizzazione italiana così da avere anche le vostre opinioni.
(Per vedere quale carattere corrisponda al codide Unicode presente usate
gedit e, tenendo premuti Ctrl + Shift premete le "cifre significative"
dopo la U. Per esempio per <U005E> digitare solo 5E tenendo premuti
Ctrl+Shift, per <U20AC> digitare 20AC)

Effettivamente il punto decimale è la , (non ho ancora controllato come
sia impostata la data e l'ora), quindi gcalctool potrebbe reperire qui
tali informazioni.

Credo cmq che una buone controllata al tutto non sarebbe una cattiva
idea, e mi ero ripromesso di occuparmene al ritorno dalle vacanze e dopo
aver concluso la traduzione di GNOME 2.4 e le linee guida.

Visto che entrambi sono a buon punto e sperando che qualcuno stia
leggendo questo mini-thread oltre a noi mi domandavo: c'è qualcuno che
vuole darmi una mano? Specie qualcuno con un po' di banda che possa
recuperare eventualmente versioni + recenti della glibc (e delle
coreutils, anche loro hanno bisogno di un po' d'attenzione)

> > 
> > Giacché siamo in tema e che sto scrivendo le indicazioni sul formato di
> > data ed ora, c'è un motivo particolare (nel senso è una qualche
> > convenzione, norma, scelta...) per cui hai scritto €1143,25? Intendo la
> > posizione dell'unità di misura.
> 
> 
> Il Manuale di stile di Zanichelli, non che sia la bibbia, dice
> "Negli usi specialistici si utilizzano in genere i simboli 
> convenzionali delle monete. In questo caso i valori numerici 
> vengono sempre scritti in cifre, e il simbolo della moneta
> precede il valore numerico. Es.: Lit 10 000 000."
> 

mhh prezzo del suddetto manuale? Oppure, meglio, ti puoi prestare a
consulente/lettore in caso di esigenza?

Per cominciare: formato della data e dell'ora. È come scritto nel
secondo allegato? 

> Ho adottato questa convenzione nell'ORM perché l'uso mi sembra
> sufficientemente specialistico e perché è breve e veloce. 
> In generale *non* sto adottando la separazione delle migliaia
> fatta con gli spazi (uso i vecchi punti) suggerita dallo
> stesso manuale (e che tra l'altro è la norma per le 
> pubblicazioni in italiano e nelle altre lingue 
> dell'Unione europea, anche se loro stessi non la applicano
> con regolarità).

Anche qui, dove reperire (intendo senza pagare e con un browser :-)))
queste informazioni?

Qualche mese fa abbiamo perso settimane a cercare se ci fosse una norma
per il formato orario...

> 
> Visto che siamo in tema, in genere invece io adotto la convenzione
> per cui il punto di separazione delle migliaia si usa
> per i valori numerici di oltre 4 cifre (1000 e non 1.000)
> che è largamente adottata anche come norma redazionale e
> mi sembra chiara. 
> 

Concordo


> > 
> > D'altra parte gcalctool non rispetta nemmeno la precedenza tra operatori
> > :-( È un casino quando da secoli usi calcolatrici scientifiche che lo
> > fanno...
> 
> 
> Sì, ho visto, in effetti mi chiedevo perché... 
> Bisogna sempre usare le parentesi per impostare
> la precedenza anche quando non ci andrebbero... Bah...
> 

C'era una qualche motivazione, forse dovuta al fatto che il codice di
base ha + o - una 15ina di anni..


-- 
Occhi da orientale che raccontano emozioni
sguardo limpido di aprile di dolcissime illusioni
tutto scritto su di un viso che non riesce ad imparare
come chiudere fra i denti almeno il suo dolore

							ds
-------------- parte successiva --------------
comment_char %
escape_char  /
%
% Italian Language Locale for Italy
% Source: RAP
% Address: Sankt Jo//rgens Alle 8
%    DK-1615 Ko//benhavn V, Danmark
% Contact: Keld Simonsen
% Email: Keld.Simonsen@dkuug.dk
% Tel: +45 - 31226543
% Fax: +45 - 33256543
% Language: it
% Territory: IT
% Revision: 4.3
% Date: 1996-10-15
% Users: general
% Charset: ISO-8859-1
% Distribution and use is free, also
% for commercial purposes.

LC_IDENTIFICATION
title      "Italian locale for Italy"
source     "RAP"
address    "Sankt J<U00F8>rgens Alle 8, DK-1615 K<U00F8>benhavn V, Danmark"
contact    ""
email      "bug-glibc@gnu.org"
tel        ""
fax        ""
language   "Italian"
territory  "Italy"
revision   "1.0"
date       "2000-06-29"
%
category  "it_IT:2000";LC_IDENTIFICATION
category  "it_IT:2000";LC_CTYPE
category  "it_IT:2000";LC_COLLATE
category  "it_IT:2000";LC_TIME
category  "it_IT:2000";LC_NUMERIC
category  "it_IT:2000";LC_MONETARY
category  "it_IT:2000";LC_MESSAGES
category  "it_IT:2000";LC_PAPER
category  "it_IT:2000";LC_NAME
category  "it_IT:2000";LC_ADDRESS
category  "it_IT:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_COLLATE
copy "iso14651_t1"
END LC_COLLATE

LC_CTYPE
copy "i18n"
END LC_CTYPE

LC_MESSAGES
yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES

LC_MONETARY
int_curr_symbol           "<U0045><U0055><U0052><U0020>"
currency_symbol           "<U20AC>"
mon_decimal_point         "<U002C>"
mon_thousands_sep         "<U002E>"
mon_grouping              3;3
positive_sign             ""
negative_sign             "<U002D>"
int_frac_digits           0
frac_digits               0
p_cs_precedes             1
p_sep_by_space            1
n_cs_precedes             1
n_sep_by_space            1
p_sign_posn               1
n_sign_posn               1
END LC_MONETARY

LC_NUMERIC
decimal_point             "<U002C>"
thousands_sep             ""
grouping                  0;0
END LC_NUMERIC

LC_TIME
abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
        "<U0067><U0069><U006F>";"<U0076><U0065><U006E>";/
        "<U0073><U0061><U0062>"
day     "<U0064><U006F><U006D><U0065><U006E><U0069><U0063><U0061>";/
        "<U006C><U0075><U006E><U0065><U0064><U00EC>";/
        "<U006D><U0061><U0072><U0074><U0065><U0064><U00EC>";/
        "<U006D><U0065><U0072><U0063><U006F><U006C><U0065><U0064><U00EC>";/
        "<U0067><U0069><U006F><U0076><U0065><U0064><U00EC>";/
        "<U0076><U0065><U006E><U0065><U0072><U0064><U00EC>";/
        "<U0073><U0061><U0062><U0061><U0074><U006F>"
abmon   "<U0067><U0065><U006E>";"<U0066><U0065><U0062>";/
        "<U006D><U0061><U0072>";"<U0061><U0070><U0072>";/
        "<U006D><U0061><U0067>";"<U0067><U0069><U0075>";/
        "<U006C><U0075><U0067>";"<U0061><U0067><U006F>";/
        "<U0073><U0065><U0074>";"<U006F><U0074><U0074>";/
        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon     "<U0067><U0065><U006E><U006E><U0061><U0069><U006F>";/
        "<U0066><U0065><U0062><U0062><U0072><U0061><U0069><U006F>";/
        "<U006D><U0061><U0072><U007A><U006F>";/
        "<U0061><U0070><U0072><U0069><U006C><U0065>";/
        "<U006D><U0061><U0067><U0067><U0069><U006F>";/
        "<U0067><U0069><U0075><U0067><U006E><U006F>";/
        "<U006C><U0075><U0067><U006C><U0069><U006F>";/
        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
        "<U0073><U0065><U0074><U0074><U0065><U006D><U0062><U0072><U0065>";/
        "<U006F><U0074><U0074><U006F><U0062><U0072><U0065>";/
        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
        "<U0064><U0069><U0063><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
t_fmt   "<U0025><U0054>"
am_pm   "";""
t_fmt_ampm ""
date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME

LC_PAPER
% FIXME
height   297
% FIXME
width    210
END LC_PAPER

LC_TELEPHONE
tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
int_prefix     "<U0033><U0039>"
END LC_TELEPHONE

LC_MEASUREMENT
% FIXME
measurement    1
END LC_MEASUREMENT

LC_NAME
name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
END LC_NAME

LC_ADDRESS
postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
END LC_ADDRESS
-------------- parte successiva --------------
Formato UNI e formato locale.

	Esiste un formato promosso dall'UNI, la cui finalità è
	rendere comprensibili le comunicazioni internazionali
	mediate o no tramite elaboratore elettronico.

	Ora, sebbene tale formato goda di una pregevole 
	logicità (anno->mese->giorno->ora->minuto), è altresì
	vero che esula dall'interesse di un tradutore: non
	stiamo "creando" qualcosa che deve essere usato e capito
	da persone di diverse nazioni che usano diverse notazioni,
	stiamo localizzando un programma per una persona che
	parla, pensa, scrive e si confornta tutti giorni
	con la lingua italiana.

	D'altro canto se si volesse adottare il formato UNI, 
	bisognerebbe farlo fino in fondo: ciò vorrebbe quindi
	dire che nella necessità di indicare data E ora si dovrebbe
	scrivere, ad esempio. 2003-02-08T15:45 (e la "T"non è un
	errore di digitazione).

	
Formato della data

	È possibile identificare diverse notazioni in base al
	contesto o alla necessità di spazio.
	
	1. Formato ridotto		gg/mm/aaaa
        2. Formato esteso abbr.  	GGG gg MMM aaaa
        3. Formato esteso               GIORNO gg MESE aaaa

	Esprimendo con le convenzioni del programma per UNIX
	date(1) diventano:

	1.      			%d/%m/%Y
        2.      			%a %-d %b %Y
        3.      			%A %-d %B %Y

	Esempio        

	1.				01/01/2003
        2.      			mer 1 gen 2003
        3.      			mercoledì 1 gennaio 2003


	Ci sarebbero casi intermedi (uso di anno a due cifre
	nel caso 1 oppure combinazioni varie dei casi 2 e 3),
	ma vengono da sé.


Formato dell'ora 

	Il formato convenzionale, pur se non cofificato
	per indicare l'ora in lingua italiana è
	
		o.mm.ss
		
	con nel formato a 24 ore e SENZA lo zero iniziale.
	
	Esprimendo con le convenzioni del programma per UNIX
	date(1) diventa:
	
		%k.%M.%S

	Esempio:
	
		13.00.56
		 4.12

	La presenza dello zero iniziale (ottenuta con date(1) 
	sostiuendo al %k un %H) è ammessa nel caso si abbia
	necessità per questioni di allineameno o di ordinamento.
	È bene notare, che per la sola motivazione di allineamento,
	la convenzione di date(1) prevede la possibilità di usare i
	modificatori "_" e "-" per nascondere delle cifre.
	Consultare la pagina di man per maggiori informazioni.

	Nel caso in cui si debba usare il formato a 12 ore
	sarebbe opportuno rendere con "a.m." e "p.m." le 
	indicazioni antimeridano e pomeridiano.



Maggiori informazioni sulla lista tp