====== Supporto alla localizzazione ======
===== Localizzazione dei programmi =====
Per avere le corrette localizzazioni si deve installare il pacchetto ''locales'' ed eseguire ''**dpkg-reconfigure locales**''. E' stato scelto di generare i file di supporto solo per i seguenti:
en_US.ISO-8859-1
en_US.ISO-8859-15
en_US.UTF-8
it_IT.ISO-8859-1
it_IT.UTF-8
it_IT.ISO-8859-15@euro
Oltre alla combinazione ''**paese_NAZIONE**'', si sceglie il set di caratteri. Queste sono le differenze:
* **ISO-8859-1** Set di caratteri a 8 bit (256 simboli), contiene molte lettere accentate, manca il simbolo di Euro.
* **ISO-8859-15** Quasi identico all'ISO-8859-1, rimuove alcuni simboli raramente usati ed introduce il simbolo di Euro.
* **UTF-8** Non è un set di caratteri, ma una codifica del set di caratteri Unicode (31 bit, circa due miliardi di simboli). La codifica è a lunghezza variabile, alcuni simboli sono codificati in 8 bit, altri in 16, oppure in 32, 40 o 48 bit. Windows utilizza invece la codifica UCS-2, 16 bit per ogni carattere, può rappresentare solo i primi 65536 simboli dell'Unicode.
Quindi, dove possibile, conviene usare la codifica **UTF-8**. Pare che la maggior parte dei programmi moderni per GNU/Linux supporti questo standard. Un'eccezione importante - che mi costringe ancora ad usare **ISO-8859-15** - pare essere **konsole**: non sono riuscito a far visualizzare correttamente i caratteri Unicode.
Attenzione alle codifiche **UTF-8@euro**, in realtà andrebbero rimosse! UTF-8 include di per sé il simbolo di Euro, anzi il suffisso ''@euro'' impedisce ad alcuni programmi di riconoscere il locale come UTF-8.
===== dpkg-reconfigure locales in Ubuntu =====
Con le versioni moderne di Ubuntu GNU/Linux (es. 12.04) la scelta dei locali da compilare non si fa con ''dpkg-reconfigure'', ma dipende dai contenuti dei file in **''/var/lib/locales/supported.d/''**, basta aggiungere un file ad esempio di nome **''local''** con righe del tipo di quelle contenute in **''/usr/share/i18n/SUPPORTED''**. Dopo aver modificato i file si esegue **''locale-gen''** o il tradizionale ''dpkg-reconfigure locales''.
===== Caratteri 8 bit in console =====
Per consentire l'inserimento delle lettere accentate sulla riga di comando (caratteri ASCII superiori a 127) si deve editare il file ''**~/.inputrc**'' ed inserire la riga ''**set convert-meta off**''. Controllare se esiste il file di configurazione di sistema ''**/etc/inputrc**''.
Se un **nome di file** contiene lettere accentate il comando ''**ls**'' dovrebbe visualizzarle correttamente, altrimenti provare l'opzione ''**--show-control-chars**''.
===== OpenOffice =====
Se non è attiva la localizzazione italiana a livello di sistema (''dpkg-reconfigure locales''), basterebbe settare la variabile d'ambiente ''**LANG=it_IT**'' prima di lanciare il programma, ad esempio ''**LANG=it_IT openoffice**''.
Attenzione: non funziona se è attivo il programma //quick start// di OpenOffice, perché in quel caso OpenOffice in realtà è già avviato.
Si può modificare il comando associato all'icona, oppure si può impostare la variabile d'ambiente in qualche ''.bash_profile'' in modo che valga per la riga di comando.
Per impostare una variabile d'ambiente facendo login con KDM, un utente puo' creare un proprio ''**$HOME/.xsession**'', renderlo eseguibile e metterci dentro:
#!/bin/bash
export LANG=it_IT
exec startkde
Per altri session manager (ad esempio IceWM) si sostituisce l'ultimo exec in modo opportuno, ad esempio ''**exec icewm-session**''.
===== Controllo ortografico di OpenOffice =====
Per avere il correttore ortografico e la sillabazione in una determinata lingua (ad esempio l'italiano) installare i relativi pacchetti Debian ''**myspell-it**'' e ''**openoffice.org-hyphenation-it**''.
===== Caratteri non presenti sulla tastiera (KDE e non solo) =====
Utilizzando una tastiera US c'è il modo di inserire le lettere accentate, il simbolo di euro, ecc.
Le impostazioni predefinite - almeno con KDE 3.5 - non lo consentono, ma si può utilizzare il //Centro di controllo// del KDE per attiavre la //Mappatura della tastiera//, tra le impostazioni //Regionali//. Si devono attivare le //Opzioni Xkb// nell'apposita scheda.
Questa è una mappatura consigliata:
^ Funzione ^ Tasto assegnato ^ Esempio ^
| level3 | Right-Alt | **lvl3** + **e** = **€** |
| compose | Right-Windows | **compose** + **`** + **a** = **à** |
Che nell'interfaccia **KDE 3** si traduce nell'attivare
* Right Win-key is Compose
* Press Right-Alt to choose 3rd level
* Add the EuroSign to the E key
In **KDE 4** si imposta tutto da //System Settings//, //Regional & Language//, //Keyboard Layout//, //Advanced//:
* **Meta** is mapped to Left Win
* Key to choose **3rd level**: Right alt
* **Compose** key position: Right Win
* Adding **EuroSign** to certain keys: E
In **KDE 4.6** da //System Settings//, //Input Devices//, //Keyboard//, //Advanced//:
* Adding currency signs to certain keys: Euro on E
* Alt/Win key behavior: **Meta** is mapped to Left Win
* **Compose** key position: Right Win
* Key to choose **3rd level**: Right alt
Il tutto equivale ad impostare da riga di comando:
setxkbmap -option compose:rwin,lv3:ralt_switch,eurosign:e,altwin:left_meta_win
L'impostazione del tasto **Meta** (suggerito su Left Win) è importante, alcune applicazioni non funzionano senza di esso. Ad esempio **Ktranslator** ha bisogno di questa mappatura per abilitare il modifier key Winkey.
Il risultato di queste impostazioni può essere verificato con il comando:
niccolo@corinto:~$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+altwin(left_meta_win)+level3(ralt_switch)+compose(rwin)+eurosign(e)" };
xkb_geometry { include "pc(pc104)" };
};
Per i desktop manager che non hanno un applet per configurare la tastiera - ad esempio **Xfce** - si può intervenire direttamente nella configurazione di **''/etc/X11/xorg.conf''**. Ecco un esempio dove il tasto compose è il tasto Windows di destra e il tasto per il livello3 è l'Alt di destra:
Section "InputClass"
Identifier "Generic Keyboard"
MatchIsKeyboard "true"
Option "XkbOptions" "lv3:ralt_switch, compose:rwin, eurosign:e"
EndSection
L'elenco dei tasti modificatori (es. **''rwin''**, **''menu''**, ecc.) è contenuto in **''/usr/share/X11/xkb/rules/xorg.lst''**, mentre l'elenco delle combinazioni compose è in **''/usr/share/X11/locale/iso8859-15/Compose''**.
Anche in questa pagina si può trovare un elenco di caratteri speciali e la combinazione necessaria per ottenerli: **[[http://www.hermit.org/Linux/ComposeKeys.html|Linux Compose Key Sequences]]**.
===== Filename non UTF-8 =====
È possibile ritrovarsi con dei file il cui nome non è valido secondo la codifica UTF-8 (ad esempio dopo averli copiati da un filesystem montato con i parametri sbagliati).
Per individuare i file con nome non valido UTF-8 si può usare il tool **''isutf8(1)''** contenuto nel pacchetto Debian **moreutils**, con uno script del tipo:
#!/bin/sh
find . -type f | while read fname; do
if !(echo $fname | isutf8 -q); then
echo "Invalid UTF-8 filename: $fname"
fi
done
Per **rinominare i file** si può usare il tool **''convmv(1)''** fornito dall'omonimo pacchetto Debian. Ad esempio se si hanno dei nomi in **[[wp>Code page 850]]** (es. MS-DOS):
convmv --notest -f cp850 -t utf-8 *.mp3
Il tool dovrebbe essere abbastanza intelligente per capire se il file è già in formato UTF-8 ed evitare di fare doppie conversioni. Per intervenire su intere directory e sottodirectory è comodo lo switch **''-r''**.