JavaWeb的国际化(17/4/8)

 

 

国际化的缺点:

  因为文字不同,所以带来的排版问题一样严重,通常都是重新在写一个网站反而更加清晰,快捷

1:需要从浏览器中获取到浏览器语言(Accept—Language)

2:利用locale获取

3:加载配置文件(配置文件写在src目录下,且命名需要规范化——res_zh_CN.properties)

4:Java类源码

复制代码
 1 import java.util.Locale;  
 2 import java.util.ResourceBundle;  
 3   
 4   
 5 import org.junit.Test;  
 6   
 7   
 8 /** 
 9  * 我们现在写两个配置文件,一个文件中存放中文信息,另一个存放英文信息 
10  * 我们使用一个类,来通过语言环境,最终识别加载哪一个文件的信息:ResourceBundle 
11  * 什么语言环境:Locale 
12  *   > zh_CN 
13  *   > en_US 
14  *   new Locale("zh", "CN"); 
15  *   Locale.getDefault(); 
16  *   Locale.US 
17  * 
18  * 资源文件名称的格式:基本名称+Locale部份+.properties 
19  * 例如:res_zh_CN.properties,其中基本名称为res,而zh_CN是Locale部份 
20  * 必须所有的资源文件基石名称要相同!不同之处就是Locale部件 
21  */  
22 public class Demo1 {  
23 @Test  
24 public void fun1() {  
25 Locale locale = Locale.US;  
26 // 得到ResourceBundle  
27 // 第一个参数是:基本名称  
28 // 第二个参数是:Locale  
29 ResourceBundle rb = ResourceBundle.getBundle("res", locale);  
30 // 使用ResourceBundle来获取资源信息  
31 System.out.println(rb.getString("username"));  
32 System.out.println(rb.getString("password"));  
33 System.out.println(rb.getString("login"));  
34 }  
35 }  
36 5:jsp源码  
37 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
38 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
39 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
40 <html>  
41   <head>  
42     <title>My JSP 'login.jsp' starting page</title>     
43 <meta http-equiv="pragma" content="no-cache">  
44 <meta http-equiv="cache-control" content="no-cache">  
45 <meta http-equiv="expires" content="0">      
46 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
47 <meta http-equiv="description" content="This is my page">  
48 <!--  
49 <link rel="stylesheet" type="text/css" href="styles.css">  
50 -->  
51   </head>  
52   <body>  
53 <%--   
54 把与语言相关的所有字符串都写成变量!!!  
55  --%>  
56  <%  
57  /* 
58  1. 获取Locale,这是由客户端的浏览器提供的Locale 
59  2. 创建ResourceBundle 
60  3. 把所有的语言信息使用rb.getString("xxx")来替换! 
61  */  
62  Locale locale = request.getLocale();  
63  ResourceBundle rb = ResourceBundle.getBundle("res", locale);  
64  %>  
65 <h1><%=rb.getString("login") %></h1>  
66 <form action="" method="post">  
67 <%=rb.getString("username") %>:<input type="text" name="username"/><br/>  
68 <%=rb.getString("password") %>:<input type="password" name="password"/><br/>  
69 <input type="submit" value="<%=rb.getString("login") %>"/>  
70 </form>  
71   </body>  
72 </html>  
原文地址:https://www.cnblogs.com/yuwenhui/p/6684237.html