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