Changement de langue dynamique dans une application Eclipse RCP
-
07-07-2019 - |
Question
Je travaille sur une application Eclipse RCP avec localisation. Un utilisateur devrait pouvoir changer la langue utilisée dans l'application à la volée. Aucun redémarrage de l'application ne doit 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 un (bon) moyen de résoudre ce problème?
La solution
Selon ce fil :
La plupart des bibliothèques eclipse chargent leurs informations de langue sur la création de widgets. Si vous modifiez vos paramètres régionaux par la suite, vous devez redémarrer eclipse pour que ceux-ci prennent effet.
Cependant, vous pouvez écrire ce type de comportement dynamique dans votre propre programme SWT (lorsque les paramètres régionaux changent, , vous devez appeler
setText (*)
pour tout : -)
Donc, cela n’est actuellement pas géré de manière dynamique , sauf si vous le programmez vous-même ...
Autre application rcp / plugins comme Birt spécifiez les mêmes instructions (par exemple, "Redémarrez Eclipse" à la fin ...)
Cela dit, un problème légèrement différent a été défini dans ceci. fil :
changez le réglage de la langue, redémarrez-le puis exécutez-le dans cette langue
Je l'ai fait fonctionner en lisant le bogue 222023 et en mimant
org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction
Je l'ai essayé manuellement:
- ajouté "
-configuration @ user.home / .myapp / configuration
" au launcher.ini- ajouté "
osgi.nl
" aux utilisateursconfig.ini
qui y résident et cela a fonctionné.Puisque je peux accéder à
config-Location
viaPlatform.getConfigurationLocation ()
, je suppose que cela pourrait être le chemin.
Remarque: ajout du " osgi.nl
" sur le site Web jnlp fonctionne également .
Autres conseils
Vous devez appeler setText sur chaque widget, avec le texte correspondant. Puisqu'il n'y a pas de mappage de variable de texte sur les widgets, vous devrez le faire aussi manuellement.