Pergunta

Fundo

Um projeto instala alguns arquivos que contêm todos os elementos para definir um UserControl - alguma fonte de usuário, uma CodeCompileUnit para código do designer, e um arquivo resx. Em tempo de execução, esses arquivos são compilados em uma montagem e as classes são consumidos pela nossa aplicação principal (o conjunto é única atualizada quando necessário).

Pergunta

O projeto tem que ser globalizado e, como parte desse processo, há uma necessidade de fornecer localizações desses arquivos. Há duas opções, quer para permitir a inclusão de ficheiros adicionais resx para locais diferentes (quer do mesmo arquivos ou como ficheiros adicionais lado-a-lado) que pode ser compilado em um satélite de montagem para a montagem principal, ou para fornecer uma cópia cada arquivo completo para cada idioma suportado, compilando o conjunto apropriado para o idioma que está sendo suportado.

  • Alguém tem quaisquer outras opções que pode valer a pena considerar?
  • Que problemas pode ser inerente em qualquer uma das soluções que eu propostas?

Restrições / Disclaimer
Estou ciente de que o cenário é inferior a ideal e que as melhores escolhas poderia ter sido feito em algumas áreas (como globalizante desde o início), mas eles não podem ser alterados neste momento no projeto. Eu aprecio qualquer conselho, soluções ou ligações que você pode proporcionar. Obrigado.

Foi útil?

Solução

Criar um satélite separado de montagem para cada cultura. Isto tem dois benefícios:

  • Você pode construir todas as assembleias de uma só vez, e ter um arquivo definitivo para cada número da versão e nome combinação, ao invés do que também , dependendo da cultura.
  • Você pode ter vários conjuntos na mesma instalação, e base da língua para uso no idioma do sistema, ou uma preferência do usuário etc. Isso fará com que o desenvolvimento e teste significativamente mais fácil, pois você não terá que manter a reconstrução e copiando arquivos em torno de apenas por uma questão de mudança de línguas.
  • É como i18n .NET foi projetado para trabalho. Enquanto eu não sou um especialista em .NET i18n ( "ler o livro de Guy Smith-Ferrier" é o meu melhor conselho!) Eu geralmente acham que as estruturas funcionam melhor quando você seguir seu modelo esperado.

Mesmo que a parte final de "construir o satélite assembly" é feito em tempo de execução (você pode fazê-lo em instalar tempo em vez disso?) Você ainda receber a segunda e terceira bala vantagens, pelo menos. Isso também significa que se você do ir a rota mais normal de fornecer os conjuntos de satélite para começar (em vez de construí-las na caixa do usuário), você vai ter menos a mudança.

Desculpas se eu tenha entendido mal a pergunta embora ...

Outras dicas

Se você não está pensando em adicionar idiomas adicionais após a implantação (pelo menos não sem uma atualização de software), então eu favorecer a compilação de todos os arquivos adicionais RESX em um satélite conjunto que você incluir. Dessa forma, eles não são editável usuário uma vez que está implantado.

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