Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

ASP.NET supportare la colonna vocale

Per personalizzare questa colonna in base alle proprie esigenze, è possibile inviare idee sugli argomenti di suo interesse e sui problemi che si desidera vengano affrontati in futuri articoli della Knowledge Base e nelle colonne Del supporto vocale. È possibile inviare idee e feedback usando il modulo Chiedi. C'è anche un collegamento alla maschera nella parte inferiore di questa colonna.

Introduzione

Benvenuto! Questo è Sukesh Khare con il team di supporto per sviluppatori di Microsoft ASP.NET. Questa è la prima volta che si crea una colonna Di supporto vocale. Non vedo l'ora di creare altre colonne di questo tipo nei mesi a venire.

Per la colonna di questo mese, discuterò i problemi della globalizzazione in Active Server Pages (ASP) e ASP.NET, i problemi che affrontiamo in ASP, come le cose sono cambiate in ASP.NET 1x e cosa succede con ASP.NET 2.0 sul fronte della globalizzazione.

Nota Se si trova un termine che non si capisce, vedere la sezione Glossario nella parte inferiore di questa colonna.

Problemi della globalizzazione in ASP

Prima ASP.NET, non vi era alcun sostegno strutturato per lo sviluppo di applicazioni per gli utenti globali. Durante lo sviluppo iniziale di ASP, sviluppatori come me hanno trovato solo un supporto sparso per la globalizzazione in sistemi operativi, browser, ASP e sistemi back-end. Tuttavia, abbiamo raramente osservato qualsiasi connettività automatica tra queste applicazioni. Fortunatamente, abbiamo compreso concetti come set di caratteri, pagine codici, lingue del browser e tipi di carattere che potevano essere sfruttati per lo sviluppo di applicazioni per utenti globali.

Sarebbe troppo difficile suddividere in categorie tutte le questioni della globalizzazione che quelle di noi in ASP.NET hanno visto. Invece, voglio elencare una serie di concetti correlati a una varietà di questi problemi.

Set di caratteri e codepage

Sappiamo tutti che i caratteri sullo schermo del nostro computer sono solo una serie di byte. La serie di byte può essere creata e interpretata in qualsiasi numero di modi. Se l'interpretazione utilizza una codifica diversa dalla codifica con cui è stata creata la matrice di byte, l'interpretazione verrà visualizzata come garbage. I set di caratteri (charset) sono formati di codifica che in genere vengono usati dai browser. La proprietà Codepage, più applicabile per le conversioni lato server, è solo una tabella di conversione che specifica la modalità di codifica dei caratteri.

I browser codificano i dati di post del modulo in base al set di caratteri corrente. Se il set di caratteri corrente è "windows-1256", anche la trasmissione di byte al server viene codificata come "windows-1256".

Quando l'ASP viene interpretato, le raccolte Form e Querystring non vengono compilate fino a quando non viene fatto riferimento nel codice. In fase di generazione, i dati delle stringhe vengono trasformati in Unicode in base alla tabella codici corrente. Per impostazione predefinita, sia ASP che ASP.NET elaborano il contenuto usando il formato Unicode. È molto importante impostare la tabella codici corretta prima di fare riferimento alle raccolte; in caso contrario, la rappresentazione Unicode in memoria non sarà corretta.

Per impostare una tabella codici, usare Session.Codepage o Response.Codepage. Response.Codepage è disponibile solo in Microsoft Internet Information Services (IIS) 5.1 o versioni successive. Per informazioni sui valori interi (che corrispondono al set di caratteri) su cui verranno impostate queste proprietà, visitare il sito Web Microsoft seguente:

Riconoscimento
del set di caratterihttp://msdn2.microsoft.com/en-us/library/Aa752010.aspxAd esempio, per impostare la tabella codici per la lingua araba, usare il codice seguente:

Session.Codepage = 1256

Response.Codepage avrà effetto solo sulla risposta corrente. Tuttavia, Session.Codepage influirà su tutte le risposte effettuate dall'utente corrente. Quando la tabella codici viene impostata usando una di queste proprietà e vengono compilate le raccolte Form e Querystring, questa modifica nella tabella codici corrente causa la trasformazione del metodo Response.Write da Unicode in memoria alla tabella codici corrente. Per ulteriori informazioni su questo argomento, visitare il seguente sito Web MSDN:For more information about this topic, visit the following MSDN Web site:

Impostazione della tabella codici per le conversioni di stringhe (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxLa riga inferiore per quanto riguarda i problemi relativi a charset e tabelle codici è che charset client e tabella codici server devono corrispondere.

Accetta lingue

Se uno sviluppatore ASP vuole conoscere le lingue impostate dall'utente nel browser, lo sviluppatore può utilizzare la variabile Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") per trovare l'elenco delle lingue in cui l'utente vuole leggere la risposta, ad esempio inglese, tedesco o indiano, e l'ordine di preferenza in cui l'utente vorrebbe visualizzare queste lingue. In ASP.NET, informazioni simili sono presenti nella proprietà Request.UserLanguages come matrice.
Per ulteriori informazioni su come utilizzare queste informazioni nel codice ASP, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

229690 Come impostare l'ID delle impostazioni locali ASP per le impostazioni della lingua del browser
 

Visualizzazione di set di caratteri multi byte in Internet Explorer

L'unico formato di codifica in grado di mostrare un set di caratteri a più byte è Unicode (UTF-8). Con UTF-8, possiamo visualizzare cirillico, indiano e giapponese tutti nella stessa pagina. Se non si usa UTF-8, è possibile visualizzare solo una di queste lingue alla volta. Per impostare il charset del browser, usare la proprietà Response.CharSet.

Caratteri a più byte statici in una pagina

Per visualizzare caratteri multi byte archiviati direttamente nella pagina, è necessario prima salvare la pagina con una codifica specifica. UTF-8 sarà la scelta migliore, ma funzionerà anche una tabella codici specifica (corrispondente alla tabella codici dei caratteri).

Il salvataggio di un file ASP con Microsoft Visual InterDev non è utile in questo caso, poiché Visual InterDev può essere salvato solo in inglese ANSI o Unicode. Qualsiasi pagina ASP salvata come Unicode non è supportata da ASP.

In Microsoft Visual Studio .NET è possibile salvare un file con qualsiasi codifica. Questa operazione si può eseguire in due modi. Il modo predefinito consiste nel salvare il file usando la tabella codici corrente per l'utente. Un altro modo per salvare un file con una codifica è il seguente:
Scegliere Salva file con nome dal menu File. Nella finestra
di dialogoSalva file con nome fare clic sulla freccia a discesa sul
pulsanteSalva. Quando si fa clic sulla freccia, le opzioni sono
Salva e Salva con codifica. Quando si fa clic su
Salva con codifica, viene visualizzata la finestra di dialogo Opzioni di salvataggio avanzate in cui è possibile selezionare il tipo di codifica da applicare da un elenco delle codepage installate nel computer.


Nota Questa operazione modifica la codifica per l'operazione di salvataggio, ma è solo per una volta. Il prossimo salvataggio verrà ripristinato come predefinito.

Per modificare la tabella codici predefinita, fare clic su Opzioni di salvataggio avanzate nel
menuFile. Nella finestra di dialogo Opzioni di salvataggio avanzate è possibile impostare la codifica predefinita per le operazioni di salvataggio sulla tabella codici desiderata.

Questi metodi sono correlati al modo in cui il file viene salvato sul disco. Tuttavia, per controllare l'output per ASP, come già illustrato, è necessario impostare le proprietà Session.CodePage e Response.CharSet. Con IIS 5.1 e versioni successive, è anche possibile usare la proprietà Response.CodePage.

TABELLA CODICI predefinita nel server

Le impostazioni locali predefinite e la tabella codici predefinita per la pagina dipendono dalle impostazioni del Registro di sistema per . Utente PREDEFINITO. Possiamo trovare la chiave internazionale nell'hive del Registro di sistema HKEY_USERS\.DEFAULT\Control Panel\International. È anche possibile modificare il comportamento delle impostazioni locali scelte da IIS.

Se l'utente connesso ha lo stesso set di impostazioni locali della chiave precedente o l'impostazione predefinita del sistema, l'impostazione utente ha la precedenza.

Esempio: Per le impostazioni locali predefinite il formato della data è impostato su 11.1.2004, mentre l'utente connesso (con lo stesso set di impostazioni locali) ha il formato data 11/1/2004. L'impostazione 11/1/2004 avrà effetto per ASP.

Ad ASP.NET, questo può variare. In alcune installazioni, l'utente ASPNET avrà un proprio profilo che verrà visualizzato in HKEY_USERS quando viene caricato. In altri, userà il . PROFILO PREDEFINITO. È anche possibile usare l'attributo codepage nella dichiarazione <%@ %>. Questo deve essere usato quando il file viene salvato con una codifica diversa, quindi l'impostazione predefinita, ad esempio tabella codici 932 (giapponese)).

Problemi relativi alla tabella codici e problemi di conversione del tipo di carattere: qual è il problema?

A volte, è possibile che venga visualizzato un carattere punto interrogativo (?) o una casella in cui dovrebbe comparire un carattere.

Problemi di conversione della tabella codici

Quando un carattere viene sostituito da un punto interrogativo (?), si è verificato un problema di conversione della tabella codici. Il punto interrogativo (?) è un carattere predefinito per la conversione della tabella codici e indica fondamentalmente che il sistema operativo non sa come gestire il valore del carattere e convertirlo. Sostituisce il valore del carattere con un punto interrogativo (?). Questo può indicare che il carattere ha un valore non valido per la tabella codici o che la tabella codici necessaria per la conversione non è installata.

Problemi di conversione dei tipi di carattere

Quando un carattere viene sostituito da una casella, questo indica che si è verificato un problema di conversione del tipo di carattere. Ciò si verifica sul lato client quando nel client non è installato il tipo di carattere corretto per visualizzare correttamente questo carattere. Ad esempio, quando un carattere proviene dal charset giapponese e nel client non sono installati i tipi di carattere giapponesi, il carattere giapponese viene visualizzato come casella.

Poi, parlerò di come le cose sono cambiate in ASP.NET 1.x e di come questi cambiamenti influiscano sui problemi della globalizzazione nel contesto di ASP.NET.

Problemi di globalizzazione in ASP.NET 1.x:

Con ASP.NET sono state introdotte tre interessanti novità:

  • Tag> della globalizzazione <nel file
    di web.config Il tag> della globalizzazione <ci allontana dai concetti incoerenti di codepage e charset e ci consente di controllare la maggior parte delle varianti all'interno di ASP.NET.

  • Spazio dei nomi
    System.Globalization Lo spazio dei nomi Globalization ci fornisce il potere programmatico di gestire la globalizzazione.

  • Il concetto di file di risorse è stato notevolmente migliorato.
    I file di risorse non vengono trattati come prima in ASP. Ora, i file di risorse sono sotto forma di file XML quando li progettiamo e li sviluppiamo, ed esistono come assemblati in fase di runtime.

Tag di configurazione Della globalizzazione:

Nel tag sono presenti due impostazioni importanti:

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

Di seguito sono riportate altre aree di impostazioni possibili:

codifica file

Specifica la codifica predefinita per l'analisi dei file con estensione aspx, asmx e asax. I file Unicode e UTF-8 salvati con il prefisso del segno di ordine dei byte (con firma) verranno riconosciuti automaticamente, indipendentemente dal valore di fileEncoding.

Cultura

Specifica le impostazioni cultura predefinite per l'elaborazione delle richieste Web in ingresso (applicabili ai metodi delle classi dallo spazio dei nomi System.Globalization).

Uiculture

Specifica le impostazioni cultura predefinite per l'elaborazione delle ricerche di risorse dipendenti dalle impostazioni locali (assembly satellite).

Per altre informazioni sulle stringhe di impostazioni cultura (valori di cultura e uiculture), visitare il seguente sito Web Microsoft:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxQueste impostazioni vengono applicate da ASP.NET al termine della risposta e prima che la richiesta venga inviata all'applicazione. Per responseEncoding, il buffer creato per archiviare l'output è impostato su questa codifica. Tutto ciò che viene inserito in questo buffer verrà codificato in base all'impostazione inserita nel buffer.

Per requestEncoding, il runtime leggerà la richiesta e la interpreterà in base all'impostazione in questa sezione. Si tratta tuttavia di un'impostazione che può causare problemi. La tabella seguente mostra il layout di bit di una sequenza di byte UTF-8 valida.

Se il valore del carattere rientra nello standard ASCII a 7 bit, il valore del byte non viene modificato. Se il valore è superiore a 127, deve seguire le regole seguenti. Il set di bit iniziale mostra il numero di caratteri presenti nella sequenza. Ogni byte dopo il primo deve iniziare con il primo bit impostato su 1.

Layout UTF-8 byte:

Byte

Bit

Rappresentazione

1

7

0vvvvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvvvv

È qui che arriva il problema. Se il browser codifica la richiesta in base a una codifica a byte singolo (ad esempio iso-8859-1), i valori superiori a 127 non saranno validi in base al layout precedente. Quando vengono letti nel buffer UTF-8, i caratteri non validi vengono semplicemente eliminati dall'output.

Modifiche alla codifica di runtime

Nell'evento Application_BeginRequest è possibile modificare il valore di requestEncoding e renderlo effettivo prima dell'elaborazione della richiesta. Per la risposta, l'evento Page_PreRender è l'ultima possibilità di modificare la codifica dell'output. Si noti inoltre che Response.Write inserirà caratteri in questo buffer non appena viene chiamato, quindi assicurarsi di avere la codifica corretta impostata prima di usare Response.Write.

I dati originali non sono Unicode: come far interpretare ancora a Internet Explorer i set di caratteri multi byte?

Possiamo anche fare in modo che ASP.NET si comportino come ASP, se necessario. A questo scopo, è necessario impostare responseEncoding e requestEncoding su windows-1252 (una codifica più completa rispetto a iso-8859-1) e usare la proprietà Response.Charset per visualizzare correttamente il testo. Questo funziona perché windows-1252 è uno schema di codifica a byte singolo e non modifica i byte aggiunti al buffer. Pertanto, i caratteri a byte doppio vengono inviati come serie di byte singoli. È quindi possibile indicare a Internet Explorer come interpretare i byte usando la proprietà Response.Charset. Questo scenario può essere necessario se i dati originali non vengono archiviati come Unicode o UTF-8, ad esempio un valore restituito da un oggetto COM, o se i dati sono archiviati in Microsoft SQL Server in un campo diverso da N, ad esempio varchar.

problemi SQL Server e ASP.NET della globalizzazione

Input di dati Unicode in SQL Server

Il modo migliore per archiviare i dati in SQL Server consiste nell'utilizzare Unicode. Ogni volta che si usa INSERT, UPDATE e così via, se c'è anche meno possibilità di dati Unicode, è necessario aggiungere una N prima del valore. Questo indica al database che il valore è Unicode. Un buon esempio è costituito dagli oggetti ADO. Eseguono questa operazione automaticamente se si usa l'oggetto Recordset per aggiungere nuovi record.

Ecco un esempio:

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
Input di data/ora in SQL Server

Di solito abbiamo la conoscenza della cultura e delle impostazioni locali della data/ora che vengono interpretate all'interno della nostra applicazione ASP.NET. Tuttavia, durante il push e il push dei dati di data/ora da e verso origini esterne, si corre il rischio di interpretare in modo errato i formati di data/ora. Questo perché non possiamo sempre garantire la cultura e le impostazioni locali della fonte esterna allo stesso modo come nella nostra applicazione. In SQL Server questo problema può essere risolto usando l'attributo 'linguaggio corrente' nella stringa di connessione della connessione stabilita al database SQL. Possiamo fornire la stessa impostazione della lingua nella stringa di connessione come le impostazioni cultura nella nostra applicazione. Questo ci protegge dal rischio di un'interpretazione errata, perché SQL Server accetta sempre e invia i dati di data/ora in consenso con l'impostazione sopra menzionata.

Spazio dei nomi System.Globalization

Questo spazio dei nomi è il fulcro della globalizzazione e della localizzazione in .NET Framework. La classe principale utilizzata in questo spazio dei nomi è la classe CultureInfo. Contiene informazioni specifiche delle impostazioni cultura, ad esempio il formato data/ora, i formati numerici, le informazioni di confronto e le informazioni di testo. Per ulteriori informazioni sulla classe CultureInfo, visitare il seguente sito Web MSDN:For more information about the CultureInfo class, visit the following MSDN Web site:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

Culture neutrali e culture specifiche

Una cultura neutrale è una cultura associata a una lingua, ma non a un paese/area geografica specifica. Una lingua specifica è associata sia a una lingua che a un paese/area geografica specifica.

Un esempio: "DE" (cultura neutrale) è per la lingua tedesca, ma "de-AT" (cultura specifica) è per la lingua tedesca così come è parlata in Austria. Non è possibile usare impostazioni cultura neutrali per la formattazione.

Conoscenza del thread corrente e della cultura delle classi .NET Framework

Tutte le classi e i metodi nella libreria .NET Framework in cui ci si aspetterebbe che l'output sia dipendente dalle impostazioni cultura hanno due comportamenti predefiniti:

  • Ci permettono di specificare il codice delle impostazioni cultura durante la fornitura degli argomenti in modo che l'output si basa sulle impostazioni cultura specificate. Questa opzione è facoltativa.

  • Se questa operazione non viene eseguita (in genere lo è), le classi sono abbastanza intelligenti da mantenere un controllo sulla proprietà Thread.CurrentThread.CurrentCulture e funzionare in base a questa impostazione.

È possibile modificare il valore di questa proprietà con codice simile al seguente:

    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci

In questo esempio di codice "de" rappresenta la lingua tedesca e "AT" rappresenta l'Austria. Quindi, in questa istanza, dateTime.Now(). Il metodo ToString restituisce la data e l'ora in un formato corrispondente al modo in cui la data e l'ora sono espresse nella lingua tedesca in Austria.

Il framework garantisce (come segue) che la proprietà CurrentCulture sia sempre inizializzata:

  1. Qualsiasi elemento sia impostato su a livello di programmazione.

  2. Se non viene impostata in modo esplicito dal programmatore, la proprietà viene selezionata dai file di configurazione (<la globalizzazione> tag).

  3. Se la proprietà manca, sono le impostazioni cultura in cui è in esecuzione il server Web. Si tratta in genere della cultura neutrale che corrisponde alla lingua del sistema operativo.

File di risorse

Tutti i file resx, .resource e i file che hanno l'attributo Build Action impostato su Embedded Resource aggiunti a un progetto di ASP.NET in Visual Studio .NET, vengono compilati e incorporati automaticamente nell'assembly dell'applicazione come parte del manifesto. Questa operazione può essere eseguita anche manualmente utilizzando l'utilità Generatore di file di risorse (RESGEN) tramite un prompt dei comandi di Visual Studio .NET. Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxSi tratta di un concetto generale applicabile ogni volta che è necessario gestire le risorse dell'applicazione non correlate alla globalizzazione. Tuttavia, quando stiamo implementando la globalizzazione, dovremmo utilizzare assembly satellite.

Assiemi satellitari

Gli assembly satellite possono essere utilizzati in un progetto ASP.NET quando si verificano le condizioni seguenti:

  1. Tutti gli elementi dell'interfaccia utente in tutti i file aspx devono essere dotati di id e attributi runat=server.

  2. Creiamo file resx separati. Ognuno deve corrispondere a ogni cultura che vogliamo che la nostra applicazione supporti.

  3. Dobbiamo decidere un nome comune per tutti questi file, ad esempio. "Stringhe".

  4. I file resx separati vengono denominati con la seguente convenzione di denominazione commonfirstname. languagecode-regioncoderesx, ad esempio Strings.de-AT.resx, Strings.en-GB.resx .

  5. Nel caso predefinito dovrebbe essere visualizzato il file
    di risorsecommonfirstname.resx (Strings.resx) con tutte le stringhe desiderate.

  6. Scrivere codice per rilevare le impostazioni cultura dell'utente e impostare la proprietà Thread.CurrentThread.CurrentUICulture in modo che corrisponda ad essa.

  7. Scrivere codice per caricare le risorse usando la classe ResourceManager.

  8. Scrivere codice per estrarre stringhe dall'oggetto caricato e assegnarle agli elementi dell'interfaccia utente.

Dopo aver eseguito questi passaggi, Visual Studio.NET compilerà Strings.resx e lo incorpora nell'assembly dell'applicazione (MyGlobalizationTestProjectName.dll). Tuttavia, per tutti gli altri file resx, verrà generato file DLL separati che non hanno codice eseguibile, ma solo i dati delle risorse. Questi in realtà sono chiamati assembly satellitari. Inoltre, Visual Studio .NET inserisce questi elementi in una struttura di cartelle simile alla seguente:MyGlobalizationTestProjectName
|------- bin
|------en-US

MyGlobalizationTestProjectName.resources.dll |------ja JP

MyGlobalizationTestProjectName.resources.dll |------de-AT
MyGlobalizationTestProjectName.resources.dll

Differenza tra CurrentCulture e CurrentUICulture

Mentre i metodi delle classi nello spazio dei nomi System.Globalization dipendono dalla proprietà Thread.CurrentThread.CurrentCulture per fornire l'output, la classe ResourceManager che carica l'assembly di risorse dipende dalla proprietà Thread.CurrentThread.CurrentUICulture per caricare l'assembly satellite appropriato. Di seguito è riportato un esempio di codice C#:

using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  

 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

Ordine in cui ASP.NET seleziona assiemi satellitari:

Dopo aver impostato CurrentUICulture del thread, ASP.NET seleziona automaticamente le risorse corrispondenti nell'ordine seguente:

  • Se un assieme satellite viene trovato con impostazioni cultura corrispondenti, vengono utilizzate le risorse di tale assembly.

  • Se un assembly satellite viene trovato con impostazioni cultura neutre che corrispondono a CurrentUICulture, vengono usate le risorse di tale assembly.

  • Se non viene trovata una corrispondenza per CurrentUICulture, vengono usate le risorse di fallback archiviate nell'assembly eseguibile.

Nota: si basa sul processo di fallback delle risorse più generale. Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

Creazione manuale di assembly satellite:

Questo utilizzo di assembly satellite è dove Visual Studio .NET crea gli assembly stessi. Per impostazione predefinita, tuttavia, Visual Studio .NET non assegna un nome sicuro agli assembly satellite. Se si desidera modificare queste opzioni, è necessario creare assembly satellite manualmente. Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx .

Cosa c'è di ASP.NET 2.0 sul fronte della globalizzazione?

L'utilizzo diffuso di ASP.NET e i tipi di problemi che si vedrebbero rispetto alle caratteristiche della globalizzazione in ASP.NET 2.0 sono ancora a distanza. Tuttavia, sarebbe bene dare un'occhiata breve alla direzione in cui la metodologia della globalizzazione si dirige verso le applicazioni Web.

Il supporto della globalizzazione in ASP.NET 2.0 ha subito un cambiamento radicale e agli sviluppatori Web è stata data la possibilità di rendere la localizzazione delle applicazioni Web facile come per le applicazioni basate su Windows. Di seguito è riportato un elenco di caratteristiche che costituiscono il fondamento della metodologia della globalizzazione in ASP.NET 2.0:

Risorse fortemente tipizzate Alla base della versione .NET Framework 2.0 c'è il supporto per le risorse fortemente tipizzate che forniscono agli sviluppatori Intellisense e semplifica il codice necessario per accedere alle risorse in fase di esecuzione.

Editor risorse gestite Visual Studio .NET 2.0 include un nuovo editor di risorse con un supporto migliore per la creazione e la gestione di voci di risorse, tra cui stringhe, immagini, file esterni e altri tipi complessi.

La generazione di risorse per Web Forms Windows Forms sviluppatori hanno già usufruito dei vantaggi dell'internazionalizzazione automatica. Visual Studio .NET 2005 supporta ora un'internazionalizzazione rapida generando automaticamente risorse per Web Forms, controlli utente e pagine master.

Supporto di runtime migliorato ResourceManager istanze vengono gestite dal runtime e prontamente accessibili al codice server attraverso interfacce di programmazione più accessibili.

Espressioni di localizzazione Le espressioni dichiarativa moderne per le pagine Web supportano il mapping delle voci delle risorse per controllare le proprietà, le proprietà HTML o le aree di contenuto statico. Queste espressioni sono estensibili e offrono altri modi per controllare il processo di collegamento di contenuto localizzato all'output HTML.

Selezione automatica delle impostazioni cultura La gestione della selezione delle impostazioni cultura per ogni richiesta Web può essere collegata automaticamente alle preferenze del browser.

Modello del provider di risorse Un nuovo modello di provider di risorse consente agli sviluppatori di ospitare risorse in origini dati alternative, ad esempio file flat e tabelle di database, mentre il modello di programmazione per l'accesso a tali risorse rimane coerente.

Per ulteriori informazioni sulla metodologia della globalizzazione in ASP.NET 2.0, visitare il seguente sito Web MSDN:For more information about globalization methodology in ASP.NET 2.0, visit the following MSDN Web site:

ASP.NET 2.0 Caratteristiche di localizzazione: un approccio fresco alla localizzazione delle applicazioni
Webhttp://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Conclusioni

Questo è tutto per il momento sui problemi della globalizzazione in ASP e ASP.NET. Spero che questo articolo aiuterà alcuni clienti a risolvere i problemi della globalizzazione in ASP e ASP.NET prima di scegliere di contattare supporto tecnico Microsoft. Finirò con il pensiero seguente:

"Ovunque e ogni volta che si sviluppa, pensa ai milioni di persone che puoi potenziare in tutto il mondo. Rendi le tue soluzioni pronte per il mondo! Gli strumenti e le tecnologie Microsoft semplificano l'internazionalizzazione".

Ci riprenderemo il prossimo mese con un altro argomento interessante.

Grazie per il tempo dedicato.

Per ulteriori informazioni sui problemi relativi alla globalizzazione in ASP e ASP.NET, vedere i seguenti siti Web Microsoft:

SetLocale e GetLocale in vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Http://msdn.microsoft.com/en-us/goglobal/bb688110 passo-passo
della globalizzazione

Globale: localizzazione di App Web dinamici con IIS 5.0 e SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Globale: Progettazione di un sito Web basato su ASP per supportare la globalizzazione
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 come rilevare una lingua client in una pagina Pagine di Active Server in IIS
http://support.microsoft.com/?id=315616

Grafico con ID impostazioni locali (LCID)
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Spazio dei nomi
System.Globalizationhttp://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Risorse e localizzazione Utilizzando .NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Risorse in ASP.NET Applicazioni
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

ASP.NET <elemento
di configurazione> della globalizzazionehttp://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Linee guida di progettazione e implementazione per client Web - Globalizzazione e localizzazione
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Sito ufficiale Microsoft - Portale
di sviluppo e elaborazione globalehttp://msdn.microsoft.com/en-us/goglobal/bb688096

Sviluppo di applicazioni
pronte per il mondohttp://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Architettura della globalizzazione perhttp://msdn2.microsoft.com/en-us/library/aa478974.aspx ASP.NET

Enterprise Localization Toolkit - per lo sviluppo di applicazioni
ASP.NET Microsoft localizzatehttp://msdn2.microsoft.com/en-us/library/aa479334.aspx

Http://www.microsoft.com/typography/default.mspx di tipografia
Microsoft

Glossario

ANSI sta per American National Standards Institute. In questo contesto rappresenta una tabella codici specifica per un set di lingue/caratteri specifico. Più spesso si riferisce alla tabella codici inglese (windows-1252).

SCHEMA DI codifica ASCII A 1 byte (o 7 bit). Solo i caratteri nell'intervallo da 0 a 127 sono standardizzati. L'intervallo 128-255 è estensioni ad ASCII e non fa parte dello standard. Un esempio è la differenza tra l'intervallo superiore del grafico OEM ASCII e il grafico VB ASCII.

Impostazione CharSet usata principalmente per Internet Explorer e browser che indica al browser come interpretare i dati dei caratteri. Esempio: Response.charSet = "iso-8859-1".

Codepage Tabella di conversione che specifica la modalità di codifica dei caratteri (in genere usata per i server).

La globalizzazione è un processo di progettazione e creazione di un'applicazione in modo da soddisfare i requisiti specifici di una cultura, di una regione o di esigenze nazionali/regionali e linguistiche. In altre parole, la progettazione di un'applicazione in modo che possa essere localizzata in seguito è la globalizzazione.

Impostazioni locali/cultura Formati/preferenze specifici della lingua e dell'area geografica, inclusi i formati di data e calendario, i formati ora, i formati valuta, l'ordinamento, l'ordinamento e il confronto delle stringhe, i formati degli indirizzi, i formati dei numeri di telefono, i formati carta, l'unità di misura, la direzione di scrittura e così via.

LocaleID (LCID) Valore DWORD che specifica l'identificatore della lingua e l'ID di ordinamento. Può essere usato per specificare i formati specifici dell'area geografica per data/ora e così via, che devono essere formattati in base a.

Localizzabilità Capacità di un'applicazione di presentare il contenuto per la lingua/le impostazioni locali richieste.

Localizzazione La localizzazione è il processo di traduzione di un'interfaccia utente in lingue e/o impostazioni locali specifiche.

Set di caratteri multibyte Set di caratteri in cui i caratteri sono composti da due o più byte, ad esempio il giapponese. Anche UTF-8 rientra in questa categoria. Unicode tecnicamente è in questa categoria, ma in Windows ha una propria categoria.

Unicode Uno schema di codifica a 2 byte. Windows usa Unicode internamente. Qualsiasi API specifica per Unicode è costituita da una "W" alla fine del nome della funzione. Noto anche come wide char; non possono essere usati direttamente dalle applicazioni Web.

UTF-8 Codifica di caratteri in cui un carattere può essere rappresentato da 1-6 byte. In Windows l'intervallo è di 1-3 byte. Non supportato in NT4 per le applicazioni Web.



Wide character set Alias per Unicode. Noto anche come DBCS (set di caratteri a byte doppio), UCS-2, UTF-16.

Come sempre, è possibile inviare idee su argomenti che si desidera vengano affrontati nelle colonne future o nella Knowledge Base usando il modulo Chiedi.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×