è internazionale e può venire adattato alle condizioni locali;. cioé, l'internazionalizzazione (I18N) consente localizzazioni speciali (L10N). Le abbreviazioni I18N e L10N stanno per internazionalizzazione (internationalization) e localizzazione (localization) rispettivamente abbreviati con la prima e l'ultima lettera, e in mezzo il numero delle lettere omesse.
Le impostazioni vengono eseguite tramite le variabili LC_ definite nel file /etc/sysconfig/language. Naturalmente non si tratta solo dell'impostazione della lingua dell'interfaccia di una applicazione e comunicazioni dei programmi (ingl. native language support), ma anche delle categorie per messaggi (lingua), classi dei caratteri, sequenza della classificazione, data e ora, numeri e valuta. Ognuna di queste categorie può venire stabilita direttamente tramite una propria variabile o indirettamente tramite una variabile superiore nel file language (si veda la pagina di manuale man locale):
RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY: queste variabili vengono consegnate alla shell senza il prefisso RC_ e determinano le suddette categorie; i file in questione sono elencati qui di seguito.
Potete visualizzare le impostazioni attuali tramite il comando locale.
RC_LC_ALL: questa variabile sovrascrive, se configurata, i valori della variabile nominata nel punto 1.
RC_LANG: questo è il cosiddetto fallback, nel caso che nessuna delle suddette variabili sia stata configurata; come standard, imposta RC_LANG; in questo modo, l'utente può immettere più facilmente propri valori.
ROOT_USES_LANG: è una variabile yes/no. Se è impostata su no, root lavora sempre nell'ambiente POSIX.
Le variabili vanno impostate tramite l'editor sysconfig. Il valore di tali variabili è composto dall'indicazione della lingua (ingl. language code), paese o territorio (ingl. country code), set dei caratteri (ingl. encoding) e l'opzione modifier. Le singole indicazioni vengono collegate con caratteri speciali:
LANG=language[[_COUNTRY].Encoding[@Modifier]]
Impostate sempre lingua e nazione assieme. L'indicazione della lingua segue lo standard ISO 639 (http://www.evertype.com/standards/iso639/iso639-en.html e http://www.loc.gov/standards/iso639-2/) I codici dei paesi sono definiti in ISO 3166 (si veda http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html). Logicamente, possono venire scelti solo i valori per il file di descrizione utilizzabili che si trovano sotto /usr/lib/locale. Altri file di descrizione possono venire creati con l'aiuto di localedef preso dai file in /usr/share/i18n.
Questa è l'impostazione di default se si esegue l'installazione in italiano; se eseguite l'installazione in un'altra lingua viene impostato anche UTF-8 come set di caratteri, ma viene impostata la rispettiva lingua per il sistema.
Per la lingua italiana si imposta il set di caratteri ISO-8859-1 che non contiene il simbolo dell'Euro; questo set di caratteri si usa se un programma non supporta ancora UTF-8.
L'indicazione del set di caratteri (qui ISO-8859-1) viene p.es. supportata dall'editor Emacs.
Segue un esempio per settare una opzione (euro).
SuSEconfig legge le variabili in /etc/sysconfig/language e scrive le indicazioni su /etc/SuSEconfig/profile e /etc/SuSEconfig/csh.cshrc. /etc/SuSEconfig/profile viene letto da /etc/profile e /etc/SuSEconfig/csh.cshrc da /etc/csh.cshrc. In questo modo le impostazioni sono disponibili per tutto il sistema.
Gli utenti possono sovrascrivere i valori di default in ~/.bashrc. Se si imposta it_IT e non è si soddisfatti delle comunicazioni del programma in lingua italiana, si può cambiare lingua ed impostare ad esempio la lingua inglese: LC_MESSAGES=en_US
Generalmente, per ottenere un fall back, i file delle categorie Messaggi vengono archiviati solo nella directory della lingua (p.es. it). Se quindi LANG viene impostato su p.es. it_CH e se il file Message non è esistente sotto /usr/share/locale/it_CH/LC_MESSAGES, si ricorre a /usr/share/locale/it/LC_MESSAGES.
Con LANGUAGE è anche possibile determinare una cascata di fallback; p.es. per il bretone → francese o per il gallego → spagnolo → portoghese:
LANGUAGE="br_FR:fr_FR"
LANGUAGE="gl_ES:es_ES:pt_PT"
O per ricorrere a varianti del norvegese nynorsk o bokmål (con ulteriore fallback su no):
LANG="nn_NO"
LANGUAGE="nn_NO:nb_NO:no"
o
LANG="nb_NO"
LANGUAGE="nb_NO:nn_NO:no"
Nel caso del norvegese va tenuto presente che, LC_TIME va trattato diversamente.
Il punto decimale in cifre del tipo 1.000 non viene riconosciuto. Probabilmente LANG si trova su it. Poiché la descrizione alla quale ricorre la glibc si trova in /usr/share/lib/it_IT/LC_NUMERIC, LC_NUMERIC deve venire impostato su it_IT.
The GNU C Library Reference Manual, capitolo. “Locales and Internationalization”; contenuto nel glibc-info.
Jochen Hein, sotto il lemma “NLS”.
German-Howto di Winfried Truemper file:/usr/share/doc/howto/en/html/German-HOWTO.html
Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, attualmente sotto http://www.cl.cam.ac.uk/~mgk25/unicode.html.
Unicode-Howto di Bruno Haible file:/usr/share/doc/howto/en/html/Unicode-HOWTO.html.
Supporto di CJK in SuSE Linux in inglese redatto da Mike Fabian http://www.suse.de/~mfabian/suse-cjk/suse-cjk.html.