Condividi tramite


Uso della proprietà CurrentCulture

La proprietà CultureInfo.CurrentCulture rappresenta un'impostazione per singoli thread che determina i formati predefiniti per date, ore, valute e numeri, nonché il criterio di ordinamento del testo, i confronti di stringhe e la combinazione di maiuscole e minuscole. La proprietà CurrentCulture non è un'impostazione della lingua. Contiene solo i dati correlati alle impostazioni standard relative a un paese. Di conseguenza, la proprietà CurrentCulture può essere impostata solo su una lingua specifica o su InvariantCulture. Per impostare CurrentCulture, è possibile utilizzare la proprietà Thread.CurrentThread. Per ulteriori informazioni, vedere gli esempi forniti più avanti in questo argomento.

Nota

Per modificare la lingua di Thread.CurrentThread, è necessario che nella classe SecurityPermission sia impostato l'enumerazione SecurityPermissionFlag,ControlThread. La modifica dei thread rappresenta un'operazione rischiosa a causa dello stato di protezione associato ai thread. Questa autorizzazione deve pertanto essere associata solo a codice attendibile e solo in caso di necessità. Non è possibile modificare la lingua di un thread in codice semi-trusted.

Impostazione esplicita della proprietà CurrentCulture

È possibile impostare esplicitamente la proprietà CurrentCulture nel codice. Nell'esempio di codice riportato di seguito viene impostata la proprietà CurrentCulture sulla lingua specifica "de-DE" per indicare il tedesco parlato in Germania.

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

È necessario utilizzare una lingua specifica per inizializzare la proprietà CurrentCulture. La proprietà CurrentCulture prevede una lingua associata sia a una lingua sia ad un paese, come ad esempio ("en-US") per l'inglese parlato negli Stati Uniti. Poiché spesso una lingua è parlata in più paesi, le informazioni sulle impostazioni internazionali sono necessarie per determinare le convenzioni di formattazione appropriate da utilizzare. Se si specifica, ad esempio, la lingua "en" per l'inglese non associato ad alcun paese, non esiste un'unica impostazione corretta per il formato della data e dell'ora, La data potrebbe essere indicata nel formato valido per gli Stati Uniti o in quello britannico. La valuta potrebbe essere indicata nel formato valido per la Nuova Zelanda o il Canada. A causa di queste ambiguità è necessario definire una lingua specifica, come ad esempio "en-US", "en-GB" o "en-CA". Se si cerca di impostare la proprietà CurrentCulture specificando una lingua non associata ad alcun paese, verrà generata un'eccezione.

Se si dispone dell'accesso solo a una lingua non associata ad alcun paese, è possibile creare un oggetto CultureInfo nel formato previsto dalla proprietà CurrentCulture, utilizzando il metodo CultureInfo.CreateSpecificCulture. Questo metodo esegue il mapping di una lingua non associata ad alcun paese e della lingua specifica predefinita a cui è associata, quindi crea un oggetto CultureInfo che rappresenta tale lingua specifica. Nell'esempio di codice seguente il metodo CultureInfo.CreateSpecificCulture viene utilizzato per eseguire il mapping della lingua non associata ad alcun paese "de" sulla lingua specifica "de-DE", quindi viene creato un oggetto CultureInfo per "de-DE" che viene utilizzato per inizializzare il valore della proprietà CurrentCulture.

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");

Nota

Questo metodo è facoltativo. Se il mapping fornito non è appropriato per l'applicazione, è possibile sostituirlo con un mapping personalizzato.

Impostazione esplicita della proprietà CurrentCulture in una pagina aspx

Il metodo CultureInfo.CreateSpecificCulture consente anche di utilizzare la lingua corrente di un browser Web per inizializzare la proprietà CurrentCulture in una pagina aspx.

Nell'esempio di codice riportato di seguito la proprietà Request.UserLanguages restituisce la lingua corrente del browser Web come stringa. Il metodo CultureInfo.CreateSpecificCulture analizza questa stringa e restituisce un oggetto CultureInfo nel formato che può essere utilizzato per inizializzare il valore della proprietà CurrentCulture.

' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Per ulteriori informazioni sull'utilizzo e sul recupero di risorse nelle applicazioni ASP.NET, vedere Risorse nelle applicazioni ASP.NET.

Impostazione implicita della proprietà CurrentCulture

La proprietà CurrentCulture è impostata dalla funzione GetUserDefaultLCID nel sistema operativo Windows. L'impostazione di questa proprietà può essere modificata dall'utente modificando le impostazioni internazionali nella finestra di dialogo Opzioni internazionali del Pannello di controllo oppure modificando le impostazioni correlate alle impostazioni internazionali dell'utente, quali i formati per la valuta, i numeri, la data e l'ora.

Se nell'applicazione si desidera garantire l'utilizzo dei formati predefiniti forniti da .NET Framework per la valuta, i numeri, la data e l'ora, è possibile eseguire l'override delle impostazioni internazionali predefinite dell'utente nel codice dell'applicazione. Per effettuare questa operazione, è necessario creare un oggetto CultureInfo utilizzando uno dei relativi overload di costruttori che accetta un parametro useUserOverride e impostare tale parametro su false. In questo modo verrà eseguito l'override delle impostazioni predefinite nel sistema dell'utente con le impostazioni predefinite di .NET Framework. Quando si formatta la valuta per i paesi dell'Unione Europea che utilizzano l'euro, è consigliabile impostare il parametro useUserOverride su false per garantire che venga utilizzato il simbolo della valuta corretto. Per ulteriori informazioni, vedere la sezione "Formattazione della valuta per i paesi dell'euro" nell'argomento Formattazione di dati numerici per una lingua specifica.

Vedere anche

Riferimenti

CultureInfo.CurrentCulture Property

Concetti

Uso della proprietà CurrentUICulture
Uso della proprietà InvariantCulture

Altre risorse

Codifica e localizzazione