这是工作中偶然碰到的一个问题,怕忘了所以赶紧写下来。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学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....
GWT-Ext是一个基于Google Web Toolkit (GWT)的JavaScript库,它提供了丰富的用户界面组件和强大的数据绑定机制,使得开发者能够构建出交互性强、视觉效果优秀的Web应用程序。本教程将深入探讨GWT-Ext的核心概念、...
GWT-Ext的核心在于其组件模型,它使得开发者可以快速地创建复杂的用户界面,同时保持代码的整洁和模块化。 在压缩包中,你可能找到了以下几类资源: 1. **jar包**:这些jar文件是GWT-Ext的库文件,包含了GWT-Ext的...
5. **国际化**:实现Gwt-Ext应用的多语言支持,包括资源文件的配置和语言切换。 在"进阶篇"中,你将接触到更复杂的技术和实践: 1. **性能优化**:探讨如何优化Gwt-Ext应用的性能,包括减少编译输出的大小,优化...
7. **国际化和本地化**:gwt-ext如何支持多语言环境,提供不同地区的语言版本。 8. **自定义组件**:如果博客中包含高级内容,可能会讲解如何基于gwt-ext现有的组件创建自定义组件,以满足特定项目需求。 9. **...
在深入探讨GWT-Ext之前,我们先了解一下GWT(Google Web Toolkit)和Ext Js的基础。GWT是一个开源的开发工具,允许开发者使用Java语言来编写客户端的Web应用程序,然后将其编译为优化过的JavaScript代码,以实现高...
8. **国际化与本地化**:Gwt-ext支持多语言应用,理解如何实现应用的语言切换和资源文件的管理。 在阅读《Gwt-ext学习笔记.pdf》这份资料时,应重点学习上述知识点,并通过实践项目来加深理解。同时,关注Gwt-ext的...
GWT-Ext-Tree 是一个基于 Google Web Toolkit (GWT) 的组件库,它扩展了 GWT 的功能,提供了一套强大的、可定制的树形控件。GWT 是一个用于构建富互联网应用程序(RIA)的 Java 开发框架,允许开发者使用 Java 语言...
《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...
【GWT-Ext 知识点详解】 GWT-Ext 是一个高级的网页开发控件库,它结合了 Google Web Toolkit (GWT) 和 ExtJs 的优势,为开发者提供了丰富的 UI 组件和强大的功能。GWT 是一个由 Google 开发的用于构建富互联网应用...
【GWT-Ext 知识点详解】 GWT-Ext 是一个基于 Google Web Toolkit (GWT) 和 ExtJS 的开源控件库,专为构建富互联网应用程序(RIA)提供强大的功能。它允许开发者使用纯 Java 语言进行界面开发,极大地提高了开发效率。...
GWT-Ext超级Widget功能类库是一个基于Google Web Toolkit (GWT)的扩展库,它为开发者提供了丰富的用户界面组件和强大的功能,旨在提升Web应用的用户体验和开发效率。GWT是一个开源框架,允许Java开发者使用Java语言...
然后,深入理解Gwt-Ext的组件体系,如布局管理、数据绑定、拖放功能、国际化支持等特性。此外,还需要掌握如何使用Gwt-Ext的API来创建和定制组件,以及如何在Java代码中调用这些组件。 在实际应用中,开发者可能会...
GWT-Ext 控件演示 GWT-Ext 控件演示
### GWT-EXT基础知识详解 #### 一、GWT与GWT-EXT简介 Google Web Toolkit (GWT) 是一款由Google开发的开源框架,它允许开发者使用Java语言编写前端应用,并将其编译成浏览器可识别的JavaScript和HTML。GWT提供了...
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.