2009-09-16 12 views
7

Sto lavorando su un'applicazione Eclipse RCP con localizzazione. Un utente dovrebbe essere in grado di cambiare la lingua utilizzata nell'applicazione al volo. Un riavvio dell'applicazione non dovrebbe avvenire durante questo cambio di lingua. Dovrebbe anche essere possibile passare da una lingua scritta da sinistra a destra e da una lingua scritta da destra a sinistra.
C'è un (buono) modo per risolvere questo problema?Cambio di lingua dinamico in un'applicazione Eclipse RCP

+0

La difficoltà è che non credo che si possa chiamare 'setText (*)' su tutto automaticamente ... – VonC

risposta

4

Secondo this thread:

La maggior parte delle librerie di eclissi di carico fino loro informazioni lingua sulla creazione di widget. Se in seguito cambi la tua localizzazione, devi riavviare eclipse per renderla effettiva.

Si potrebbe scrivere quel tipo di comportamento dinamico nel proprio programma di SWT, però (quando gli interruttori di locale, avresti bisogno di chiamare setText(*) su tutto :-)

quindi questo non è attualmente gestita in modo dinamico a meno che non si programma da soli ...
Altri RCP/plugins applicazione like Birt specificare le stesse istruzioni (vale a dire "Restart Eclipse" alla fine ...)


0.123.

Detto questo, un problema leggermente diverso è stato fissato in this thread:

interruttore l'impostazione della lingua, riavvio, e quindi eseguire in quella lingua

ho preso a lavorare con la lettura bug 222023 e imitando org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction

ho provato manualmente:

  • aggiunto "-configuration @user.home/.myapp/configuration" al launcher.ini
  • aggiunto "osgi.nl" agli utenti config.ini residenti lì e ha funzionato.

Dal momento posso accedere al config-Location via Platform.getConfigurationLocation() immagino che potrebbe essere la strada.

Nota: l'aggiunta di "osgi.nl" al webstart JNLP works too.

+0

È possibile ottenere automaticamente "tutto" (per richiamare setText (*) su)? – zizzo

1

È necessario chiamare setText su ciascun widget, con il rispettivo testo. Dal momento che non esiste una mappatura delle variabili di testo sui widget, è necessario farlo anche manualmente.