Internationalization Liferay,从同一jsp上的多个language.properties文件读取

Internationalization Liferay,从同一jsp上的多个language.properties文件读取,internationalization,liferay-6,Internationalization,Liferay 6,我有一个jsp文件,需要读取多个language.properties文件,即使用区域设置fr_CAN和其他。是否可以读取和显示在同一个jsp文件中,例如,基于liferay ui消息中的键,从这些文件中获取值,而无需在会话中更改区域设置,也无需使用资源包 例如。 在Language.fr_CAN.properties中 并且使用Language.en_CAN.properties 现在,在Jsp文件中,我们必须显示: 打招呼。。。 加拿大法语:你好,加拿大法语 加拿大英语:你好,加拿大英语 非

我有一个jsp文件,需要读取多个language.properties文件,即使用区域设置fr_CAN和其他。是否可以读取和显示在同一个jsp文件中,例如,基于liferay ui消息中的键,从这些文件中获取值,而无需在会话中更改区域设置,也无需使用资源包

例如。 在Language.fr_CAN.properties中

并且使用Language.en_CAN.properties

现在,在Jsp文件中,我们必须显示:

打招呼。。。 加拿大法语:你好,加拿大法语

加拿大英语:你好,加拿大英语


非常感谢您的帮助。谢谢。

您可以调用API而不是标记:


您可以调用API而不是标记:

您可以使用tag来实现所需的功能。 例如,您可以在Jsp文件中尝试以下操作:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 
<html>
<head>
    <title>JSTL fmt:message Tag</title>
</head>
<body>
    <fmt:requestEncoding value="UTF-8" />
    <fmt:setLocale value="fr_CAN"/>
    <fmt:setBundle basename="content.Language" />    

    <fmt:message key="say-hello" />
    <fmt:message key="greetings" />
    <fmt:message key="namaste" />
</body>
</html>
在Language.fr_CAN.properties中

和Language.en_CAN.properties

在这里,您可以通过使用标记来控制要在jsp文件中显示的值。 您只需给它一个区域设置值,如en_US、fr_fr或en_can,以控制它从属性文件获取的值。因此,在请求中设置它,并在jsp中显示为:

<% Locale locale = LocaleUtil.fromLanguageId(request.getParameter("locale-name"))%>
<fmt:setLocale value="<%=locale%>"/>
您可以使用tag来实现所需的功能。 例如,您可以在Jsp文件中尝试以下操作:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 
<html>
<head>
    <title>JSTL fmt:message Tag</title>
</head>
<body>
    <fmt:requestEncoding value="UTF-8" />
    <fmt:setLocale value="fr_CAN"/>
    <fmt:setBundle basename="content.Language" />    

    <fmt:message key="say-hello" />
    <fmt:message key="greetings" />
    <fmt:message key="namaste" />
</body>
</html>
在Language.fr_CAN.properties中

和Language.en_CAN.properties

在这里,您可以通过使用标记来控制要在jsp文件中显示的值。 您只需给它一个区域设置值,如en_US、fr_fr或en_can,以控制它从属性文件获取的值。因此,在请求中设置它,并在jsp中显示为:

<% Locale locale = LocaleUtil.fromLanguageId(request.getParameter("locale-name"))%>
<fmt:setLocale value="<%=locale%>"/>
say-hello=Hello in English
greetings=Greetings in English
namaste=Namaste in English
say-hello=Hello in canada french
greetings=Greetings in canada french
namaste=Namaste in canada french
hello=Hello in canada english
greetings=Greetings in canada english
namaste=Namaste in canada english
<% Locale locale = LocaleUtil.fromLanguageId(request.getParameter("locale-name"))%>
<fmt:setLocale value="<%=locale%>"/>