我需要在基于 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的动态变量。
答案 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