Pergunta

Então eu tenho um programa que precisa ser multilingue. A única diferença entre o que eu estou precisando e que eu encontrei na web é que todos os computadores meu programa serão executados em são definidos para a localização da EN.

Nós temos funcionários que falam espanhol que irão utilizar o programa assim como os funcionários que falam inglês. Então eu não vou ser capaz de definir alguma coisa com base na localização do computador, tudo terá de ser feito no código.

Eu estava pensando em tentar criar um arquivo XML (na verdade, apenas um conjunto de dados) para todas as formas que eu tenho e que cada tabela de dados ser uma língua selecionável. Em cada mesa, que teria as informações (nome do controle, propriedade e texto) para definir as etiquetas / caixas / etc que ele precisa. Eu vou ter que criar um novo controle de formulário para que eu possa ter uma função genérica para passar e renomear todos esses controles, se possível.

<DataSet>
   <English>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hello</Text>
   </English>
   <English>
     <ControlName>labelBye</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Bye</Text>
   </English>
   <Spanish>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hola</Text>
   </Spanish>
</DataSet>

Além disso eu não sabia muito sobre as cordas no arquivo de recursos para cada formulário. Eu poderia fazê-lo de lá e usar funções .NET para conseguir isso?

Então, eu estou para muitas sugestões, porque eu realmente não quero voltar para o programa que eu acabei de escrever e colocar isso em, eu odeio volta e adicionando mais funcionalidade vai uma vez que eu já passou tanto tempo com este otário ...

Graças

Foi útil?

Solução

Você pode definir a cultura que você quer em código, por exemplo:.

Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

Consulte este artigo MSDN para obter mais informações.

Outras dicas

É uma dor, mas não é difícil. Dentro WinForm desenhador do VS2008, selecione o formulário, visualizar suas propriedades e definir Localizable = True (se você visualizar a classe / code parcial por trás do arquivo, você verá uma nova linha que é algo como

  resources.ApplyResources(this, "$this")

Então, para cada localidade que você quer apoio, selecionar Idioma, e localizar todas as alterações necessárias sobre o padrão local.

Eu acredito que o Windows permite que o usuário especifique um local diferente para uma aplicação específica. I passado tentei isso com Windows 2000.

Com o Windows, você pode ter uma cultura máquina EN, mas para o navegador, os usuários individuais do PC pode selecionar culturas preferido (IE e Firefox de qualquer maneira). Tudo o resto no PC é Inglês No IE, vá em Ferramentas, Opções, clique no botão Idioma na guia geral. Você pode especificar uma hierarquia preferido de línguas.

Caso contrário, vá com a resposta Joes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top