s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre |
Next
Previous
Contents
3. National Language Support (NLS)
Di certo vi stupirà sapere che lo standard POSIX, e quindi anche Linux, prevede il supporto delle regole nazionali per la gestione di set di caratteri, modo di scrivere data, ora, numeri in generale e quindi tutto quello che può (informaticamente parlando) distinguere una paese dall'altro. Dalla versione 5.2.18 delle GNU libc, tutta la localizzazione è supportata anche da Linux. Ma non basta avere installate delle moderne libc, occorre anche che questa sia stata compilata con determinate opzioni e occorre installare tutta una serie di file e directory che descrivono la ``locale'' Italia. Insomma, compito non facile se la vostra distribuzione non ha già il supporto per la localizzazione... Per poter influenzare Linux di modo che reagisca secondo la locale scelta, occorre modificare delle variabili d'ambiente. In ordine:
3.1 La localizzazione in una riga...
Piú semplicemente di quello che si crede, basta mettere nel proprio
export LANG=it_IT Oppure se avete c-type shells:
setenv LANG it_IT Perché ``it_IT''?! È solo una convenzione, e il significato è ``lingua_PAESE''. Per fare un esempio potrebbe essere it_CH (Svizzera italiana). Come sempre la man page di locale(7) è lettura molto consigliata,
come un giro per
Bug delle localizzazioni
Solitamente si manifestano con errate definizioni degli alias di locale, quindi definizioni che dovrebbero essere equivalenti danno risultati completamente diversi; per rimediare a questo occorre prelevare le definizioni di locale aggiornate, o installarle (molte distribuzioni non le installano proprio). Può anche essere che alcune distribuzioni non abbiano proprio il supporto per la locale, al che conviene cambiare distribuzione (l'alternativa è ricompilare a mano la libreria di sistema libc).
Bug delle applicazioni
Anche qui, come per il problema BS/DEL, se qualcosa non funziona è colpa, quasi certamente, della applicazione. C'è qui una specie di ``caverna degli orrori''... ;)))
Netscape
Netscape, se vengono definite le variabili LC_NUMERIC e LC_MONETARY, si mette a stampare e salvare PostScript con punti al posto delle virgole e viceversa, con il risultato che gs(1) va in palla... Se capita, ricontrollate la vostra definizione di locale, e se avete fretta di stampare basta che definiate le variabili seguenti:
LC_NUMERIC=posix LC_MONETARY=posix che forzano i valori di default (e permettono di stampare). Notare che se si è definita LC_ALL, queste due righe qui sopra vengono ignorate: per questo è bene NON definire la variabile LC_ALL. È probabile che questo problema non sia solo di Netscape: se vi capita un problema simile, sapete ora come ``mettere una pezza'', ma avvisate l'autore del programma in questione della presenza di questo bug.
perl(1)
Spesso perl(1) si lamenta della mancanza della locale; questo è dovuto sia a una non completa implementazione da parte della distribuzione, sia in parte a perl stesso che non riesce a gestire gli alias delle varie locali, e quindi riesce a ``seguire'' la variabile LANG solo se punta a una locale con una reale directory sul disco. Io sulla mia Debian non sono riuscito a riprodurre il problema (se non settando LANG a una locale inesistente ;) e quindi sospetto che tutto nasca da una difficile interazione tra localizzazione e perl stesso, che verrà risolta sicuramente dalle prossime versioni di perl. RedHat 5.0 soffre di questo problema, che è stato corretto nella 5.1.
3.2 ...o quasi!
Resta il problema di far capire alle applicazioni ``cattive'' che vogliamo avere i caratteri accentati. Questi hanno l'interessante proprietà di essere lunghi 8 bit, mentre molti programmi ne considerano solo 7, perché è da 7 bit il codice ASCII internazionalmente riconosciuto. Queste note che scrivo dovrebbero presto finire in soffitta, visto che ormai le applicazioni che non gestiscono bene gli 8 bit o che non sano reagire alla variabile LANG sono in via di estinzione.
Editor
Emacs 19
Come sempre emacs è molto particolare. Avvisiamolo che vogliamo i caratteri accentati con :
(standard-display-european t) (set-input-mode (car(current-input-mode)) (nth 1 (current-input-mode)) 0) Aggiunto al nostro bravo
joe(1)
Basta editare il file di configurazione
-asis Characters 128 - 255 shown as-is
Mail/News
pine(1)
Basta scegliere il set di caratteri ISO-8859-1 dal menu di configurazione, seguendo le voci ``Setup'', poi ``Configure'' e infine ``character-set''; questo fa uscire le mail in codifica ``quoted-printable'' se contengono caratteri accentati (il che è bene ;).
tin(1)
Tin è perfettamente localizzato, occorre solo scegliere il charset ISO-8859-1 per la visualizzazione nel menú di configurazione (attraverso [M]).
nn(1)
Aggiungere la seguente riga nel file
set data-bits 8
readline(3)
Readline, che è una libreria standard GNU per la gestione dell'input, nonostante sia giovane, pimpante e ben mantenuta, non arriva per definizione con il supporto per i caratteri accentati. Questa libreria è usata dalla shell di default di linux bash(1), per citare una applicazione di larghissimo uso. Non è da considerare un bug (questo comportamento forse è voluto per garantire il funzionamento anche sui vecchi terminali a 7 bit...) ma è chiaro che l'uso dei caratteri accentati deve essere forzato, ad esempio, se si vogliono usare nomi di file con lettere accentate. Per fortuna basta solo aggiungere nel proprio
set meta-flag on set convert-meta off set output-meta on
3.3 Manpage
Le manpage sono quelle pagine testuali che si richiamano con il comando man(1), e che rappresentano la documentazione online di ogni buon sistema UNIX, non solo di Linux. Il comando man è abbastanza intelligente da reagire se è definita la variabile LANG. In pratica man va a cercare le manpages prima in $MANPATH/$LANG e poi in $MANPATH se configurato correttamente, permettendo di leggere le pagine nella lingua preferita. Chiaramente c'è già chi sta traducendo le pagine; se vi sentite dei traduttori nati non vi resta che saltare al progetto ILDP per saperne di piú e collaborare. Le pagine già tradotte possono essere tranquillamente installate manualmente, prelevando l'ultima versione da ftp://ftp.pluto.linux.it/pub/pluto/ildp/man e leggendo attentamente le istruzioni allegate. Gli utenti Debian possono trovare nella loro distribuzione il pacchetto manpages-it già pronto.
3.4 Catalogue
Oltre tutto questo, c'è una terza e importantissima funzione della NLS: i messaggi dei programmi nella lingua locale. Per farsi un'idea, agli utenti Linux non tocca editare i sorgenti di un programma, modificare a mano tutte le stringhe e poi ricompilare perché questo si presenti in corretto italiano. Esiste una ``prassi'' di programmazione che permette di specificare un linguaggio di default ``compilato'' nell'eseguibile (di solito inglese, per compatibilità) e invece definire delle catalog, ovvero dei cataloghi di messaggi in un formato particolare, detto portable object, o più brevemente po, che messi in una determinata directory vengono usati semplicemente al posto dei messaggi presenti nel programma.
Linux International
Non c'è da meravigliarsi che ci abbia pensato mamma GNU stessa a creare una organizzazione nonprofit, Linux International appunto, dedicata a questo, dobbiamo ammetterlo, immane lavoro di traduzione e aggiornamento. In particolare in questo sito vengono messe a disposizione della comunità UNIX internazionale una serie di liste in cui poter coordinarsi per la traduzione, una per ogni paese piú una serie di liste generiche di ``intracoordinamento''. Visto che tradurre i messaggi (catalogues) e tradurre manpage e HOWTO sono compiti molto simili, per non creare fastidiose sovrapposizioni i compiti sono stati divisi tra due ambiti. Linux International in cui si definiscono le regole generali di traduzione e si traducono catalogues e programmi GNU ``ufficiali'', e ILDP che invece è piú legata al mondo Linux e maggiormente dedicata alla traduzione di documentazione (HOWTO e manpage) e anche alla sua produzione direttamente in Italiano. Piú avanti elenco le liste a cui ti puoi iscrivere per collaborare. Ti prego di NON, ripeto NON iniziare nessuna localizzazione senza prima aver sentito i ``colleghi'' di queste mailing list, il tuo lavoro potrebbe venir vanificato in un secondo per un banale doppione.
3.5 Per maggiori informazioni
Ulteriori informazioni possono essere recuperate nei seguenti testi:
Next Previous Contents |