本篇文章通过 IT18N的方式实现了 Java Project 和 JavaWeb 中英文切换:也就是国际化多语言支持。
基本思路: 准备 三个配置文件,一个是默认的文件,一个中文配置,一个英文配置。
Java Project :
获取配置文件路径,通过 ResourceBundle (baseame,Locale.xx);来拼接文件名。
获取 ResourceBundle 对象,通过对象读取文件内容。(ResourceBundle 仅仅是一个Properties的处理对象)
Java Web : (jsp+java脚本)
通过 jsp页面 做一个 按钮,通过点击按钮 通过转发刷新页面附带 语言标识,获取ResourceBundle 对象,存储到session中。,
之后的页面通过 java脚本 获取 session 对象,做赋值显示。
项目将 Java 和 Java Web 写在一个项目里面了。
1.准备工作
1.1 先上一个 项目结构图:(方便排错,一目了然)
1.2 准备语言资源包:
默认缺省显示:
中文环境显示:
英文环境显示:
2. 功能的实现
1. 实现了 java 项目的 中英文显示,用来测试 资源包是否 可用。
2.1 关于 Java项目
2.1.1 I18NTest.java的代码:
package test;
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTest {
public static void main(String[] args) {
// 资源包
String basename = "I18N.resource.myproperties";
// 设置语言环境
Locale cn = Locale.CHINA;
Locale us = Locale.US;
// 加载资源包
ResourceBundle myResourceBundle_CN = ResourceBundle.getBundle(basename, cn);
ResourceBundle myResourceBundle_US = ResourceBundle.getBundle(basename, us);
// 获取资源包的内容
String username_CN = myResourceBundle_CN.getString("username");
String password_CN = myResourceBundle_CN.getString("password");
String username_US = myResourceBundle_US.getString("username");
String password_US = myResourceBundle_US.getString("password");
System.out.println(username_CN + "----------" + password_CN);
System.out.println(username_US + "----------" + password_US);
}
}
2.1.2 实现效果:
2.2 关于 Java Web项目
2.2.1 I18NTest.jsp的代码:
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<%
ResourceBundle myResourceBundle = ResourceBundle.getBundle("I18N.resource.myproperties", request.getLocale());
%>
<body>
<%=myResourceBundle.getString("username") %>:<input type="text">
<%=myResourceBundle.getString("password") %>:<input type="text">
<input type="submit" value="<%=myResourceBundle.getString("submit") %>">
</body>
</html>
2.2.2 显示效果:
当 系统的语言是英文时:
当系统的语言是中文时:
2.2.3 语言的切换,可以通过浏览器设置,修改:
有时候需要,可选项没有英语,需要通过win的语言设置添加:
嗯,就这样。
上周周会,lz让我使用 证书 和 私钥写 一个pfx出来,说实话,他说的时候,我根本不知道pfx是什么,还好,看了之后感觉不难,但是4个小时才写个1.0 实现了功能,自己还是不太懂,勉强交差了,私下认真看了很久。
https://blog.youkuaiyun.com/ca1m0921/article/details/82833556