- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用EclipseNLS来实现插件的多语.doc.doc
利用Eclipse NLS来实现插件的多语
NLS是Eclipse中负责实现多语的一个类,利用这个类来实现插件的多语只需要写一个Message类来继承NLS类,然后利用NLS的方法去配置文件中寻找参数对应的值进行绑定。
例如:
在Message类中指定一个BUNDLE_NAME作为key-value对所在文件的路径信息(注释中的$NON-NLS-1$是告诉编译器该行代码的第一个String类型的变量是一个tag或者keyword,不需要被本地化)。
例如BUNDLE_NAME = “example.messages”,则NLS的initializeMessages方法会将类Message中的String成员key_1,key_2与BUNDLE_NAME的文件中写的key-value对中的key_1, key_2进行绑定。
因此message.properties应保存key_1 key_2具体的值:
?? NLS中载入资源的基本思想是通过对资源文件的顺序载入,保证优先级高的资源优先被载入到Message类中。按当前语种(如zh_CN会尝试载入_zh和_zh_CN资源)优先、默认资源(即不添加任何语种的资源文件)最后的原则,顺序载入资源文件。
?????? 为了保证Meesage中的字段只被设一次值,NLS构造了Map属性名,字段结构,初始化时置入所有FieldName, Field,当Properties载入时,将使用一个已赋值的约定标记,记为Flag与原值交换,若交换出的是字段(初始值),那么利用反射进行首次设值;若交换出的是NULL则表示Messages类中可能缺失了某多语资源的定义,不做处理;若交换出的是Flag,表示该字段已经赋值,不做处理。
?????? 最后将所有非Flag的属性名进行一次补偿设置,将值设为NLS资源缺失的提示文本。
综上所述,利用NLS实现多语的步骤:
建立一个Message.class,将message文件的路径写到BUNDLE_NAME中(messages.properties or messages_CN.properties);
将需要多语的变量作为public static的String写在Message.class中;
调用NLS.initializeMessages方法绑定该类与messages.properties;
将多语变量的值写到message中(message.properties or message_CN.properties)。
还可以使用Eclipse将写好的Java类文件进行字符串的提取,动态生成Message类及.properties文件,步骤如下所示:
?????? 1.在项目、包或者源代码文件上点击右键,使用Source/Externalize Strings...进行字符串的提取
2.此时弹出一个可提取资源的列表,选择需要提取的类文件
?????? 3.其中Enter common prefix for generated keys(optional)中的内容是多语资源Key的前缀,不建议修改;下方列出的key值对应了资源文件的key值,请修改为更易读的名称;Acessor class指定访问器类和资源文件,可以通过configure...按钮进行编辑
?????? 4.最后可以预览代码的变更,点击Finish完成
?????? 5.添加多语的.properties文件,并键入对应的key值
如果想要实现在值中插入数据:比如key_1=Hi **, this is key1! 而**是程序中动态载入的某个数据,则需要在.properties文件中以{index}的形式写入。例如:
然后在Message.class文件中调用NLS的String bind(String message, Object binding)方法:
该方法负责将String.valueOf(binding)插入到message中。
注:如果需要插入两个变量则调用NLS.bind(String message, Object binding1, Object binding2);如果需要插入多个变量则调用NLS.bind(String message, Object[] bindings)。
您可能关注的文档
- 何谓方法工程.doc
- 作品要求、评分标准、参赛项目计划书模板.doc
- 作文教学我爱(OO).ppt
- 作者及审稿人投审稿系统说明.doc
- 你的理想是.ppt
- 使p=1-西安建筑科技大学.ppt
- 使用WinForms和WPF开发GUI应用程序.ppt
- 使用指南-中核建材电子采购平台.doc
- 使用方法ppt-广西民族大学图书馆-首页.ppt
- 使用无类路由和CIDR-西安思源学院.ppt
- 2025年中药学类之中药学(中级)题库综合试卷B卷附答案.docx
- 2022-2025年执业药师之西药学专业一通关提分题库(考点梳理).docx
- 2025年山西省临汾市高考英语适应性试卷(二).docx
- 2024-2025学年下学期初中地理人教版七年级期中必刷常考题之亚洲的人文环境.docx
- 2025年湖南省常德市高考英语二模试卷.docx
- 2025年辽宁省县级重点高中高考英语二模试卷.docx
- 2024-2025学年下学期初中数学北师大新版八年级期中必刷常考题之简单的图案设计.docx
- 2025年新疆喀什地区高考英语适应性试卷(4月份).docx
- 2024-2025学年下学期初中数学北师大版七年级期中必刷常考题之等可能事件的概率.docx
- 2025年上海市奉贤区高考英语二模试卷.docx
最近下载
- 软件测试工程面试常见问题介绍.docx VIP
- SMTC 5 320 040 与空气接触橡胶材料要求(20130531).pdf VIP
- STEAM教育理念在小学科学教学中的融合教学研究课题报告.docx
- CBNData&阿里健康-2019线上体检消费报告-2019.12-23页.pdf
- 电子社Altium Designer 22(中文版)电子设计速成实战宝典教学课件第5章-原理图开发环境及设计.pptx VIP
- 江苏苏州高新区投资促进有限公司招聘考试真题2024.docx VIP
- 涟源市党校物业保洁服务方案.docx VIP
- 化工过程安全管理AQ3034培训.pptx
- 软件项目质量保证计划.doc VIP
- AP微观经济学 2019年真题 (选择题+问答题) AP Microeconomics 2019 Released Exam and Answers (MCQ+FRQ).pdf VIP
文档评论(0)