如何在ZK中以编程方式更改语言属性文件?

时间:2017-06-16 13:52:39

标签: java zk

我在zuls文件中使用例如:

<a label="${labels.menu.risinformations}" onClick="@command('loadWindow')"/>

我有3个不同的.properties file..hu-en-de。我的目标当用户点击hu标签时zk从hu属性文件加载,但是当点击en标签从hu属性文件加载时...我怎样才能实现这个功能?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

经过测试的代码:

public void changeLocale(String locale) {
    session.setAttribute(org.zkoss.web.Attributes.PREFERRED_LOCALE,
            org.zkoss.util.Locales.getLocale(locale));
    execution.sendRedirect(null);
}

在zul中:

<menuitem label="${labels.menu.language.english}" value="en"
                onClick="ctrl.changeLocale(self.value)" checkmark="true"
                checked="${c:getCurrentLocale() == self.value || c:getCurrentLocale() == 'en_US' || c:getCurrentLocale() == 'en_GB' }" />
<menuitem label="${labels.menu.language.dutch}" value="nl"
                onClick="ctrl.changeLocale(self.value)" checkmark="true"
                checked="${c:getCurrentLocale() == self.value || c:getCurrentLocale() == 'nl' || c:getCurrentLocale() == 'nl_BE'  }" />
<menuitem label="${labels.menu.language.france}" value="fr"
                onClick="ctrl.changeLocale(self.value)" checkmark="true"
                checked="${c:getCurrentLocale() == self.value || c:getCurrentLocale() == 'fr_FR' }" />