Problemas de globalização no ASP e ASP.NET

Coluna de voz de suporte do ASP.NET

Para personalizar esta coluna às suas necessidades, Convidamo-lo-para apresentar as suas ideias sobre tópicos de interesse e os problemas que pretende ver no futuro resolvidos colunas de voz de suporte e artigos da Base de dados de conhecimento. Pode submeter as ideias e comentários utilizando o formulário Pedir para-lo . Existe também uma hiperligação para o formulário na parte inferior desta coluna.

Introdução

Bem-vindo! Este é o Khare de Sukesh com a equipa de suporte de programação do Microsoft ASP.NET. Esta é a primeira vez que tenha criado uma coluna de voz de suporte. Espero mais colunas de criação de conteúdos nos meses para a frente.

Para a coluna deste mês, vou debater questões de globalização no Active Server Pages (ASP) e ASP.NET, os problemas que vamos enfrenta ao ASP, como elementos foram alterados no ASP.NET 1x e o que está disponível com o ASP.NET 2.0 na parte da frente de globalização.

Nota Se se deparar com um termo que não compreenda, consulte a secção de glossário no fim desta coluna.

Problemas de globalização no ASP

Antes de ASP.NET, não ocorreu nenhum suporte estruturado para o desenvolvimento de aplicações para utilizadores globais. Durante o desenvolvimento rápido de ASP, os programadores como eu encontrado apenas dispersos suporte para globalização em sistemas operativos, browsers, ASPs e sistemas back-end. No entanto, estamos raramente observada qualquer conectividade automática através destas aplicações. Felizmente, compreendemos conceitos, tais como conjuntos de caracteres, páginas de código, idiomas do browser e tipos de letra que iremos poderia tirar partido para o desenvolvimento de aplicações para utilizadores globais.

Seria demasiado difícil separar em categorias todas a globalização problemas que já viu de nós no ASP.NET. Em vez disso, vai indico uma série de conceitos que se relacionem com uma variedade de resolver esses problemas.

Conjuntos de carácter e páginas de código

Todos sabemos que os caracteres no nosso ecrã de computador são apenas uma série de bytes. A série de bytes pode ser criada e interpretada de qualquer número de formas. Se a interpretação utiliza uma codificação diferente da que foi criada a matriz de bytes com codificação, a interpretação será apresentado como lixo. Conjuntos de caracteres (charsets) estão a codificar os formatos que são normalmente utilizados por browsers. A propriedade de página de códigos , que é o mais aplicável para conversões do lado do servidor, é apenas uma tabela de conversão que especifica a forma como os caracteres são codificados.

Browsers codificam os dados de publicação do formulário em conformidade com o conjunto de caracteres actual. Se o conjunto de caracteres actual é "windows 1256,", em seguida, a transmissão de bytes para o servidor também é codificada como "windows 1256."

Quando está a ser interpretado no ASP, as colecções de formulário e Querystring não estão incorporadas até que são referenciados no código. Quando estão a ser criados, os dados de cadeia são transformados Unicode em conformidade com a página de códigos actual. (Por predefinição, ASP e ASP.NET processam conteúdo utilizando o formato Unicode). É muito importante que defina a página de códigos correcta antes de referenciar as colecções; caso contrário, a representação Unicode na memória não está correcta.

Para definir uma página de códigos, utilize Session. CodePage ou Response.Codepage. O Response.Codepage só está disponível nas versões do Microsoft Internet Information Services (IIS) 5.1 ou posterior. Para obter informações sobre os valores inteiros (que corresponde ao conjunto de caracteres) que vamos definir estas propriedades, visite o seguinte Web site da Microsoft:

Reconhecimento do conjunto de caracteres
http://msdn2.microsoft.com/en-us/library/Aa752010.aspxPor exemplo, para definir a página de códigos para o idioma árabe, utilize o seguinte código:

Session.Codepage = 1256

Response.Codepage só irá afectar a resposta actual. No entanto, Session. CodePage irá afectar todas as respostas efectuadas pelo utilizador actual. Quando a página de códigos é definida através da utilização de uma destas propriedades e as colecções de formulário e Querystring são incorporadas, esta alteração da página de códigos actual faz com que o método Response. Write transformar o Unicode na memória para a página de códigos actual. Para mais informações sobre este tópico, visite o seguinte Web site da MSDN:

Definir a página de código para a cadeia de conversões (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxA linha de resultados quando trata de problemas relacionados com charsets e páginas de código é esse conjunto de caracteres do cliente e servidor codepage deve corresponder.

Aceitar idiomas

Se um programador ASP pretende saber os idiomas que um utilizador tiver definido no seu browser, o programador pode utilizar a variável de Request. ServerVariables ("HTTP_ACCEPT_LANGUAGE") para localizar a lista de idiomas que o utilizador gostaria de ler a resposta, (por exemplo, inglês, alemão ou indiano) e a ordem de preferência que o utilizador gostaria de ver estes idiomas na. No ASP.NET, informações semelhantes está presentes na propriedade Request.UserLanguages como uma matriz.
Para mais informações sobre como utilizar estas informações em código ASP, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

229690 como definir o ID de região de ASP por definições de idioma do browser

Apresentar caracteres de bytes múltiplos conjuntos no Internet Explorer

O único formato de codificação que pode mostrar um conjunto de caracteres de múltiplos bytes é Unicode (UTF-8). Com UTF-8, é possível apresentar Cirílico, indianas e japonês todas na mesma página. Se podemos não utilizar o UTF-8, estamos apenas pode mostrar um destes idiomas ao mesmo tempo. Para definir o conjunto de caracteres do browser, utilize a propriedade Response. Charset .

Caracteres de múltiplos bytes estáticos numa página

Para visualizar caracteres de múltiplos bytes armazenados directamente na página, primeiro vamos deve guardar a página com codificação específica. UTF-8 será melhor, mas funcionará bem como uma página de códigos específica (disponível para a página de códigos dos caracteres).

Guardar um ficheiro ASP utilizando o Microsoft Visual InterDev não o ajuda aqui, uma vez que o Visual InterDev só pode guardar no inglês do ANSI ou Unicode. Qualquer página ASP guardada como Unicode não é suportada pelo ASP.

No Microsoft Visual Studio .NET, pode guardar um ficheiro em qualquer codificação. Existem duas formas de efectuar este procedimento. A predefinição é forma para guardar o ficheiro utilizando a página de códigos actual para o utilizador. Uma forma adicional de guardar um ficheiro com uma codificação é o seguinte:
No menu ficheiro , clique em Guardar como. Do
Caixa de diálogo Guardar ficheiro como , clique na seta pendente do
Botão Guardar . Quando clica na seta, as opções são
Guardar e Guardar com a codificação. Quando clica em
Guardar com codificação, a caixa de diálogo Opções avançadas de guardar aparece onde pode seleccionar o tipo de codificação que pretende aplicar a partir de uma lista de páginas de código que estão instaladas no computador.


Nota Este procedimento altera a codificação para guardar operação, mas destina-se a apenas uma vez. A próxima guardar será definida de novo para a predefinição.

Para alterar a página de códigos predefinida, clique em Opções avançadas de guardar do
Menu ficheiro . Na caixa de diálogo Opções avançadas de guardar , pode definir a codificação para guardar operações para a página de códigos da sua escolha.

Estes métodos estão relacionados com a forma como o ficheiro é guardado no disco. No entanto, para controlar a saída de ASP, tal como já discutida, é necessário definir o Session. CodePage e as propriedades de Response. Charset . Com o IIS 5.1 e versões posteriores, a Microsoft também pode utilizar a propriedade Response.CodePage .

Predefinição de página de códigos no servidor

A região predefinida e a página de códigos predefinida para a página dependem as definições de registo para o. Utilizador predefinido. A Microsoft pode encontrar a chave internacional no ramo de registo HKEY_USERS \. DEFAULT\Control Panel\International. Vamos também pode alterar o comportamento da região que é escolhida pelo IIS. Para mais informações, consulte a secção "IIS 5.0" no seguinte artigo da Knowledge Base:

306044 o formato de comportamento de data/hora é diferente quando acedida a partir de Active Server Pages

Se o utilizador com sessão iniciada tem a mesma região definido como a chave acima ou a predefinição do sistema, a definição de utilizador tem precedência.

Exemplo: A região predefinida tem a data de conjunto de formatos como 11.1.2004, enquanto o utilizador com sessão iniciada (com o mesmo conjunto de região) tem o formato de data como 1/11/2004. A definição de 1/11/2004 terão efeito para ASP.

(Para o ASP.NET, isto pode variar. Em algumas instalações, o utilizador do ASPNET terá seu próprio perfil, que mostrará em HKEY_USERS quando este é carregado. Noutros, irá utilizar o. Perfil predefinido. Podemos também utilizar o atributo de página de código na declaração de < % @ % >. Isto deve ser utilizado quando o ficheiro é guardado com uma codificação diferente, em seguida, a predefinição, tal como a página de códigos 932 (japonês)).

Problemas de página de códigos em vez de problemas de conversão de tipo de letra: qual é?

Por vezes, poderá ver um carácter de ponto de interrogação (?) ou uma caixa em que um carácter deveriam ser apresentadas.

Problemas de conversão de página de códigos

Quando um carácter é substituído por um carácter de ponto de interrogação (?), esta é uma indicação de que ocorreu um problema de conversão de página de códigos. O ponto de interrogação (?) é um carácter predefinido para a conversão de página de códigos e basicamente significa que o sistema operativo não sabe como tratar o valor do carácter e convertê-lo. Substitui o valor do carácter com um ponto de interrogação (?). Isto pode significar que o carácter tiver um valor inválido para a página de códigos ou que a página de códigos que é necessário para a conversão não está instalada.

Problemas de conversão de tipo de letra

Quando um carácter é substituído por uma caixa, esta é uma indicação de que ocorreu um problema de conversão de tipo de letra. Isto ocorre no lado do cliente quando o cliente não tem o tipo de letra correcto instalado para apresentar correctamente este carácter. Por exemplo, quando um carácter é o conjunto de caracteres japonês e o cliente não tem tipos de letra japonês instalados, o carácter japonês é apresentado como uma caixa.

Em seguida, vai a falar como itens alterados no ASP.NET 1. x e como essas alterações afectam os problemas de globalização no contexto do ASP.NET.

Problemas de globalização no ASP.NET 1. x:

Com o ASP.NET, três grandes vantagens foram introduzidas por:

  • A tag < globalização > no ficheiro Web. config
    A tag < globalização > leva-na afastar os conceitos incoerentes de páginas de código e charsets e permite-na controlar a maior parte das variantes no ASP.NET.

  • O espaço de nomes de System.Globalization
    O espaço de nomes de globalização proporciona-nos com a programação potência de processamento de globalização.

  • O conceito de ficheiros de recursos foi grandemente melhorado.
    A Microsoft não lidar com ficheiros de recurso da forma que utilizámos para ASP. Agora, os ficheiros de recursos são sob a forma de ficheiros XML quando é conceber e desenvolvê-los e existam como assembla em tempo de execução.

O código de configuração de globalização:

Duas definições importantes no código são as seguintes:

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

Segue-se a outras áreas de definições possíveis:

fileEncoding

Especifica a codificação predefinida para. aspx,. asmx e. asax na análise de ficheiros. Ficheiros Unicode e UTF-8 guardados com o prefixo de marca de ordem de bytes (com assinatura) serão automaticamente reconhecidos, independentemente do valor de fileEncoding.

Cultura

Especifica o idioma predefinido para processamento de pedidos Web recebidos (aplicáveis aos métodos de classes do espaço de nomes System.Globalization).

uiCulture

Especifica o idioma predefinido para processamento de pesquisas de recursos de dependentes da região (assemblagens satélite).

Para mais informações sobre cadeias de idioma (valores de cultura e uiculture), visite o seguinte Web site da Microsoft:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxEstas definições são aplicadas pelo ASP.NET após a resposta estiver concluída e antes do pedido é entregue à sua aplicação. Para responseEncoding, a memória intermédia que é criada para armazenar a saída é definida para esta codificação. Tudo o que vai para esta memória intermédia será codificado em conformidade com a definição tal como é inserido na memória intermédia.

Para requestEncoding, o runtime vai ler a solicitação e interpretá-lo em conformidade com a definição nesta secção. Esta é uma definição que pode causar problemas, no entanto. A tabela abaixo mostra o esquema de bits de uma sequência de bytes de UTF-8 válido.

Se o valor do carácter cair o bit de 7 de ASCII padrão, o valor do byte não será modificado. Se o valor for superior 127, tem de seguir as regras em baixo. O conjunto de bits à esquerda mostra o número de caracteres na sequência. Cada byte após o primeiro tem de começar com o primeiro bit definido como 1.

Esquema de bytes de UTF-8:

Bytes

bits

representação

1

7.

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

Esta é a origem do problema. Se o browser codifica o pedido de acordo com uma codificação de byte único (por exemplo, iso-8859-1), os valores acima 127 não será válidos de acordo com o esquema acima. Quando estes são lidos na memória intermédia do UTF-8, os caracteres inválidos simplesmente são ignorados da produção.

Alterações de codificação de tempo de execução

No evento Application_BeginRequest , vamos pode modificar o valor da requestEncoding e que entrem em vigor antes do pedido é processado. Para a resposta, o evento Page_PreRender é a última hipótese para modificar a codificação da produção. Também nota que Response. Write colocará caracteres para esta memória intermédia, logo que chamamos, por isso certifique-se para que o conjunto correcto de codificação antes de utilizar Response. Write.

São de dados originais não Unicode: como ainda tornar o Internet Explorer interpretar charsets de múltiplos bytes?

Também podemos tornar ASP.NET se comportam como ASP se é necessário. Para tornar este ocorrer, é necessário definir o responseEncoding e requestEncoding para windows-1252 (um mais completa codificação de iso-8859-1) e utilizar a propriedade Response. Charset para apresentar o texto correctamente. Isto funciona porque o windows-1252 é um esquema de codificação de byte único e não modifica qualquer bytes que são adicionados para a memória intermédia. Deste modo, os caracteres de byte duplo são enviados como uma série de bytes único. Em seguida, a Microsoft pode alertar o Internet Explorer como interpretar os bytes, utilizando a propriedade Response. Charset . Este cenário poderá ser necessário se os dados originais não estão armazenados como Unicode ou UTF-8, por exemplo, um valor de retorno de um objecto COM, ou se os dados são armazenados no Microsoft SQL Server de um campo de N não (por exemplo, varchar).

Problemas de globalização do SQL Server e o ASP.NET

Introdução de dados Unicode SQL Server

É a melhor forma de armazenar dados no SQL Server utilizar Unicode. Sempre que utilizamos INSERT, UPDATE, etc., se ainda existe uma possibilidade, pelo menos, de dados Unicode, é necessário adicionar um N antes do valor. Isto indica que a base de dados que o valor é Unicode. Um bom exemplo é os objectos ADO. Se efectuar este procedimento automaticamente utilizamos o objeto Recordset para adicionar novos registos.

Segue-se um exemplo:

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)"

Data/hora de entrada para o SQL Server

Normalmente, temos os conhecimentos sobre o idioma e região de data/hora a ser interpretada na nossa aplicação do ASP.NET. No entanto, ao empurrar e puxar os dados de data/hora para e de origens externas, vamos corre o risco de misinterpreting os formatos de data/hora. Isto acontece porque a Microsoft não garante sempre a cultura e a região de origem externa para ser a mesma que a nossa aplicação. No SQL Server isto possam ser resolvido utilizando a ' actual idioma' atributo em connectionstring da ligação ser estabelecida na base de dados de SQL. Podemos fornecer a mesma definição de idioma em connectionstring como é o idioma na nossa aplicação. Este procedimento protege-do risco de má interpretação, porque sempre o SQL Server aceita e envia os dados de data/hora de acordo com a definição acima.

Espaço de nomes de System.Globalization

Este espaço de nomes é o núcleo de globalização e localização no .NET Framework. A classe principal utilizada neste espaço de nomes é a classe CultureInfo . Contém informações específicas da cultura, tais como o formato de data/hora, formatos numéricos, informações de comparação e informações de texto. Para mais informações sobre a classe CultureInfo , visite o seguinte Web site da MSDN:

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

Culturas neutras vs. culturas específicas

Um idioma neutro é um idioma que está associado um idioma, mas não um país ou região específico. Um idioma específico está associado tanto com um idioma e um país específico.

Um exemplo: "DE" (idioma neutro) for para o idioma alemão, mas "de-AT" (específicas de cultura) é para o idioma alemão, que é dito na Áustria. Não podem ser utilizadas culturas neutras para formatação.

Sensibilização thread e cultura actual de classes do .NET Framework

Todas as classes e métodos na biblioteca do .NET Framework onde vamos seria de esperar a saída para ser dependentes da cultura tem dois comportamentos incorporados:

  • Estas permitem-na especificar o código de idioma ao fornecimento os argumentos, de modo a que o resultado baseia-se o idioma especificado. Isto é opcional.

  • Se este está em falta (normalmente é), as classes são suficientemente inteligentes manter a propriedade de Thread.CurrentThread.CurrentCulture e o trabalho de acordo com que um controlo.

É possível modificar o valor desta propriedade com o código que é semelhante à seguinte:

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

Neste exemplo de código, "de" representa o idioma alemão e "AT" representa a Áustria. Assim, neste caso, o DateTime.Now(). ToString método iria devolver a data e hora num formato correspondente à forma como a data e hora são expressas em língua alemã na Áustria.

Âmbito (como se segue) garante que a propriedade CurrentCulture é inicializada sempre:

  1. Tudo o que é definida programaticamente.

  2. No caso de não é explicitamente definido ao programador, a propriedade é recolhida a partir dos ficheiros de configuração (tag < globalização >).

  3. Se a propriedade estiver em falta, é o idioma no qual o servidor Web está a ser executado. Normalmente, trata-se ao idioma neutro que corresponde ao idioma do sistema operativo.

Ficheiros de recursos

Todos os. resx, ficheiros de .resource e ficheiros que têm o atributo de Build Action definido como Recurso incorporados que são adicionados a um projecto ASP.NET no Visual Studio .NET, são automaticamente compilados e incorporados dentro de uma assemblagem de aplicações como parte do manifesto. Isto pode mesmo ser efectuado manualmente utilizando o utilitário de gerador de ficheiros de recurso (RESGEN) através de uma linha de comandos do Visual Studio .NET. Para mais informações, visite o seguinte Web site da MSDN:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxEste é um conceito geral que é aplicável sempre que é necessário gerir recursos de aplicações que são independentes a globalização. No entanto, quando estamos a implementar globalização, deverá utilizamos assemblagens satélite.

Assemblagens satélite

Assemblagens satélite podem ser utilizadas num projecto do ASP.NET quando efectuar-se que as seguintes condições são verdadeiras:

  1. Todos os elementos de interface de utilizador em todos os ficheiros aspx necessitam de estar equipado com id e runat = server-atributos.

  2. Vamos criar ficheiros separados. resx. Cada um deles deve corresponder a cada cultura que pretendemos nossa aplicação para suportar.

  3. A Microsoft tem de decidir um nome comum para todos estes ficheiros para o ex. 'Cadeias'.

  4. Nome os ficheiros. resx separado com a seguinte nomenclatura Convenção commonfirstname. Código_Idioma-regioncode. resx (por exemplo: Strings.de-AT.resx, Strings.en-GB.resx).

  5. Deve de ter o ficheiro de recursos
    commonfirstname. resx (Strings.resx) que tem todas as cadeias pretendemos apresentadas no caso predefinido.

  6. Escreva código para detectar a cultura do utilizador e defina a propriedade Thread.CurrentThread.CurrentUICulture para corresponder à mesma.

  7. Escreva código para carregar os recursos utilizando a classe ResourceManager .

  8. Escrever código para extrair cadeias do objecto carregado e atribui-los aos elementos da interface de utilizador.

Quando tiver executado estes passos, o Visual Studio.NET compilação Strings.resx e incorporá-lo a assemblagem de aplicação (MyGlobalizationTestProjectName.dll). No entanto, para todos os outros ficheiros. resx, irá gerar ficheiros dll separado que não tem código executável, mas apenas os dados de recursos. Estes efectivamente, são chamados assemblagens satélite. Além disso, Visual Studio .NET coloca estes estrutura de pastas semelhante à seguinte:MyGlobalizationTestProjectName |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

Diferença entre CurrentCulture e CurrentUICulture

Enquanto os métodos de classes no espaço de nomes System.Globalization dependem da propriedade Thread.CurrentThread.CurrentCulture para dar a sua produção, a classe de ResourceManager que carrega o conjunto de recursos depende da propriedade Thread.CurrentThread.CurrentUICulture para carregar a assemblagem satélite correcto. Segue-se um exemplo de código do 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");
}

}

Ordem em que o ASP.NET selecciona assemblagens satélite:

Quando tiver definido o thread CurrentUICulture, o ASP.NET selecciona automaticamente os recursos que correspondam, pela seguinte ordem:

  • Se for encontrada uma assemblagem satélite com uma cultura correspondente, são utilizados os recursos essa assemblagem.

  • Se for encontrada uma assemblagem satélite com um idioma neutro que corresponde a CurrentUICulture, são utilizados recursos essa assemblagem.

  • Se não for encontrada uma correspondência para o CurrentUICulture, são utilizados os recursos de recuperação armazenados na assemblagem executável.

Nota Isto baseia-se no processo de reversão mais geral do recurso. Para mais informações, visite o seguinte Web site da MSDN:

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

Manualmente, criar assemblagens satélite:

Esta utilização das assemblagens satélite é onde Visual Studio .NET cria as assemblagens de si próprio. Visual Studio .NET não assemblagens satélite de nome seguro por predefinição, no entanto. Se pretender alterar estas opções, terá de criar assemblagens satélite manualmente. Para mais informações, visite o seguinte Web site da MSDN:

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

O que está disponível com ASP.NET 2.0 na parte da frente de globalização?

A utilização generalizada do ASP.NET e os tipos de problemas que vemos relativamente a funcionalidades de globalização no ASP.NET 2.0 são ainda algumas distância para a frente. No entanto, seria bom lançar um breve olhar que direcção a metodologia de globalização for liderada por aplicações web.

Suporte de globalização no ASP.NET 2.0 sofreu uma alteração radical e os programadores Web tenham tido a possibilidade de tornar a localização das aplicações Web tão fácil como é para aplicações baseadas no Windows. Segue-se uma lista de funcionalidades que estão a Fundação da metodologia de globalização no ASP.NET 2.0:

Com tipos de recursos O principal do .NET Framework 2.0 release é o suporte para recursos de com tipos de mensagens em fila que fornecem os programadores com o Intellisense e simplifica a necessária para aceder a recursos em tempo de execução de código.

Gerido pelo Editor de recursos Visual Studio .NET 2.0 inclui um novo editor de recursos com um melhor suporte para criar e gerir os movimentos de recursos, incluindo cadeias, imagens, ficheiros externos e outros tipos complexos.

Geração de recursos nos formulários Web Os programadores de Windows Forms já beneficiaram as vantagens de internacionalização automática. Visual Studio .NET 2005 suporta agora internacionalização rápida gerando automaticamente recursos para formulários da Web, controlos de utilizador e as páginas principais.

Tempo de execução suporte melhorado Instâncias de ResourceManager são geridos em tempo de execução e facilmente acessíveis ao código de servidor através de interfaces de programação mais acessíveis.

Expressões de localização As expressões declarativas modernas para páginas Web suportam movimentos de recursos de mapeamento para controlar as propriedades, propriedades HTML ou regiões de conteúdo estático. Estas expressões também são expansíveis, fornecer formas adicionais para controlar o processo de anexação conteúdo localizado a saída em HTML.

Selecção de idioma automática Gerir a selecção de cultura para cada pedido Web pode ser automaticamente ligado às preferências de browser.

Modelo do fornecedor de recursos Um novo modelo de fornecedor de recursos permite aos programadores a recursos de anfitrião em origens de dados alternativos, tais como ficheiros simples e tabelas de base de dados, enquanto o modelo de programação para aceder a esses recursos permanece consistente.

Para mais informações sobre a metodologia de globalização no ASP.NET 2.0, visite o seguinte Web site da MSDN:

Funcionalidades do ASP.NET 2.0 localização: Uma abordagem fresca para localizar aplicações Web
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Conclusão

É tudo por agora sobre problemas de globalização no ASP e ASP.NET. Espero que esta artigo irá ajudá-alguns clientes resolver os problemas de globalização no ASP e ASP.NET antes que optarem pelo sistema para contactar a Microsoft Support. Posso irá terminar com o seguinte pensava:

"Onde e quando estiver a desenvolver, pense milhões de pessoas que podem dar poder em todo o mundo. Tornar as soluções preparado para o mundo! Tecnologias e ferramentas do Microsoft facilitam a internacionalização."

A Microsoft irá acompanhar novamente próximo mês com outro tópico interessante.

Obrigado pelo seu tempo.

Para mais informações sobre problemas de globalização no ASP e ASP.NET, consulte os seguintes Web sites da Microsoft:

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

Globalização passo a passo
http://msdn.microsoft.com/en-us/goglobal/bb688110

Vá Global: Localizar aplicações de Web dinâmico com o IIS 5.0 e o SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Vá Global: Estruturar o Web Site baseado no ASP para suportar a globalização
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 como detectar um idioma do cliente num servidor activo páginas página no IIS
http://support.microsoft.com/?id=315616

Gráfico ID(LCID) de região
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Espaço de nomes de System.Globalization
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Recursos e a localização utilizando o .NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Recursos de aplicações do ASP.NET
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

Elemento de configuração do ASP.NET < globalização >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Estrutura e directrizes de implementação para os clientes da Web - globalização e localização
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Oficial site da Microsoft – Global Development and Computing Portal
http://msdn.microsoft.com/en-us/goglobal/bb688096

Desenvolvimento de aplicações de preparado para o mundo
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Arquitectura de globalização para ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx

Toolkit de localização da empresa - para o desenvolvimento de aplicações localizadas do Microsoft ASP.NET
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Tipografia da Microsoft
http://www.microsoft.com/typography/default.mspx

839861 A System.Resources.MissingManifestResourceException excepção ocorre quando tenta aceder a um recurso localizado

Glossário

ANSI Significa American National Standards Institute. Neste contexto, representa uma página de códigos específica para um conjunto de idioma especificidade. Refere-se com mais frequência para a página de códigos em inglês (windows-1252).

ASCII Um esquema de codificação 1 byte (ou de 7 bits). Apenas os caracteres no intervalo 0-127 são normalizados. O intervalo 128-255 é extensões para ASCII e não faz parte da norma. Um exemplo disto é a diferença entre o intervalo superior do gráfico ASCII de OEM e o gráfico de VB ASCII.

Conjunto de caracteres A definição utilizada principalmente para o Internet Explorer e browsers que indica ao browser como interpretar os dados de carácter. Exemplo: Response. Charset = "iso-8859-1".

Página de códigos Uma tabela de conversão que especifica como os caracteres são codificados (normalmente utilizado para servidores).

Globalização Globalização é um processo de conceber e criar uma aplicação de modo a que podem ser cumpridos os requisitos exclusivos de um idioma, região ou necessidades nacionais e linguísticas. Por outras palavras a estruturar uma aplicação de uma forma que pode ser localizado mais tarde é a globalização.

Idioma/cultura Idioma e região específica formatos/preferências incluindo, data e formatos de calendário, formatos de hora, formatos de moeda, invólucro, ordenar e comparação de cadeias, formatos de endereço, telefone formatos, tamanhos de papel, unidade de medida, por escrito a direcção, etc.

LocaleID (LCID) Um valor DWORD que especifica o identificador de idioma e o ID de ordenação. Pode ser utilizado para especificar os formatos de determinada região para ex data/hora etc devia ser formatado de acordo com.

Localizability Capacidade de uma aplicação para apresentar conteúdo para a região/idioma solicitado.

Localização A localização é o processo de conversão de uma interface de utilizador em idiomas específicos e/ou de regiões.

Conjunto de caracteres multibyte Um conjunto de caracteres no qual os caracteres são compostos de duas ou mais bytes, tal como o japonês. UTF-8-se igualmente nesta categoria. (O Unicode é tecnicamente nesta categoria, mas no Windows, tem sua própria categoria.)

Unicode Um esquema de codificação de 2 bytes. O Windows utiliza Unicode internamente. Qualquer APIs especificamente para Unicode são revelados pelo "W" no fim do nome da função. Também conhecido como carácter de largura; não pode ser utilizado directamente a partir de aplicações web.

UTF-8 Codificação de caracteres em que um carácter pode ser representado por 1-6 bytes. No Windows, o intervalo é de 1-3 bytes. Não suportado em NT4 para aplicações web.
Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

Suporte de UTF8 175392


Conjunto de caracteres de largura Um alias para Unicode. Também conhecido como DBCS (conjunto de caracteres de byte duplo), UCS-2, UTF-16.

Como sempre, sensação gratuita submeter ideias sobre os tópicos que pretende no futuro corrigida colunas ou na Knowledge Base utilizando o
Pedir para este formulário.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade da tradução?

O que afetou a sua experiência?

Comentários adicionais? (Opcional)

Obrigado pelos seus comentários!

×