Liferay:以编程方式更改站点的语言环境

Liferay: changing locales for a site programmatically

有没有办法以编程方式更改网站语言环境的状态?

我必须制作一个脚本来暗示更改我们门户网站某些站点的语言环境。换句话说,有一个对象组,我想更改其设置中的语言环境。

http://i.stack.imgur.com/Xypas.png

请注意,我们使用的是 Liferay Portal 6.2。

提前致谢。

编辑以澄清:我正在通过控制面板 -> 服务器管理 -> 脚本执行脚本。这是我评论问题的地方:

//customAvailableLocales is a String containing the locales the site should have associated
    Locale[] languageArray = LanguageUtil.getAvailableLocales(groupId);
    if(languageArray != null && languageArray .length > 0){
        for(int i = 0;i<languageArray.length;i++) {
           if(!customAvailableLocales.contains(languageArray [i].toString())){
            //Here, the locale should be disassociated to the site (from current col. to available col.)

           }
    }
}

进入 TypeSettings 更改语言环境,我有这个:

//group is where I´d like to change locales
    UnicodeProperties uniprops = group.getTypeSettingsProperties();
    uniprops.setProperty("locales",customAvailableLocales);
    group.setTypeSettingsProperties(uniprops);

但是该组在 "current" 列和 TypeSetting 中的区域设置不同,正如我在控制面板的设置中看到的那样。

我为您(为我们)找到了解决方案。添加到您的代码

UnicodeProperties uniprops = group.getTypeSettingsProperties();
uniprops.setProperty("inheritLocales", "false"); // add this line
uniprops.setProperty("locales",customAvailableLocales);    
group.setTypeSettingsProperties(uniprops);
GroupLocalServiceUtil.updateGroup(group) // and this will update your group/site

对我来说效果很好!