`
dearwolf
  • 浏览: 345144 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Eclipse RCP中实现I18N的思考与疑问

阅读更多
在RCP产品中实现国际化,一般是两种方式。

方式一:

  1. public class Messages {  
  2.   private static final String BUNDLE_NAME = "test.messages";  
  3.   
  4.   private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle  
  5.         .getBundle(BUNDLE_NAME);  
  6.   
  7.   private Messages() {  
  8.   }    
  9.     ......  
  10.     ...... 
  11.   
  12.   public static String getString(String key) {  
  13.     try {  
  14.         return RESOURCE_BUNDLE.getString(key);  
  15.     } catch (MissingResourceException e) {  
  16.         return '!' + key + '!';  
  17.     }  
  18.   }  
  19. }  


方式二:

  1. public class Message extends NLS {  
  2.   // bundle name, refer to message properties  
  3.   private static final String BUNDLE_NAME = "test.messages";   
  4.     ......  
  5.     ......     
  6.   static {  
  7.     NLS.initializeMessages(BUNDLE_NAME, MessageTest.class);  
  8.   }  
  9. }  


Eclipse平台和LumaQQ用的都是方式二,其实现机制用到了OSGI,与一相比的优点是什么?

此外,这两种方式所支持的I18N并不是动态的,也就是说,当用户从控制面板中更改了语言以后,需要重启应用才能发现改变,但是要做到像Skype那样,提供菜单选项来更改语言,应该如何处理呢?

对于商业化的产品而言,为了改变产品的语言而重启肯定是不可取的,
也许有个办法可以做到,就是在一个地方集中处理所有的UI组件中的文字,当用户通过应用程序改变locale,就去刷新所有的UI组件,但还是没想好应该怎么做到这一点...

不知道谁有过这方面的经验,盼指教!
分享到:
评论
6 楼 dearwolf 2007-02-28  
多谢楼上的兄台,我苦恼的就是根据新的Locale加载字符资源,重绘所有界面这一点,还好目前项目出于下阶段开发的调研阶段,而且动态改变I18N也不是下个版本所需要考虑的。不过, 有没有RCP的大牛出来指点一下啊~~
5 楼 titan 2007-02-28  
如果要实现改变语言,而无需重启,可以考虑借鉴LookAndFeel的机制。
1. 所有的字符资源不能使用静态方式加载。
2. 当Locale改变时,根据新的Locale加载字符资源,要求所有界面重绘(重绘时重新根据key获取字符)
不知Swt是否有类似机制
4 楼 dearwolf 2007-02-27  
但是在产品中,哪个用户愿意看到因为改变语言而导致软件重启啊.....
3 楼 小疯子 2007-02-26  
我们在eclipse中[File]->[Switch Workspace]时,eclipse有一个save的restart的过程,LZ是不是可以参考一下。
2 楼 dearwolf 2007-02-18  
谢谢

大概也只能这样子作了...
1 楼 tiyi 2007-02-15  
动态修改。肯定要对所有的界面控件都有一个刷新方法,在刷新方法中重设文本。

相关推荐

    Eclipse rcp深入浅出中英文版及配套代码

    9. **国际化和本地化(i18n)**:Eclipse RCP支持多语言环境,书中会讲解如何实现应用的国际化和本地化。 10. **调试和测试**:书中还会介绍如何在Eclipse RCP环境中进行调试和编写单元测试。 11. **扩展点...

    eclipse rcp应用系统开发方法与实战源代码.zip

    在"eclipse rcp应用系统开发方法与实战源代码.zip"中,我们可以学习到以下关键知识点: 1. **Eclipse RCP架构**:理解Eclipse RCP的基础架构非常重要,包括插件(Plugins)、工作台(Workbench)、视图(Views)、...

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    《ECLIPSE+RCP应用系统开发方法与实战》这本书是高岗先生关于使用Eclipse RCP(Rich Client Platform)进行应用系统开发的一本实战指南。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建...

    Eclipse RCP 软件打包发布方法

    1. **新建“产品配置”**:在Eclipse中,你需要通过"File" -> "New" -> "Other" -> "Plug-in Development" -> "Product Configuration"来创建一个新的产品配置。这个配置定义了你的应用程序的基本属性,如应用程序的...

    Eclipse RCP中使用第三方包

    然而,在实际开发中,我们经常需要使用第三方包来实现某些功能,这篇文章将介绍如何在Eclipse RCP中使用第三方包。 首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这...

    Eclipse RCP与Spring OSGi技术详解与最佳实践

    《Eclipse RCP与Spring OSGi:技术详解与最佳实践》由资源的Eclipse专家亲自执笔,并得到了Eclipse官方技术社区的强烈推荐,权威性毋庸置疑!内容全面,系统讲解了利用Eclipse RCP和Spring OSGi开发大规模Java应用的...

    Eclipse RCP(富客户端平台)开发中文语言包_3.6.0.rar

    在Eclipse RCP中,国际化是通过资源bundle实现的,这些bundle包含特定语言的字符串和其他UI资源。开发者需要创建对应语言的.properties文件,并在代码中使用ResourceBundle来获取本地化的字符串。 8. **调试和测试...

    EclipseRcp 例子程序

    9. **国际化(i18n)**:Eclipse RCP支持多语言环境,开发者可以为应用程序添加多语言支持。例子程序可能包含如何配置和使用资源包(.properties文件)进行国际化。 10. **部署与打包**:最后,学习如何将Eclipse ...

    EclipseRCP教程

    在本教程中,我们将详细介绍 Eclipse RCP 的开发过程、技术要点和注意事项,以帮助开发者快速掌握 Eclipse RCP 的开发技术。 一、Eclipse RCP 的技术要点 Eclipse RCP 的核心技术包括: 1. SWT(Standard Widget ...

    eclipse RCP Plug-in开发自学教程.pdf

    RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码复用率。然而,Eclipse RCP的学习曲线可能较陡,需要一定的Java基础和Eclipse基础知识。 本教程旨在帮助读者自学Eclipse RCP插件式开发,...

    Eclipse RCP.pdf清晰版

    1. **创建新的Eclipse插件项目**: 在Eclipse中选择File -> New -> Other -> Plug-in Project。 2. **定义插件元数据**: 描述插件的基本信息,如名称、ID、版本号等。 3. **实现功能**: 开发插件的核心逻辑和用户界面...

    在Eclipse RCP中应用Spring OSGI 管理bean(一)

    标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...

    Eclipse Rcp

    虽然SWT/JFace开发基础知识是可选的,但是这些是Eclipse RCP开发中常用的图形用户界面技术,熟悉它们会对开发有所帮助。 Eclipse RCP应用的开发过程需要利用Eclipse插件开发工具PDE(Plug-in Development ...

    eclipse RCP mp3工程

    【描述】中的“非常棒的一个rcp应用程序”意味着这个工程展示了Eclipse RCP的强大功能和易用性,可能是通过集成MP3播放、管理、编辑等功能来实现的。"学习学习,快来下"则提示这个项目适合学习Eclipse RCP的开发者,...

    Eclipse RCP培训.zip

    5. **命令(Command)与手势(Handler)**:命令是Eclipse RCP中的动作抽象,手势则将命令与用户操作(如鼠标点击、键盘快捷键)关联起来。这种设计使得UI行为的实现与表现分离,易于维护。 6. **服务(Service)**...

    eclipse rcp check table

    以上就是Eclipse RCP中实现“Check Table”功能的一些核心概念和技术,实际开发中,开发者还需要考虑代码的可维护性、用户体验以及与其他组件的集成等因素。通过深入理解这些知识,可以更好地利用Eclipse RCP构建...

    Eclipse RCP 插件开发指南

    在 Eclipse RCP 中,JUnit 可以用来验证插件的行为是否符合预期。编写良好的单元测试有助于确保代码的质量和稳定性。 ##### JFace Data Binding JFace 数据绑定提供了将 UI 控件与模型对象自动同步的能力。通过...

    菜鸟EclipseRCP学习之路

    标题中的“菜鸟Eclipse RCP学习之路”表明我们将探讨的是关于Eclipse Rich Client Platform(RCP)的基础知识,这是Eclipse框架下用于构建桌面应用程序的一个强大的开发平台。Eclipse RCP提供了一组可重用的组件和...

    Eclipse RCP 应用系统开发方法与实战

    7. **SQL在Eclipse RCP中的应用**:在"第12章+SQL.rar"中,可能详细讲解了如何在RCP应用中集成数据库访问。这可能包括使用JDBC驱动连接数据库、执行SQL查询、处理结果集以及事务管理等内容。 8. **实战案例**:...

    Eclipse RCP应用系统开发方法与实战(源代码)

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序。...通过逐步学习并实践这些章节中的源代码,开发者能够全面掌握RCP开发技术,从而在实际项目中发挥出Eclipse RCP的潜力。

Global site tag (gtag.js) - Google Analytics