以编程方式更改站点语言

Change site language programmatically

我需要在 Liferay 中以编程方式更改站点语言,但我卡住了。我以为我可以使用 LanguageUtil class,但我不知道如何使用。

有没有办法以编程方式更改 Liferay 语言? (我知道我可以在管理面板中做到这一点,但我也需要在我的代码中具有该功能)。

现在我的代码如下所示:

@ResourceMapping("changeLanguageToEnglish")
public void changeLanguageToEnglish(){
        LanguageUtil langUtil = new LanguageUtil();
        //langUtil.setLanguage(language);
}

我没试过,但我认为你必须更改区域设置是用户会话:

String languageId = "en_US";
Locale locale = LocaleUtil.fromLanguageId(languageId);
session.setAttribute(org.apache.struts.Globals.LOCALE_KEY, locale);  

我可以使用门户网站-ext.properties:

#
# Set the default locale used by Liferay. This locale is no longer set at
# the VM level. See LEP-2584.
#
user.country=US
user.language=en

也被钩子

<hook>
     <language-properties>content/Language_en.properties</language-properties>
     <language-properties>content/Language_fa.properties</language-properties>
</hook>

并通过 portlet

Change languaje portlet

此致!