`
jeff312
  • 浏览: 77306 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

如何国际化GWT-EXT 的MessageBox

    博客分类:
  • J2EE
阅读更多
这是工作中偶然碰到的一个问题,怕忘了所以赶紧写下来。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。
分享到:
评论
1 楼 yx200404 2011-04-20  
恩 收藏...嘻嘻

相关推荐

    Gwt-ext学习笔记之基础篇

    ### Gwt-ext学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....

    gwt-ext培训教程

    GWT-Ext是一个基于Google Web Toolkit (GWT)的JavaScript库,它提供了丰富的用户界面组件和强大的数据绑定机制,使得开发者能够构建出交互性强、视觉效果优秀的Web应用程序。本教程将深入探讨GWT-Ext的核心概念、...

    gwt-ext相关jar包及资源

    GWT-Ext的核心在于其组件模型,它使得开发者可以快速地创建复杂的用户界面,同时保持代码的整洁和模块化。 在压缩包中,你可能找到了以下几类资源: 1. **jar包**:这些jar文件是GWT-Ext的库文件,包含了GWT-Ext的...

    Gwt-Ext基础-中级-进阶

    5. **国际化**:实现Gwt-Ext应用的多语言支持,包括资源文件的配置和语言切换。 在"进阶篇"中,你将接触到更复杂的技术和实践: 1. **性能优化**:探讨如何优化Gwt-Ext应用的性能,包括减少编译输出的大小,优化...

    gwt-ext 实例

    7. **国际化和本地化**:gwt-ext如何支持多语言环境,提供不同地区的语言版本。 8. **自定义组件**:如果博客中包含高级内容,可能会讲解如何基于gwt-ext现有的组件创建自定义组件,以满足特定项目需求。 9. **...

    Gwt-Ext学习笔记之进级篇

    在深入探讨GWT-Ext之前,我们先了解一下GWT(Google Web Toolkit)和Ext Js的基础。GWT是一个开源的开发工具,允许开发者使用Java语言来编写客户端的Web应用程序,然后将其编译为优化过的JavaScript代码,以实现高...

    Gwt-ext学习笔记

    8. **国际化与本地化**:Gwt-ext支持多语言应用,理解如何实现应用的语言切换和资源文件的管理。 在阅读《Gwt-ext学习笔记.pdf》这份资料时,应重点学习上述知识点,并通过实践项目来加深理解。同时,关注Gwt-ext的...

    gwt-ext-tree

    GWT-Ext-Tree 是一个基于 Google Web Toolkit (GWT) 的组件库,它扩展了 GWT 的功能,提供了一套强大的、可定制的树形控件。GWT 是一个用于构建富互联网应用程序(RIA)的 Java 开发框架,允许开发者使用 Java 语言...

    GWT-EXT2.0最佳实践教程,源代码打包供下载

    《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...

    非常好的gwt-ext培训教程

    【GWT-Ext 知识点详解】 GWT-Ext 是一个高级的网页开发控件库,它结合了 Google Web Toolkit (GWT) 和 ExtJs 的优势,为开发者提供了丰富的 UI 组件和强大的功能。GWT 是一个由 Google 开发的用于构建富互联网应用...

    GWT-Ext_体验之旅.doc

    【GWT-Ext 知识点详解】 GWT-Ext 是一个基于 Google Web Toolkit (GWT) 和 ExtJS 的开源控件库,专为构建富互联网应用程序(RIA)提供强大的功能。它允许开发者使用纯 Java 语言进行界面开发,极大地提高了开发效率。...

    GWT-Ext超级Widget功能类库

    GWT-Ext超级Widget功能类库是一个基于Google Web Toolkit (GWT)的扩展库,它为开发者提供了丰富的用户界面组件和强大的功能,旨在提升Web应用的用户体验和开发效率。GWT是一个开源框架,允许Java开发者使用Java语言...

    Gwt-Ext学习笔记之基础篇- www.hxiaseo.cn技术网站

    然后,深入理解Gwt-Ext的组件体系,如布局管理、数据绑定、拖放功能、国际化支持等特性。此外,还需要掌握如何使用Gwt-Ext的API来创建和定制组件,以及如何在Java代码中调用这些组件。 在实际应用中,开发者可能会...

    GWT-Ext 控件演示

    GWT-Ext 控件演示 GWT-Ext 控件演示

    (转载)GWT -EXT学习笔记-基础

    ### GWT-EXT基础知识详解 #### 一、GWT与GWT-EXT简介 Google Web Toolkit (GWT) 是一款由Google开发的开源框架,它允许开发者使用Java语言编写前端应用,并将其编译成浏览器可识别的JavaScript和HTML。GWT提供了...

    需要GWT-Ext 2.0.5来下

    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.

Global site tag (gtag.js) - Google Analytics