Динамическое переключение языков в приложении Eclipse RCP
-
07-07-2019 - |
Вопрос
Я работаю над приложением Eclipse RCP с локализацией.Пользователь должен иметь возможность изменять язык, используемый в приложении, "на лету".Перезапуск приложения не должен происходить во время этого переключения языка.Также должна быть возможность переключения между языками, написанными слева направо, и языками, написанными справа налево.
Есть ли (хороший) способ решить эту проблему?
Решение
Согласно этот поток:
Большинство библиотек eclipse загружают информацию о своем языке при создании виджета.Если вы впоследствии измените свой языковой стандарт, вам нужно перезапустить eclipse, чтобы он вступил в силу.
Однако вы могли бы записать такое динамическое поведение в свою собственную SWT-программу (при переключении локали, тебе нужно будет позвонить
setText(*)
на всем :-)
Так что в настоящее время это не удается динамически если только вы не запрограммируете это сами...
Другое приложение rcp / plugins как Бирт укажите те же инструкции (т. е."Перезапустить 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 тоже работает.
Другие советы
Вам нужно будет вызывать setText для каждого виджета с соответствующим текстом. Поскольку в виджетах нет сопоставления текстовой переменной, вам также придется делать это полностью вручную.