我有一个SWT应用程序,目前相当复杂。我想让应用程序能够在不重新启动的情况下切换界面语言。什么是最好的方式来做到这一点?swt无缝语言更改
1
A
回答
2
的Control API(这是所有SWT组件的超类)有一个方法重绘(),其中,我认为,要求再次创造内容的方法和应提供你正在寻找的结果。
编辑:我只是通过制作一个按钮并在每次推后将它的文本设置为一个随机数字来测试它,它没有任何美学副作用。
0
有典型的三个部分的解决方案:
- 语言文件
- 用于控制
- 动态文本静态文本。
语言文件只是普通的Java属性文件 - 请参阅java.text
包。当你改变语言时,你只需打开一个新的语言环境。
控件的静态文本 - 例如按钮和标签 - 通常通过将一个关键字与每个应该能够改变语言的控件关联来处理。当你想改变语言时,你递归地浏览控件,在当前语言环境中查找新文本并设置新值...
动态文本是...其他所有...这通常被处理通过使用格式字符串 - 请参阅String.format(...) - 再次从当前语言环境中检索。
因为还有其他的东西可能依赖于当前的语言 - 例如,图标,图像,媒体剪辑等...
相关问题
- 1. 无缝URL更改
- 2. 更改语言
- 3. 更改语言
- 4. 更改语言
- 5. Django:i18n - 更改语言
- 6. Yii2 - 更改语言
- 7. TinyMCE更改语言
- 8. FolderBrowserDialog更改语言
- 9. 更改语言5
- 10. Ajax更改语言
- 11. NSSpeechSynthesizer更改语言
- 12. Android更改语言
- 13. 更改Behat语言
- 14. Android - 更改语言环境(语言)
- 15. 无法更改语言的Rails? (Spree)
- 16. 无法在Laravel中更改语言
- 17. 无法更改的Joomla预设语言
- 18. NetBeans 7.1 - 无法更改为UI语言
- 19. 防止语言环境更改后的应用语言更改
- 20. 作为设备语言更改更改应用程序语言
- 21. 更改应用语言更改的文本框输入语言
- 22. 无缝页面随AJAX更改
- 23. 更改语言更改徽标Opencart
- 24. 更改Flex组件语言
- 25. dateDropdown更改语言属性
- 26. 更改Android语言监听
- 27. zf2动态更改语言
- 28. android更改语言日期
- 29. 更改ReCaptcha语言OnClick
- 30. TabActivity不会更改语言
因此,每个组件都必须具有某种类型的侦听器,在重绘过程中被调用? – bvk256
您只需要在应该更改语言的组件上有一个侦听器。当该监听器被触发时,只要组件是最终的,就可以在窗口中设置其他组件的文本(或任何其他特征)。 –
更改每个组件的特性后,只需在每个组件上调用redraw()方法即可无缝更改。 –