diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java index e7c5fb5c96..2a4fe4be99 100644 --- a/org.adempiere.base/src/org/compiere/util/DisplayType.java +++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java @@ -355,7 +355,7 @@ public final class DisplayType { Language myLanguage = language; if (myLanguage == null) - myLanguage = Language.getLoginLanguage(); + myLanguage = Env.getLocaleLanguage(Env.getCtx()); Locale locale = myLanguage.getLocale(); DecimalFormat format = null; if (locale != null) diff --git a/org.adempiere.base/src/org/compiere/util/Env.java b/org.adempiere.base/src/org/compiere/util/Env.java index 09d1ba5a66..6146e8618a 100644 --- a/org.adempiere.base/src/org/compiere/util/Env.java +++ b/org.adempiere.base/src/org/compiere/util/Env.java @@ -37,6 +37,7 @@ import java.util.Date; import java.util.Enumeration; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Properties; import java.util.Set; import java.util.logging.Level; @@ -1144,6 +1145,45 @@ public final class Env return Language.getLoginLanguage(); } // getLanguage + /** + * @param ctx + * @return Language + */ + public static Language getLocaleLanguage(Properties ctx) { + Locale locale = getLocale(ctx); + Language language = Env.getLanguage(ctx); + if (!language.getLocale().equals(locale)) { + Language tmp = Language.getLanguage(locale.toString()); + String adLanguage = language.getAD_Language(); + language = new Language(tmp.getName(), adLanguage, tmp.getLocale(), tmp.isDecimalPoint(), + tmp.getDateFormat().toPattern(), tmp.getMediaSize()); + } + return language; + } + + public static final String LOCALE = "#Locale"; + /** + * @param ctx + * @return Locale + */ + public static Locale getLocale(Properties ctx) { + String value = Env.getContext(ctx, Env.LOCALE); + Locale locale = null; + if (value != null && value.length() > 0) + { + String[] components = value.split("\\_"); + String language = components.length > 0 ? components[0] : ""; + String country = components.length > 1 ? components[1] : ""; + locale = new Locale(language, country); + } + else + { + locale = Env.getLanguage(ctx).getLocale(); + } + + return locale; + } + public static ArrayList getSupportedLanguages() { ArrayList AD_Languages = new ArrayList(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java index 034b53b650..ad6e205bac 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java @@ -90,7 +90,7 @@ import com.itextpdf.text.pdf.PdfWriter; */ public final class AEnv { - public static final String LOCALE = "#Locale"; + public static final String LOCALE = Env.LOCALE; /** * Show in the center of the screen. @@ -663,15 +663,7 @@ public final class AEnv * @return Language */ public static Language getLanguage(Properties ctx) { - Locale locale = getLocale(ctx); - Language language = Env.getLanguage(ctx); - if (!language.getLocale().equals(locale)) { - Language tmp = Language.getLanguage(locale.toString()); - String adLanguage = language.getAD_Language(); - language = new Language(tmp.getName(), adLanguage, tmp.getLocale(), tmp.isDecimalPoint(), - tmp.getDateFormat().toPattern(), tmp.getMediaSize()); - } - return language; + return Env.getLocaleLanguage(ctx); } /** @@ -679,21 +671,7 @@ public final class AEnv * @return Locale */ public static Locale getLocale(Properties ctx) { - String value = Env.getContext(ctx, AEnv.LOCALE); - Locale locale = null; - if (value != null && value.length() > 0) - { - String[] components = value.split("\\_"); - String language = components.length > 0 ? components[0] : ""; - String country = components.length > 1 ? components[1] : ""; - locale = new Locale(language, country); - } - else - { - locale = Env.getLanguage(ctx).getLocale(); - } - - return locale; + return Env.getLocale(ctx); } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java index 97f11373e6..8018159e93 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java @@ -91,7 +91,7 @@ public class NumberBox extends Div decimalBox.setSclass("editor-input"); decimalBox.setId(decimalBox.getUuid()); - char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, Env.getLanguage(Env.getCtx())).getDecimalFormatSymbols().getDecimalSeparator(); + char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, null).getDecimalFormatSymbols().getDecimalSeparator(); String separator = Character.toString(separatorChar); boolean processDotKeypad = MSysConfig.getBooleanValue(MSysConfig.ZK_DECIMALBOX_PROCESS_DOTKEYPAD, true, Env.getAD_Client_ID(Env.getCtx())); if (processDotKeypad) { @@ -253,7 +253,7 @@ public class NumberBox extends Div Vbox vbox = new Vbox(); - char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, Env.getLanguage(Env.getCtx())).getDecimalFormatSymbols().getDecimalSeparator(); + char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, null).getDecimalFormatSymbols().getDecimalSeparator(); String separator = Character.toString(separatorChar); txtCalc = new Textbox();