向Liferay添加其他语言属性

时间:2014-01-17 11:09:59

标签: properties configuration liferay portlet

如何向Liferay添加其他属性。

我不想覆盖现有属性。我想在现有属性

之上添加新属性

我试过这种方式,但没有运气

<portlet>
        <portlet-name>search</portlet-name>
        <display-name>Search</display-name>
        <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
        <init-param>
            <name>contextConfigLocation</name>
            <value>/WEB-INF/spring-config/search-portlet.xml</value>
        </init-param>
        <init-param>
            <name>config-template</name>
            <value>/WEB-INF/view/search/configuration.jsp</value>
        </init-param>        
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>view</portlet-mode>
        </supports>
        <resource-bundle>Language</resource-bundle>
        .............
</portlet>

I have placed Language.properties file under src/main/resources/

然而,当我尝试打印<liferay-ui:message key="test-lang-msg" />时,我没有得到值

Language.properties文件 test-lang-msg=Testing Language Properties File

4 个答案:

答案 0 :(得分:2)

您在portlet.xml中的条目不正确。

提供

<resource-bundle>resource.Language</resource-bundle>

HTH 此致

答案 1 :(得分:0)

检查出来:http://www.liferay.com/community/wiki/-/wiki/Main/Portlet+Localization+-+Outside+Liferay

如果您仍然遇到问题,我建议使用简单的解决方案:创建一个语言挂钩(如此处所述http://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/override-a-language-properties-hook-liferay-portal-6-2-dev-guide-en),以便部署资源包。

答案 2 :(得分:0)

回答后,你应该添加&#34;资源包&#34;正确标记。但是,我们在创建Resource Bundle文件时也要小心。

创建&#34; 资源&#34;包含在 docroot / WEB-INF / src 中。在其中,创建一个名为 Language.properties 的新文件。之后,您就可以更新portlet.xml文件了。在下面找到我的portlet.xml的副本。注意我定义资源包标记值的方式:resource.Language

<?xml version="1.0"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0">

<portlet>
    <portlet-name>birthday</portlet-name>
    <display-name>Birthday</display-name>       
    <portlet-class>
        com.test.exercise.customers.portlet.BirthdayPortlet
    </portlet-class>
    <init-param>
        <name>view-template</name>
        <value>/html/birthday/view.jsp</value>
    </init-param>       
    <expiration-cache>0</expiration-cache>
    <supports>
        <mime-type>text/html</mime-type>
        <portlet-mode>view</portlet-mode>
    </supports>
    <resource-bundle>resource.Language</resource-bundle>
    <portlet-info>
        <title>Birthday</title>
        <short-title>Birthday</short-title>
        <keywords></keywords>
    </portlet-info>     
    <security-role-ref>
        <role-name>administrator</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>guest</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>power-user</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>user</role-name>
    </security-role-ref>
</portlet>
</portlet-app>

&#34;资源包&#34;的位置标记在 portlet.xml 文件中也很重要。如果你检查../portlet-app_2_0.xsd,你可以找到一个&#34;序列&#34;用于定义portlet.xml文件中标记顺序的元素。确保&#34;资源包&#34;标签位于适当的位置。

我希望这可以帮助任何在本地化portlet时遇到同样问题的人。

答案 3 :(得分:0)

Maven portlet具有不同的文件夹结构,因此maven portlet的资源包的位置是不同的。资源包已经有一个名为 resources 的文件夹。将您的Language_en.properties直接放入此文件夹。

<resource-bundle>Language</resource-bundle>

然后在portlet.xml中声明资源包,如下所示:

<resource-bundle>resource.Language</resource-bundle>

它会自动在资源文件夹中搜索您的语言包。

如果您创建子文件夹(包),请使用&#34;。&#34;作为分隔符,例如{{1}}