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
对我来说效果很好!
有没有办法以编程方式更改网站语言环境的状态?
我必须制作一个脚本来暗示更改我们门户网站某些站点的语言环境。换句话说,有一个对象组,我想更改其设置中的语言环境。
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
对我来说效果很好!