如何实现JSP以支持多语言(如葡萄牙语,俄语)

时间:2014-07-23 08:04:28

标签: java spring jsp jstl

我需要在基于 Spring 的项目中为俄语和葡萄牙语等语言本地化一组JSP页面。

我尝试的是,使用 EL JSTL 。但他们俩都不支持上述语言。 (显示迷失方向的字符 - 符号)

JSP片段(适用于EL和JSTL)

<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib uri="/tags/spring" prefix="spring" %>
<%@ taglib uri="/tags/c" prefix="c" %>

<h1><c:out value="${reportName}"/></h1>
<h2>"${reportName}"</h2>

更新:  例如,reportName变量根据后端的逻辑动态变化。如果我们从属性文件中获取一些像标签这样的值,那么它的工作正常。唯一的问题是从后端传递给JSP的动态变量。

1 个答案:

答案 0 :(得分:3)

您可以使用<fmt:message>标记来使用本地化。

<fmt:message>标记用于映射键值配对映射本地化消息中的键,并通过将键替换为相应值来返回值。

与之相关的文档如下 http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fmt/message.html 示例:

Taglib导入:

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

然后你可以在代码中使用:

<fmt:setBundle basename="portugeseLang" var="lang"/>
<fmt:setLocale value="hi_port"/>

<fmt:message key="Name" bundle="${lang}"/>

在setLocale字段中,您可以指定区域设置。

您可以在portugeseLang.properties文件中指定葡萄牙语语言计数器部分。您可以浏览J2EE tutorial on internationalization