国际化(Internationalization)
1:什么是国际化?
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
2:在什么样的状况下使用国际化?
国际化是指的多语言支持,比方说你登录一个系统后,页面上的标签可以默认显示中文,或者默认显示英文。国际化在web开发中比较常用,以便于不同母语的用户使用系统。
3:为什么使用国际化?
原因:因为语言种类繁多 将项目国际化 1.
在struts.xml文件中配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"> <struts><!-- 在struts2.xml中配置指定资源文件的基名 --><constant name="struts.custom.i18n.resources" value="message"></constant><!-- 指定编码方案,如果想要转换国际化 必须指定为UTF-8 默认就是u8--><constant name="struts.i18n.encoding" value="UTF-8"></constant><!-- --><constant name="struts.ui.theme" value="simple"></constant><!-- 修改该文件,tomcat不用重启 --><constant name="struts.devMode" value="true"/><package name="default" namespace="/" extends="struts-default"><action name="loignAction" class="cn.action.languageAction"><result name="success">/success.jsp</result><result name="input">/regist.jsp</result></action></package> </struts>
2.
配置资源文件
中文:message.properties
register.page=\u7528\u6237\u6CE8\u518C register.title=\u65B0\u7528\u6237\u6CE8\u518C name=\u59D3\u540D password=\u5BC6\u7801 repassword=\u786E\u8BA4\u5BC6\u7801 telephone=\u7535\u8BDD\u53F7\u7801 username=\u7528\u6237\u540D submit=\u7ACB\u5373\u6CE8\u518Cname.null=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
英文:message_en.properties
register.page=HouserRent-User Register register.title=New User Register name=Name password=Password repassword=RePassword telephone=Telephone username=UserName submit=Register Now name.null=Name cannot be null
3.准备界面:
注:使用ognl表达式展示国际化!<s:text>,也可以放在<s:i81n>标签中。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page isELIgnored="false"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title><s:text name="register.page"></s:text></title> </head> <body><s:fielderror></s:fielderror><h2><s:text name="register.title"></s:text></h2><s:form action="loignAction"><table><tr><td><s:text name="name" ></s:text></td><td><s:textfield name="name" key="name"></s:textfield><td></tr><tr><td><s:text name="password"></s:text></td><td><s:textfield name="password"></s:textfield></td></tr><tr><td><s:text name="repassword"></s:text></td><td><s:textfield name="repassword"></s:textfield></td></tr><tr><td><s:text name="telephone"></s:text></td><td><s:textfield name="telephone"></s:textfield></td></tr><tr><td><s:text name="username"></s:text></td><td><s:textfield name="username"></s:textfield></td></tr><tr><td colspan="2"><s:submitvalue="%{getText('submit')}"></s:submit></td></tr></table></s:form> </body> </html>
注:
①将程序中的提示信息、错误信息等放在资源文件中,为不同国家/语言编写对应资源文件
②资源文件由很多key-value对组成,key保持不变,value随国家/语言不同而不同
③这些资源文件使用共同的基名,通过在基名后面添加语言代码、国家和地区代码来进行区分
创建Action类,并继承自ActionSupport类,重写execute(),封装对应的属性:
可以通过鼠标点击拖动更改语言设置
运行效果:
中文效果
英文效果
转载于:https://www.cnblogs.com/Smile-123/p/5958261.html
国际化(Internationalization)相关推荐
- SAP UI5应用和Hybris Commerce的国际化(internationalization)支持
WebUI,UI5和Hybris的i18n support都是一个套路,developer在代码里不应hard code基于某一种特定language的text,而是用place holder代替. ...
- 云客Drupal源码分析之国际化Internationalization:核心翻译系统
各位<云客drupal源码分析>系列的读者: 本系列一直以每周一篇的速度进行博客原创更新,希望帮助大家理解drupal底层原理,并缩短学习时间,但自<插件系统(上)>主题开始博 ...
- javaweb学习总结(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- java bundle_java.util.ResourceBundle国际化用法详解
初识国际化和ResourceBundle 这个类主要用来解决国际化和本地化问题.国际化和本地化可不是两个概念,两者都是一起出现的.可以说,国际化的目的就是为了实现本地化,详细的介绍可以看本文的最后.比 ...
- Struts2国际化——完整实例代码
一.介绍 国际化Internationalization的首末字符I和N之间字符数是18,简称I18N "国际化"是指一个应用程序在运行时,能够根据客户端请求所来自国家或地区语言的 ...
- java i18n_Java i18n – Java的国际化
java i18n Internationalization in Java or Java i18n is a very important feature. Java provides inter ...
- struts 国际化
国际化 1. 国际化与本地化 国际化 (Internationalization: I18N): 是程序在不做任何修改的情况下,就可以再不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示 ...
- 深入分析JavaWeb Item22 -- 国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- 编程小白的计算机毕业设计指导开发教程-javaweb i18n国际化的使用
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- 抖音前端团队国际化是怎么做的?
邓敏捷,字节 Starling 国际化平台核心开发者. 大厂技术 高级前端 Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 国际化简介 国际化概念 国际化 in ...
最新文章
- Oracle Job定时任务的使用详解
- openstack代码解读之 neutron.agent.linux.iptables_manager模块
- bzoj2091: [Poi2010]The Minima Game DP
- 谈谈你对面向过程与面向对象的理解
- 机器学习导论(张志华):多项式分布
- 华硕UX433FN安装Win黑苹果双系统
- 腾达Tenda 路由器后门分析
- IDEA中的SourceRoot含义及设置方法
- 机械CAD中如何设置重叠图形消隐?
- 关于破解邮箱的一点心得
- 信息收集总结(基本信息搜集思路)
- SpringBoot项目的Liunx服务器部署(一)
- UNIX 进程揭秘--进程的生命周期
- vinted是什么平台以及特点
- SAP 各大常用模块汇总介绍(一)
- 作业周转时间以及平均等待时间
- 【计算机网络】ICMP协议
- 一文读懂嵌入式FPGA,改变芯片设计方式岂是闹着玩的
- 2022保育员(初级)考试题库及模拟考试
- 解决 input 输入框在 iOS 系统中无法输入内容