User Tools

Site Tools


doc:appunti:linux:tux:localizzazione

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: 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 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.

doc/appunti/linux/tux/localizzazione.txt · Last modified: 2014/01/16 22:59 by niccolo