这是工作中偶然碰到的一个问题,怕忘了所以赶紧写下来。GWT-EXT版本是2.1.1。
两天前BSA(业务分析团队)提出一个bug,说消息框MessageBox不但正文内容需要国际化,两个按钮"Yes"和"No"也需要国际化,比如简体中文的时候变成“是”“否”。这个需求在简体中文的情况下可以满足,但在繁体界面下就会变成默认的"Yes""No"。因为半年多来很少碰GWT相关的项目,问了几个人,看了些代码,发现MessageBox并未使用GWT的普通国际化方案,即:
import com.google.gwt.i18n.client.Constants;
interface LanguageConstants extends Constants {
@Key("text1")
String getText1();
...
}
因此很自然想到是框架源码的问题,但出于稳定性考虑(已经进入二期UAT,系统级修改能免则免),想干脆custom按钮的label,在代码里hardcode就好了。google了一下,看见一个MessageBoxConfig的东西,相关代码见:
http://www.gwt-ext.com/forum/viewtopic.php?f=5&t=4083
可惜在GXT2.11里已经没有了,只好作罢。
现下只能修改源码了,无奈无人指导,只能在com.extjs.gxt.ui.client包里上下逡巡,寻找线索,猛然看见com.extjs.gxt.ui.client.messages,心中一动,本能地点进去看,哈,包里只有一个java,XMessages.class,其它都是properties文件,随便打开一个,第一眼就看到了下面几行:
# MessageBox
messageBox_ok=Ok
messageBox_cancel=Cancel
messageBox_yes=Yes
messageBox_no=No
messageBox_close=Close
显然,我们的繁体界面的MessageBox无法获得正确的本地化label,是因为com.extjs.gxt.ui.client.messages包里没有配备相应的properties文件,而因为存在XMessages_zh.properties,所以简体的情况下会正确显示。
至此,解决方案很明了了,把我们项目支持的几种语言都制作相应的XMessage_xx.properties加进这个包里(如果原来没有的话),重新编译,放回maven repo,ok already...
-------------------------------------------------------------------
经同事提醒,其实不用重新编译GXT源码也可以实现语言文件的增加和覆盖。方法很简单,在项目里手动建立一个重名的包再加入语言文件就行了。这里我们只需在项目里新建一个包:
com.extjs.gxt.ui.client.messages,然后加入所需的语言properties,重名的文件可以覆盖框架内的properties。
分享到:
相关推荐
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它非常适用于进行纯 Java 语言的富 Internet 应用的快速开发。本系列文章将详细讲解 GWT-Ext 的基本结构和功能特点,并通过代码示例...
Gwt-ext学习笔记之基础篇、安装、配置、例子。
最好的gwt-ext学习资料,适合初学者。
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它扩展了 GWT,在 ExtJs 的基础上实现了有排序功能的表格(Grid)、分页、过滤,支持有拖拽功能的树,高度可定制的组合下拉框...
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它非常适用于进行纯 Java 语言的富 Internet 应用的快速开发。本系列文章将详细讲解 GWT-Ext 的基本结构和功能特点,并通过代码示例...
gwt-ext-选课系统gwt-ext-选课系统gwt-ext-选课系统gwt-ext-选课系统
Gwt-ext学习笔记,Gwt-ext学习笔记,Gwt-ext学习笔记
GWT-Ext 控件演示 GWT-Ext 控件演示
GWT-Ext 2.0.5 has been released. Grab the distribution from the Downloads area. GWT-Ext 2.0.5 supports GWT 1.5 final (1.5.2), Firefox3 and Chrome.
gwt-ext-treegwt-ext-treegwt-ext-treegwt-ext-treegwt-ext-tree
NULL 博文链接:https://kenter1643.iteye.com/blog/323084
个人学习收集网上资料辛苦整理而成; GWT-Ext 整理 chm java js GWT-Ext资料整理.chm
这是一篇非常好的GWT-Ext的文章,讲解非常详细,从入门的讲解示例再到精通一应俱全,学习GWT-Ext的朋友可以看看
GWT-Ext_体验之旅.doc GWT-Ext_体验之旅.doc GWT-Ext_体验之旅.doc
各种各样的资源找齐还是要点时间的: 1、下载gwt-ext2.04解压 2、解压本资源,导入Eclipse 3、将解压gwt-ext2.04得到一jar包设入classpath 4、按载图编辑你的src 文件夹
gwt-ext相关jar包及资源
一份不错的gwt-ext培训教程,值得一看!
个人写的gwt-ext教程,希望对大家有用