diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/I18nHelper.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/I18nHelper.java index b9b2b7157..fdf2c9c4b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/I18nHelper.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/I18nHelper.java @@ -32,6 +32,7 @@ import org.xnap.commons.i18n.I18n; import org.xnap.commons.i18n.I18nFactory; import org.zkoss.util.Locales; import org.zkoss.web.servlet.Charsets; +import org.zkoss.zk.ui.Execution; import org.zkoss.zk.ui.Executions; @@ -42,8 +43,7 @@ public class I18nHelper { private static HashMap localesCache = new HashMap(); public static I18n getI18n() { - Charsets.setPreferredLocale((HttpSession) Executions.getCurrent() - .getSession().getNativeSession(), getUserLocale()); + setPreferredLocale(); Locale locale = Locales.getCurrent(); @@ -65,6 +65,14 @@ public class I18nHelper { return i18n; } + private static void setPreferredLocale() { + Execution execution = Executions.getCurrent(); + if (execution != null) { + Charsets.setPreferredLocale((HttpSession) execution.getSession() + .getNativeSession(), getUserLocale()); + } + } + private static Locale getUserLocale() { User user = UserUtil.getUserFromSession(); if (user != null) {