.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" and Copyright (C) 2014 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified Sat Jul 24 17:28:34 1993 by Rik Faith .\" Modified Sun Jun 01 17:16:34 1997 by Jochen Hein .\" .\" Modified Thu Apr 25 00:43:19 2002 by Bruno Haible .\" .\" Traduzione by Ottavio G. Rizzo (otto@mast.queensu.ca) .\" Giugno 1998 .\" Aggiornamento a man-pages-2.11 di Giulio Daprelà .\" ottobre 2005 .\" Aggiornamento a man-pages-2.24 di Giulio Daprelà .\" marzo 2006 .\" Aggiornamento a man-pages-2.38 di Giulio Daprelà - agosto 2006 .\" Aggiornamento a man-pages-3.15 di Elisabetta Galli - dicembre 2008 .\" Aggiornamento a man-pages 3.63 di Marco Curreli .\" marzo 2014 .\" Aggiornamento a man-pages 3.72 di Marco Curreli - settembre 2014 .\" .TH LOCALE 7 2014-05-28 "Linux" "Linux Programmer's Manual" .SH NOME locale \- Descrizione del supporto multi\-lingue .SH SINTASSI .nf .B #include .fi .SH DESCRIZIONE Una localizzazione è un insieme di regole linguistiche e culturali che coprono campi come la lingua dei messaggi, diversi insiemi di caratteri, convenzioni lessicografiche, ecc. Un programma deve poter determinare la sua localizzazione e agire di conseguenza per poter essere adattato a culture diverse. .PP L'header .I dichiara i tipi di dati, funzioni e macro utili a questo scopo. .PP Le funzioni che vengono dichiarate sono .BR setlocale (3) per impostare la localizzazione attuale e .BR localeconv (3) per ottenere informazioni sulla formattazione dei numeri. .PP Le differenti categorie di informazioni sulla localizzazione di cui un programma potrebbe aver bisogno vengono dichiarate come macro. Usandole come primo argomento alla funzione .BR setlocale (3) è possibile impostare queste variabili alla localizzazione desiderata: .TP .BR LC_ADDRESS " (GNU extension, since glibc 2.2)" .\" Vedi ISO/IEC Technical Report 14652 Cambia le impostazioni che definiscono i formati usati per specificare luoghi ed elementi di tipo geografico (p.es. indirizzi postali). Le applicazioni che necessitano di questo tipo di informazioni possono usare .BR nl_langinfo (3) per richiamare elementi non standard, come .B _NL_ADDRESS_COUNTRY_NAME (nome del paese, nella lingua della localizzazione) e .B _NL_ADDRESS_LANG_NAME (nome della lingua, nella lingua della localizzazione, che restituisce stringhe come "Deutschland" e "Deutsch" (per le localizzazioni della lingua tedesca). (Altri nomi di elementi sono elencati in .IR .) .TP .B LC_COLLATE Questa categoria controlla le regole di collazione usate per l'ordinamento e le espressioni regolari, comprese le classi di equivalenza dei caratteri e gli elementi di collazione multicarattere. Questa categoria di localizzazione modifica il comportamento delle funzioni .BR strcoll (3) e .BR strxfrm (3), che servono per confrontare stringhe nell'alfabeto locale. Ad esempio, la «ß» tedesca viene ordinata come «ss». .TP .B LC_CTYPE Questa categoria determina l'interpretazione delle sequenze di byte come caratteri (p.es. caratteri singoli o multibyte), le classificazioni dei caratteri (p.es. lettera o cifra), e il comportamento delle classi di caratteri. Modifica il comportamento delle funzioni che maneggiano e classificano caratteri, come .BR isupper (3) e .BR toupper (3), e le funzioni per caratteri multibyte come .BR mblen (3) o .BR wctomb (3). .TP .BR LC_IDENTIFICATION " (estensione GNU, a partire da glibc 2.2)" .\" Vedi ISO/IEC Technical Report 14652 Cambia le impostazioni inerenti ai metadati per la localizzazione. Le applicazioni che necessitano di questa informazione possono usare .BR nl_langinfo (3) per richiamare elementi non standard, come .B _NL_IDENTIFICATION_TITLE (titolo di questo documento di localizzazione) e .B _NL_IDENTIFICATION_TERRITORY (territorio geografico al quale si applica il documento), che potrebbe restituire "English locale for the USA" e "USA". (Altri nomi di elementi sono elencati in .IR .) .TP .B LC_MONETARY Questa categoria determina la formattazione usata per i valori numerici di tipo monetario. cambia l'informazione restituita da .BR localeconv (3), che descrive il modo in cui i numeri vengono normalmente stampati, compresi dettagli come l'uso del punto o della virgola decimale. Questa informazione è usata internamente dalla funzione .BR strfmon (3). .TP .B LC_MESSAGES Questa categoria influisce sulla lingua nella quale i messaggi vengono mostrati e la forma delle risposte positive o negative. La libreria C di GNU contiene le funzioni .BR gettext (3), .BR ngettext (3), e .BR rpmatch (3) per facilitare l'impiego di queste informazioni. La famiglia di funzioni GNU gettext rispetta anche la variabile d'ambiente .BR LANGUAGE (che contiene un elenco di localizzazioni, separate da virgole) se la categoria è stata impostata ad una localizzazione valida diversa da .BR """C""" . Questa categoria influisce anche sul comportamento di .BR catopen (3). .TP .BR LC_MEASUREMENT " (GNU extension, since glibc 2.2)" Cambia le impostazioni relative al sistema di misura nella localizzazione (cioè, metrico o sistema consuetudinario statunitense). Le applicazioni possono usare .BR nl_langinfo (3) per richiamare l'elemento non standard .B _NL_MEASUREMENT_MEASUREMENT che restituisce un puntatore a un carattere che ha il valore 1 (metrico) o 2 (sistema consuetudinario statunitense). .TP .BR LC_NAME " (GNU extension, since glibc 2.2)" .\" Vedi ISO/IEC Technical Report 14652 Cambia le impostazioni che definiscono i formati usati per rivolgersi alle persone. Le applicazioni possono usare .BR nl_langinfo (3) per richiamare elementi non standard, come gli elementi .B _NL_NAME_NAME_MR (titolo generico per gli uomini) e .B _NL_NAME_NAME_MS (titolo generico per le donne), che restituiscono stringhe come "Herr" e "Frau" (per le localizzazioni in lingua tedesca ["Signor" e "Signora" per quelle in lingua italiana]). Altri nomi di elementi sono elencati in .IR .) .TP .B LC_NUMERIC Questa categoria determina le regole di formattazione usate per valori numerici non monetari \(emper esempio, il separatore delle migliaia e il carattere di radice (un punto nella maggior parte dei paesi di lingua inglese, una virgola in molte altre regioni). Ingfluisce su funzioni come .BR printf (3), .BR scanf (3), e .BR strtod (3). Queste informazioni possono anche essere lette tramite la funzione .BR localeconv (3). .TP .BR LC_PAPER " (estensione GNU, a partire da glibc 2.2)" .\" Vedi ISO/IEC Technical Report 14652 Cambia le impostazioni relative alle dimensioni dei formati standard della carta (p.es., US letter o A4). Le applicazioni che necessitano di queste dimensioni possono ottenerle usando .BR nl_langinfo (3) per richiamare gli elementi non standard .B _NL_PAPER_WIDTH e .BR _NL_PAPER_HEIGHT , che restitiuscono valori .I interi che definiscono le dimensioni in millimetri. .TP .BR LC_TELEPHONE " (estensione GNU, a partire da glibc 2.2)" .\" Vedi ISO/IEC Technical Report 14652 Cambia le impostazioni che descrivono i formati da usare per i servizi telefonici. Le applicazioni che necessitano di questa informazione possono usare .BR nl_langinfo (3) per richiamare lementi non standard, come .B _NL_TELEPHONE_INT_PREFIX (prefisso internazionale usato per chiamare numeri in questa localizzazione), che restituiscono una stringa come, per esempio, "49" (per la Germania ["39" per l'Italia]). Altri nomi di elementi sono elencati in .IR . .TP .B LC_TIME Questa categoria controlla la formattazione usata per valori di data e ora. Per esempio, in buona parte d'Europa si usano le 24 ore, a differenza delle 12 ore usate negli Stati Uniti. L'impostazione di questa categoria influisce sul comportamento di funzioni come .BR strftime (3) e .BR strptime (3). .TP .B LC_ALL Vale per tutte le macro precedenti. .PP Se il secondo argomento a .BR setlocale (3) è la stringa vuota .BR """""" , allora la localizzazione predefinita è determinata come segue: .IP 1. Se è presente una variabile d'ambiente non nulla .BR LC_ALL , viene usato il valore di .BR LC_ALL . .IP 2. Se una variabile d'ambiente con lo stesso nome di una delle categorie precedenti esiste ed è non nulla, il suo valore viene usato per quella categoria. .IP 3. Se è presente una variabile d'ambiente non nulla .BR LANG , viene usato il valore di .BR LANG . .PP I valori che descrivono la formattazione locale dei numeri sono disponibili in una .I struct lconv restituita dalla funzione .BR localeconv (3), che è così dichiarata: .in +2n .nf struct lconv { /* Numeric (nonmonetary) information */ char *decimal_point; /* Radix character */ char *thousands_sep; /* Separator for digit groups to left of radix character */ char *grouping; /* Each element is the number of digits in a group; elements with higher indices are further left. An element with value CHAR_MAX means that no further grouping is done. An element with value 0 means that the previous element is used for all groups further left. */ /* Remaining fields are for monetary information */ char *int_curr_symbol; /* First three chars are a currency symbol from ISO 4217. Fourth char is the separator. Fifth char is \(aq\\0\(aq. */ char *currency_symbol; /* Local currency symbol */ char *mon_decimal_point; /* Radix character */ char *mon_thousands_sep; /* Like \fIthousands_sep\fP above */ char *mon_grouping; /* Like \fIgrouping\fP above */ char *positive_sign; /* Sign for positive values */ char *negative_sign; /* Sign for negative values */ char int_frac_digits; /* International fractional digits */ char frac_digits; /* Local fractional digits */ char p_cs_precedes; /* 1 if currency_symbol precedes a positive value, 0 if succeeds */ char p_sep_by_space; /* 1 if a space separates currency_symbol from a positive value */ char n_cs_precedes; /* 1 if currency_symbol precedes a negative value, 0 if succeeds */ char n_sep_by_space; /* 1 if a space separates currency_symbol from a negative value */ /* Positive and negative sign positions: 0 Parentheses surround the quantity and currency_symbol. 1 The sign string precedes the quantity and currency_symbol. 2 The sign string succeeds the quantity and currency_symbol. 3 The sign string immediately precedes the currency_symbol. 4 The sign string immediately succeeds the currency_symbol. */ char p_sign_posn; char n_sign_posn; }; .fi .in .SS Estensioni POSIX.1-2008 all'API della localizzazione POSIX.1-2008 ha fissato norme relative a parecchie estensioni all'API, sulla base di implementazioni realizzate per la prima volta nella versione 2.3 della libreria GNU C. Queste estensioni sono progettate per cercare di risolvere il problema che la tradizionale API di localizzazione non è adeguatamente compatibile con applicazioni multithread [che vengono eseguite in parallelo su più di una CPU] e con applicazioni che devono gestire più di una localizzazione alla volta. Le estensioni prendono la forma di nuove funzioni per creare e manipolare oggetti di localizzazione .RB ( newlocale (3), .BR freelocale (3), .BR duplocale (3), e .BR uselocale (3)) e diverse nuove funzioni di libreria col suffisso "_l" (p.es., .BR toupper_l (3)) che estendono le API dipendenti dalla localizzazione (p.es., .BR toupper (3)) per consentire la specificazione di un oggetto di localizzazione che dovrebbe applicarsi quando si esegue la funzione. .SH AMBIENTE La seguente variabile d'ambiente è usata da .BR newlocale (3) e .BR setlocale (3), e quindi influisce su tutti i programmi localizzati: .TP .B LOCPATH Una lista di nomi di percorso, separati da due punti (\(aq:\(aq), da usare per trovare i dati della localizzazione. Se questa variabile è impostata, vengono usati solo i singoli file di dati della localizzazione presenti in .I LOCPATH e il percorso predefinito di sistema per i dati della localizzazione; non viene usato nessuno degli archivi della localizzazione disponibili. I singoli file dei dati della localizzazione vengono cercati nelle sottodirectory che dipendono dalla localizzazione correntemente usata. Per esempio, quando viene usato .I en_GB.UTF-8 per una categoria, viene fatta la ricerca nelle seguenti sottodirectory, in quest'ordine: .IR en_GB.UTF-8 , .IR en_GB.utf8 , .IR en_GB , .IR en.UTF-8 , .IR en.utf8 , ed .IR en . .SH CONFORME A POSIX.1-2001. .\" .\" Le funzioni GNU gettext sono specificate in LI18NUX2000. .SH VEDERE ANCHE .BR locale (1), .BR localedef (1), .BR catopen (3), .BR gettext (3), .BR localeconv (3), .BR mbstowcs (3), .BR newlocale (3), .BR ngettext (3), .BR nl_langinfo (3), .BR rpmatch (3), .BR setlocale (3), .BR strcoll (3), .BR strfmon (3), .BR strftime (3), .BR strxfrm (3), .BR uselocale (3), .BR wcstombs (3), .BR locale (5), .BR charsets (7), .BR unicode (7), .BR utf-8 (7) .SH COLOPHON Questa pagina fa parte del rilascio 3.73 del progetto Linux .IR man-pages . Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su \%http://www.kernel.org/doc/man\-pages/. La versione italiana fa parte del pacchetto .I man-pages-it v. 3.73, a cura di: ILDP "Italian Linux Documentation Project" \%http://www.pluto.it/ildp .br Per la traduzione in italiano si pu\(`o fare riferimento a http://www.pluto.it/ildp/collaborare/ .br Segnalare eventuali errori di traduzione a .IR ildp@pluto.it