2014-07-23 60 views
1

我需要本地化一组JSP页面的像在基于项目俄语和葡萄牙语。如何实现JSP支持多语言(如葡萄牙语,俄语)

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

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

http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/ – Jaiwo99

回答

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

+0

谢谢光环。这与从特定属性文件获取值无关。 firstName是从后端传递的变量。 (不是来自财产文件)。例如,这可能是“reportName”,并且此变量根据后端逻辑动态更改。如果我们从属性文件中获得一些像标签一样的值,那么它工作正常。唯一的问题是从后端传递给JSP的动态变量。我会更新这个问题。 –

+1

@MalindaMax需要Javascript AJAX沟通回到当前用户位置或IP或时区......这些人..这个JavaScript应该首先运行在页面加载时......那么你的Java编程逻辑应该改变基础上的语言环境在Ajax调用中传递的值。然后将所需的语言环境名称存储在会话或请求参数中,然后将其发送到网页。 – AurA