Динамическое переключение языков в приложении Eclipse RCP - PullRequest
7 голосов
/ 16 сентября 2009

Я работаю над приложением Eclipse RCP с локализацией. Пользователь должен иметь возможность изменять язык, используемый в приложении, на лету. Перезапуск приложения не должен происходить во время этого переключения языка. Также должна быть возможность переключения между языками, написанными слева направо, и языками, написанными справа налево.
Есть (хороший) способ решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 16 сентября 2009

Согласно этой теме :

Большинство библиотек eclipse загружают информацию о своем языке при создании виджета. Если после этого вы измените локаль, вам нужно перезапустить затмение, чтобы оно вступило в силу.

Вы можете написать такое динамическое поведение в своей собственной программе SWT, однако (когда локаль переключается, вам нужно будет вызвать setText(*) для всего : -)

Так что это в настоящее время не управляется динамически , если вы сами не запрограммируете ...
В других приложениях rcp / plugins , таких как Birt , указываются те же инструкции (т. Е. "Restart Eclipse" в конце ...)


Тем не менее, в этой теме была установлена ​​несколько иная проблема:

переключить настройку языка, перезапустить, а затем запустить на этом языке

Я получил его на работу, прочитав ошибка 222023 и подражая org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction

Я попробовал это вручную:

  • добавлено "-configuration @user.home/.myapp/configuration" в launcher.ini
  • добавил "osgi.nl" для пользователей config.ini, проживающих там, и это сработало.

Так как я могу получить доступ к config-Location через Platform.getConfigurationLocation(), я думаю, что это может быть способом.

Примечание: добавление "osgi.nl" в веб-запуск jnlp тоже работает .

1 голос
/ 27 июля 2012

Вам потребуется вызывать setText для каждого виджета с соответствующим текстом. Поскольку в виджетах нет сопоставления текстовой переменной, вам также придется делать это полностью вручную.

...