Pergunta

Isto está relacionado com o meu post mais cedo hoje: link de texto

Então agora eu tenho demonstração aplicativo winforms com duas localizações diferentes, um Inglês, um espanhol. Agora vamos dizer que eu tenho um aplicativo grande, digamos que ele suporta localizações em 15 idiomas diferentes. No post anterior, foi sugerido que eu adicionar algumas linhas quando o formulário é inicializado para definir a localização. Atualmente estou usando clique uma vez para implantar o meu aplicativo. Estou tentando encontrar uma maneira de implantar sem ter 15 diferentes sabores do aplicativo. Existe uma maneira de olhar para a localização atual do usuário e se ele corresponde a um dos idiomas que eu escrevi minhas telas para usar que, caso contrário, use o padrão?

Foi útil?

Solução

O já built-in sistema de localização do .NET framework lida com esta situação fallback. Você acabou de instalar as DLLs satélite que localizam seus formulários e controles e, em seguida, se o caminho certo corresponde a localidade do usuário, .NET vai usá-lo, caso contrário ele irá fallback para a próxima localidade pai relacionado. Por exemplo, se o idioma padrão do aplicativo é en-US, mas você forneceu uma tradução en-GB e uma tradução en, então o retorno é:

en-GB-> EN> en-US

i. quando en-GB não está disponível, ele procura en, e se isso não for lá, ele usa o padrão, en-US.

Portanto, ao distribuir, você pode distribuir a aplicação apenas a sua principal en-US e, em seguida, fornecer DLLs satélites adicionais para determinadas línguas como, por exemplo, pacotes de idiomas. Há um atributo, SatelliteContractVersionAttribute , que permite que o assembléias principais aplicações para indicar as versões de satélite que quer, o que permite que seus localizações para trabalhar em versões de montagem (como se suas versões de montagem incrementar com o build - você pode efetivamente ignorar o número de compilação).

MSDN tem um monte de informações sobre globalização e localização e como isso funciona, até mesmo dentro do contexto de implantação ClickOnce. Verifique a globalizado do Windows seção Formas .

É claro que, se você optou por não confiar no sistema .NET para apoiar produtos globalizados, então você terá que vir acima com algo que se adapta à sua direção escolhida.

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