Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

ASP.NET Coluna de Voz de Suporte

Para personalizar esta coluna de acordo com as suas necessidades, convidamo-lo a submeter as suas ideias sobre tópicos que lhe interessam e problemas que pretende ver abordados em futuros artigos da Base de Dados de Conhecimento e colunas de Voz de Suporte. Pode submeter as suas ideias e comentários através do formulário Pedir. Também existe uma ligação para o formulário na parte inferior desta coluna.

Introdução

Bem-vindo! Isto é Sukesh Khare com a equipa de Suporte para Programadores do Microsoft ASP.NET. Esta é a primeira vez que sou autor de uma coluna Voz de Suporte. Aguardo com expectativa a criação de mais colunas deste tipo nos próximos meses.

Para a coluna deste mês, vou abordar os problemas de globalização nas Páginas do Active Server (ASP) e ASP.NET, os problemas que enfrentamos no ASP, como as coisas mudaram no ASP.NET 1x e o que se passa com o ASP.NET 2.0 no início da globalização.

Nota Se encontrar um termo que não compreende, consulte a secção Glossário na parte inferior desta coluna.

Problemas de globalização no ASP

Antes de ASP.NET, não havia suporte estruturado para o desenvolvimento de aplicações para utilizadores globais. Durante o desenvolvimento inicial do ASP, programadores como eu só encontraram suporte disperso para globalização em sistemas operativos, browsers, ASPs e sistemas de back-end. No entanto, raramente observámos qualquer conectividade automática nestas aplicações. Felizmente, compreendemos conceitos como conjuntos de carateres, páginas de código, idiomas do browser e tipos de letra que poderíamos tirar partido para o desenvolvimento de aplicações para utilizadores globais.

Seria muito difícil separar-se em categorias de todas as questões de globalização que aqueles de nós ASP.NET viram. Em vez disso, vou listar uma série de conceitos relacionados com uma variedade desses problemas.

Conjuntos de carateres e páginas de código

Todos sabemos que os carateres no ecrã do nosso computador são apenas uma série de bytes. A série de bytes pode ser criada e interpretada de várias formas. Se a interpretação utilizar uma codificação diferente da codificação com a qual a matriz de bytes foi criada, a interpretação será apresentada como lixo. Os conjuntos de carateres (conjuntos de carateres) são formatos de codificação que são normalmente utilizados pelos browsers. A propriedade Codepage, que é mais aplicável para conversões do lado do servidor, é apenas uma tabela de conversão que especifica a forma como os carateres são codificados.

Os browsers codificam os dados de publicação do formulário de acordo com o conjunto de carateres atual. Se o conjunto de carateres atual for "windows-1256", a transmissão de bytes para o servidor também é codificada como "windows-1256".

Quando o ASP está a ser interpretado, as coleções Form e Querystring não são criadas até serem referenciadas no código. Quando estão a ser criados, os dados da cadeia são transformados em Unicode de acordo com a página de código atual. (Por predefinição, tanto o ASP como o ASP.NET processar conteúdo através do formato Unicode). É muito importante que defina a página de código correta antes de referenciar as coleções; caso contrário, a representação Unicode na memória não estará correta.

Para definir uma página de código, utilize Session.Codepage ou Response.Codepage. A Response.Codepage só está disponível no Serviços de Informação Internet da Microsoft (IIS) 5.1 ou versões posteriores. Para obter informações sobre os valores inteiros (que correspondem ao conjunto de carateres) para os quais definiríamos estas propriedades, visite o seguinte Web site da Microsoft:

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

Session.Codepage = 1256

Response.Codepage só afetará a resposta atual. No entanto, Session.Codepage afetará todas as respostas feitas pelo utilizador atual. Quando a página de código é definida através de uma destas propriedades e as coleções Form e Querystring são criadas, esta alteração na página de código atual faz com que o método Response.Write transforme o Unicode na memória para a página de código atual. Para obter mais informações sobre este tópico, visite o seguinte Web site da MSDN:

Definir a Página de Código para Conversões de Cadeias (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxA linha de fundo no que diz respeito aos problemas relacionados com conjuntos de carateres e páginas de código é que o conjunto de carateres do cliente e a página de código do servidor devem corresponder.

Aceitar idiomas

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

229690 Como definir o ID de Região do ASP de acordo com as definições de idioma do browser
 

Apresentar conjuntos de carateres de vários bytes no Internet Explorer

O único formato de codificação que pode mostrar um conjunto de carateres com vários bytes é Unicode (UTF-8). Com UTF-8, podemos apresentar cirílico, indiano e japonês na mesma página. Se não utilizarmos UTF-8, só poderemos mostrar um destes idiomas de cada vez. Para definir o conjunto de carateres do browser, utilize a propriedade Response.CharSet.

Carateres múltiplos bytes estáticos numa página

Para apresentar carateres de vários bytes armazenados diretamente na página, primeiro temos de guardar a página com codificação específica. UTF-8 será o melhor, mas uma página de código específica (correspondida à página de código dos carateres) também funcionará.

Guardar um ficheiro ASP com o Microsoft Visual InterDev não ajuda aqui, uma vez que o Visual InterDev só pode guardar em INGLÊS 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 o fazer. A forma predefinida é guardar o ficheiro com a página de código atual do utilizador. Uma forma adicional de guardar um ficheiro com uma codificação é a seguinte:
No menu Ficheiro , clique em Guardar Ficheiro Como.
Na caixa de diálogoGuardar Ficheiro Como, clique na seta pendente no
botãoGuardar. Quando clica na seta, as opções são
Guardar e Guardar com Codificação. Quando clica em
Guardar com Codificação, é apresentada a caixa de diálogo Opções Avançadas para Guardar, onde pode selecionar o tipo de codificação que pretende aplicar a partir de uma lista das páginas de código que estão instaladas no computador.


Nota Esta ação altera a codificação para a operação guardar, mas é apenas por uma vez. A próxima gravação será reativada para a predefinição.

Para alterar a página de código predefinida, clique em Opções Avançadas de Gravação no
menuFicheiro. Na caixa de diálogo Opções Avançadas para Guardar , pode definir a codificação predefinida para guardar operações na página de código da sua preferência.

Estes métodos estão relacionados com a forma como o ficheiro é guardado no disco. No entanto, para controlar a saída do ASP, como já foi discutido, temos de definir as propriedades Session.CodePage e Response.CharSet. Com o IIS 5.1 e versões posteriores, também podemos utilizar a propriedade Response.CodePage.

CODEPAGE predefinido no servidor

A região predefinida e a página de código predefinida para a página dependem das definições de registo do . Utilizador PREDEFINIDO. Podemos encontrar a chave internacional no hive do registo HKEY_USERS\.DEFAULT\Control Panel\International. Também podemos alterar o comportamento da região escolhida pelo IIS.

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

Exemplo: a região predefinida tem o formato de data definido como 11.1.2004, enquanto o utilizador com sessão iniciada (com a mesma região definida) tem o formato de data 11/1/2004. A definição 1/1/11/2004 entrará em vigor para o ASP.

(Por ASP.NET, isto pode variar. Em algumas instalações, o utilizador asPNET terá o seu próprio perfil que será apresentado em HKEY_USERS quando for carregado. Noutras, irá utilizar o . Perfil PREDEFINIDO. Também podemos utilizar o atributo de página de código na declaração <%@ %>. Isto deve ser utilizado quando o ficheiro é guardado com uma codificação diferente e, em seguida, a predefinição, como a página de código 932 (japonês)).

Problemas da página de código versus problemas de conversão de tipos de letra: qual é qual?

Por vezes, poderá ver um caráter de ponto de interrogação (?) ou uma caixa onde é suposto aparecer um caráter.

Problemas de conversão de páginas de código

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

Problemas de conversão do tipo de letra

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

Em seguida, falarei sobre como as coisas mudaram no ASP.NET 1.x e como essas alterações afetam os problemas de globalização no contexto de ASP.NET.

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

Com ASP.NET, foram introduzidas três grandes coisas:

  • A etiqueta> de globalização de <no ficheiro
    web.config A <> etiqueta de globalização afasta-nos dos conceitos incoerentes de páginas de código e conjuntos de carateres e permite-nos controlar a maioria das variantes no ASP.NET.

  • O espaço de nomes
    System.Globalization O espaço de nomes Globalização fornece-nos o poder programático de processamento da globalização.

  • O conceito de ficheiros de recursos foi bastante melhorado.
    Não lidamos com ficheiros de recursos da forma que utilizámos no ASP. Agora, os ficheiros de recursos estão na forma de ficheiros XML quando os criamos e desenvolvemos, e existem como assemblagem no runtime.

A etiqueta de configuração de Globalização:

Duas definições importantes na etiqueta são as seguintes:

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

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

fileEncoding

Especifica a codificação predefinida para análise de ficheiros .aspx, .asmx e .asax. Os 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 a cultura predefinida para processar pedidos Web recebidos (aplicável em métodos de classes do espaço de nomes System.Globalization).

uiCulture

Especifica a cultura predefinida para o processamento de pesquisas de recursos dependentes da região (assemblagens de satélite).

Para obter mais informações sobre cadeias de cultura (valores de cultura e uicultura), 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 por ASP.NET após a conclusão da resposta e antes de o pedido ser entregue à sua aplicação. Para responseEncoding, a memória intermédia criada para armazenar a saída está definida para esta codificação. Tudo o que entrar nesta memória intermédia será codificado de acordo com a definição à medida que é inserida na memória intermédia.

Para requestEncoding, o runtime irá ler o pedido e interpretá-lo de acordo com a definição nesta secção. No entanto, esta é uma definição que pode causar problemas. A tabela abaixo mostra o esquema de bits de uma sequência de bytes UTF-8 válida.

Se o valor do caráter cair na norma ASCII de 7 bits, o valor de byte não será modificado. Se o valor for superior a 127, tem de seguir as regras abaixo. O conjunto de bits à esquerda mostra quantos carateres estão na sequência. Cada byte após o primeiro tem de começar com o primeiro bit definido como 1.

Esquema de byte UTF-8:

Bytes

bits

representação

1

7

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

É aqui que o problema vem. Se o browser codificar o pedido de acordo com uma codificação de byte único (como iso-8859-1), os valores acima de 127 não serão válidos de acordo com o esquema acima. Quando são lidos na memória intermédia UTF-8, os carateres inválidos são simplesmente removidos da saída.

Alterações à codificação do runtime

No evento Application_BeginRequest, podemos modificar o valor de requestEncoding e fazê-lo entrar em vigor antes de o pedido ser processado. Para a resposta, o evento Page_PreRender é a última oportunidade para modificar a codificação do resultado. Tenha também em atenção que Response.Write colocará carateres nesta memória intermédia assim que lhe chamarmos, por isso certifique-se de que tem a codificação correta definida antes de utilizar Response.Write.

Os dados originais não são Unicode: como fazer com que o Internet Explorer interprete conjuntos de carateres de vários bytes?

Também podemos fazer com que ASP.NET se comportem como ASP, se necessário. Para que isto ocorra, precisamos de definir responseEncoding e requestEncoding como windows-1252 (uma codificação mais completa do que iso-8859-1) e utilizar a propriedade Response.Charset para apresentar o texto corretamente. Isto funciona porque o windows-1252 é um esquema de codificação de bytes único e não modifica quaisquer bytes que sejam adicionados à memória intermédia. Assim, os carateres de byte duplo são enviados como uma série de bytes únicos. Em seguida, podemos indicar ao Internet Explorer como interpretar os bytes com a propriedade Response.Charset. Este cenário poderá ser necessário se os dados originais não forem armazenados como Unicode ou UTF-8, como um valor devolvido de um objeto COM ou se os dados estiverem armazenados no Microsoft SQL Server num campo não N (como varchar).

problemas de globalização de SQL Server e ASP.NET

Entrada de dados Unicode para SQL Server

A melhor forma de armazenar dados no SQL Server é utilizar o Unicode. Sempre que utilizarmos INSERT, UPDATE, etc. se existir uma menor probabilidade de dados Unicode, temos de adicionar um N antes do valor. Isto indica à base de dados que o valor é Unicode. Um bom exemplo disso são os objetos ADO. Fazem-no automaticamente se utilizarmos o objeto Conjunto de registos 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)"
Entrada de data/hora para SQL Server

Normalmente, temos o conhecimento sobre a cultura e a região da data/hora que estão a ser interpretadas na nossa aplicação ASP.NET. No entanto, ao emitir e solicitar os dados de data/hora de e para origens externas, corremos o risco de interpretar mal os formatos de data/hora. Isto acontece porque nem sempre podemos garantir que a cultura e a região da origem externa sejam iguais às da nossa aplicação. No SQL Server isto pode ser resolvido com o atributo "linguagem atual" na cadeia de ligação que está a ser estabelecida para a base de dados SQL. Podemos fornecer a mesma definição de idioma na cadeia de ligação que é a cultura na nossa aplicação. Isto protege-nos do risco de má interpretação, porque SQL Server aceita sempre e envia os dados de data/hora em consentimento com a definição mencionada acima.

Espaço de nomes System.Globalization

Este espaço de nomes é o núcleo da globalização e da 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 de número, informações de comparação e informações de texto. Para obter 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

Uma cultura neutra é uma cultura que está associada a uma língua, mas não a um país/região específico. Uma cultura específica está associada a um idioma e a um país/região específico.

Um exemplo: "DE" (cultura neutra) é para a língua alemã, mas "de-AT" (cultura específica) é para a língua alemã como é falada na Áustria. Não é possível utilizar culturas neutras para formatação.

Reconhecimento de tópicos e culturas atuais das aulas de .NET Framework

Todas as classes e métodos na biblioteca de .NET Framework onde seria de esperar que o resultado fosse dependente da cultura têm dois comportamentos incorporados:

  • Permitem-nos especificar o código de cultura ao fornecer os argumentos para que a saída se baseie na cultura especificada. Isto é opcional.

  • Se esta falha for perdida (normalmente, é), as classes são inteligentes o suficiente para manter uma verificação na propriedade Thread.CurrentThread.CurrentCulture e funcionar de acordo com isso.

Podemos modificar o valor desta propriedade com código semelhante ao 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. Portanto, neste caso, o DateTime.Now(). O método ToString devolveria a data e a hora num formato correspondente à forma como a data e a hora são expressas no idioma alemão na Áustria.

A arquitetura garante (da seguinte forma) que a propriedade CurrentCulture é sempre inicializada:

  1. O que quer que esteja definido para programaticamente.

  2. Caso não seja explicitamente definida pelo programador, a propriedade é escolhida a partir dos ficheiros de configuração (<> de globalização).

  3. Se a propriedade estiver em falta, é a cultura na qual o servidor Web está em execução. Normalmente, esta é a cultura neutra que corresponde à linguagem do sistema operativo.

Ficheiros de recursos

Todos os ficheiros .resx, .resource e ficheiros com o atributo Ação de Compilação definido como Recurso Incorporado que são adicionados a um projeto ASP.NET no Visual Studio .NET são automaticamente compilados e incorporados na assemblagem de aplicações como parte do manifesto. Isto pode até ser feito manualmente com o utilitário Resource File Generator (RESGEN) através de uma linha de comandos .NET do Visual Studio. Para obter 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 precisamos de gerir recursos de aplicações que não estão relacionados com a globalização. No entanto, quando estamos a implementar a globalização, devemos utilizar assemblagens por satélite.

Assemblagens de satélite

As assemblagens de satélite podem ser utilizadas num projeto de ASP.NET quando se certificar de que as seguintes afirmações são verdadeiras:

  1. Todos os elementos da interface de utilizador em todos os ficheiros aspx têm de estar equipados com atributos id e runat=server.

  2. Criamos ficheiros .resx separados. Cada uma tem de corresponder a cada cultura que queremos que a nossa aplicação suporte.

  3. Temos de decidir um nome próprio comum para todos estes ficheiros, por exemplo. "Cadeias".

  4. Atribuímos um nome aos ficheiros .resx separados com a seguinte convenção de nomenclatura commonfirstname. languagecode-regioncode.resx (por exemplo: Strings.de-AT.resx, Strings.en-GB.resx ).

  5. Devemos ter o ficheiro
    de recursoscommonfirstname.resx (Strings.resx) que tem todas as cadeias como queremos apresentar no caso predefinido.

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

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

  8. Escreva código para extrair cadeias do objeto carregado e atribua-as a elementos da interface de utilizador.

Quando tiver realizado estes passos, o Visual Studio.NET irá compilar Strings.resx e incorporá-lo na assemblagem de aplicações (MyGlobalizationTestProjectName.dll). No entanto, para todos os outros ficheiros .resx, irá gerar ficheiros dll separados que não têm código executável, mas apenas dados de recursos. Na verdade, chamam-se assemblagens por satélite. Além disso, o Visual Studio .NET coloca-os numa estrutura de pastas semelhante à seguinte: MyGlobalizationTestProjectName
|------- classe
|------en-US

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

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

Diferença entre CurrentCulture e CurrentUICulture

Embora os métodos das classes no espaço de nomes System.Globalization dependam da propriedade Thread.CurrentThread.CurrentCulture para fornecer a saída, a classe ResourceManager que carrega a assemblagem de recursos depende da propriedade Thread.CurrentThread.CurrentUICulture para carregar a assemblagem de satélite adequada. Segue-se um exemplo de código 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 pela qual ASP.NET seleciona assemblagens por satélite:

Quando tiver definido a CurrentUICulture do thread, ASP.NET seleciona automaticamente os recursos correspondentes, pela seguinte ordem:

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

  • Se for encontrada uma assemblagem por satélite com uma cultura neutra que corresponda à CurrentUICulture, são utilizados recursos dessa assemblagem.

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

Nota Isto baseia-se no Processo de Contingência de Recursos mais geral. Para obter mais informações, visite o seguinte Web site da MSDN:

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

Criação manual de assemblagens de satélite:

Esta utilização de assemblagens por satélite é onde o Visual Studio .NET cria as assemblagens propriamente ditas. No entanto, o Visual Studio .NET não dá um nome forte às assemblagens de satélite por predefinição. Se quiser alterar estas opções, terá de criar assemblagens por satélite manualmente. Para obter mais informações, visite o seguinte Web site da MSDN:

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

O que se passa com ASP.NET 2.0 na frente de globalização?

A utilização generalizada de ASP.NET e os tipos de problemas que veríamos no que diz respeito às funcionalidades de globalização no ASP.NET 2.0 ainda estão algumas distâncias à frente. No entanto, seria bom analisar brevemente o rumo que a metodologia de globalização está a tomar para as aplicações Web.

O suporte de globalização no ASP.NET 2.0 sofreu uma mudança radical e foi dada aos programadores Web a capacidade de tornar a localização de aplicações Web tão fácil quanto para aplicações baseadas no Windows. Segue-se uma lista de funcionalidades que são a base da metodologia de globalização no ASP.NET 2.0:

Recursos com tipos fortes No centro da versão do .NET Framework 2.0 é suportado por recursos de tipos fortes que fornecem aos programadores o Intellisense e simplifica o código necessário para aceder aos recursos no runtime.

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

A geração de recursos para programadores de Web Forms Windows Forms já beneficiou dos benefícios da internacionalização automática. O Visual Studio .NET 2005 irá agora suportar uma internacionalização rápida ao gerar automaticamente recursos para Web Forms, controlos de utilizador e páginas mestras.

As instâncias do ResourceManager de suporte de runtime melhoradas são geridas pelo runtime e facilmente acessíveis ao código do servidor através de interfaces de programação mais acessíveis.

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

Seleção de cultura automática: a seleção de cultura de gestão para cada pedido Web pode ser automaticamente associada às preferências do browser.

Modelo de fornecedor de recursos Um novo modelo de fornecedor de recursos permite que os programadores alojem recursos em origens de dados alternativas, como ficheiros simples e tabelas de bases de dados, enquanto o modelo de programação para aceder a esses recursos permanece consistente.

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

ASP.NET 2.0 Funcionalidades de Localização: Uma Nova Abordagem para Localizar Aplicações
Webhttp://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Conclusão

Por agora, trata-se de problemas de globalização no ASP e no ASP.NET. Espero que este artigo ajude alguns clientes a resolver os problemas de globalização no ASP e no ASP.NET antes de optarem por contactar Suporte da Microsoft. Terminarei com o seguinte pensamento:

"Onde e sempre que estiveres a desenvolver, pensa nos milhões de pessoas que podes capacitar em todo o mundo. Prepare as suas soluções para o Mundo! As ferramentas e tecnologias da Microsoft facilitam a internacionalização."

Voltaremos a pôr-nos em dia no próximo mês com outro tópico interessante.

Obrigado pelo seu tempo.

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

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

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

Go Global: Localizing Dynamic Aplicações Web with IIS 5.0 and SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Go Global: Conceber o Web Site baseado em ASP para Suportar a Globalização
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 Como Detetar um Idioma de Cliente numa Página do Active Server Pages no IIS
http://support.microsoft.com/?id=315616

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

System.Globalization Namespace
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Recursos e Localização Com o SDK
.NET Frameworkhttp://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Recursos no ASP.NET Applications
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

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

Diretrizes de Conceção e Implementação para Clientes Web – Globalização eLocalização
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Site oficial da Microsoft – Portal
de Desenvolvimento Global e Computaçãohttp://msdn.microsoft.com/en-us/goglobal/bb688096

Developing World-Ready Applications
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Arquitetura de Globalização parahttp://msdn2.microsoft.com/en-us/library/aa478974.aspx de ASP.NET

Enterprise Localization Toolkit - For Developing Localized Microsoft ASP.NET Applications
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

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

Glossário

ANSI significa American National Standards Institute. Neste contexto, representa uma página de código específica para um conjunto de idiomas/carateres específico. Na maioria das vezes, refere-se à página de código em inglês (windows-1252).

ASCII Um esquema de codificação de 1 byte (ou 7 bits). Apenas os carateres no intervalo 0-127 são padronizados. 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 OEM ASCII e o gráfico ASCII da VB.

Definição de Conjunto de Carateres utilizada principalmente para o Internet Explorer e browsers que indica ao browser como interpretar os dados de carateres. Exemplo: Response.charSet = "iso-8859-1".

Codepage Uma tabela de conversão que especifica a forma como os carateres são codificados (normalmente utilizados para servidores).

Globalização A Globalização é um processo de criação e criação de uma aplicação para que os requisitos exclusivos de uma cultura, região ou necessidades nacionais/regionais e linguísticas possam ser cumpridos. Por outras palavras, conceber uma aplicação de uma forma que possa ser localizada mais tarde é a globalização.

Formatos/preferências específicas da região/Região, incluindo formatos de data e calendário, formatos de hora, formatos de moeda, caixa, ordenação e comparação de cadeias, formatos de endereço, formatos de número de telefone, tamanhos de papel, unidade de medida, direção de escrita, 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 região específicos para a data/hora ex, etc. devem ser formatados de acordo com.

Capacidade de Localizabilidade de uma aplicação para apresentar conteúdo para o idioma/região exigidos.

Localização Localização é o processo de traduzir uma interface de utilizador para idiomas e/ou regiões específicos.

Conjunto de carateres de múltiplos bytes Um conjunto de carateres no qual os carateres são compostos por dois ou mais bytes, como japonês. UTF-8 também se enquadra nesta categoria. (Tecnicamente, o Unicode está nesta categoria, mas no Windows tem a sua própria categoria.)

Unicode Um esquema de codificação de 2 bytes. O Windows utiliza o Unicode internamente. Todas as APIs especificamente para Unicode são sinalizadas por um "W" no final do nome da função. Também conhecido como char largo; não pode ser utilizado diretamente a partir de aplicações Web.

UTF-8 Uma codificação de carateres onde um caráter pode ser representado por 1 a 6 bytes. No Windows, o intervalo é de 1 a 3 bytes. Não suportado em NT4 para aplicações Web.



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

Como sempre, pode submeter ideias sobre tópicos que pretende abordar em colunas futuras ou na Base de Dados de Conhecimento através do formulário Pedir.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×