Best Practices for Developing World-Ready Applications
Esta seção descreve as práticas recomendadas a seguir ao desenvolver aplicativos preparados para o mundo.
Práticas recomendadas de globalização
Tornar o aplicativo Unicode internamente.
Usar as classes com reconhecimento de cultura fornecidas pelo System.Globalization namespace para manipular e formatar dados.
Para classificação, use o SortKey classe e o CompareInfo classe.
Para comparações de seqüência de caracteres, use o CompareInfo classe.
Para data e time formatação, use o DateTimeFormatInfo classe.
Formatação numérica, use o NumberFormatInfo classe.
Para calendários gregoriano e não gregoriano, use o Calendar classe ou de uma a específica Calendário implementações.
Usar as configurações de propriedade de cultura fornecidas pelo System.Globalization.CultureInfo classe em situações apropriadas. Use o CultureInfo.CurrentCulture propriedade de formatação de tarefas, sistema autônomo data e time ou formatação numérica. Use o CultureInfo.CurrentUICulture propriedade para recuperar os recursos. Observe que o CurrentCulture and CurrentUICulture propriedades podem ser conjunto por thread.
Permitir que a sua aplicação de ler e gravar dados e para uma variedade de codificações, usando as codificação classes no System.Text namespace. Não pressuponha que dados ASCII.Presumir que caracteres internacionais serão fornecidos em qualquer lugar um usuário pode inserir texto.Por exemplo, aceita caracteres internacionais em nomes de servidores, diretórios, nomes de arquivos, nomes de usuário e URLs.
Ao usar o UTF8Encoding classe de segurança razões, é recomendável que você use o recurso de detecção de erros oferecido por essa classe. Para ativar o recurso de detecção de erros, criar uma instância da classe usando o construtor, que usa um throwOnInvalidBytes parâmetro e conjunto o valor de throwOnInvalidBytes to True.
Sempre que possível, alça strings sistema autônomo seqüências de caracteres inteiras em vez de sistema autônomo uma seqüência de caracteres individuais.Isso é especialmente importante ao classificar ou pesquisar substrings.Isso evitará problemas associados com a análise caracteres combinados.
Exibir o texto usando as classes fornecidas pelo System.Drawing espaço para nome.
Para manter a consistência entre sistemas operacionais, não permitir que as configurações de usuário substituir CultureInfo. Use o CultureInfo construtor que aceita um useUserOverride parâmetro e defini-lo para False.
Teste a funcionalidade do aplicativo em versões internacionais do sistema operacional, utilizando dados internacionais.
Se uma decisão de segurança é baseada no resultado de uma comparação de seqüências de caracteres ou caso alterar operação, execute uma operação de diferenciação de cultura, explicitamente especificando o CultureInfo.InvariantCulture propriedade. Nesta prática, garante que o resultado não seja afetado pelo valor de CultureInfo.CurrentCulture.See Personalizado caso mapeamentos e regras de classificação para obter um exemplo que demonstra como sensíveis à cultura comparações de seqüência de caracteres pode produzir resultados divergente.
Práticas recomendadas de localização
Mova todos os recursos localizáveis para separar somente de recurso DLLs.Recursos localizáveis incluem elementos de interface de usuário, sistema autônomo seqüências de caracteres, sistema autônomo mensagens de erro, caixas de diálogo, menus e recursos do objeto incorporado.
Fazer não codificar cadeias de caracteres ou recursos de interface de usuário.
Não coloque nonlocalizable recursos nas DLLs somente de recurso.Isso causa confusão para os tradutores.
Fazer não uso composto strings que são criados em time de execução de frases concatenados.Seqüências de caracteres compostas são difíceis de localizar porque eles geralmente supõem um pedido gramatical em inglês que não se aplica a todos os idiomas.
Evite ambíguas construções, sistema autônomo "Esvaziar a pasta" onde sistema autônomo seqüências de caracteres podem ser traduzidas diferente dependendo das funções gramaticais de componentes sistema autônomo seqüências.Por exemplo, "vazio" pode ser um verbo ou um adjetivo e isso pode levar a diferentes conversões em linguagens sistema autônomo italiano ou francês.
Evite usar imagens e ícones que contêm texto em seu aplicativo.Eles são caros de localizar.
Permitir bastante espaço para o comprimento das seqüências de caracteres para expandir na interface do usuário.Em alguns idiomas, frases podem exigir 50-75 por cento mais espaço.
Use o System.Resources.ResourceManager classe para recuperar os recursos com base na cultura.
Use Microsoft Visual Studio 2005 Para criar caixas de diálogo Windows Forms, portanto, eles podem ser localizados usando o Editor de recursos do Windows Forms (Winres.exe).Não código caixas de diálogo Windows Forms à mão.
Organize para profissional de localização (conversão).
Para obter uma descrição completa de criação e a localização de recursos, consulte Recursos em aplicativos.
Práticas recomendadas de globalização para aplicativos ASP.NET
conjunto explicitamente o CurrentUICulture e CurrentCulture propriedades em seu aplicativo. Não confie em padrões.
Observe que sistema autônomo aplicativos ASP.NET são aplicativos gerenciado e portanto podem usar sistema autônomo mesmas classes sistema autônomo outros aplicativos gerenciado para recuperar, exibir e manipular informações com base no cultura.
Esteja ciente de que você pode especificar três tipos de codificações no ASP.NET:
requestEncoding Especifica a codificação recebidos do navegador do cliente.
responseEncoding Especifica a codificação para enviar para o navegador do cliente.Na maioria das situações, isso deve ser o mesmo requestEncoding.
fileEncoding Especifica a codificação padrão para .aspx, .asmx e. asax análise do arquivo.
Especificar os valores para o requestEncoding, responseEncoding, fileEncoding, cultura, and uiCulture atributos nos seguintes três locais em um aplicativo ASP.NET:
Na seção globalização de um arquivo Web.config.Este arquivo é externo ao aplicativo ASP.NET.Para obter mais informações, consulte Elemento <globalização>.
Em uma diretiva página.Observe que quando um aplicativo está em uma página, o arquivo já foi lido.Portanto, é tarde demais para especificar fileEncoding and requestEncoding. Apenas uiCulture, Cultura, and responseEncoding pode ser especificado em uma diretiva página.
Programaticamente no código do aplicativo.Essa configuração pode variar por solicitação.sistema autônomo com uma diretiva de página, no momento em que o código do aplicativo for atingido ele é muito tarde para especificar fileEncoding and requestEncoding.Apenas uiCulture, Cultura, and responseEncoding pode ser especificada no código do aplicativo.
Observe que o uiCulture pode ser definida para o navegador aceitar linguagem.Para obter detalhes, consulte o ASP.NET QuickStart Trabalhando com recursos amostra.