====== 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''**.