package org.betaconceptframework.astroboa.portal.managedbean; import org.apache.commons.lang.StringUtils; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.web.RequestParameter; import org.jboss.seam.international.LocaleSelector; @Scope(ScopeType.PAGE) @Name("org.betaconceptframework.astroboa.portal.managedbean.betacmsLocaleSelector") public class BetacmsLocaleSelector { /** * */ private static final long serialVersionUID = -3616862876819306551L; @RequestParameter private String locale; @In(create=true) private LocaleSelector localeSelector; public boolean enableLocale(){ try{ if (StringUtils.isNotBlank(locale) && localeSelector != null){ localeSelector.setLocaleString(locale); localeSelector.select(); } return true; } catch(Exception e){ e.printStackTrace(); return false; } } public String createURLForLocale(String newLocale, String url){ if (StringUtils.isNotBlank(url)){ String locale = localeSelector.getLocaleString(); if (! StringUtils.equals(locale, newLocale) && url.startsWith("/"+locale)){ return url.replaceFirst("/"+locale, "/"+newLocale); } return url; } else{ return "/"+newLocale; } } }