comutação de linguagem dinâmica em um aplicativo Eclipse RCP
-
07-07-2019 - |
Pergunta
Eu estou trabalhando em um aplicativo Eclipse RCP com localização. Um usuário deve ser capaz de alterar o idioma usado na aplicação em tempo real. A reinicialização do aplicativo não deve ter lugar durante esta mudança de idioma. Também deve ser possível alternar entre idiomas escritos da esquerda para a direita e idiomas escritos da direita para a esquerda.
Existe uma (boa) forma de resolver este problema?
Solução
De acordo com a esta discussão :
A maioria das bibliotecas eclipse carregar suas informações de linguagem na criação de widget. Se você alterar sua localidade depois que você precisa reiniciar o Eclipse para que ele tenha efeito.
Você poderia escrever esse tipo de comportamento dinâmico em seu próprio programa SWT, no entanto (quando a localidade muda, você precisaria
setText(*)
chamada em tudo : -)
Portanto, este não é actualmente gerido dinamicamente a menos que você programá-lo a si mesmo ...
Outros rcp / plugins aplicação como Birt especificar as mesmas instruções (ou seja, "Restart Eclipse" no final ...)
Dito isto, um problema ligeiramente diferente foi criado em este enrosque :
mudar a configuração de idioma, reiniciar, e depois executar nesse idioma
Eu tenho que trabalhar pela leitura bug 222023 e imitando
org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction
Eu tentei-lo manualmente:
- acrescentado "
-configuration @user.home/.myapp/configuration
" ao launcher.ini- acrescentado "
osgi.nl
" para os usuáriosconfig.ini
que residem lá e funcionou.Desde que eu possa acessar o
config-Location
viaPlatform.getConfigurationLocation()
eu acho que poderia ser o caminho.
Nota: a adição de "osgi.nl
" ao webstart jnlp obras também .
Outras dicas
Você precisa chamar setText em cada widget, com o respectivo texto. Desde que não há nenhum mapeamento variável de texto sobre os widgets, você teria que fazer isso completamente manualmente.