2014-07-23 95 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