国际化开发i18n(internationalization)

动态数据国际化

*    软件实现国际化,需具备哪些特征:
        对于程序中固定使用的文件元素,例如:菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务。
        对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。
*    对于软件中的菜单栏、导航条、错误提示信息,状态信息这些固定不变的文本信息,可以把它们写在一个properties文件中,并根据不同国家编写不同的properties文件,这 一组properties文件称之为一个资源包。
*    在JavaAPI中提供了 一个ResourceBundle类用于描述一个资源包,并且ResourceBundle类提供了相应的方法getBundle,这个方法可以根据来访者的国家地区自动获取与之对应的资源文件予以显示。
实例代码:
第一步:创建资源文件, 资源文件的格式一定要是 “=”连接的
图片
中文资源时要转
方法1:在命令行窗口,输入 native2ascii,再输入要转的汉字
方法2:直接利用Ecplipse,在properties文件中,在Preproties中输入好中文件,切换到Source中,就会出现转换后的ASCII.


第二步(1):在java中的用法
public class Demo1 {
        public static void main(String[] args) {
            ResourceBundle bundler= ResourceBundle.getBundle("cn.itcast.resource.MessageResource",  Locale.CHINA);
            String username= bundler.getString("username");
            String password=bundler.getString("password");
            String submit=bundler.getString("submit");

                 
System.out.println(username);
                System.out.println(password);
                System.out.println(submit);
}
}  

第二步(2):在JSP中的用法 
  <title>国际化页面</title>
  </head>
  <body>
           <a href="${pageContext.request.contextPath }/login.jsp?language=zh">中文(网页)</a>


 
   <a href="${pageContext.request.contextPath }/login.jsp?language=EN">ENGLISH(PAGES)</a>
    <% 
     String language=request.getParameter("language");
     if(language==null||language.equals("")){
     language="zh";
     }
     Locale locale=new Locale(language); //要将字符转为Locale类型,因为ResourceBundle.getBundle(String baseName, Locale locale);
     //ResourceBundle bundle=ResourceBundle.getBundle("cn.itcast.resource.MessageResource", request.getLocale());//获取浏览器的语言环境
     ResourceBundle bundle=ResourceBundle.getBundle("cn.itcast.resource.MessageResource", locale);
    %>
    <form action="">
     <%=bundle.getString("username") %><input type="text" name="usernam"><br/>
     <%=bundle.getString("password") %><input type="text" name="password"><br/>
     <input type="submit" value="<%=bundle.getString("submit") %>" name="submit">
    </form>
  </body>
               <a href="${pageContext.request.contextPath }/login.jsp?language=EN">ENGLISH(PAGES)</a>
    <% 
         String language=request.getParameter("language");
         if( language==null||language.equals("")){
         language="zh";
     }
     Locale locale=new Locale(language);
        //要将字符转为Locale类型,因为ResourceBundle.getBundle(String baseName,  Locale locale);
     //ResourceBundle bundle=ResourceBundle.getBundle("cn.itcast.resource.MessageResource", request.getLocale());//获取浏览器的语言环境
     ResourceBundle bundle=ResourceBundle.getBundle("cn.itcast.resource.MessageResource", locale);
    %>
 
    <form action="">
     <% =bundle.getString("username") %><input type="text" name="usernam"><br/>
     <% =bundle.getString("password") %><input type="text" name="password"><br/>
     <input type="submit" value="<%=bundle.getString("submit") %>" name="submit">
    </form>
  </body> 

猜你喜欢

转载自blog.csdn.net/dhzbkj/article/details/80551487