`
wolfmaster
  • 浏览: 159213 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2国际化

 
阅读更多

1.国际化(Internationalization),使程序在不改动代码的情况下,从一种语言切换到另外一种语言

 

2.java 内置国际化

    1.定义国际化文件,

      message.properties(没有找到对于国际化,使用此配置)

       

t1=test1 \u4e2d\u6587-\u4e2d\u56fd,{0},{1}
t2=test2 \u4E2D\u6587-\u4E2D\u56FD

 

      message_zh_CN.properties

 

t1=test1 \u4e2d\u6587-\u4e2d\u56fd,{0},{1}
t2=test2 \u4E2D\u6587-\u4E2D\u56FD

 

      message_en_US.properties

 

t1=test1 en_US,{0},{1}
t2=test2 en_US

 

    2.指定当前语言 Locale locale1 = Locale.SIMPLIFIED_CHINESE;

    3.获得当前语言的资源 ResourceBundle bundle = ResourceBundle.getBundle("message",locale1);

    4.获得当前资源中指定key的值 System.out.println("value:"+bundle.getString("key")); 

 

3.struts2 对国际化提供很好的支持

    1.定义国际化文件,同上

    2.struts.xml,添加支持<constant name="struts.custom.i18n.resources" value="message"/> 

    3.可以指定默认使用语言,如<constant name="struts.locale" value="zh_CN"/> 

    4.页面中引用

         

	普通文本  使用国际化<br />
	<s:text name="t1">  
	    <s:param>param1</s:param>  
	    <s:param>param2</s:param>
	</s:text>
	<br /> 
	<s:text name="t2"/> 

	<hr /> 
	 表单标签  使用国际化<br />
	<s:textfield name="name1" label="普通text"/> <br /> 
	<s:textfield name="name2" key="t1"/> <br />
	<s:textfield name="name3" key="t2"/> 

    5.在Action中使用

         1.自定义action,继承ActionSupport,更好的使用本地化方法

         2.代码如下

          

public class HomeAction extends ActionSupport
{
    /** serialVersionUID Auto-generated field comment */
    private static final long serialVersionUID = 1L;
    
    private Logger log = Logger.getLogger(HomeAction.class);
    public String result = "success";
    public String t1;
    public String t2;
    
    public String index()
    {
        log.info("start index.jsp");
        
        String[] arr = new String[]{"zhangsan","lisi"};
        t1 = this.getText("t1", arr);
        t2 = this.getText("t2");
        
        //ResourceBundle bundle = this.getTexts("message");
        //System.out.println(bundle.getString("c"));
        return result;
    }
}

       6.使国际化生效,可以手动配置,struts.xml默认。还可以修改浏览器器,默认语言首选项。但这些不是太死板,就是太繁琐。struts,提供了request_locale参数可以动态改变语言,第一次请求后会保存在WW_TRANS_I18N_LOCALE,session中

 

目前为止:简单的国际化可以,如果想把配置文件细分可以,分为,全局级别,包级别,类级别,详细可以参考http://rubbing-struts2.iteye.com/blog/1661482

 

注意:对于中文文件,要进行unicode 到 asiic 转码,我的所有都统一为utf-8

1.中文资源保存为UTF-8

   src_message_zh_CN.properties

t1=test1 中文-中国,{0},{1}
t2=test2 中文-中国

 

2.使用native2ascii.exe -encoding utf-8  src_message_zh_CN.properties message_zh_CN.properties

         

3.转码后目标文件开头会有一个多余识别码(\ufeff),需要手动删掉。

 

\ufefft1=test1 \u4e2d\u6587-\u4e2d\u56fd,{0},{1}
t2=test2 \u4e2d\u6587-\u4e2d\u56fd

 

 

 

分享到:
评论

相关推荐

    struts2国际化例子源码

    在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...

    Struts2国际化Demo

    在“Struts2国际化Demo”中,我们主要探讨的是如何利用Struts2框架实现应用的多语言支持,即国际化(i18n)功能。国际化是一种设计方法,使得软件能够根据不同地区的语言和文化习惯进行调整,使得全球用户都能无障碍...

    STRUTS2国际化的问题

    ### STRUTS2国际化的问题 #### 一、Struts2国际化的概述 Struts2作为一个流行的Web应用框架,为了满足全球用户的使用需求,提供了一系列国际化(Internationalization, 简称I18N)的支持。这包括了如何在配置文件...

    struts2国际化+简单的标签+用户注册和登录

    总的来说,这个项目提供了一个基础的Struts2应用实例,展示了如何实现国际化、使用Struts2标签库,以及创建简单的用户注册和登录功能,尽管它并不涉及实际的数据存储。对于学习和理解Struts2框架的运作机制,这是一...

    Struts2国际化的实现原理

    Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解

    STRUTS2国际化

    Struts2的国际化功能,简称i18n,允许应用程序根据用户的语言和地区提供相应的界面和信息,无需修改核心代码。这一特性使得软件更具有全球化的适应性,满足不同文化和语言背景的用户需求。 **5.1 Struts2国际化原理...

    struts2国际化

    Struts2提供了一个默认的国际化资源文件`struts2-i18n.properties`,其中包含了框架自身的提示信息。开发者可以根据需要覆盖这些默认值,或者为特定的语言创建自定义的资源文件。 4. **Action中的国际化** 在...

    struts2 国际化

    在Struts2中,实现国际化是一项重要的功能,使得开发者可以为全球用户提供符合他们本地习惯的界面。 首先,国际化的核心是资源文件,通常命名为`properties`格式,如`messages.properties`。这些文件存储了应用中的...

    Struts1 和 Struts 2 国际化全局资源

    Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...

    struts2国际化 标签 页面 处理类

    Struts2是一个流行的Java web框架,它提供了强大的国际化支持,帮助开发者创建多语言的应用程序。在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们...

    struts2国际化测试

    在“struts2国际化测试”这个主题中,我们将探讨如何在Struts2框架下实现应用程序的国际化功能。 首先,国际化(i18n,i代表第9个字母n,18是n到i的字母数,表示国际化)是使软件能够适应不同语言和文化背景的重要...

    struts2国际化MyEclipse开发

    struts2国际化MyEclipse开发struts2国际化MyEclipse开发童叟无欺

Global site tag (gtag.js) - Google Analytics