Cambio dinamico della lingua in un'applicazione Eclipse RCP
-
07-07-2019 - |
Domanda
Sto lavorando su un'applicazione RCP Eclipse con localizzazione. Un utente dovrebbe essere in grado di cambiare al volo la lingua utilizzata nell'applicazione. Un riavvio dell'applicazione non dovrebbe avvenire durante questo cambio di lingua. Dovrebbe anche essere possibile alternare le lingue scritte da sinistra a destra e le lingue scritte da destra a sinistra.
C'è un (buon) modo per risolvere questo problema?
Soluzione
Secondo questa discussione :
La maggior parte delle librerie di eclissi carica le informazioni sulla lingua durante la creazione del widget. Se successivamente modifichi le impostazioni internazionali, devi riavviare eclipse per renderle effettive.
Potresti scrivere quel tipo di comportamento dinamico nel tuo programma SWT, tuttavia (quando le impostazioni locali cambiano, dovresti chiamare
setText (*)
su tutto : -)
Quindi questo non è attualmente gestito in modo dinamico a meno che tu non lo programmi tu stesso ...
Altre applicazioni rcp / plugins come Birt specifica le stesse istruzioni (es. " Riavvia Eclipse " alla fine ...)
Detto questo, un problema leggermente diverso è stato riscontrato in questo filetto :
cambia l'impostazione della lingua, riavvia, quindi esegui in quella lingua
Ho funzionato leggendo bug 222023 e imitando
org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction
L'ho provato manualmente:
- aggiunto "
-configuration @ user.home / .myapp / configuration
" su launcher.ini- aggiunto "
osgi.nl
" agli utenticonfig.ini
che risiedono lì e ha funzionato.Dato che posso accedere a
config-Location
tramitePlatform.getConfigurationLocation ()
immagino che potrebbe essere il modo.
Nota: aggiunta di " osgi.nl
" al webstart jnlp funziona troppo .
Altri suggerimenti
Dovresti chiamare setText su ogni widget, con il rispettivo testo. Poiché non esiste alcun mapping di variabili di testo sui widget, è necessario farlo anche manualmente.