Globalização e localização de soluções do Office

A maioria dos aspectos de Globalizando e Localizando soluções de Microsoft Office são os mesmos encontrados quando você criar outros tipos de soluções usando Visual Studio. Para obter informações gerais, consulte Globalizando e Localizando Aplicativos. Globalização e localização de informações também podem ser encontradas na página da Web do MSDN a globalização e localização de problemas para soluções criadas com de Microsoft Visual Studio Tools for the Microsoft Office System de.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Microsoft Office 2010 e o sistema 2007 do Microsoft Office. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Localizando texto do documento

O documento, modelo ou pasta de trabalho em seu projeto provavelmente inclui texto estático, que deve ser localizados separadamente do assembly e outros recursos gerenciados. Uma maneira simples de fazer isso é fazer uma cópia do documento e traduzir o texto usando o Microsoft Office Word ou Excel de Microsoft Office. Esse processo funciona mesmo se você não fazer alterações no código, porque qualquer número de documentos pode ser vinculado ao mesmo assembly.

Você ainda deve certificar-se de que qualquer parte do código que interage com o texto do documento continua a corresponder ao idioma do texto e que indicadores, intervalos nomeados, e outros campos de exibição acomodar qualquer reformatação do documento do Office, o que era necessário para ajustar o comprimento diferente de texto e a gramática. Modelos de documentos que contêm relativamente pouco texto, convém considerar armazenar o texto em arquivos de recurso e, em seguida, carregar o texto em tempo de execução.

Direção do texto

No Excel, você pode definir uma propriedade da planilha para processar texto da direita para a esquerda. Hospedar controles ou qualquer controle que possui um RightToLeft propriedade, que são colocados automaticamente no designer corresponderem a essas configurações em tempo de execução. O Word não tem uma configuração de documento para o texto bidirecional (você apenas alterar o alinhamento do texto), para que os controles não podem ser mapeados para essa configuração. Em vez disso, você deve definir o alinhamento do texto para cada controle. É possível escrever código para percorrer todos os controles e forçá-los para processar texto da direita para esquerda.

Alterar a cultura

Seu código de personalização em nível de documento normalmente compartilha o thread principal da interface do usuário do Word ou Excel, para que as alterações feitas para a cultura do thread afeta tudo que está sendo executado no thread; a alteração não é restrita para sua personalização.

Controles Windows Forms são inicializadas antes de suplementos em nível de aplicativo são iniciados pelo aplicativo host. Nessas situações, a cultura deve ser alterada antes de definir os controles de interface do usuário.

Instalando os pacotes de idiomas

Se você tiver configurações de inglês do Windows, você pode instalar o Visual Studio Tools for Office runtime Os pacotes de idiomas para ver Visual Studio Tools for Office runtime mensagens no mesmo idioma do Windows. Se qualquer usuário final executar suas soluções com configurações de inglês do Windows, eles devem ter o pacote de idioma correto para ver as mensagens de tempo de execução no mesmo idioma como o Windows. O Visual Studio Tools for Office runtime pacotes de idiomas estão disponíveis a partir de Centro de Download da Microsoft.

Além disso, o redistribuível.NET Framework Language Packs são necessários para mensagens de ClickOnce. A.NET Framework Language Packs estão disponíveis a partir de Centro de Download da Microsoft.

Configurações regionais e chamadas do Excel COM

Sempre que um cliente gerenciado chama um método em um objeto COM e ele precisa passar informações específicas de cultura, ele faz isso usando o CurrentCulture (localidade) que corresponda a localidade atual do thread. A localidade do thread atual é herdada de configurações regionais do usuário por padrão. No entanto, quando você faz uma chamada no modelo de objeto do Excel a partir de uma solução em Excel criada usando as ferramentas de desenvolvimento do Office em Visual Studio, o formato de dados de inglês (Estados Unidos) (1033 de identificação de localidade) é passado para o modelo de objeto do Excel automaticamente. Você deve formatar a todos os dados que possui a formatação de sensíveis à localidade, como, por exemplo, datas e unidades monetárias, usando o formato de dados de inglês (Estados Unidos), antes de passá-lo para o Excel de Microsoft Office ou ler os dados do seu código do projeto. For more information, see Formatação de dados no Excel com várias configurações regionais.

Considerações para armazenar dados

Para garantir que seus dados são interpretados e exibidos corretamente, você deve considerar também podem ocorrer problemas quando um aplicativo está armazenando dados, incluindo fórmulas de planilha do Excel em literais de seqüência de caracteres (codificado) em vez de em objetos com rigidez de tipos. Você deve usar os dados formatados assumindo um estilo de cultura invariável ou inglês (Estados Unidos) (o valor do LCID 1033).

Aplicativos que usam a seqüência de caracteres literais

Os valores possíveis que podem estar embutidas incluem literais de data são gravados no formato de inglês (Estados Unidos) e as fórmulas de planilha do Excel que contêm nomes de função localizadas. Outra possibilidade pode ser uma seqüência de caracteres codificada que contém um número como, por exemplo, "1.000"; em algumas culturas, isso é interpretado como um mil, mas em outras culturas, ele representa um ponto zero. Cálculos e comparações realizadas no formato errado podem resultar em dados incorretos.

O Excel interpreta qualquer cadeia de caracteres de acordo com o LCID que é passada pela cadeia de caracteres. Isso pode ser um problema se o formato da seqüência de caracteres não corresponde à LCID que é passado. Soluções do Excel criadas usando as ferramentas de desenvolvimento do Office em Visual Studio usam o LCID 1033 (en-US), ao passar de todos os dados. O Excel exibirá os dados de acordo com as configurações regionais e de um idioma de interface de usuário do Excel. Visual Basic for Applications (VBA) também funciona dessa maneira. seqüências de caracteres são formatadas como en-US, e quase sempre, o VBA passa 0 (linguagem neutra) como o LCID. Por exemplo, o código do VBA a seguir exibe um valor formatado corretamente para 12 de maio de 2004, de acordo com a configuração de localidade do usuário atual:

'VBA
Application.ActiveCell.Value2 = "05/12/04"

O mesmo código, quando usado em uma solução criada usando as ferramentas de desenvolvimento do Office em Visual Studio e passadas para o Excel para interoperabilidade COM, produz os mesmos resultados quando a data é formatada no estilo de en-US.

For example:

Me.Range("A1").Value2 = "05/12/04"
this.Range["A1", missing].Value2 = "05/12/04";

Você deve trabalhar com rigidez de tipos de dados em vez de literais de seqüência, sempre que possível. Por exemplo, em vez de armazenar uma data em uma seqüência literal, armazene-o como um Double, em seguida, convertê-lo para um DateTime o objeto para manipulação.

O exemplo de código a seguir leva a uma data em que um usuário insere na célula A5, armazena-o como um Double, em seguida, converte-lo para um DateTime objeto para exibição na célula A7. Célula A7 deve ser formatado para exibir uma data.

Private Sub ConvertDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles ConvertDate.Click

    Try
        Dim dbl As Double = Me.Range("A5").Value2
        Dim dt As System.DateTime = System.DateTime.FromOADate(dbl)
        Me.Range("A7").Value2 = dt

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
private void ConvertDate_Click(object sender, EventArgs e)
{
    try
    {
        double dbl = (double)(this.Range["A5", missing].Value2);
        System.DateTime dt = System.DateTime.FromOADate(dbl);
        this.Range["A7", missing].Value2 = dt;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Funções de planilha do Excel

Nomes de função de planilha são convertidos internamente para a maioria das versões de idioma do Excel. No entanto, devido à linguagem possível e questões de interoperabilidade COM é altamente recomendável que você use nomes de função apenas inglês no seu código.

Aplicativos que usam dados externos

Qualquer código que abre ou caso contrário usa dados externos, como, por exemplo, arquivos que incluem valores separados por vírgulas (arquivos CSV), exportados de um sistema legado, também pode ser afetado se esses arquivos são exportados usando qualquer formato, além de en-US. Acesso de banco de dados não pode ser afetado, pois todos os valores devem estar no formato binário, a menos que o banco de dados armazena datas como seqüências de caracteres ou executa operações que não usam o formato binário. Além disso, se você construir consultas SQL usando dados do Excel, você precisa garantir que eles estejam no formato de en-US, dependendo da função que você usar.

Consulte também

Tarefas

Como: O Interface do usuário multilíngüe do Office de destino.

Conceitos

Formatação de dados no Excel com várias configurações regionais

Parâmetros opcionais em soluções do Office

Outros recursos

Projetando e criando soluções do Office