Struts2实现国际化操作及中英文切换(九)上

简介: Struts2实现国际化操作及中英文切换(九)

一. Strut2实现国际化


Struts2实现国际化可以在前端实现,也可以在后端进行相应的实现。


一般国际化的都是前端的显示标签和后端传递过来的提示信息,一般采用前端国际化的多一些。


在前端国际化时,用一个登录表单的页面来进行相应的说明。


需要先搭建一个基本的Struts的运行环境,包括struts.xml和web.xml的配置)


在src 下有三个国际化文件, i18n.properties, i18n_en_US.properties文件,i18n_zh_CN.properties 文件。


其中,i18n_zh_CN.properties 文件的内容,与i18n.properties的文件内容相同。


默认是中文的。


20200413151519613.png


一.一 利用<s:text> 标签 实际国际化


1.首先根据前端的页面标签和提示信息,将国际化内容大致提取出来,放置在国际化的属性文件中。


将属性文件中的key 按照i18n.模块.标签的方式进行命名。


一.一.一 i18n_zh_CN.properties 属性文件


zh_CN中文与默认的一致,内容均为:


###下面是登录表单login.jsp的国际化配置
###登录页面
i18n.login.title=\u767b\u5f55\u9875\u9762
###用户名
i18n.login.userName=\u7528\u6237\u540d
###密码
i18n.login.password=\u5bc6\u7801
###登陆
i18n.login.submit=\u767b\u9646
###重置
i18n.login.reset=\u91cd\u7f6e
###下面是登录成功表单success.jsp的国际化配置
###带参数传递,欢迎{0}登录,性别是{1},年龄{2}
i18n.success.welcome=\u6b22\u8fce\u007b\u0030\u007d\u767b\u5f55\u002c\u6027\u522b\u662f\u007b\u0031\u007d\u002c\u5e74\u9f84\u007b\u0032\u007d


一.一.二 i18n_en_US.properties 属性文件


en_US英文为:


###下面是登录表单login.jsp的国际化配置
###登录页面
i18n.login.title=login page
###用户名
i18n.login.userName=userName
###密码
i18n.login.password=password
###登陆
i18n.login.submit=login
###重置
i18n.login.reset=reset
###下面是登录成功表单success.jsp的国际化配置
###带参数
i18n.success.welcome=Welcome {0} login,sex is {1},age is{2}


一.一. 三 配置struts.xml 文件 ,添加 struts.custom.i18n.resources 变量


在Struts.xml中配置资源所在的路径,value的值为 国际化文件的名称。

(必须配置,否则找不到文件在哪儿)


<!-- 添加国际化的资源所在的位置 -->
<constant name="struts.custom.i18n.resources" value="i18n"></constant>


一.一.四 编写前端 /content/login.jsp 文件


需要将内容和提示信息都换成<s:text name=“key”>的形式。


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><s:text name="i18n.login.title"/></title>
</head>
<body>
  <s:form action="User_login.action" namespace="/" method="post">
      <s:text name="i18n.login.userName"/>: <s:textfield  name="name"/>  <br/>
      <s:text name="i18n.login.password"/>: <s:password name="password"/><br/>
        <input type="submit" value="<s:text name='i18n.login.submit'></s:text>"/>
        <input type="reset" value="<s:text name='i18n.login.reset'></s:text>"/>
  </s:form>
</body>
</html>


注意,<s:submit>是无法使用的,改成标准的html标签即可。


也可以使用<s:set> 先setter值,然后再取出。


用getText()方式来获取。


 <s:set var="submit" value="getText('i18n.login.submit')"/>
 <s:submit value="%{submit}"></s:submit>


一.一.五 编写前端 /content/success.jsp 页面


对于占位符填充的国际化,可以用 <s:param> 传递占位符参数。


如:成功 /content/success.jsp 界面,填充参数。


<s:text name="i18n.success.welcome">
  <s:param name="0">蝴蝶飞</s:param>
  <s:param name="1">男</s:param>
  <s:param name="2">24</s:param>
</s:text>


一.六 重启服务器,进行验证


一.六.一 中文环境


输入网址: http://localhost:8080/Struts_i18n/login , 会跳转到 login.jsp 页面


20200413151532464.png


输入网址: http://localhost:8080/Struts_i18n/success, 会跳转到 success.jsp 页面


20200413151537287.png


一.六.二 英文环境


现在改变成英文状态, goole浏览器改变settings,高级选择语言,添加美国英语,并将其选择为浏览器语言,并move to up,移动到最上面


20200609114818505.png


输入网址: http://localhost:8080/Struts_i18n/login , 会跳转到 login.jsp 页面


20200413151546581.png


输入网址: http://localhost:8080/Struts_i18n/success, 会跳转到 success.jsp 页面


20200413151551744.png

相关文章
|
1月前
|
移动开发 JavaScript 前端开发
四种方式解决页面国际化问题——步骤详解
四种方式解决页面国际化问题——步骤详解
154 0
|
10月前
|
Java Spring 容器
Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)
Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)
461 0
|
8月前
|
Java Spring
springmvc-国际化&中英文切换&文件上传&下载
springmvc-国际化&中英文切换&文件上传&下载
|
10月前
|
前端开发 JavaScript 测试技术
前端国际化辅助工具——自动替换中文并翻译
前端国际化辅助工具——自动替换中文并翻译
535 0
|
编解码 Java 数据库连接
JavaWeb开发——软件国际化(文本元素国际化)
JavaWeb开发——软件国际化(文本元素国际化)
136 0
JavaWeb开发——软件国际化(文本元素国际化)
|
PHP 自然语言处理
ThinkPHP3.2中英文切换!
小伙伴们好久不见!!! 最近公司项目版本升级,小梦已经忙成了狗,无暇顾及文章,今天抽时间写一篇助助兴! 用Thinkphp这个国产框架已经2年多了,现在有一个小功能:网站中英文切换功能,当然这个功能分为2种方案: 1、使用第...
1215 0
|
缓存 前端开发 JavaScript
|
开发者
国际化程序(国际化实现原理)|学习笔记
快速学习 国际化程序(国际化实现原理)
205 0
国际化程序(国际化实现原理)|学习笔记
|
JSON JavaScript 前端开发
Struts2实现国际化操作及中英文切换(九)下
Struts2实现国际化操作及中英文切换(九)
153 0
Struts2实现国际化操作及中英文切换(九)下
|
存储 自然语言处理 iOS开发
iOSAPP内的国际化切换(案例:登录界面切换中英文)
iOSAPP内的国际化切换(案例:登录界面切换中英文)
376 0
iOSAPP内的国际化切换(案例:登录界面切换中英文)