Condividi tramite


Novità relative alla globalizzazione e alla localizzazione

In questo argomento vengono descritte le modifiche alle classi e alle enumerazioni nello spazio dei nomi System.Globalization in .NET Framework versione 4. In questo argomento sono contenute le seguenti sezioni:

  • Nuove impostazioni cultura non associate ad alcun paese

  • Nuove impostazioni cultura specifiche

  • Valori della proprietà di globalizzazione aggiornati

  • Recupero delle informazioni sulla globalizzazione correnti

  • Gestione delle stringhe

  • Utilizzo ridotto degli identificatori delle impostazioni locali

  • Proprietà delle impostazioni cultura non associate ad alcun paese

  • Modifiche alle impostazioni cultura personalizzate

  • Funzionalità che non sono state modificate

Nuove impostazioni cultura non associate ad alcun paese

.NET Framework 4 supporta un minimo di 354 impostazioni cultura, rispetto a un minimo di 203 in .NET Framework 3.5. Molte delle nuove impostazioni cultura non sono associate ad alcun paese e sono state aggiunte per completare la catena padre delle impostazioni cultura non associate ad alcun paese radice. Ad esempio, sono state aggiunte tre impostazioni non associate ad alcun paese Inuktitut alle impostazioni cultura esistenti Inuktitut (alfabeto sillabico, Canada) e Inuktitut (alfabeto latino, Canada), come illustrato nella tabella seguente.

Nome visualizzato dell'impostazione cultura

Nome delle impostazioni cultura

LCID

Inuktitut

Iu

0x005d

Inuktitut (alfabeto sillabico)

iu-Cans

0x785D

Inuktitut (alfabeto sillabico, Canada)

iu-Cans-CA

0x045D

Inuktitut (alfabeto latino)

iu-Latn

0x7C5D

Inuktitut (alfabeto latino, Canada)

iu-Latn-CA

0x085D

Nuove impostazioni cultura specifiche

.NET Framework 4 introduce inoltre nuove impostazioni cultura specifiche, come quelle nuove per il serbo. Le precedenti impostazioni cultura per il serbo sono state rinominate in Serbo (alfabeto cirillico, Serbia e Montenegro, ex) e Serbo (alfabeto latino, Serbia e Montenegro, ex) per evitare conflitti del nome visualizzato. Tali impostazioni cultura continuano ad essere presenti in .NET Framework con le informazioni esistenti, includendo i nomi e gli identificativi delle impostazioni cultura.

Nome visualizzato dell'impostazione cultura

Nome delle impostazioni cultura

LCID

Serbo (alfabeto latino, Serbia)

sr-Latn-RS

0x241A

Serbo (alfabeto cirillico, Serbia)

sr-Cyrl-RS

0x281A

Serbo (alfabeto latino, Montenegro)

sr-Latn-ME

0x2C1A

Serbo (alfabeto cirillico, Montenegro)

sr-Cyrl-ME

0x301A

I nomi visualizzati delle impostazioni cultura cinesi sono modificati in base alla convezione di denominazione Nome lingua ([Script,] Nome Paese/Stato). In .NET Framework 4, il termine "legacy" è stato aggiunto ai nomi visualizzati zh-CHS e zh-CHT per distinguerli da zh-Hans e zh-Hant. zh, introdotto recentemente in Windows, corrisponde al nome visualizzato "Cinese".

Nome visualizzato

Nome delle impostazioni cultura

LCID

Cinese

zh

0x7804

Cinese (semplificato) legacy

zh-CHS

0x0004

Cinese (tradizionale) legacy

zh-CHT

0x7C04

Cinese (semplificato)

zh-Hans

0x0004

Cinese (tradizionale)

zh-Hant

0x7C04

Cinese (semplificato Repubblica popolare cinese)

zh-CN

0x0804

Cinese (tradizionale, Hong Kong, R.A.S.)

zh-HK

0x0C04

Cinese (tradizionale, Macao, R.A.S.)

zh-MO

0x1401

Cinese (semplificato, Singapore)

zh-SG

0x1004

Cinese (tradizionale, Taiwan)

zh-TW

0x0404

La catena padre delle impostazioni cultura per il cinese include ora l'impostazione cultura Cinese radice. Di seguito sono riportati degli esempi che illustrano la catena padre completa per due delle impostazioni cultura specifiche del cinese:

  • zh-CN → zh-CHS → zh-Hans → zh → non associato ad alcun paese

  • zh-TW → zh-CHT → zh-Hant → zh → non associato ad alcun paese

Anche i nomi visualizzati tibetano (Repubblica popolare cinese), francese (Monaco), tamazight (alfabeto latino, Algeria) e spagnolo (Spagna, internazionale) sono stati aggiornati. Quando viene modificato il nome visualizzato, generalmente questa modifica viene applicata ai nomi inglesi e nativi; potrebbero tuttavia cambiare anche i nomi ISO e abbreviati dello script, la lingua e il paese.

Valori della proprietà di globalizzazione aggiornati

.NET Framework 4 aggiorna anche i valori delle proprietà di globalizzazione come la valuta, i formati data e ora, i nomi dei giorni e dei mesi, gli indicatori AM e PM e alcune proprietà di formattazione dei numeri. Nella tabella seguente vengono forniti esempi di modifiche al nome della valuta nella classe System.Globalization.RegionInfo.

Nome delle impostazioni cultura

Nome della valuta versione 3.5

Nome della valuta versione 4

mt-MT

Lira maltese

Euro

sk-SK

Corona slovacca

Euro

sl-SI

Tallero sloveno

Euro

tr-TR

Nuova lira turca

Lira turca

Nella tabella seguente viene fornito un esempio di modifiche al modello di data breve nella classe System.Globalization.DateTimeFormatInfo.

Nome delle impostazioni cultura

Modello di data breve versione 3.5

Modello di data breve versione 4

ar-SA

gg/MM/aa

gg/MM/aaaa

prs-AF

gg/MM/aa

aaaa/M/g

ps-AF

gg/MM/aa

aaaa/M/g

pt-BR

g/M/aaaa

gg/MM/aaaa

Alcuni dati del calendario sono stati modificati, ad esempio i nomi dei giorni e dei mesi per molte impostazioni locali, (ad esempio la proprietà DateTimeFormatInfo.ShortestDayNames nelle impostazioni locali arabe). Alcune delle impostazioni locali da destra a sinistra (quali prs-AF, ps-AF e ug-CN) contenevano valori errati per la proprietà TextInfo.IsRightToLeft e sono state corrette in questa versione.

Recupero delle informazioni sulla globalizzazione correnti

Una delle funzionalità di globalizzazione principali di .NET Framework 4 è la possibilità di fornire le informazioni più recenti, se disponibili. Le informazioni sulla globalizzazione più vecchie fornite da questa versione sono i dati disponibili al momento del rilascio solo se prima di Windows 7 il sistema operativo in uso era Windows. Si utilizza Windows 7 o versione successiva, le informazioni sulla globalizzazione saranno recuperate direttamente dal sistema operativo, pertanto i clienti otterranno le informazioni sulla globalizzazione correnti in caso di aggiornamento alla nuova versione di Windows. I clienti che utilizzano Windows 7 o versione successiva avranno un ambiente di globalizzazione unificato per le applicazioni native (Win32) e gestite (.NET).

Poiché che il mondo cambia rapidamente, le informazioni sulla globalizzazione sono soggette a modifiche in qualsiasi momento. Gli sviluppatori non devono aspettarsi che i valori delle proprietà di globalizzazione vengano mantenuti tra versioni diverse e addirittura nella stessa versione di .NET Framework. Non si tratta di un fatto completamente nuovo per gli utenti di .NET Framework. Le proprietà delle impostazioni cultura solo per Windows supportate a partire da .NET Framework 2 potevano infatti assumere valori diversi se eseguite su versioni diverse di Windows

Il nome delle impostazioni cultura è la proprietà più stabile delle impostazioni cultura e dovrebbe rimanere invariata nelle versioni future. Altre proprietà quale il nome visualizzato dell'impostazione cultura potrebbero cambiare in qualsiasi momento, pertanto le applicazioni non devono dipendere dall'ortografia del nome visualizzato o da qualsiasi altro dato testuale o numerico.

Il meccanismo di recupero delle informazioni sulla globalizzazione è stato cambiato in .NET Framework 4. Se l'applicazione è in esecuzione su Windows 7 o versioni successive, recupera direttamente le informazioni sulla globalizzazione dal sistema operativo. Se l'applicazione è in esecuzione su una versione precedente di Windows (ad esempio Windows Vista, Windows XP, Windows Server 2003 o Windows Server 2008), recupera le informazioni sulla globalizzazione da un archivio dati interno per verificare che i dati siano aggiornati.

Nel modello di recupero delle informazioni di globalizzazione, le definizioni di alcuni CultureTypes verranno modificate, in quanto le informazioni sulla globalizzazione vengono recuperate da percorsi diversi a seconda del sistema operativo host. I membri CultureTypes WindowsOnlyCultures e FrameworkCultures sono ora obsoleti. Se si tenta di utilizzare tali membri, il compilatore genera un avviso, anche se la compilazione viene eseguita correttamente. Se si utilizza WindowsOnlyCultures, non sono restituite impostazioni cultura e FrameworkCultures restituisce tutte le impostazioni cultura. Gli altri membri CultureTypes dispongono delle stesse definizioni di prima.

Gestione delle stringhe

In molte classi .NET Framework, incluse CharUnicodeInfo, CompareInfo, StringInfo, TextInfo e TextElementEnumerator nello spazio dei nomi System.Globalization, sono implementati l'ordinamento dei dati, l'utilizzo di maiuscole e minuscole, le regole di normalizzazione e il recupero delle informazioni dei caratteri Unicode. In .NET Framework 4, queste funzionalità sono sincronizzate con Windows 7 che fornisce un ordinamento linguistico più dettagliato e funzionalità per l'utilizzo di maiuscole e minuscole per le lingue cinese, giapponese e coreano (CJK) e corregge molti problemi riportati dai clienti. La modifica più importante è la conformità con lo standard Unicode 5.1 che aggiunge il supporto per circa 1400 caratteri, inclusi nuovi simboli, frecce, segni diacritici, punteggiatura, simboli matematici, tratti CJK, ideogrammi e caratteri numerici malayalam e telugu. Inoltre, in Unicode 5.1 sono state migliorate le funzioni di ordinamento e di utilizzo di maiuscole e minuscole per i caratteri nei seguenti script esistenti: latino, birmano, arabo, greco, mongolo, cirillico, gurmukhi, oriya, tamil, telugu e malayalam. È stato inoltre aggiunto il supporto per i seguenti script nuovi: sundanese, lepcha, ol chiki, vai, saurashtra, kayah li, rejang e cham.

Molti scenari, ad esempio l'indicizzazione del database, richiedono un comportamento coerente nella gestione delle stringhe tra versioni diverse di Windows. .NET Framework 4 garantisce un comportamento coerente per le operazioni di gestione delle stringhe indipendentemente dalla versione di Windows dell'host.

Le applicazioni esistenti che creano gli indici del database o archiviano le chiavi di ordinamento potrebbero dipendere dall'ordinamento e dal comportamento dell'utilizzo di maiuscole e minuscole in .NET Framework 2.0 o 3.5. Per supportare queste applicazioni, .NET Framework 4 consente agli sviluppatori di applicare l'ordinamento legacy e il comportamento per l'utilizzo di maiuscole e minuscole includendo l'elemento <CompatSortNLSVersion> al file di configurazione dell'applicazione. L'ordinamento legacy e le regole di utilizzo di maiuscole e minuscole possono essere applicati anche in base al dominio dell'applicazione chiamando il metodo AppDomainSetup.SetCompatibilitySwitches con l'opzione "NetFx40_LegacySecurityPolicy" in caso di configurazione del dominio dell'applicazione. Notare che il ripristino corretto del comportamento legacy dipende dalla presenza della DLL (libreria di collegamento dinamico) sort00001000.dll sul sistema locale.

.NET Framework 4 fornisce più opzioni di ordinamento per alcune impostazioni cultura. Ad esempio, l'impostazione cultura tedesca (Germania) utilizza l'ordinamento del dizionario per impostazione predefinita, ma supporta l'ordinamento della rubrica come ordinamento alternativo. Un altro esempio sono le impostazioni cultura Cinese (semplificato, Repubblica popolare cinese), che supportano l'ordinamento in base alla pronuncia come comportamento predefinito e in base al conteggio dei tratti come ordinamento alternativo. Per specificare un ordinamento alternativo, è possibile creare un oggetto CultureInfo utilizzando LCID o il nome dell'ordinamento alternativo. Tre ordinamenti alternativi sono stati rimossi da .NET Framework 4, perché sono deprecati in Windows. Il tentativo di costruire un oggetto CultureInfo con LCID di questi ordinamenti alternativi deprecati genera un'eccezione CultureNotFoundException. Gli ordinamenti alternativi supportati da .NET Framework sono elencati nella tabella seguente.

Nome delle impostazioni cultura

Lingua/Paese

Nome dell'ordinamento predefinito e LCID

Nome dell'ordinamento alternativo e LCID

zh-HK

Cinese (Hong Kong - R.A.S.)

Valore predefinito: 0x00000c04

zh-HK_stroke: 0x00020c04

ja-JP

Giapponese (Giappone)

Valore predefinito: 0x00000411

ja-JP_unicod: 0x00010411

ko-KR

Coreano (Corea)

Valore predefinito: 0x00000412

ko-KR_unicod: 0x00010412

Utilizzo ridotto degli identificatori delle impostazioni locali

In .NET Framework 4, i metodi ToString e ToString utilizzano nomi di impostazioni cultura senza LCID per tutte le impostazioni cultura. Ad esempio, .NET Framework 4 restituisce "en-US CompareInfo - en-US" anziché "en-US CompareInfo – 1033", ovvero il valore restituito nelle versioni precedenti di .NET Framework.

Proprietà delle impostazioni cultura non associate ad alcun paese

Le versioni precedenti di .NET Framework generavano un'eccezione se le applicazioni tentavano di accedere alle proprietà delle impostazioni cultura non associate ad alcun paese, ad esempio DateTimeFormatInfo.FirstDayOfWeek. In .NET Framework 4, le proprietà delle impostazioni cultura non associate ad alcun paese restituiscono valori che riflettono le impostazioni cultura specifiche che sono quelle dominanti per le impostazioni cultura non associate ad alcun paese. Ad esempio, le impostazioni locali non associate ad alcun paese per il francese recuperano i valori della maggior parte delle proprietà dal francese (Francia). La proprietà FirstDayOfWeek restituisce DayOfWeek.Monday che riflette il valore di quella proprietà nelle impostazioni cultura del francese (Francia).

Tuttavia, alcune proprietà (come il nome della lingua) hanno valori diversi dalle impostazioni cultura dominanti. Ad esempio, il nome della lingua delle impostazioni cultura non associate ad alcun paese norvegesi è il norvegese, mentre il nome della lingua delle impostazioni cultura specifiche del norvegese, bokmål (Norvegia) è norvegese (Bokmål).

In .NET Framework 4, alcune proprietà e metodi delle impostazioni cultura non associate ad alcun paese restituiscono valori che riflettono le impostazioni cultura specifiche invece delle impostazioni cultura non associate ad alcun paese. La proprietà KeyboardLayoutId e il metodo GetConsoleFallbackUICulture nella classe CultureInfo sono due esempi di questa modifica:

  • Modifiche al valore KeyboardLayoutId:

    Nome delle impostazioni cultura

    Versione 3.5

    Versione 4

    ar

    1

    1025

    es

    10

    1034

    fr

    12

    1036

    zh-CHS

    4

    2052

  • Modifiche al valore GetConsoleFallbackUICulture:

    Nome delle impostazioni cultura

    Versione 3.5

    Versione 4

    af

    af

    af-ZA

    de

    de

    de-DE

    en

    en

    en-US

    ja

    ja

    ja-JP

Modifiche alle impostazioni cultura personalizzate

Le impostazioni cultura sostitutive non associate ad alcun paese create da .NET Framework versione 2.0 non vengono caricate in .NET Framework 4.

Dopo la registrazione delle impostazioni cultura sostitutive tramite la classe CultureAndRegionInfoBuilder, le informazioni ignorate delle impostazioni cultura personalizzate non sono immediatamente disponibili per il processo che ha creato le impostazioni cultura personalizzate. Tuttavia, i processi avviati dopo la registrazione di queste impostazioni cultura personalizzate sono in grado di leggere le informazioni ignorate.

Funzionalità che non sono state modificate

Le funzioni di informazioni testo, codifica, funzionalità del calendario e Internationalized Domain Name (IDN) non sono state modificate in .NET Framework 4. Queste aree continuano a funzionare come prima.

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2010

Notare che il ripristino dell'ordinamento legacy e del confronto dipende da sort00001000.dll.

Correzione di bug nel contenuto.