随着web项目的发展或多或少的会接触到国外的用户,这时就显示出了国际化得优势,国际化的好处就是在于项目一次性开发,不需后续代码的变更或少量变更就能做到支持更多语言,这给开发和维护带来了很多方便。
国际化常用的方式有很多种,这里说一下比较常见的两种方式吧。
一种是JSTL国际化:JSTL国际化在于不需要框架的支持,而且JSTL只要是Servlet2.0容器以上就支持,兼容性比较好。
1.配置web.xml
<!-- jsp 标签库配置 --> <jsp-config> <taglib> <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> <taglib-location>/WEB-INF/tld/c.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri> <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/functions</taglib-uri> <taglib-location>/WEB-INF/tld/fn.tld</taglib-location> </taglib> </jsp-config>
并且 拷贝tld标签到/WEB-INF/tld/下。
2.jsp页面:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> JSTL 标签支持国际化的标签为 <fmt:bundle> <fmt:message> <fmt:setBundle><fmt:param> <fmt:bundle> 功能:指定消息资源使用的文件 <fmt:message>功能:显示消息资源文件中指定key的消息,支持带参数消息 <fmt:param> eg: <fmt:message key="$100312" bundle="${message}"> <fmt:param value="g21121"/> </fmt:message> <fmt:message key="$100313" bundle="${message}"> <fmt:param value="g21121"/> </fmt:message>
bundle标签中的message是资源文件的名称,用户可以根据需要自己定义,定义成message_zh_CN,message_en_US均可。
key标签中的值是资源文件中对应的键值。
fmt:param对应的就是动态参数,例如: $100313=你好,{0}.
页面输出的结果就是:你好,g21121.
3.用户可以根据情况定义一个公共的jsp,来判断和绑定不同语言的资源文件。
<c:if test="${not empty param.lan}"> <c:if test="${param.lan=='zh'}"> <fmt:setLocale value="zh_CN" scope="session"/> </c:if> <c:if test="${param.lan=='en'}"> <fmt:setLocale value="en_US" scope="session"/> </c:if> </c:if>
另一种就是struts的国际化:这种国际化代码实现比较简单,与struts结合使用比较方便,并且更易于修改。
1.首先配置web.xml
<!-- jsp 标签库配置 --> <jsp-config> <taglib> <taglib-uri>/struts-tags</taglib-uri> <taglib-location> /WEB-INF/tld/struts-tags.tld </taglib-location> </taglib> </jsp-config>
导入struts.tld到/WEB-INF/tld/目录下。
2.配置struts.properties
#资源文件名称,例如:messages_zh_CN,messages_en_US struts.custom.i18n.resources=messages #是否重新加载国际化 struts.i18n.reload=true #默认本地国际化,设置了这个属性就意味着无论用户怎样改变浏览器语言,服务器输出的页面都会采用以下语言 struts.locale=zh_CN #国际化语言编码 struts.i18n.encoding=UTF-8
3.配置jsp页面
<%@taglib prefix="s" uri="/struts-tags"%> <!-- name对应资源文件的键值 --> <s:text name="$1021"/>
是不是非常简单呢!
验证是否成功,打开浏览器,选择“工具”--“Internet选项”--“语言”,添加和删除自己想测试的语言即可。
相关推荐
在现代Web开发中,为了让网站或应用能够适应全球不同地区的用户,实现“国际化”(Internationalization,简称i18n)变得越来越重要。本主题主要关注如何通过纯前端技术实现Web页面的多语言切换,让内容能够以用户...
软件的国际化:软件开发时,要使它能同时对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。
在开发Web应用时,"WEB多语言 国际化 本地化"是一个关键的领域,它使得网站能够适应全球不同地区的用户,提供多种语言的界面和内容。这涉及到.NET框架中的全球化(Globalization)和本地化(Localization)概念。 ...
Java Web应用的国际化(i18n)和分页是开发多语言支持和高效展示大量数据的关键技术。在Java Web环境中,Struts框架提供了一种优雅的方式来处理这两种需求。 国际化是使应用程序能够根据用户的地区和语言偏好显示不同...
在Web开发中,国际化(i18n,18代表英文单词“internationalization”中字母的数量)是一项重要的功能,它允许网站和应用根据用户的地域设置显示相应的语言内容。本篇文章将详细探讨如何利用jQuery_i18n_properties...
在Java Web开发中,实现国际化是一项重要的任务,它允许应用程序为不同地区的用户提供本地化的界面和内容。...开发者可以通过学习PPT详解和实际操作,进一步掌握这个插件的使用方法,提升项目的国际化能力。
在IT行业中,"国际化"(Internationalization)是一个重要的概念,特别是在开发支持多语言的应用程序时。这个过程涉及设计和构建应用程序的方式,使得它可以适应不同地区的文化、语言和格式要求。"file input 按钮...
它通过Action类和配置文件来定义请求处理的逻辑,同时提供国际化、拦截器等功能,增强了应用的灵活性和可定制性。 Spring框架则是一个全面的后端解决方案,它不仅包含IoC(控制反转)和AOP(面向切面编程),还集成...
本文探讨了基于项目法的Web程序设计国际化教育教学改革,旨在提升本科人才培养的国际化水平和综合素质,以适应全球化经济发展和人才竞争的需求。作者李晓会和吴昊以Web程序设计课程为背景,提出了一种教学改革方案,...
1.2.7 Web项目国际化根由 16 1.2.8 SiteMesh页面布局框架简介 17 1.3 我们为什么要用Struts2 17 1.4 Web项目中使用Struts2初探 20 第2章 Web基础技术简介 31 2.1 B/S和C/S系统区别 31 2.2 JSP和Servlet介绍 32 2.3 ...
在“struts国际化(项目)”中,我们关注的是如何使应用程序支持多种语言,即国际化(Internationalization,通常缩写为i18n)。这个主题包括了资源包的创建、配置文件的设置以及在Struts中如何调用这些资源来显示...
JInto国际化插件的引入,极大地提升了Java Web项目的国际化开发效率,让开发者能够更专注于业务逻辑,而不是琐碎的资源管理。通过熟练掌握和运用JInto,开发者可以更轻松地应对多语言应用的挑战。
2. **src/main/resources**:这里存放的是非Java源代码的资源文件,如配置文件(如`application.properties`)、国际化消息文件(`messages.properties`)等。 3. **src/main/webapp**:Web应用的主要目录,包含...
它包含了一些核心标签,如条件语句、循环、国际化等,还有XML处理、SQL执行等功能。使用JSTL可以减少JSP页面中的脚本元素,提高页面的可读性和可维护性。 这些库的组合表明这是一个典型的Java Web项目,可能涉及到...
JavaWeb国际化实例是一种常见的开发需求,特别是在构建面向全球用户的Web应用程序时。这个实例结合了JAVA、国际化、多语言以及SpringMVC框架,旨在提供一种灵活且易于实施的解决方案。下面将详细阐述这些知识点: 1...
Java Web项目源代码设计资料是一份宝贵的资源,涵盖了多个实际开发中的应用场景,旨在帮助开发者深入理解和实践Java在Web开发中的应用。这些项目源代码通常包括了前端界面、后端服务、数据库交互以及业务逻辑处理等...