国际化的缺点:因为文字不同,所以带来的排版问题一样严重,通常都是重新在写一个网站反而更加清晰,快捷
1:需要从浏览器中获取到浏览器语言(Accept—Language)
2:利用locale获取
3:加载配置文件(配置文件写在src目录下,且命名需要规范化——res_zh_CN.properties)
4:java类源码
import java.util.Locale;
import java.util.ResourceBundle;
import org.junit.Test;
/**
* 我们现在写两个配置文件,一个文件中存放中文信息,另一个存放英文信息
* 我们使用一个类,来通过语言环境,最终识别加载哪一个文件的信息:ResourceBundle
* 什么语言环境:Locale
* > zh_CN
* > en_US
* new Locale("zh", "CN");
* Locale.getDefault();
* Locale.US
*
* 资源文件名称的格式:基本名称+Locale部份+.properties
* 例如:res_zh_CN.properties,其中基本名称为res,而zh_CN是Locale部份
* 必须所有的资源文件基石名称要相同!不同之处就是Locale部件
*/
public class Demo1 {
@Test
public void fun1() {
Locale locale = Locale.US;
// 得到ResourceBundle
// 第一个参数是:基本名称
// 第二个参数是:Locale
ResourceBundle rb = ResourceBundle.getBundle("res", locale);
// 使用ResourceBundle来获取资源信息
System.out.println(rb.getString("username"));
System.out.println(rb.getString("password"));
System.out.println(rb.getString("login"));
}
}
5:jsp源码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%--
把与语言相关的所有字符串都写成变量!!!
--%>
<%
/*
1. 获取Locale,这是由客户端的浏览器提供的Locale
2. 创建ResourceBundle
3. 把所有的语言信息使用rb.getString("xxx")来替换!
*/
Locale locale = request.getLocale();
ResourceBundle rb = ResourceBundle.getBundle("res", locale);
%>
<h1><%=rb.getString("login") %></h1>
<form action="" method="post">
<%=rb.getString("username") %>:<input type="text" name="username"/><br/>
<%=rb.getString("password") %>:<input type="password" name="password"/><br/>
<input type="submit" value="<%=rb.getString("login") %>"/>
</form>
</body>
</html>