2009-09-16 8 views
7

Je travaille sur une application Eclipse RCP avec localisation. Un utilisateur devrait être capable de changer la langue utilisée dans l'application à la volée. Un redémarrage de l'application ne doit pas avoir lieu pendant ce changement de langue. Il devrait également être possible de basculer entre les langues écrites de gauche à droite et les langues écrites de droite à gauche.
Existe-t-il une (bonne) façon de résoudre ce problème?Commutation de langage dynamique dans une application Eclipse RCP

+0

La difficulté est que je ne crois pas que vous pouvez appeler 'setText (*)' sur tout automatiquement ... – VonC

Répondre

4

Selon this thread:

La plupart des bibliothèques Eclipse charger leur langue d'info sur la création d'un widget. Si vous modifiez vos paramètres régionaux par la suite, vous devez redémarrer Eclipse pour qu'elle prenne effet.

Vous pouvez écrire ce genre de comportement dynamique dans votre propre programme de SWT, cependant (lorsque les commutateurs de paramètres régionaux, vous aurez besoin d'appeler setText(*) sur tout :-)

Donc, ce n'est pas actuellement géré dynamiquement à moins de programmer vous-même ...
Autres applications/plugins rcp like Birt spécifier les mêmes instructions (par exemple "Redémarrer Eclipse" à la fin ...)


Cela dit, un problème légèrement différent a été mis en this thread:

Changer le réglage de la langue, le redémarrage, puis exécutez dans cette langue

je suis arrivé à travailler en lisant bug 222023 et mimer org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction

Je l'ai essayé manuellement:

  • ajouté "-configuration @user.home/.myapp/configuration" à launcher.ini
  • ajouté "osgi.nl" aux utilisateurs config.ini résidant là et cela a fonctionné.

Depuis que je peux accéder au config-Location via Platform.getConfigurationLocation() je suppose que cela pourrait être le chemin.

Note: ajouter "osgi.nl" au webstart jnlp works too.

+0

Est-il possible d'obtenir "tout" (pour appeler setText (*) on) automatiquement? – zizzo

1

Vous devez appeler setText sur chaque widget, avec le texte correspondant. Comme il n'y a pas de mappage de variable de texte sur les widgets, vous devrez également le faire manuellement.

Questions connexes