Como posso garantir que a versão do idioma adequado de um recurso de seqüência de caracteres é carregada em tempo de execução?

StackOverflow https://stackoverflow.com/questions/4968990

Pergunta

Eu tenho um recurso de seqüência de caracteres do arquivo chamado "cadeias de caracteres.resx" no meu VB.NET o projeto, definido como um recurso incorporado.Eu tenho um outro arquivo chamado strings.es.resx, que contém todas as mesmas seqüências de caracteres em espanhol.Eu estou carregando o recurso em tempo de execução usando o seguinte código:

MyStrings = New ResourceManager("myprog.strings", GetType(MainForm).Assembly)

Eu definir o idioma para Espanhol no Windows e voltar, mas eu ainda estou começando o inglês recursos de seqüência de caracteres de carregamento quando acima é executado.Como posso carregar o espanhol de recursos, se a localidade do Windows é ES?Eu estava esperando para ser processada automaticamente.

Foi útil?

Solução

Dê uma olhada no System.Threading.Thread.CurrentThread.CurrentUICulture a propriedade tem um hábito de ser corrigido para pt-br.

Se for, tente defini-la para o mesmo CurrentCulture.

Atualização

Desde que não funciona, verifique se a pasta de saída do seu aplicativo tem um es pasta, no interior do qual é uma dll chamada strings.resources.dll.Se não, então, basicamente, o gerenciador de recursos não é encontrar a cultura específica do recurso de seqüência de caracteres, porque não há, no caso, copiá-los e ele deve funcionar.

Outras dicas

ISENÇÃO de responsabilidade - isso é tudo de memória e poderá não ser 100% precisa :-)

.NET recursos são carregados usando Thread.CurrentUICulture (a menos que você explicitamente substituí-la quando o carregamento de recursos no código). Thread.CurrentUICulture é definido pela INTERFACE de utilizador idioma utilizado na instalação do Windows, e não pode ser alterado.Este não é o mesmo que Thread.CurrentCulture, o que é definido no Painel de Controle, e podem ser alterados a qualquer tempo.

Por exemplo, no meu PC, CurrentCulture retorna "en-GB" porque é de onde eu sou, mas CurrentUICulture retorna "en-US" porque a Microsoft só fornecer uma versão de idioma inglês do Windows.

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