【问题标题】:Dynamic language switching in an Eclipse RCP applicationEclipse RCP 应用程序中的动态语言切换
【发布时间】:2010-11-28 18:02:28
【问题描述】:

我正在开发一个具有本地化功能的 Eclipse RCP 应用程序。用户应该能够即时更改应用程序中使用的语言。在此语言切换期间不应重新启动应用程序。还应该可以在从左到右书写的语言和从右到左书写的语言之间切换。
有没有(好的)方法来解决这个问题?

【问题讨论】:

  • 困难在于我不相信你可以自动调用setText(*)...

标签: java localization internationalization eclipse-rcp rcp


【解决方案1】:

根据this thread:

大多数 Eclipse 库在创建小部件时会加载它们的语言信息。如果之后更改语言环境,则需要重新启动 eclipse 才能使其生效。

您可以将这种动态行为写入您自己的 SWT 程序,但是(当区域设置切换时,您需要在所有内容上调用 setText(*) :-)

因此,除非您自己对其进行编程,否则当前不是动态管理的...
其他 rcp/plugins 应用程序like Birt 指定相同的指令(即“重新启动 Eclipse”在末尾...)


也就是说,this thread 中设置了一个稍微不同的问题:

切换语言设置,重启,然后以该语言运行

我通过阅读 bug 222023 和模仿 org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction 来实现它

我手动试了一下:

  • 在 launcher.ini 中添加了“-configuration @user.home/.myapp/configuration”
  • 向居住在那里的用户config.ini 添加了“osgi.nl”,并且成功了。

因为我可以通过Platform.getConfigurationLocation() 访问config-Location,我想这可能就是这样。

注意:将“osgi.nl”添加到 webstart jnlp works too。

【讨论】:

  • 是否可以自动获取“一切”(调用 setText(*))?
【解决方案2】:

您需要在每个小部件上调用 setText,并使用相应的文本。由于小部件上没有文本变量映射,因此您也必须完全手动执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2013-09-29
    • 2013-09-14
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多