diff --git a/build.xml b/build.xml
index 4b3755e..5259ab2 100644
--- a/build.xml
+++ b/build.xml
@@ -48,7 +48,9 @@ src/org/olap4j/mdx/parser/impl/TokenMgrError.java,
src/org/olap4j/driver/xmla/XmlaOlap4jDriverVersion.java" />
+
@@ -177,6 +179,8 @@ VERSION.txt" />
excludes="
org/olap4j/driver/**,
META-INF/**"/>
+
diff --git a/src/org/olap4j/impl/LcidLocale.java b/src/org/olap4j/impl/LcidLocale.java
index 2deeb20..b2d4048 100644
--- a/src/org/olap4j/impl/LcidLocale.java
+++ b/src/org/olap4j/impl/LcidLocale.java
@@ -19,6 +19,9 @@
*/
package org.olap4j.impl;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
import java.util.*;
/**
@@ -28,10 +31,10 @@
* @author jhyde
*/
public class LcidLocale {
- final Map lcidLocaleMap = new HashMap();
- final Map localeToLcidMap = new HashMap();
+ final Map lcidLocaleMap = new HashMap();
+ final Map localeToLcidMap = new HashMap();
- private static final Object[] LOCALE_DATA = {
+ private static final Object[] LOCALE_DATA_ = {
"", (short) 0x007f, "invariant culture",
"ar", (short) 0x0001, "Arabic",
"bg", (short) 0x0002, "Bulgarian",
@@ -268,19 +271,56 @@ public class LcidLocale {
private static LcidLocale INSTANCE;
private LcidLocale() {
- for (int i = 0; i < LOCALE_DATA.length;) {
- String localeName = (String) LOCALE_DATA[i++];
- Short lcid = (Short) LOCALE_DATA[i++];
- Olap4jUtil.discard((String) LOCALE_DATA[i++]); // description
- lcidLocaleMap.put(lcid, localeName);
- localeToLcidMap.put(localeName, lcid);
+ URL resource = getClass().getResource("nls.properties");
+ InputStream inputStream = null;
+ try {
+ inputStream = resource.openStream();
+ Properties properties = new Properties();
+ properties.load(inputStream);
+ @SuppressWarnings("unchecked")
+ final Map map = (Map) properties;
+ for (Map.Entry entry : map.entrySet()) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ if (key.endsWith(".lcid")) {
+ final String root =
+ key.substring(0, key.length() - ".lcid".length());
+ String lcname =
+ root.substring(root.indexOf('.') + 1).replace('-', '_');
+ short lcid = Short.parseShort(value.substring(2), 16);
+ String locale = map.get(root + ".locale");
+ String language = map.get(root + ".language");
+ String languageLocal = map.get(root + ".languageLocal");
+ String codepageAnsi = map.get(root + ".codepageAnsi");
+ String codepageOem = map.get(root + ".codepageOem");
+ String regionAbbrev = map.get(root + ".regionAbbrev");
+ String languageAbbrev = map.get(root + ".languageAbbrev");
+ Info info =
+ new Info(
+ lcid,
+ lcname,
+ locale,
+ language,
+ languageLocal,
+ Short.parseShort(codepageAnsi),
+ Short.parseShort(codepageOem),
+ regionAbbrev,
+ languageAbbrev);
+ lcidLocaleMap.put(lcid, info);
+ localeToLcidMap.put(lcname, info);
+ }
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (inputStream != null) {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
}
- assert LOCALE_DATA.length % 3 == 0;
- assert lcidLocaleMap.size() == LOCALE_DATA.length / 3;
-
- // Off by one because Spanish (traditional) and Spanish (modern) share
- // locale "es_ES".
- assert localeToLcidMap.size() == LOCALE_DATA.length / 3 - 1;
}
/**
@@ -301,11 +341,11 @@ static LcidLocale instance() {
* @throws RuntimeException if LCID is not valid
*/
private Locale toLocale(short lcid) {
- final String s = lcidLocaleMap.get(lcid);
+ final Info s = lcidLocaleMap.get(lcid);
if (s == null) {
throw new RuntimeException("Unknown LCID " + lcid);
}
- return parseLocale(s);
+ return parseLocale(s.locale);
}
/**
@@ -348,9 +388,9 @@ public static short localeToLcid(Locale locale) {
private short toLcid(String localeName) {
final String localeName0 = localeName;
for (;;) {
- final Short lcid = localeToLcidMap.get(localeName);
- if (lcid != null) {
- return lcid;
+ final Info info = localeToLcidMap.get(localeName);
+ if (info != null) {
+ return info.lcid;
}
final int underscore = localeName.lastIndexOf('_');
if (underscore < 0) {
@@ -382,6 +422,40 @@ public static Locale parseLocale(String localeString) {
"bad locale string '" + localeString + "'");
}
}
+
+ public static class Info {
+ public final short lcid;
+ public final String locale;
+ public final String localeFull;
+ public final String language;
+ public final String languageLocal;
+ public final short codepageAnsi;
+ public final short codepageOem;
+ public final String regionAbbrev;
+ public final String languageAbbrev;
+
+ public Info(
+ short lcid,
+ String locale,
+ String localeFull,
+ String language,
+ String languageLocal,
+ short codepageAnsi,
+ short codepageOem,
+ String regionAbbrev,
+ String languageAbbrev)
+ {
+ this.lcid = lcid;
+ this.locale = locale;
+ this.localeFull = localeFull;
+ this.language = language;
+ this.languageLocal = languageLocal;
+ this.codepageAnsi = codepageAnsi;
+ this.codepageOem = codepageOem;
+ this.regionAbbrev = regionAbbrev;
+ this.languageAbbrev = languageAbbrev;
+ }
+ }
}
// End LcidLocale.java
diff --git a/src/org/olap4j/impl/nls.properties b/src/org/olap4j/impl/nls.properties
new file mode 100644
index 0000000..43b3509
--- /dev/null
+++ b/src/org/olap4j/impl/nls.properties
@@ -0,0 +1,2218 @@
+# $Id$
+#
+# Licensed to Julian Hyde under one or more contributor license
+# agreements. See the NOTICE file distributed with this work for
+# additional information regarding copyright ownership.
+#
+# Julian Hyde licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Locale information, from
+# http://www.microsoft.com/resources/msdn/goglobal/default.mspx
+#
+# Each entry is of the form
+# locale..=
+# where is a Culture Name, e.g. "en-US", and is one of:
+# lcid: Culture Identifier
+# locale: Locale
+# language: Language Country/Region Language
+# languageLocal: Local language name
+# codepageAnsi: ANSI codepage
+# codepageOem: OEM codepage
+# regionAbbrev: Country or Region name abbreviation
+# languageAbbrev: Language name abbreviation
+#
+locale.af.lcid=0x0036
+locale.af.locale=Afrikaans
+locale.af.language=Afrikaans
+locale.af.languageLocal=Afrikaans
+locale.af.codepageAnsi=1252
+locale.af.codepageOem=850
+locale.af.regionAbbrev=ZAF
+locale.af.languageAbbrev=AFK
+locale.af-ZA.lcid=0x0436
+locale.af-ZA.locale=Afrikaans (South Africa)
+locale.af-ZA.language=Afrikaans
+locale.af-ZA.languageLocal=Afrikaans (Suid Afrika)
+locale.af-ZA.codepageAnsi=1252
+locale.af-ZA.codepageOem=850
+locale.af-ZA.regionAbbrev=ZAF
+locale.af-ZA.languageAbbrev=AFK
+locale.sq.lcid=0x001C
+locale.sq.locale=Albanian
+locale.sq.language=Albanian
+locale.sq.languageLocal=shqipe
+locale.sq.codepageAnsi=1250
+locale.sq.codepageOem=852
+locale.sq.regionAbbrev=ALB
+locale.sq.languageAbbrev=SQI
+locale.sq-AL.lcid=0x041C
+locale.sq-AL.locale=Albanian (Albania)
+locale.sq-AL.language=Albanian
+locale.sq-AL.languageLocal=shqipe (Shqipëria)
+locale.sq-AL.codepageAnsi=1250
+locale.sq-AL.codepageOem=852
+locale.sq-AL.regionAbbrev=ALB
+locale.sq-AL.languageAbbrev=SQI
+locale.gsw-FR.lcid=0x0484
+locale.gsw-FR.locale=Alsatian (France)
+locale.gsw-FR.language=Alsatian
+locale.gsw-FR.languageLocal=Elsässisch (Frànkrisch)
+locale.gsw-FR.codepageAnsi=1252
+locale.gsw-FR.codepageOem=850
+locale.gsw-FR.regionAbbrev=FRA
+locale.gsw-FR.languageAbbrev=GSW
+locale.am-ET.lcid=0x045E
+locale.am-ET.locale=Amharic (Ethiopia)
+locale.am-ET.language=Amharic
+locale.am-ET.languageLocal=አማርኛ (ኢትዮጵያ)
+locale.am-ET.codepageAnsi=0
+locale.am-ET.codepageOem=1
+locale.am-ET.regionAbbrev=eth
+locale.am-ET.languageAbbrev=AMH
+locale.ar.lcid=0x0001
+locale.ar.locale=Arabic
+locale.ar.language=Arabic
+locale.ar.languageLocal=العربية
+locale.ar.codepageAnsi=1256
+locale.ar.codepageOem=720
+locale.ar.regionAbbrev=SAU
+locale.ar.languageAbbrev=ARA
+locale.ar-DZ.lcid=0x1401
+locale.ar-DZ.locale=Arabic (Algeria)
+locale.ar-DZ.language=Arabic
+locale.ar-DZ.languageLocal=العربية (الجزائر)
+locale.ar-DZ.codepageAnsi=1256
+locale.ar-DZ.codepageOem=720
+locale.ar-DZ.regionAbbrev=DZA
+locale.ar-DZ.languageAbbrev=ARG
+locale.ar-BH.lcid=0x3C01
+locale.ar-BH.locale=Arabic (Bahrain)
+locale.ar-BH.language=Arabic
+locale.ar-BH.languageLocal=العربية (البحرين)
+locale.ar-BH.codepageAnsi=1256
+locale.ar-BH.codepageOem=720
+locale.ar-BH.regionAbbrev=BHR
+locale.ar-BH.languageAbbrev=ARH
+locale.ar-EG.lcid=0x0C01
+locale.ar-EG.locale=Arabic (Egypt)
+locale.ar-EG.language=Arabic
+locale.ar-EG.languageLocal=العربية (مصر)
+locale.ar-EG.codepageAnsi=1256
+locale.ar-EG.codepageOem=720
+locale.ar-EG.regionAbbrev=EGY
+locale.ar-EG.languageAbbrev=ARE
+locale.ar-IQ.lcid=0x0801
+locale.ar-IQ.locale=Arabic (Iraq)
+locale.ar-IQ.language=Arabic
+locale.ar-IQ.languageLocal=العربية (العراق)
+locale.ar-IQ.codepageAnsi=1256
+locale.ar-IQ.codepageOem=720
+locale.ar-IQ.regionAbbrev=IRQ
+locale.ar-IQ.languageAbbrev=ARI
+locale.ar-JO.lcid=0x2C01
+locale.ar-JO.locale=Arabic (Jordan)
+locale.ar-JO.language=Arabic
+locale.ar-JO.languageLocal=العربية (الأردن)
+locale.ar-JO.codepageAnsi=1256
+locale.ar-JO.codepageOem=720
+locale.ar-JO.regionAbbrev=JOR
+locale.ar-JO.languageAbbrev=ARJ
+locale.ar-KW.lcid=0x3401
+locale.ar-KW.locale=Arabic (Kuwait)
+locale.ar-KW.language=Arabic
+locale.ar-KW.languageLocal=العربية (الكويت)
+locale.ar-KW.codepageAnsi=1256
+locale.ar-KW.codepageOem=720
+locale.ar-KW.regionAbbrev=KWT
+locale.ar-KW.languageAbbrev=ARK
+locale.ar-LB.lcid=0x3001
+locale.ar-LB.locale=Arabic (Lebanon)
+locale.ar-LB.language=Arabic
+locale.ar-LB.languageLocal=العربية (لبنان)
+locale.ar-LB.codepageAnsi=1256
+locale.ar-LB.codepageOem=720
+locale.ar-LB.regionAbbrev=LBN
+locale.ar-LB.languageAbbrev=ARB
+locale.ar-LY.lcid=0x1001
+locale.ar-LY.locale=Arabic (Libya)
+locale.ar-LY.language=Arabic
+locale.ar-LY.languageLocal=العربية (ليبيا)
+locale.ar-LY.codepageAnsi=1256
+locale.ar-LY.codepageOem=720
+locale.ar-LY.regionAbbrev=LBY
+locale.ar-LY.languageAbbrev=ARL
+locale.ar-MA.lcid=0x1801
+locale.ar-MA.locale=Arabic (Morocco)
+locale.ar-MA.language=Arabic
+locale.ar-MA.languageLocal=العربية (المملكة المغربية)
+locale.ar-MA.codepageAnsi=1256
+locale.ar-MA.codepageOem=720
+locale.ar-MA.regionAbbrev=MAR
+locale.ar-MA.languageAbbrev=ARM
+locale.ar-OM.lcid=0x2001
+locale.ar-OM.locale=Arabic (Oman)
+locale.ar-OM.language=Arabic
+locale.ar-OM.languageLocal=العربية (عمان)
+locale.ar-OM.codepageAnsi=1256
+locale.ar-OM.codepageOem=720
+locale.ar-OM.regionAbbrev=OMN
+locale.ar-OM.languageAbbrev=ARO
+locale.ar-QA.lcid=0x4001
+locale.ar-QA.locale=Arabic (Qatar)
+locale.ar-QA.language=Arabic
+locale.ar-QA.languageLocal=العربية (قطر)
+locale.ar-QA.codepageAnsi=1256
+locale.ar-QA.codepageOem=720
+locale.ar-QA.regionAbbrev=QAT
+locale.ar-QA.languageAbbrev=ARQ
+locale.ar-SA.lcid=0x0401
+locale.ar-SA.locale=Arabic (Saudi Arabia)
+locale.ar-SA.language=Arabic
+locale.ar-SA.languageLocal=العربية (المملكة العربية السعودية)
+locale.ar-SA.codepageAnsi=1256
+locale.ar-SA.codepageOem=720
+locale.ar-SA.regionAbbrev=SAU
+locale.ar-SA.languageAbbrev=ARA
+locale.ar-SY.lcid=0x2801
+locale.ar-SY.locale=Arabic (Syria)
+locale.ar-SY.language=Arabic
+locale.ar-SY.languageLocal=العربية (سوريا)
+locale.ar-SY.codepageAnsi=1256
+locale.ar-SY.codepageOem=720
+locale.ar-SY.regionAbbrev=SYR
+locale.ar-SY.languageAbbrev=ARS
+locale.ar-TN.lcid=0x1C01
+locale.ar-TN.locale=Arabic (Tunisia)
+locale.ar-TN.language=Arabic
+locale.ar-TN.languageLocal=العربية (تونس)
+locale.ar-TN.codepageAnsi=1256
+locale.ar-TN.codepageOem=720
+locale.ar-TN.regionAbbrev=TUN
+locale.ar-TN.languageAbbrev=ART
+locale.ar-AE.lcid=0x3801
+locale.ar-AE.locale=Arabic (U.A.E.)
+locale.ar-AE.language=Arabic
+locale.ar-AE.languageLocal=العربية (الإمارات العربية المتحدة)
+locale.ar-AE.codepageAnsi=1256
+locale.ar-AE.codepageOem=720
+locale.ar-AE.regionAbbrev=ARE
+locale.ar-AE.languageAbbrev=ARU
+locale.ar-YE.lcid=0x2401
+locale.ar-YE.locale=Arabic (Yemen)
+locale.ar-YE.language=Arabic
+locale.ar-YE.languageLocal=العربية (اليمن)
+locale.ar-YE.codepageAnsi=1256
+locale.ar-YE.codepageOem=720
+locale.ar-YE.regionAbbrev=YEM
+locale.ar-YE.languageAbbrev=ARY
+locale.hy.lcid=0x002B
+locale.hy.locale=Armenian
+locale.hy.language=Armenian
+locale.hy.languageLocal=Հայերեն
+locale.hy.codepageAnsi=0
+locale.hy.codepageOem=1
+locale.hy.regionAbbrev=ARM
+locale.hy.languageAbbrev=HYE
+locale.hy-AM.lcid=0x042B
+locale.hy-AM.locale=Armenian (Armenia)
+locale.hy-AM.language=Armenian
+locale.hy-AM.languageLocal=Հայերեն (Հայաստան)
+locale.hy-AM.codepageAnsi=0
+locale.hy-AM.codepageOem=1
+locale.hy-AM.regionAbbrev=ARM
+locale.hy-AM.languageAbbrev=HYE
+locale.as-IN.lcid=0x044D
+locale.as-IN.locale=Assamese (India)
+locale.as-IN.language=Assamese
+locale.as-IN.languageLocal=অসমীয়া (ভাৰত)
+locale.as-IN.codepageAnsi=0
+locale.as-IN.codepageOem=1
+locale.as-IN.regionAbbrev=IND
+locale.as-IN.languageAbbrev=ASM
+locale.az.lcid=0x002C
+locale.az.locale=Azeri
+locale.az.language=Azeri (Latin)
+locale.az.languageLocal=Azərbaycanılı
+locale.az.codepageAnsi=1254
+locale.az.codepageOem=857
+locale.az.regionAbbrev=AZE
+locale.az.languageAbbrev=AZE
+locale.az-Cyrl-AZ.lcid=0x082C
+locale.az-Cyrl-AZ.locale="Azeri (Cyrillic, Azerbaijan)"
+locale.az-Cyrl-AZ.language=Azeri (Cyrillic)
+locale.az-Cyrl-AZ.languageLocal=Азәрбајҹан (Азәрбајҹан)
+locale.az-Cyrl-AZ.codepageAnsi=1251
+locale.az-Cyrl-AZ.codepageOem=866
+locale.az-Cyrl-AZ.regionAbbrev=AZE
+locale.az-Cyrl-AZ.languageAbbrev=AZE
+locale.az-Latn-AZ.lcid=0x042C
+locale.az-Latn-AZ.locale="Azeri (Latin, Azerbaijan)"
+locale.az-Latn-AZ.language=Azeri (Latin)
+locale.az-Latn-AZ.languageLocal=Azərbaycanılı (Azərbaycanca)
+locale.az-Latn-AZ.codepageAnsi=1254
+locale.az-Latn-AZ.codepageOem=857
+locale.az-Latn-AZ.regionAbbrev=AZE
+locale.az-Latn-AZ.languageAbbrev=AZE
+locale.ba-RU.lcid=0x046D
+locale.ba-RU.locale=Bashkir (Russia)
+locale.ba-RU.language=Bashkir
+locale.ba-RU.languageLocal=Башҡорт (Россия)
+locale.ba-RU.codepageAnsi=1251
+locale.ba-RU.codepageOem=866
+locale.ba-RU.regionAbbrev=RUS
+locale.ba-RU.languageAbbrev=BAS
+locale.eu.lcid=0x002D
+locale.eu.locale=Basque
+locale.eu.language=Basque
+locale.eu.languageLocal=euskara
+locale.eu.codepageAnsi=1252
+locale.eu.codepageOem=850
+locale.eu.regionAbbrev=ESP
+locale.eu.languageAbbrev=EUQ
+locale.eu-ES.lcid=0x042D
+locale.eu-ES.locale=Basque (Basque)
+locale.eu-ES.language=Basque
+locale.eu-ES.languageLocal=euskara (euskara)
+locale.eu-ES.codepageAnsi=1252
+locale.eu-ES.codepageOem=850
+locale.eu-ES.regionAbbrev=ESP
+locale.eu-ES.languageAbbrev=EUQ
+locale.be.lcid=0x0023
+locale.be.locale=Belarusian
+locale.be.language=Belarusian
+locale.be.languageLocal=Беларускі
+locale.be.codepageAnsi=1251
+locale.be.codepageOem=866
+locale.be.regionAbbrev=BLR
+locale.be.languageAbbrev=BEL
+locale.be-BY.lcid=0x0423
+locale.be-BY.locale=Belarusian (Belarus)
+locale.be-BY.language=Belarusian
+locale.be-BY.languageLocal=Беларускі (Беларусь)
+locale.be-BY.codepageAnsi=1251
+locale.be-BY.codepageOem=866
+locale.be-BY.regionAbbrev=BLR
+locale.be-BY.languageAbbrev=BEL
+locale.bn-BD.lcid=0x0845
+locale.bn-BD.locale=Bengali (Bangladesh)
+locale.bn-BD.language=Bengali
+locale.bn-BD.languageLocal=বাংলা (বাংলা)
+locale.bn-BD.codepageAnsi=0
+locale.bn-BD.codepageOem=1
+locale.bn-BD.regionAbbrev=BDG
+locale.bn-BD.languageAbbrev=BNG
+locale.bn-IN.lcid=0x0445
+locale.bn-IN.locale=Bengali (India)
+locale.bn-IN.language=Bengali
+locale.bn-IN.languageLocal=বাংলা (ভারত)
+locale.bn-IN.codepageAnsi=0
+locale.bn-IN.codepageOem=1
+locale.bn-IN.regionAbbrev=IND
+locale.bn-IN.languageAbbrev=BNG
+locale.bs-Cyrl-BA.lcid=0x201A
+locale.bs-Cyrl-BA.locale="Bosnian (Cyrillic, Bosnia and Herzegovina)"
+locale.bs-Cyrl-BA.language=Bosnian (Cyrillic)
+locale.bs-Cyrl-BA.languageLocal=босански (Босна и Херцеговина)
+locale.bs-Cyrl-BA.codepageAnsi=1251
+locale.bs-Cyrl-BA.codepageOem=855
+locale.bs-Cyrl-BA.regionAbbrev=BIH
+locale.bs-Cyrl-BA.languageAbbrev=BSC
+locale.bs-Latn-BA.lcid=0x141A
+locale.bs-Latn-BA.locale="Bosnian (Latin, Bosnia and Herzegovina)"
+locale.bs-Latn-BA.language=Bosnian (Latin)
+locale.bs-Latn-BA.languageLocal=bosanski (Bosna i Hercegovina)
+locale.bs-Latn-BA.codepageAnsi=1250
+locale.bs-Latn-BA.codepageOem=852
+locale.bs-Latn-BA.regionAbbrev=BIH
+locale.bs-Latn-BA.languageAbbrev=BSB
+locale.br-FR.lcid=0x047E
+locale.br-FR.locale=Breton (France)
+locale.br-FR.language=Breton
+locale.br-FR.languageLocal=brezhoneg (Frañs)
+locale.br-FR.codepageAnsi=1252
+locale.br-FR.codepageOem=850
+locale.br-FR.regionAbbrev=FRA
+locale.br-FR.languageAbbrev=BRE
+locale.bg.lcid=0x0002
+locale.bg.locale=Bulgarian
+locale.bg.language=Bulgarian
+locale.bg.languageLocal=български
+locale.bg.codepageAnsi=1251
+locale.bg.codepageOem=866
+locale.bg.regionAbbrev=BGR
+locale.bg.languageAbbrev=BGR
+locale.bg-BG.lcid=0x0402
+locale.bg-BG.locale=Bulgarian (Bulgaria)
+locale.bg-BG.language=Bulgarian
+locale.bg-BG.languageLocal=български (България)
+locale.bg-BG.codepageAnsi=1251
+locale.bg-BG.codepageOem=866
+locale.bg-BG.regionAbbrev=BGR
+locale.bg-BG.languageAbbrev=BGR
+locale.ca.lcid=0x0003
+locale.ca.locale=Catalan
+locale.ca.language=Catalan
+locale.ca.languageLocal=català
+locale.ca.codepageAnsi=1252
+locale.ca.codepageOem=850
+locale.ca.regionAbbrev=ESP
+locale.ca.languageAbbrev=CAT
+locale.ca-ES.lcid=0x0403
+locale.ca-ES.locale=Catalan (Catalan)
+locale.ca-ES.language=Catalan
+locale.ca-ES.languageLocal=català (català)
+locale.ca-ES.codepageAnsi=1252
+locale.ca-ES.codepageOem=850
+locale.ca-ES.regionAbbrev=ESP
+locale.ca-ES.languageAbbrev=CAT
+locale.zh-HK.lcid=0x0C04
+locale.zh-HK.locale=Chinese (Hong Kong S.A.R.)
+locale.zh-HK.language=Chinese
+locale.zh-HK.languageLocal=中文(香港特别行政區)
+locale.zh-HK.codepageAnsi=950
+locale.zh-HK.codepageOem=950
+locale.zh-HK.regionAbbrev=HKG
+locale.zh-HK.languageAbbrev=ZHH
+locale.zh-MO.lcid=0x1404
+locale.zh-MO.locale=Chinese (Macao S.A.R.)
+locale.zh-MO.language=Chinese
+locale.zh-MO.languageLocal=中文(澳門特别行政區)
+locale.zh-MO.codepageAnsi=950
+locale.zh-MO.codepageOem=950
+locale.zh-MO.regionAbbrev=MCO
+locale.zh-MO.languageAbbrev=ZHM
+locale.zh-CN.lcid=0x0804
+locale.zh-CN.locale=Chinese (People's Republic of China)
+locale.zh-CN.language=Chinese
+locale.zh-CN.languageLocal=中文(中华人民共和国)
+locale.zh-CN.codepageAnsi=936
+locale.zh-CN.codepageOem=936
+locale.zh-CN.regionAbbrev=CHN
+locale.zh-CN.languageAbbrev=CHS
+locale.zh-Hans.lcid=0x0004
+locale.zh-Hans.locale=Chinese (Simplified)
+locale.zh-Hans.language=Chinese
+locale.zh-Hans.languageLocal=中文(简体)
+locale.zh-Hans.codepageAnsi=936
+locale.zh-Hans.codepageOem=936
+locale.zh-Hans.regionAbbrev=CHN
+locale.zh-Hans.languageAbbrev=CHS
+locale.zh-SG.lcid=0x1004
+locale.zh-SG.locale=Chinese (Singapore)
+locale.zh-SG.language=Chinese
+locale.zh-SG.languageLocal=中文(新加坡)
+locale.zh-SG.codepageAnsi=936
+locale.zh-SG.codepageOem=936
+locale.zh-SG.regionAbbrev=SGP
+locale.zh-SG.languageAbbrev=ZHI
+locale.zh-TW.lcid=0x0404
+locale.zh-TW.locale=Chinese (Taiwan)
+locale.zh-TW.language=Chinese
+locale.zh-TW.languageLocal=中文(台灣)
+locale.zh-TW.codepageAnsi=950
+locale.zh-TW.codepageOem=950
+locale.zh-TW.regionAbbrev=TWN
+locale.zh-TW.languageAbbrev=CHT
+locale.zh-Hant.lcid=0x7C04
+locale.zh-Hant.locale=Chinese (Traditional)
+locale.zh-Hant.language=Chinese
+locale.zh-Hant.languageLocal=中文(繁體)
+locale.zh-Hant.codepageAnsi=950
+locale.zh-Hant.codepageOem=950
+locale.zh-Hant.regionAbbrev=TWN
+locale.zh-Hant.languageAbbrev=CHT
+locale.co-FR.lcid=0x0483
+locale.co-FR.locale=Corsican (France)
+locale.co-FR.language=Corsican
+locale.co-FR.languageLocal=Corsu (France)
+locale.co-FR.codepageAnsi=1252
+locale.co-FR.codepageOem=850
+locale.co-FR.regionAbbrev=FRA
+locale.co-FR.languageAbbrev=COS
+locale.hr.lcid=0x001A
+locale.hr.locale=Croatian
+locale.hr.language=Croatian
+locale.hr.languageLocal=hrvatski
+locale.hr.codepageAnsi=1250
+locale.hr.codepageOem=852
+locale.hr.regionAbbrev=HRV
+locale.hr.languageAbbrev=HRV
+locale.hr-HR.lcid=0x041A
+locale.hr-HR.locale=Croatian (Croatia)
+locale.hr-HR.language=Croatian
+locale.hr-HR.languageLocal=hrvatski (Hrvatska)
+locale.hr-HR.codepageAnsi=1250
+locale.hr-HR.codepageOem=852
+locale.hr-HR.regionAbbrev=HRV
+locale.hr-HR.languageAbbrev=HRV
+locale.hr-BA.lcid=0x101A
+locale.hr-BA.locale="Croatian (Latin, Bosnia and Herzegovina)"
+locale.hr-BA.language=Croatian (Latin)
+locale.hr-BA.languageLocal=hrvatski (Bosna i Hercegovina)
+locale.hr-BA.codepageAnsi=1250
+locale.hr-BA.codepageOem=852
+locale.hr-BA.regionAbbrev=BIH
+locale.hr-BA.languageAbbrev=HRB
+locale.cs.lcid=0x0005
+locale.cs.locale=Czech
+locale.cs.language=Czech
+locale.cs.languageLocal=čeština
+locale.cs.codepageAnsi=1250
+locale.cs.codepageOem=852
+locale.cs.regionAbbrev=CZE
+locale.cs.languageAbbrev=CSY
+locale.cs-CZ.lcid=0x0405
+locale.cs-CZ.locale=Czech (Czech Republic)
+locale.cs-CZ.language=Czech
+locale.cs-CZ.languageLocal=čeština (Česká republika)
+locale.cs-CZ.codepageAnsi=1250
+locale.cs-CZ.codepageOem=852
+locale.cs-CZ.regionAbbrev=CZE
+locale.cs-CZ.languageAbbrev=CSY
+locale.da.lcid=0x0006
+locale.da.locale=Danish
+locale.da.language=Danish
+locale.da.languageLocal=dansk
+locale.da.codepageAnsi=1252
+locale.da.codepageOem=850
+locale.da.regionAbbrev=DNK
+locale.da.languageAbbrev=DAN
+locale.da-DK.lcid=0x0406
+locale.da-DK.locale=Danish (Denmark)
+locale.da-DK.language=Danish
+locale.da-DK.languageLocal=dansk (Danmark)
+locale.da-DK.codepageAnsi=1252
+locale.da-DK.codepageOem=850
+locale.da-DK.regionAbbrev=DNK
+locale.da-DK.languageAbbrev=DAN
+locale.prs-AF.lcid=0x048C
+locale.prs-AF.locale=Dari (Afghanistan)
+locale.prs-AF.language=Dari
+locale.prs-AF.languageLocal=درى (افغانستان)
+locale.prs-AF.codepageAnsi=1256
+locale.prs-AF.codepageOem=720
+locale.prs-AF.regionAbbrev=AFG
+locale.prs-AF.languageAbbrev=PRS
+locale.div.lcid=0x0065
+locale.div.locale=Divehi
+locale.div.language=Divehi
+locale.div.languageLocal=ދިވެހިބަސް
+locale.div.codepageAnsi=0
+locale.div.codepageOem=1
+locale.div.regionAbbrev=MDV
+locale.div.languageAbbrev=DIV
+locale.div-MV.lcid=0x0465
+locale.div-MV.locale=Divehi (Maldives)
+locale.div-MV.language=Divehi
+locale.div-MV.languageLocal=ދިވެހިބަސް (ދިވެހި ރާއްޖެ)
+locale.div-MV.codepageAnsi=0
+locale.div-MV.codepageOem=1
+locale.div-MV.regionAbbrev=MDV
+locale.div-MV.languageAbbrev=DIV
+locale.nl.lcid=0x0013
+locale.nl.locale=Dutch
+locale.nl.language=Dutch
+locale.nl.languageLocal=Nederlands
+locale.nl.codepageAnsi=1252
+locale.nl.codepageOem=850
+locale.nl.regionAbbrev=NLD
+locale.nl.languageAbbrev=NLD
+locale.nl-BE.lcid=0x0813
+locale.nl-BE.locale=Dutch (Belgium)
+locale.nl-BE.language=Dutch
+locale.nl-BE.languageLocal=Nederlands (België)
+locale.nl-BE.codepageAnsi=1252
+locale.nl-BE.codepageOem=850
+locale.nl-BE.regionAbbrev=BEL
+locale.nl-BE.languageAbbrev=NLB
+locale.nl-NL.lcid=0x0413
+locale.nl-NL.locale=Dutch (Netherlands)
+locale.nl-NL.language=Dutch
+locale.nl-NL.languageLocal=Nederlands (Nederland)
+locale.nl-NL.codepageAnsi=1252
+locale.nl-NL.codepageOem=850
+locale.nl-NL.regionAbbrev=NLD
+locale.nl-NL.languageAbbrev=NLD
+locale.en.lcid=0x0009
+locale.en.locale=English
+locale.en.language=English
+locale.en.languageLocal=English
+locale.en.codepageAnsi=1252
+locale.en.codepageOem=437
+locale.en.regionAbbrev=USA
+locale.en.languageAbbrev=ENU
+locale.en-AU.lcid=0x0C09
+locale.en-AU.locale=English (Australia)
+locale.en-AU.language=English
+locale.en-AU.languageLocal=English (Australia)
+locale.en-AU.codepageAnsi=1252
+locale.en-AU.codepageOem=850
+locale.en-AU.regionAbbrev=AUS
+locale.en-AU.languageAbbrev=ENA
+locale.en-BZ.lcid=0x2809
+locale.en-BZ.locale=English (Belize)
+locale.en-BZ.language=English
+locale.en-BZ.languageLocal=English (Belize)
+locale.en-BZ.codepageAnsi=1252
+locale.en-BZ.codepageOem=850
+locale.en-BZ.regionAbbrev=BLZ
+locale.en-BZ.languageAbbrev=ENL
+locale.en-CA.lcid=0x1009
+locale.en-CA.locale=English (Canada)
+locale.en-CA.language=English
+locale.en-CA.languageLocal=English (Canada)
+locale.en-CA.codepageAnsi=1252
+locale.en-CA.codepageOem=850
+locale.en-CA.regionAbbrev=CAN
+locale.en-CA.languageAbbrev=ENC
+locale.en-029.lcid=0x2409
+locale.en-029.locale=English (Caribbean)
+locale.en-029.language=English
+locale.en-029.languageLocal=English (Caribbean)
+locale.en-029.codepageAnsi=1252
+locale.en-029.codepageOem=850
+locale.en-029.regionAbbrev=CAR
+locale.en-029.languageAbbrev=ENB
+locale.en-IN.lcid=0x4009
+locale.en-IN.locale=English (India)
+locale.en-IN.language=English
+locale.en-IN.languageLocal=English (India)
+locale.en-IN.codepageAnsi=1252
+locale.en-IN.codepageOem=437
+locale.en-IN.regionAbbrev=IND
+locale.en-IN.languageAbbrev=ENN
+locale.en-IE.lcid=0x1809
+locale.en-IE.locale=English (Ireland)
+locale.en-IE.language=English
+locale.en-IE.languageLocal=English (Eire)
+locale.en-IE.codepageAnsi=1252
+locale.en-IE.codepageOem=850
+locale.en-IE.regionAbbrev=IRL
+locale.en-IE.languageAbbrev=ENI
+locale.en-JM.lcid=0x2009
+locale.en-JM.locale=English (Jamaica)
+locale.en-JM.language=English
+locale.en-JM.languageLocal=English (Jamaica)
+locale.en-JM.codepageAnsi=1252
+locale.en-JM.codepageOem=850
+locale.en-JM.regionAbbrev=JAM
+locale.en-JM.languageAbbrev=ENJ
+locale.en-MY.lcid=0x4409
+locale.en-MY.locale=English (Malaysia)
+locale.en-MY.language=English
+locale.en-MY.languageLocal=English (Malaysia)
+locale.en-MY.codepageAnsi=1252
+locale.en-MY.codepageOem=437
+locale.en-MY.regionAbbrev=MYS
+locale.en-MY.languageAbbrev=ENM
+locale.en-NZ.lcid=0x1409
+locale.en-NZ.locale=English (New Zealand)
+locale.en-NZ.language=English
+locale.en-NZ.languageLocal=English (New Zealand)
+locale.en-NZ.codepageAnsi=1252
+locale.en-NZ.codepageOem=850
+locale.en-NZ.regionAbbrev=NZL
+locale.en-NZ.languageAbbrev=ENZ
+locale.en-PH.lcid=0x3409
+locale.en-PH.locale=English (Republic of the Philippines)
+locale.en-PH.language=English
+locale.en-PH.languageLocal=English (Philippines)
+locale.en-PH.codepageAnsi=1252
+locale.en-PH.codepageOem=437
+locale.en-PH.regionAbbrev=PHL
+locale.en-PH.languageAbbrev=ENP
+locale.en-SG.lcid=0x4809
+locale.en-SG.locale=English (Singapore)
+locale.en-SG.language=English
+locale.en-SG.languageLocal=English (Singapore)
+locale.en-SG.codepageAnsi=1252
+locale.en-SG.codepageOem=437
+locale.en-SG.regionAbbrev=SGP
+locale.en-SG.languageAbbrev=ENE
+locale.en-ZA.lcid=0x1C09
+locale.en-ZA.locale=English (South Africa)
+locale.en-ZA.language=English
+locale.en-ZA.languageLocal=English (South Africa)
+locale.en-ZA.codepageAnsi=1252
+locale.en-ZA.codepageOem=437
+locale.en-ZA.regionAbbrev=ZAF
+locale.en-ZA.languageAbbrev=ENS
+locale.en-TT.lcid=0x2C09
+locale.en-TT.locale=English (Trinidad and Tobago)
+locale.en-TT.language=English
+locale.en-TT.languageLocal=English (Trinidad y Tobago)
+locale.en-TT.codepageAnsi=1252
+locale.en-TT.codepageOem=850
+locale.en-TT.regionAbbrev=TTO
+locale.en-TT.languageAbbrev=ENT
+locale.en-GB.lcid=0x0809
+locale.en-GB.locale=English (United Kingdom)
+locale.en-GB.language=English
+locale.en-GB.languageLocal=English (United Kingdom)
+locale.en-GB.codepageAnsi=1252
+locale.en-GB.codepageOem=850
+locale.en-GB.regionAbbrev=GBR
+locale.en-GB.languageAbbrev=ENG
+locale.en-US.lcid=0x0409
+locale.en-US.locale=English (United States)
+locale.en-US.language=English
+locale.en-US.languageLocal=English (United States)
+locale.en-US.codepageAnsi=1252
+locale.en-US.codepageOem=437
+locale.en-US.regionAbbrev=USA
+locale.en-US.languageAbbrev=ENU
+locale.en-ZW.lcid=0x3009
+locale.en-ZW.locale=English (Zimbabwe)
+locale.en-ZW.language=English
+locale.en-ZW.languageLocal=English (Zimbabwe)
+locale.en-ZW.codepageAnsi=1252
+locale.en-ZW.codepageOem=437
+locale.en-ZW.regionAbbrev=ZWE
+locale.en-ZW.languageAbbrev=ENW
+locale.et.lcid=0x0025
+locale.et.locale=Estonian
+locale.et.language=Estonian
+locale.et.languageLocal=eesti
+locale.et.codepageAnsi=1257
+locale.et.codepageOem=775
+locale.et.regionAbbrev=EST
+locale.et.languageAbbrev=ETI
+locale.et-EE.lcid=0x0425
+locale.et-EE.locale=Estonian (Estonia)
+locale.et-EE.language=Estonian
+locale.et-EE.languageLocal=eesti (Eesti)
+locale.et-EE.codepageAnsi=1257
+locale.et-EE.codepageOem=775
+locale.et-EE.regionAbbrev=EST
+locale.et-EE.languageAbbrev=ETI
+locale.fo.lcid=0x0038
+locale.fo.locale=Faroese
+locale.fo.language=Faroese
+locale.fo.languageLocal=føroyskt
+locale.fo.codepageAnsi=1252
+locale.fo.codepageOem=850
+locale.fo.regionAbbrev=FRO
+locale.fo.languageAbbrev=FOS
+locale.fo-FO.lcid=0x0438
+locale.fo-FO.locale=Faroese (Faroe Islands)
+locale.fo-FO.language=Faroese
+locale.fo-FO.languageLocal=føroyskt (Føroyar)
+locale.fo-FO.codepageAnsi=1252
+locale.fo-FO.codepageOem=850
+locale.fo-FO.regionAbbrev=FRO
+locale.fo-FO.languageAbbrev=FOS
+locale.fil-PH.lcid=0x0464
+locale.fil-PH.locale=Filipino (Philippines)
+locale.fil-PH.language=Filipino
+locale.fil-PH.languageLocal=Filipino (Pilipinas)
+locale.fil-PH.codepageAnsi=1252
+locale.fil-PH.codepageOem=437
+locale.fil-PH.regionAbbrev=PHL
+locale.fil-PH.languageAbbrev=FPO
+locale.fi.lcid=0x000B
+locale.fi.locale=Finnish
+locale.fi.language=Finnish
+locale.fi.languageLocal=suomi
+locale.fi.codepageAnsi=1252
+locale.fi.codepageOem=850
+locale.fi.regionAbbrev=FIN
+locale.fi.languageAbbrev=FIN
+locale.fi-FI.lcid=0x040B
+locale.fi-FI.locale=Finnish (Finland)
+locale.fi-FI.language=Finnish
+locale.fi-FI.languageLocal=suomi (Suomi)
+locale.fi-FI.codepageAnsi=1252
+locale.fi-FI.codepageOem=850
+locale.fi-FI.regionAbbrev=FIN
+locale.fi-FI.languageAbbrev=FIN
+locale.fr.lcid=0x000C
+locale.fr.locale=French
+locale.fr.language=French
+locale.fr.languageLocal=français
+locale.fr.codepageAnsi=1252
+locale.fr.codepageOem=850
+locale.fr.regionAbbrev=FRA
+locale.fr.languageAbbrev=FRA
+locale.fr-BE.lcid=0x080C
+locale.fr-BE.locale=French (Belgium)
+locale.fr-BE.language=French
+locale.fr-BE.languageLocal=français (Belgique)
+locale.fr-BE.codepageAnsi=1252
+locale.fr-BE.codepageOem=850
+locale.fr-BE.regionAbbrev=BEL
+locale.fr-BE.languageAbbrev=FRB
+locale.fr-CA.lcid=0x0C0C
+locale.fr-CA.locale=French (Canada)
+locale.fr-CA.language=French
+locale.fr-CA.languageLocal=français (Canada)
+locale.fr-CA.codepageAnsi=1252
+locale.fr-CA.codepageOem=850
+locale.fr-CA.regionAbbrev=CAN
+locale.fr-CA.languageAbbrev=FRC
+locale.fr-FR.lcid=0x040C
+locale.fr-FR.locale=French (France)
+locale.fr-FR.language=French
+locale.fr-FR.languageLocal=français (France)
+locale.fr-FR.codepageAnsi=1252
+locale.fr-FR.codepageOem=850
+locale.fr-FR.regionAbbrev=FRA
+locale.fr-FR.languageAbbrev=FRA
+locale.fr-LU.lcid=0x140C
+locale.fr-LU.locale=French (Luxembourg)
+locale.fr-LU.language=French
+locale.fr-LU.languageLocal=français (Luxembourg)
+locale.fr-LU.codepageAnsi=1252
+locale.fr-LU.codepageOem=850
+locale.fr-LU.regionAbbrev=LUX
+locale.fr-LU.languageAbbrev=FRL
+locale.fr-MC.lcid=0x180C
+locale.fr-MC.locale=French (Principality of Monaco)
+locale.fr-MC.language=French
+locale.fr-MC.languageLocal=français (Principauté de Monaco)
+locale.fr-MC.codepageAnsi=1252
+locale.fr-MC.codepageOem=850
+locale.fr-MC.regionAbbrev=MCO
+locale.fr-MC.languageAbbrev=FRM
+locale.fr-CH.lcid=0x100C
+locale.fr-CH.locale=French (Switzerland)
+locale.fr-CH.language=French
+locale.fr-CH.languageLocal=français (Suisse)
+locale.fr-CH.codepageAnsi=1252
+locale.fr-CH.codepageOem=850
+locale.fr-CH.regionAbbrev=CHE
+locale.fr-CH.languageAbbrev=FRS
+locale.fy-NL.lcid=0x0462
+locale.fy-NL.locale=Frisian (Netherlands)
+locale.fy-NL.language=Frisian
+locale.fy-NL.languageLocal=Frysk (Nederlân)
+locale.fy-NL.codepageAnsi=1252
+locale.fy-NL.codepageOem=850
+locale.fy-NL.regionAbbrev=NLD
+locale.fy-NL.languageAbbrev=FYN
+locale.gl.lcid=0x0056
+locale.gl.locale=Galician
+locale.gl.language=Galician
+locale.gl.languageLocal=galego
+locale.gl.codepageAnsi=1252
+locale.gl.codepageOem=850
+locale.gl.regionAbbrev=ESP
+locale.gl.languageAbbrev=GLC
+locale.gl-ES.lcid=0x0456
+locale.gl-ES.locale=Galician (Galician)
+locale.gl-ES.language=Galician
+locale.gl-ES.languageLocal=galego (galego)
+locale.gl-ES.codepageAnsi=1252
+locale.gl-ES.codepageOem=850
+locale.gl-ES.regionAbbrev=ESP
+locale.gl-ES.languageAbbrev=GLC
+locale.ka.lcid=0x0037
+locale.ka.locale=Georgian
+locale.ka.language=Georgian
+locale.ka.languageLocal=ქართული
+locale.ka.codepageAnsi=0
+locale.ka.codepageOem=1
+locale.ka.regionAbbrev=GEO
+locale.ka.languageAbbrev=KAT
+locale.ka-GE.lcid=0x0437
+locale.ka-GE.locale=Georgian (Georgia)
+locale.ka-GE.language=Georgian
+locale.ka-GE.languageLocal=ქართული (საქართველო)
+locale.ka-GE.codepageAnsi=0
+locale.ka-GE.codepageOem=1
+locale.ka-GE.regionAbbrev=GEO
+locale.ka-GE.languageAbbrev=KAT
+locale.de.lcid=0x0007
+locale.de.locale=German
+locale.de.language=German
+locale.de.languageLocal=Deutsch
+locale.de.codepageAnsi=1252
+locale.de.codepageOem=850
+locale.de.regionAbbrev=DEU
+locale.de.languageAbbrev=DEU
+locale.de-AT.lcid=0x0C07
+locale.de-AT.locale=German (Austria)
+locale.de-AT.language=German
+locale.de-AT.languageLocal=Deutsch (Österreich)
+locale.de-AT.codepageAnsi=1252
+locale.de-AT.codepageOem=850
+locale.de-AT.regionAbbrev=AUT
+locale.de-AT.languageAbbrev=DEA
+locale.de-DE.lcid=0x0407
+locale.de-DE.locale=German (Germany)
+locale.de-DE.language=German
+locale.de-DE.languageLocal=Deutsch (Deutschland)
+locale.de-DE.codepageAnsi=1252
+locale.de-DE.codepageOem=850
+locale.de-DE.regionAbbrev=DEU
+locale.de-DE.languageAbbrev=DEU
+locale.de-LI.lcid=0x1407
+locale.de-LI.locale=German (Liechtenstein)
+locale.de-LI.language=German
+locale.de-LI.languageLocal=Deutsch (Liechtenstein)
+locale.de-LI.codepageAnsi=1252
+locale.de-LI.codepageOem=850
+locale.de-LI.regionAbbrev=LIE
+locale.de-LI.languageAbbrev=DEC
+locale.de-LU.lcid=0x1007
+locale.de-LU.locale=German (Luxembourg)
+locale.de-LU.language=German
+locale.de-LU.languageLocal=Deutsch (Luxemburg)
+locale.de-LU.codepageAnsi=1252
+locale.de-LU.codepageOem=850
+locale.de-LU.regionAbbrev=LUX
+locale.de-LU.languageAbbrev=DEL
+locale.de-CH.lcid=0x0807
+locale.de-CH.locale=German (Switzerland)
+locale.de-CH.language=German
+locale.de-CH.languageLocal=Deutsch (Schweiz)
+locale.de-CH.codepageAnsi=1252
+locale.de-CH.codepageOem=850
+locale.de-CH.regionAbbrev=CHE
+locale.de-CH.languageAbbrev=DES
+locale.el.lcid=0x0008
+locale.el.locale=Greek
+locale.el.language=Greek
+locale.el.languageLocal=ελληνικά
+locale.el.codepageAnsi=1253
+locale.el.codepageOem=737
+locale.el.regionAbbrev=GRC
+locale.el.languageAbbrev=ELL
+locale.el-GR.lcid=0x0408
+locale.el-GR.locale=Greek (Greece)
+locale.el-GR.language=Greek
+locale.el-GR.languageLocal=ελληνικά (Ελλάδα)
+locale.el-GR.codepageAnsi=1253
+locale.el-GR.codepageOem=737
+locale.el-GR.regionAbbrev=GRC
+locale.el-GR.languageAbbrev=ELL
+locale.kl-GL.lcid=0x046F
+locale.kl-GL.locale=Greenlandic (Greenland)
+locale.kl-GL.language=Greenlandic
+locale.kl-GL.languageLocal=kalaallisut (Kalaallit Nunaat)
+locale.kl-GL.codepageAnsi=1252
+locale.kl-GL.codepageOem=850
+locale.kl-GL.regionAbbrev=GRL
+locale.kl-GL.languageAbbrev=KAL
+locale.gu.lcid=0x0047
+locale.gu.locale=Gujarati
+locale.gu.language=Gujarati
+locale.gu.languageLocal=ગુજરાતી
+locale.gu.codepageAnsi=0
+locale.gu.codepageOem=1
+locale.gu.regionAbbrev=IND
+locale.gu.languageAbbrev=GUJ
+locale.gu-IN.lcid=0x0447
+locale.gu-IN.locale=Gujarati (India)
+locale.gu-IN.language=Gujarati
+locale.gu-IN.languageLocal=ગુજરાતી (ભારત)
+locale.gu-IN.codepageAnsi=0
+locale.gu-IN.codepageOem=1
+locale.gu-IN.regionAbbrev=IND
+locale.gu-IN.languageAbbrev=GUJ
+locale.ha-Latn-NG.lcid=0x0468
+locale.ha-Latn-NG.locale="Hausa (Latin, Nigeria)"
+locale.ha-Latn-NG.language=Hausa (Latin)
+locale.ha-Latn-NG.languageLocal=Hausa (Nigeria)
+locale.ha-Latn-NG.codepageAnsi=1252
+locale.ha-Latn-NG.codepageOem=437
+locale.ha-Latn-NG.regionAbbrev=NGA
+locale.ha-Latn-NG.languageAbbrev=HAU
+locale.he.lcid=0x000D
+locale.he.locale=Hebrew
+locale.he.language=Hebrew
+locale.he.languageLocal=עברית
+locale.he.codepageAnsi=1255
+locale.he.codepageOem=862
+locale.he.regionAbbrev=ISR
+locale.he.languageAbbrev=HEB
+locale.he-IL.lcid=0x040D
+locale.he-IL.locale=Hebrew (Israel)
+locale.he-IL.language=Hebrew
+locale.he-IL.languageLocal=עברית (ישראל)
+locale.he-IL.codepageAnsi=1255
+locale.he-IL.codepageOem=862
+locale.he-IL.regionAbbrev=ISR
+locale.he-IL.languageAbbrev=HEB
+locale.hi.lcid=0x0039
+locale.hi.locale=Hindi
+locale.hi.language=Hindi
+locale.hi.languageLocal=हिंदी
+locale.hi.codepageAnsi=0
+locale.hi.codepageOem=1
+locale.hi.regionAbbrev=IND
+locale.hi.languageAbbrev=HIN
+locale.hi-IN.lcid=0x0439
+locale.hi-IN.locale=Hindi (India)
+locale.hi-IN.language=Hindi
+locale.hi-IN.languageLocal=हिंदी (भारत)
+locale.hi-IN.codepageAnsi=0
+locale.hi-IN.codepageOem=1
+locale.hi-IN.regionAbbrev=IND
+locale.hi-IN.languageAbbrev=HIN
+locale.hu.lcid=0x000E
+locale.hu.locale=Hungarian
+locale.hu.language=Hungarian
+locale.hu.languageLocal=magyar
+locale.hu.codepageAnsi=1250
+locale.hu.codepageOem=852
+locale.hu.regionAbbrev=HUN
+locale.hu.languageAbbrev=HUN
+locale.hu-HU.lcid=0x040E
+locale.hu-HU.locale=Hungarian (Hungary)
+locale.hu-HU.language=Hungarian
+locale.hu-HU.languageLocal=magyar (Magyarország)
+locale.hu-HU.codepageAnsi=1250
+locale.hu-HU.codepageOem=852
+locale.hu-HU.regionAbbrev=HUN
+locale.hu-HU.languageAbbrev=HUN
+locale.is.lcid=0x000F
+locale.is.locale=Icelandic
+locale.is.language=Icelandic
+locale.is.languageLocal=íslenska
+locale.is.codepageAnsi=1252
+locale.is.codepageOem=850
+locale.is.regionAbbrev=ISL
+locale.is.languageAbbrev=ISL
+locale.is-IS.lcid=0x040F
+locale.is-IS.locale=Icelandic (Iceland)
+locale.is-IS.language=Icelandic
+locale.is-IS.languageLocal=íslenska (Ísland)
+locale.is-IS.codepageAnsi=1252
+locale.is-IS.codepageOem=850
+locale.is-IS.regionAbbrev=ISL
+locale.is-IS.languageAbbrev=ISL
+locale.ig-NG.lcid=0x0470
+locale.ig-NG.locale=Igbo (Nigeria)
+locale.ig-NG.language=Igbo
+locale.ig-NG.languageLocal=Igbo (Nigeria)
+locale.ig-NG.codepageAnsi=1252
+locale.ig-NG.codepageOem=437
+locale.ig-NG.regionAbbrev=NGA
+locale.ig-NG.languageAbbrev=IBO
+locale.id.lcid=0x0021
+locale.id.locale=Indonesian
+locale.id.language=Indonesian
+locale.id.languageLocal=Bahasa Indonesia
+locale.id.codepageAnsi=1252
+locale.id.codepageOem=850
+locale.id.regionAbbrev=IDN
+locale.id.languageAbbrev=IND
+locale.id-ID.lcid=0x0421
+locale.id-ID.locale=Indonesian (Indonesia)
+locale.id-ID.language=Indonesian
+locale.id-ID.languageLocal=Bahasa Indonesia (Indonesia)
+locale.id-ID.codepageAnsi=1252
+locale.id-ID.codepageOem=850
+locale.id-ID.regionAbbrev=IDN
+locale.id-ID.languageAbbrev=IND
+locale.iu-Latn-CA.lcid=0x085D
+locale.iu-Latn-CA.locale="Inuktitut (Latin, Canada)"
+locale.iu-Latn-CA.language=Inuktitut (Latin)
+locale.iu-Latn-CA.languageLocal=Inuktitut (Kanatami) (kanata)
+locale.iu-Latn-CA.codepageAnsi=1252
+locale.iu-Latn-CA.codepageOem=437
+locale.iu-Latn-CA.regionAbbrev=CAN
+locale.iu-Latn-CA.languageAbbrev=IUK
+locale.iu-Cans-CA.lcid=0x045D
+locale.iu-Cans-CA.locale="Inuktitut (Syllabics, Canada)"
+locale.iu-Cans-CA.language=Inuktitut
+locale.iu-Cans-CA.languageLocal=ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕ)
+locale.iu-Cans-CA.codepageAnsi=0
+locale.iu-Cans-CA.codepageOem=1
+locale.iu-Cans-CA.regionAbbrev=CAN
+locale.iu-Cans-CA.languageAbbrev=IUS
+locale.ga-IE.lcid=0x083C
+locale.ga-IE.locale=Irish (Ireland)
+locale.ga-IE.language=Irish
+locale.ga-IE.languageLocal=Gaeilge (Éire)
+locale.ga-IE.codepageAnsi=1252
+locale.ga-IE.codepageOem=850
+locale.ga-IE.regionAbbrev=IRL
+locale.ga-IE.languageAbbrev=IRE
+locale.xh-ZA.lcid=0x0434
+locale.xh-ZA.locale=isiXhosa (South Africa)
+locale.xh-ZA.language=isiXhosa
+locale.xh-ZA.languageLocal=isiXhosa (uMzantsi Afrika)
+locale.xh-ZA.codepageAnsi=1252
+locale.xh-ZA.codepageOem=850
+locale.xh-ZA.regionAbbrev=ZAF
+locale.xh-ZA.languageAbbrev=XHO
+locale.zu-ZA.lcid=0x0435
+locale.zu-ZA.locale=isiZulu (South Africa)
+locale.zu-ZA.language=isiZulu
+locale.zu-ZA.languageLocal=isiZulu (iNingizimu Afrika)
+locale.zu-ZA.codepageAnsi=1252
+locale.zu-ZA.codepageOem=850
+locale.zu-ZA.regionAbbrev=ZAF
+locale.zu-ZA.languageAbbrev=ZUL
+locale.it.lcid=0x0010
+locale.it.locale=Italian
+locale.it.language=Italian
+locale.it.languageLocal=italiano
+locale.it.codepageAnsi=1252
+locale.it.codepageOem=850
+locale.it.regionAbbrev=ITA
+locale.it.languageAbbrev=ITA
+locale.it-IT.lcid=0x0410
+locale.it-IT.locale=Italian (Italy)
+locale.it-IT.language=Italian
+locale.it-IT.languageLocal=italiano (Italia)
+locale.it-IT.codepageAnsi=1252
+locale.it-IT.codepageOem=850
+locale.it-IT.regionAbbrev=ITA
+locale.it-IT.languageAbbrev=ITA
+locale.it-CH.lcid=0x0810
+locale.it-CH.locale=Italian (Switzerland)
+locale.it-CH.language=Italian
+locale.it-CH.languageLocal=italiano (Svizzera)
+locale.it-CH.codepageAnsi=1252
+locale.it-CH.codepageOem=850
+locale.it-CH.regionAbbrev=CHE
+locale.it-CH.languageAbbrev=ITS
+locale.ja.lcid=0x0011
+locale.ja.locale=Japanese
+locale.ja.language=Japanese
+locale.ja.languageLocal=日本語
+locale.ja.codepageAnsi=932
+locale.ja.codepageOem=932
+locale.ja.regionAbbrev=JPN
+locale.ja.languageAbbrev=JPN
+locale.ja-JP.lcid=0x0411
+locale.ja-JP.locale=Japanese (Japan)
+locale.ja-JP.language=Japanese
+locale.ja-JP.languageLocal=日本語 (日本)
+locale.ja-JP.codepageAnsi=932
+locale.ja-JP.codepageOem=932
+locale.ja-JP.regionAbbrev=JPN
+locale.ja-JP.languageAbbrev=JPN
+locale.kn.lcid=0x004B
+locale.kn.locale=Kannada
+locale.kn.language=Kannada
+locale.kn.languageLocal=ಕನ್ನಡ
+locale.kn.codepageAnsi=0
+locale.kn.codepageOem=1
+locale.kn.regionAbbrev=IND
+locale.kn.languageAbbrev=KDI
+locale.kn-IN.lcid=0x044B
+locale.kn-IN.locale=Kannada (India)
+locale.kn-IN.language=Kannada
+locale.kn-IN.languageLocal=ಕನ್ನಡ (ಭಾರತ)
+locale.kn-IN.codepageAnsi=0
+locale.kn-IN.codepageOem=1
+locale.kn-IN.regionAbbrev=IND
+locale.kn-IN.languageAbbrev=KDI
+locale.kk.lcid=0x003F
+locale.kk.locale=Kazakh
+locale.kk.language=Kazakh
+locale.kk.languageLocal=Қазащb
+locale.kk.codepageAnsi=1251
+locale.kk.codepageOem=866
+locale.kk.regionAbbrev=KAZ
+locale.kk.languageAbbrev=KKZ
+locale.kk-KZ.lcid=0x043F
+locale.kk-KZ.locale=Kazakh (Kazakhstan)
+locale.kk-KZ.language=Kazakh
+locale.kk-KZ.languageLocal=Қазақ (Қазақстан)
+locale.kk-KZ.codepageAnsi=1251
+locale.kk-KZ.codepageOem=866
+locale.kk-KZ.regionAbbrev=KAZ
+locale.kk-KZ.languageAbbrev=KKZ
+locale.km-KH.lcid=0x0453
+locale.km-KH.locale=Khmer (Cambodia)
+locale.km-KH.language=Khmer
+locale.km-KH.languageLocal=ខ្មែរ (កម្ពុជា)
+locale.km-KH.codepageAnsi=0
+locale.km-KH.codepageOem=1
+locale.km-KH.regionAbbrev=KHM
+locale.km-KH.languageAbbrev=KHM
+locale.qut-GT.lcid=0x0486
+locale.qut-GT.locale=K'iche (Guatemala)
+locale.qut-GT.language=K'iche
+locale.qut-GT.languageLocal=K'iche (Guatemala)
+locale.qut-GT.codepageAnsi=1252
+locale.qut-GT.codepageOem=850
+locale.qut-GT.regionAbbrev=GTM
+locale.qut-GT.languageAbbrev=QUT
+locale.rw-RW.lcid=0x0487
+locale.rw-RW.locale=Kinyarwanda (Rwanda)
+locale.rw-RW.language=Kinyarwanda
+locale.rw-RW.languageLocal=Kinyarwanda (Rwanda)
+locale.rw-RW.codepageAnsi=1252
+locale.rw-RW.codepageOem=437
+locale.rw-RW.regionAbbrev=RWA
+locale.rw-RW.languageAbbrev=KIN
+locale.sw.lcid=0x0041
+locale.sw.locale=Kiswahili
+locale.sw.language=Kiswahili
+locale.sw.languageLocal=Kiswahili
+locale.sw.codepageAnsi=1252
+locale.sw.codepageOem=437
+locale.sw.regionAbbrev=KEN
+locale.sw.languageAbbrev=SWK
+locale.sw-KE.lcid=0x0441
+locale.sw-KE.locale=Kiswahili (Kenya)
+locale.sw-KE.language=Kiswahili
+locale.sw-KE.languageLocal=Kiswahili (Kenya)
+locale.sw-KE.codepageAnsi=1252
+locale.sw-KE.codepageOem=437
+locale.sw-KE.regionAbbrev=KEN
+locale.sw-KE.languageAbbrev=SWK
+locale.kok.lcid=0x0057
+locale.kok.locale=Konkani
+locale.kok.language=Konkani
+locale.kok.languageLocal=कोंकणी
+locale.kok.codepageAnsi=0
+locale.kok.codepageOem=1
+locale.kok.regionAbbrev=IND
+locale.kok.languageAbbrev=KNK
+locale.kok-IN.lcid=0x0457
+locale.kok-IN.locale=Konkani (India)
+locale.kok-IN.language=Konkani
+locale.kok-IN.languageLocal=कोंकणी (भारत)
+locale.kok-IN.codepageAnsi=0
+locale.kok-IN.codepageOem=1
+locale.kok-IN.regionAbbrev=IND
+locale.kok-IN.languageAbbrev=KNK
+locale.ko.lcid=0x0012
+locale.ko.locale=Korean
+locale.ko.language=Korean
+locale.ko.languageLocal=한국어
+locale.ko.codepageAnsi=949
+locale.ko.codepageOem=949
+locale.ko.regionAbbrev=KOR
+locale.ko.languageAbbrev=KOR
+locale.ko-KR.lcid=0x0412
+locale.ko-KR.locale=Korean (Korea)
+locale.ko-KR.language=Korean
+locale.ko-KR.languageLocal=한국어 (대한민국)
+locale.ko-KR.codepageAnsi=949
+locale.ko-KR.codepageOem=949
+locale.ko-KR.regionAbbrev=KOR
+locale.ko-KR.languageAbbrev=KOR
+locale.ky.lcid=0x0040
+locale.ky.locale=Kyrgyz
+locale.ky.language=Kyrgyz
+locale.ky.languageLocal=Кыргыз
+locale.ky.codepageAnsi=1251
+locale.ky.codepageOem=866
+locale.ky.regionAbbrev=KGZ
+locale.ky.languageAbbrev=KYR
+locale.ky-KG.lcid=0x0440
+locale.ky-KG.locale=Kyrgyz (Kyrgyzstan)
+locale.ky-KG.language=Kyrgyz
+locale.ky-KG.languageLocal=Кыргыз (Кыргызстан)
+locale.ky-KG.codepageAnsi=1251
+locale.ky-KG.codepageOem=866
+locale.ky-KG.regionAbbrev=KGZ
+locale.ky-KG.languageAbbrev=KYR
+locale.lo-LA.lcid=0x0454
+locale.lo-LA.locale=Lao (Lao P.D.R.)
+locale.lo-LA.language=Lao
+locale.lo-LA.languageLocal=ລາວ (ສ.ປ.ປ. ລາວ)
+locale.lo-LA.codepageAnsi=0
+locale.lo-LA.codepageOem=1
+locale.lo-LA.regionAbbrev=LAO
+locale.lo-LA.languageAbbrev=LAO
+locale.lv.lcid=0x0026
+locale.lv.locale=Latvian
+locale.lv.language=Latvian
+locale.lv.languageLocal=latviešu
+locale.lv.codepageAnsi=1257
+locale.lv.codepageOem=775
+locale.lv.regionAbbrev=LVA
+locale.lv.languageAbbrev=LVI
+locale.lv-LV.lcid=0x0426
+locale.lv-LV.locale=Latvian (Latvia)
+locale.lv-LV.language=Latvian
+locale.lv-LV.languageLocal=latviešu (Latvija)
+locale.lv-LV.codepageAnsi=1257
+locale.lv-LV.codepageOem=775
+locale.lv-LV.regionAbbrev=LVA
+locale.lv-LV.languageAbbrev=LVI
+locale.lt.lcid=0x0027
+locale.lt.locale=Lithuanian
+locale.lt.language=Lithuanian
+locale.lt.languageLocal=lietuvių
+locale.lt.codepageAnsi=1257
+locale.lt.codepageOem=775
+locale.lt.regionAbbrev=LTU
+locale.lt.languageAbbrev=LTH
+locale.lt-LT.lcid=0x0427
+locale.lt-LT.locale=Lithuanian (Lithuania)
+locale.lt-LT.language=Lithuanian
+locale.lt-LT.languageLocal=lietuvių (Lietuva)
+locale.lt-LT.codepageAnsi=1257
+locale.lt-LT.codepageOem=775
+locale.lt-LT.regionAbbrev=LTU
+locale.lt-LT.languageAbbrev=LTH
+locale.wee-DE.lcid=0x082E
+locale.wee-DE.locale=Lower Sorbian (Germany)
+locale.wee-DE.language=Lower Sorbian
+locale.wee-DE.languageLocal=dolnoserbšćina (Nimska)
+locale.wee-DE.codepageAnsi=1252
+locale.wee-DE.codepageOem=850
+locale.wee-DE.regionAbbrev=GER
+locale.wee-DE.languageAbbrev=DSB
+locale.lb-LU.lcid=0x046E
+locale.lb-LU.locale=Luxembourgish (Luxembourg)
+locale.lb-LU.language=Luxembourgish
+locale.lb-LU.languageLocal=Lëtzebuergesch (Luxembourg)
+locale.lb-LU.codepageAnsi=1252
+locale.lb-LU.codepageOem=850
+locale.lb-LU.regionAbbrev=LUX
+locale.lb-LU.languageAbbrev=LBX
+locale.mk.lcid=0x002F
+locale.mk.locale=Macedonian
+locale.mk.language=Macedonian (FYROM)
+locale.mk.languageLocal=македонски јазик
+locale.mk.codepageAnsi=1251
+locale.mk.codepageOem=866
+locale.mk.regionAbbrev=MKD
+locale.mk.languageAbbrev=MKI
+locale.mk-MK.lcid=0x042F
+locale.mk-MK.locale=Macedonian (Former Yugoslav Republic of Macedonia)
+locale.mk-MK.language=Macedonian (FYROM)
+locale.mk-MK.languageLocal=македонски јазик (Македонија)
+locale.mk-MK.codepageAnsi=1251
+locale.mk-MK.codepageOem=866
+locale.mk-MK.regionAbbrev=MKD
+locale.mk-MK.languageAbbrev=MKI
+locale.ms.lcid=0x003E
+locale.ms.locale=Malay
+locale.ms.language=Malay
+locale.ms.languageLocal=Bahasa Malaysia
+locale.ms.codepageAnsi=1252
+locale.ms.codepageOem=850
+locale.ms.regionAbbrev=MYS
+locale.ms.languageAbbrev=MSL
+locale.ms-BN.lcid=0x083E
+locale.ms-BN.locale=Malay (Brunei Darussalam)
+locale.ms-BN.language=Malay
+locale.ms-BN.languageLocal=Bahasa Malaysia (Brunei Darussalam)
+locale.ms-BN.codepageAnsi=1252
+locale.ms-BN.codepageOem=850
+locale.ms-BN.regionAbbrev=BRN
+locale.ms-BN.languageAbbrev=MSB
+locale.ms-MY.lcid=0x043E
+locale.ms-MY.locale=Malay (Malaysia)
+locale.ms-MY.language=Malay
+locale.ms-MY.languageLocal=Bahasa Malaysia (Malaysia)
+locale.ms-MY.codepageAnsi=1252
+locale.ms-MY.codepageOem=850
+locale.ms-MY.regionAbbrev=MYS
+locale.ms-MY.languageAbbrev=MSL
+locale.ml-IN.lcid=0x044C
+locale.ml-IN.locale=Malayalam (India)
+locale.ml-IN.language=Malayalam
+locale.ml-IN.languageLocal=മലയാളം (ഭാരതം)
+locale.ml-IN.codepageAnsi=0
+locale.ml-IN.codepageOem=1
+locale.ml-IN.regionAbbrev=IND
+locale.ml-IN.languageAbbrev=MYM
+locale.mt-MT.lcid=0x043A
+locale.mt-MT.locale=Maltese (Malta)
+locale.mt-MT.language=Maltese
+locale.mt-MT.languageLocal=Malti (Malta)
+locale.mt-MT.codepageAnsi=0
+locale.mt-MT.codepageOem=1
+locale.mt-MT.regionAbbrev=MLT
+locale.mt-MT.languageAbbrev=MLT
+locale.mi-NZ.lcid=0x0481
+locale.mi-NZ.locale=Maori (New Zealand)
+locale.mi-NZ.language=Maori
+locale.mi-NZ.languageLocal=Reo Māori (Aotearoa)
+locale.mi-NZ.codepageAnsi=0
+locale.mi-NZ.codepageOem=1
+locale.mi-NZ.regionAbbrev=NZL
+locale.mi-NZ.languageAbbrev=MRI
+locale.arn-CL.lcid=0x047A
+locale.arn-CL.locale=Mapudungun (Chile)
+locale.arn-CL.language=Mapudungun
+locale.arn-CL.languageLocal=Mapudungun (Chile)
+locale.arn-CL.codepageAnsi=1252
+locale.arn-CL.codepageOem=850
+locale.arn-CL.regionAbbrev=CHL
+locale.arn-CL.languageAbbrev=MPD
+locale.mr.lcid=0x004E
+locale.mr.locale=Marathi
+locale.mr.language=Marathi
+locale.mr.languageLocal=मराठी
+locale.mr.codepageAnsi=0
+locale.mr.codepageOem=1
+locale.mr.regionAbbrev=IND
+locale.mr.languageAbbrev=MAR
+locale.mr-IN.lcid=0x044E
+locale.mr-IN.locale=Marathi (India)
+locale.mr-IN.language=Marathi
+locale.mr-IN.languageLocal=मराठी (भारत)
+locale.mr-IN.codepageAnsi=0
+locale.mr-IN.codepageOem=1
+locale.mr-IN.regionAbbrev=IND
+locale.mr-IN.languageAbbrev=MAR
+locale.moh-CA.lcid=0x047C
+locale.moh-CA.locale=Mohawk (Mohawk)
+locale.moh-CA.language=Mohawk
+locale.moh-CA.languageLocal=Kanien'kéha (Canada)
+locale.moh-CA.codepageAnsi=1252
+locale.moh-CA.codepageOem=850
+locale.moh-CA.regionAbbrev=CAN
+locale.moh-CA.languageAbbrev=MWK
+locale.mn.lcid=0x0050
+locale.mn.locale=Mongolian
+locale.mn.language=Mongolian (Cyrillic)
+locale.mn.languageLocal=Монгол хэл
+locale.mn.codepageAnsi=1251
+locale.mn.codepageOem=866
+locale.mn.regionAbbrev=MNG
+locale.mn.languageAbbrev=MON
+locale.mn-MN.lcid=0x0450
+locale.mn-MN.locale="Mongolian (Cyrillic, Mongolia)"
+locale.mn-MN.language=Mongolian (Cyrillic)
+locale.mn-MN.languageLocal=Монгол хэл (Монгол улс)
+locale.mn-MN.codepageAnsi=1251
+locale.mn-MN.codepageOem=866
+locale.mn-MN.regionAbbrev=MNG
+locale.mn-MN.languageAbbrev=MON
+locale.mn-Mong-CN.lcid=0x0850
+locale.mn-Mong-CN.locale="Mongolian (Traditional Mongolian, PRC)"
+locale.mn-Mong-CN.language=Mongolian (Traditional Mongolian)
+locale.mn-Mong-CN.languageLocal=ᠮᠣᠩᠭᠤᠯ ᠬᠡᠯᠡ (ᠪᠦᠭᠦᠳᠡ ᠨᠠᠢᠷᠠᠮᠳᠠᠬᠤ ᠳᠤᠮᠳᠠᠳᠤ ᠠᠷᠠᠳ ᠣᠯᠣᠰ)
+locale.mn-Mong-CN.codepageAnsi=0
+locale.mn-Mong-CN.codepageOem=1
+locale.mn-Mong-CN.regionAbbrev=CHN
+locale.mn-Mong-CN.languageAbbrev=MON
+locale.ne-NP.lcid=0x0461
+locale.ne-NP.locale=Nepali (Nepal)
+locale.ne-NP.language=Nepali
+locale.ne-NP.languageLocal=नेपाली (नेपाल)
+locale.ne-NP.codepageAnsi=0
+locale.ne-NP.codepageOem=1
+locale.ne-NP.regionAbbrev=NEP
+locale.ne-NP.languageAbbrev=NEP
+locale.no.lcid=0x0014
+locale.no.locale=Norwegian
+locale.no.language=Norwegian (Bokmål)
+locale.no.languageLocal=norsk
+locale.no.codepageAnsi=1252
+locale.no.codepageOem=850
+locale.no.regionAbbrev=NOR
+locale.no.languageAbbrev=NOR
+locale.nb-NO.lcid=0x0414
+locale.nb-NO.locale="Norwegian, Bokmål (Norway)"
+locale.nb-NO.language=Norwegian (Bokmål)
+locale.nb-NO.languageLocal="norsk bokmål (Norge)"
+locale.nb-NO.codepageAnsi=1252
+locale.nb-NO.codepageOem=850
+locale.nb-NO.regionAbbrev=NOR
+locale.nb-NO.languageAbbrev=NOR
+locale.nn-NO.lcid=0x0814
+locale.nn-NO.locale="Norwegian, Nynorsk (Norway)"
+locale.nn-NO.language=Norwegian (Nynorsk)
+locale.nn-NO.languageLocal="norsk, nynorsk (Noreg)"
+locale.nn-NO.codepageAnsi=1252
+locale.nn-NO.codepageOem=850
+locale.nn-NO.regionAbbrev=NOR
+locale.nn-NO.languageAbbrev=NON
+locale.oc-FR.lcid=0x0482
+locale.oc-FR.locale=Occitan (France)
+locale.oc-FR.language=Occitan
+locale.oc-FR.languageLocal=Occitan (França)
+locale.oc-FR.codepageAnsi=1252
+locale.oc-FR.codepageOem=850
+locale.oc-FR.regionAbbrev=FRA
+locale.oc-FR.languageAbbrev=OCI
+locale.or-IN.lcid=0x0448
+locale.or-IN.locale=Oriya (India)
+locale.or-IN.language=Oriya
+locale.or-IN.languageLocal=ଓଡ଼ିଆ (ଭାରତ)
+locale.or-IN.codepageAnsi=0
+locale.or-IN.codepageOem=1
+locale.or-IN.regionAbbrev=IND
+locale.or-IN.languageAbbrev=ORI
+locale.ps-AF.lcid=0x0463
+locale.ps-AF.locale=Pashto (Afghanistan)
+locale.ps-AF.language=Pashto
+locale.ps-AF.languageLocal=پښتو (افغانستان)
+locale.ps-AF.codepageAnsi=0
+locale.ps-AF.codepageOem=1
+locale.ps-AF.regionAbbrev=AFG
+locale.ps-AF.languageAbbrev=PAS
+locale.fa.lcid=0x0029
+locale.fa.locale=Persian
+locale.fa.language=Persian
+locale.fa.languageLocal=فارسى
+locale.fa.codepageAnsi=1256
+locale.fa.codepageOem=720
+locale.fa.regionAbbrev=IRN
+locale.fa.languageAbbrev=FAR
+locale.fa-IR.lcid=0x0429
+locale.fa-IR.locale=Persian
+locale.fa-IR.language=Persian
+locale.fa-IR.languageLocal=فارسى (ايران)
+locale.fa-IR.codepageAnsi=1256
+locale.fa-IR.codepageOem=720
+locale.fa-IR.regionAbbrev=IRN
+locale.fa-IR.languageAbbrev=FAR
+locale.pl.lcid=0x0015
+locale.pl.locale=Polish
+locale.pl.language=Polish
+locale.pl.languageLocal=polski
+locale.pl.codepageAnsi=1250
+locale.pl.codepageOem=852
+locale.pl.regionAbbrev=POL
+locale.pl.languageAbbrev=PLK
+locale.pl-PL.lcid=0x0415
+locale.pl-PL.locale=Polish (Poland)
+locale.pl-PL.language=Polish
+locale.pl-PL.languageLocal=polski (Polska)
+locale.pl-PL.codepageAnsi=1250
+locale.pl-PL.codepageOem=852
+locale.pl-PL.regionAbbrev=POL
+locale.pl-PL.languageAbbrev=PLK
+locale.pt.lcid=0x0016
+locale.pt.locale=Portuguese
+locale.pt.language=Portuguese
+locale.pt.languageLocal=Português
+locale.pt.codepageAnsi=1252
+locale.pt.codepageOem=850
+locale.pt.regionAbbrev=BRA
+locale.pt.languageAbbrev=PTB
+locale.pt-BR.lcid=0x0416
+locale.pt-BR.locale=Portuguese (Brazil)
+locale.pt-BR.language=Portuguese
+locale.pt-BR.languageLocal=Português (Brasil)
+locale.pt-BR.codepageAnsi=1252
+locale.pt-BR.codepageOem=850
+locale.pt-BR.regionAbbrev=BRA
+locale.pt-BR.languageAbbrev=PTB
+locale.pt-PT.lcid=0x0816
+locale.pt-PT.locale=Portuguese (Portugal)
+locale.pt-PT.language=Portuguese
+locale.pt-PT.languageLocal=português (Portugal)
+locale.pt-PT.codepageAnsi=1252
+locale.pt-PT.codepageOem=850
+locale.pt-PT.regionAbbrev=PRT
+locale.pt-PT.languageAbbrev=PTG
+locale.pa.lcid=0x0046
+locale.pa.locale=Punjabi
+locale.pa.language=Punjabi
+locale.pa.languageLocal=ਪੰਜਾਬੀ
+locale.pa.codepageAnsi=0
+locale.pa.codepageOem=1
+locale.pa.regionAbbrev=IND
+locale.pa.languageAbbrev=PAN
+locale.pa-IN.lcid=0x0446
+locale.pa-IN.locale=Punjabi (India)
+locale.pa-IN.language=Punjabi
+locale.pa-IN.languageLocal=ਪੰਜਾਬੀ (ਭਾਰਤ)
+locale.pa-IN.codepageAnsi=0
+locale.pa-IN.codepageOem=1
+locale.pa-IN.regionAbbrev=IND
+locale.pa-IN.languageAbbrev=PAN
+locale.quz-BO.lcid=0x046B
+locale.quz-BO.locale=Quechua (Bolivia)
+locale.quz-BO.language=Quechua
+locale.quz-BO.languageLocal=runasimi (Bolivia Suyu)
+locale.quz-BO.codepageAnsi=1252
+locale.quz-BO.codepageOem=850
+locale.quz-BO.regionAbbrev=BOL
+locale.quz-BO.languageAbbrev=QUB
+locale.quz-EC.lcid=0x086B
+locale.quz-EC.locale=Quechua (Ecuador)
+locale.quz-EC.language=Quechua
+locale.quz-EC.languageLocal=runasimi (Ecuador Suyu)
+locale.quz-EC.codepageAnsi=1252
+locale.quz-EC.codepageOem=850
+locale.quz-EC.regionAbbrev=ECU
+locale.quz-EC.languageAbbrev=QUE
+locale.quz-PE.lcid=0x0C6B
+locale.quz-PE.locale=Quechua (Peru)
+locale.quz-PE.language=Quechua
+locale.quz-PE.languageLocal=runasimi (Peru Suyu)
+locale.quz-PE.codepageAnsi=1252
+locale.quz-PE.codepageOem=850
+locale.quz-PE.regionAbbrev=PER
+locale.quz-PE.languageAbbrev=QUP
+locale.ro.lcid=0x0018
+locale.ro.locale=Romanian
+locale.ro.language=Romanian
+locale.ro.languageLocal=română
+locale.ro.codepageAnsi=1250
+locale.ro.codepageOem=852
+locale.ro.regionAbbrev=ROM
+locale.ro.languageAbbrev=ROM
+locale.ro-RO.lcid=0x0418
+locale.ro-RO.locale=Romanian (Romania)
+locale.ro-RO.language=Romanian
+locale.ro-RO.languageLocal=română (România)
+locale.ro-RO.codepageAnsi=1250
+locale.ro-RO.codepageOem=852
+locale.ro-RO.regionAbbrev=ROM
+locale.ro-RO.languageAbbrev=ROM
+locale.rm-CH.lcid=0x0417
+locale.rm-CH.locale=Romansh (Switzerland)
+locale.rm-CH.language=Romansh
+locale.rm-CH.languageLocal=Rumantsch (Svizra)
+locale.rm-CH.codepageAnsi=1252
+locale.rm-CH.codepageOem=850
+locale.rm-CH.regionAbbrev=CHE
+locale.rm-CH.languageAbbrev=RMC
+locale.ru.lcid=0x0019
+locale.ru.locale=Russian
+locale.ru.language=Russian
+locale.ru.languageLocal=русский
+locale.ru.codepageAnsi=1251
+locale.ru.codepageOem=866
+locale.ru.regionAbbrev=RUS
+locale.ru.languageAbbrev=RUS
+locale.ru-RU.lcid=0x0419
+locale.ru-RU.locale=Russian (Russia)
+locale.ru-RU.language=Russian
+locale.ru-RU.languageLocal=русский (Россия)
+locale.ru-RU.codepageAnsi=1251
+locale.ru-RU.codepageOem=866
+locale.ru-RU.regionAbbrev=RUS
+locale.ru-RU.languageAbbrev=RUS
+locale.smn-FI.lcid=0x243B
+locale.smn-FI.locale="Sami, Inari (Finland)"
+locale.smn-FI.language=Sami (Inari)
+locale.smn-FI.languageLocal=sämikielâ (Suomâ)
+locale.smn-FI.codepageAnsi=1252
+locale.smn-FI.codepageOem=850
+locale.smn-FI.regionAbbrev=FIN
+locale.smn-FI.languageAbbrev=SMN
+locale.smj-NO.lcid=0x103B
+locale.smj-NO.locale="Sami, Lule (Norway)"
+locale.smj-NO.language=Sami (Lule)
+locale.smj-NO.languageLocal=julevusámegiella (Vuodna)
+locale.smj-NO.codepageAnsi=1252
+locale.smj-NO.codepageOem=850
+locale.smj-NO.regionAbbrev=NOR
+locale.smj-NO.languageAbbrev=SMJ
+locale.smj-SE.lcid=0x143B
+locale.smj-SE.locale="Sami, Lule (Sweden)"
+locale.smj-SE.language=Sami (Lule)
+locale.smj-SE.languageLocal=julevusámegiella (Svierik)
+locale.smj-SE.codepageAnsi=1252
+locale.smj-SE.codepageOem=850
+locale.smj-SE.regionAbbrev=SWE
+locale.smj-SE.languageAbbrev=SMK
+locale.se-FI.lcid=0x0C3B
+locale.se-FI.locale="Sami, Northern (Finland)"
+locale.se-FI.language=Sami (Northern)
+locale.se-FI.languageLocal=davvisámegiella (Suopma)
+locale.se-FI.codepageAnsi=1252
+locale.se-FI.codepageOem=850
+locale.se-FI.regionAbbrev=FIN
+locale.se-FI.languageAbbrev=SMG
+locale.se-NO.lcid=0x043B
+locale.se-NO.locale="Sami, Northern (Norway)"
+locale.se-NO.language=Sami (Northern)
+locale.se-NO.languageLocal=davvisámegiella (Norga)
+locale.se-NO.codepageAnsi=1252
+locale.se-NO.codepageOem=850
+locale.se-NO.regionAbbrev=NOR
+locale.se-NO.languageAbbrev=SME
+locale.se-SE.lcid=0x083B
+locale.se-SE.locale="Sami, Northern (Sweden)"
+locale.se-SE.language=Sami (Northern)
+locale.se-SE.languageLocal=davvisámegiella (Ruoŧŧa)
+locale.se-SE.codepageAnsi=1252
+locale.se-SE.codepageOem=850
+locale.se-SE.regionAbbrev=SWE
+locale.se-SE.languageAbbrev=SMF
+locale.sms-FI.lcid=0x203B
+locale.sms-FI.locale="Sami, Skolt (Finland)"
+locale.sms-FI.language=Sami (Skolt)
+locale.sms-FI.languageLocal=sääm´ǩiõll (Lää´ddjânnam)
+locale.sms-FI.codepageAnsi=1252
+locale.sms-FI.codepageOem=850
+locale.sms-FI.regionAbbrev=FIN
+locale.sms-FI.languageAbbrev=SMS
+locale.sma-NO.lcid=0x183B
+locale.sma-NO.locale="Sami, Southern (Norway)"
+locale.sma-NO.language=Sami (Southern)
+locale.sma-NO.languageLocal=åarjelsaemiengiele (Nöörje)
+locale.sma-NO.codepageAnsi=1252
+locale.sma-NO.codepageOem=850
+locale.sma-NO.regionAbbrev=NOR
+locale.sma-NO.languageAbbrev=SMJ
+locale.sma-SE.lcid=0x1C3B
+locale.sma-SE.locale="Sami, Southern (Sweden)"
+locale.sma-SE.language=Sami (Southern)
+locale.sma-SE.languageLocal=åarjelsaemiengiele (Sveerje)
+locale.sma-SE.codepageAnsi=1252
+locale.sma-SE.codepageOem=850
+locale.sma-SE.regionAbbrev=SWE
+locale.sma-SE.languageAbbrev=SMB
+locale.sa.lcid=0x004F
+locale.sa.locale=Sanskrit
+locale.sa.language=Sanskrit
+locale.sa.languageLocal=संस्कृत
+locale.sa.codepageAnsi=0
+locale.sa.codepageOem=1
+locale.sa.regionAbbrev=IND
+locale.sa.languageAbbrev=SAN
+locale.sa-IN.lcid=0x044F
+locale.sa-IN.locale=Sanskrit (India)
+locale.sa-IN.language=Sanskrit
+locale.sa-IN.languageLocal=संस्कृत (भारतम्)
+locale.sa-IN.codepageAnsi=0
+locale.sa-IN.codepageOem=1
+locale.sa-IN.regionAbbrev=IND
+locale.sa-IN.languageAbbrev=SAN
+locale.sr.lcid=0x7C1A
+locale.sr.locale=Serbian
+locale.sr.language=Serbian (Latin)
+locale.sr.languageLocal=srpski
+locale.sr.codepageAnsi=1251
+locale.sr.codepageOem=855
+locale.sr.regionAbbrev=SCG
+locale.sr.languageAbbrev=SRB
+locale.sr-Cyrl-BA.lcid=0x1C1A
+locale.sr-Cyrl-BA.locale="Serbian (Cyrillic, Bosnia and Herzegovina)"
+locale.sr-Cyrl-BA.language=Serbian (Cyrillic)
+locale.sr-Cyrl-BA.languageLocal=српски (Босна и Херцеговина)
+locale.sr-Cyrl-BA.codepageAnsi=1251
+locale.sr-Cyrl-BA.codepageOem=855
+locale.sr-Cyrl-BA.regionAbbrev=BIH
+locale.sr-Cyrl-BA.languageAbbrev=SRN
+locale.sr-Cyrl-SP.lcid=0x0C1A
+locale.sr-Cyrl-SP.locale="Serbian (Cyrillic, Serbia)"
+locale.sr-Cyrl-SP.language=Serbian (Cyrillic)
+locale.sr-Cyrl-SP.languageLocal=српски (Србија и Црна Гора)
+locale.sr-Cyrl-SP.codepageAnsi=1251
+locale.sr-Cyrl-SP.codepageOem=855
+locale.sr-Cyrl-SP.regionAbbrev=SCG
+locale.sr-Cyrl-SP.languageAbbrev=SRB
+locale.sr-Latn-BA.lcid=0x181A
+locale.sr-Latn-BA.locale="Serbian (Latin, Bosnia and Herzegovina)"
+locale.sr-Latn-BA.language=Serbian (Latin)
+locale.sr-Latn-BA.languageLocal=srpski (Bosna i Hercegovina)
+locale.sr-Latn-BA.codepageAnsi=1250
+locale.sr-Latn-BA.codepageOem=852
+locale.sr-Latn-BA.regionAbbrev=BIH
+locale.sr-Latn-BA.languageAbbrev=SRS
+locale.sr-Latn-SP.lcid=0x081A
+locale.sr-Latn-SP.locale="Serbian (Latin, Serbia)"
+locale.sr-Latn-SP.language=Serbian (Latin)
+locale.sr-Latn-SP.languageLocal=srpski (Srbija i Crna Gora)
+locale.sr-Latn-SP.codepageAnsi=1250
+locale.sr-Latn-SP.codepageOem=852
+locale.sr-Latn-SP.regionAbbrev=SCG
+locale.sr-Latn-SP.languageAbbrev=SRL
+locale.nso-ZA.lcid=0x046C
+locale.nso-ZA.locale=Sesotho sa Leboa (South Africa)
+locale.nso-ZA.language=Sesotho sa Leboa
+locale.nso-ZA.languageLocal=Sesotho sa Leboa (Afrika Borwa)
+locale.nso-ZA.codepageAnsi=1252
+locale.nso-ZA.codepageOem=850
+locale.nso-ZA.regionAbbrev=ZAF
+locale.nso-ZA.languageAbbrev=NSO
+locale.tn-ZA.lcid=0x0432
+locale.tn-ZA.locale=Setswana (South Africa)
+locale.tn-ZA.language=Setswana
+locale.tn-ZA.languageLocal=Setswana (Aforika Borwa)
+locale.tn-ZA.codepageAnsi=1252
+locale.tn-ZA.codepageOem=850
+locale.tn-ZA.regionAbbrev=ZAF
+locale.tn-ZA.languageAbbrev=TSN
+locale.si-LK.lcid=0x045B
+locale.si-LK.locale=Sinhala (Sri Lanka)
+locale.si-LK.language=Sinhala
+locale.si-LK.languageLocal=සිංහ (ශ්රී ලංකා)
+locale.si-LK.codepageAnsi=0
+locale.si-LK.codepageOem=1
+locale.si-LK.regionAbbrev=LKA
+locale.si-LK.languageAbbrev=SIN
+locale.sk.lcid=0x001B
+locale.sk.locale=Slovak
+locale.sk.language=Slovak
+locale.sk.languageLocal=slovenčina
+locale.sk.codepageAnsi=1250
+locale.sk.codepageOem=852
+locale.sk.regionAbbrev=SVK
+locale.sk.languageAbbrev=SKY
+locale.sk-SK.lcid=0x041B
+locale.sk-SK.locale=Slovak (Slovakia)
+locale.sk-SK.language=Slovak
+locale.sk-SK.languageLocal=slovenčina (Slovenská republika)
+locale.sk-SK.codepageAnsi=1250
+locale.sk-SK.codepageOem=852
+locale.sk-SK.regionAbbrev=SVK
+locale.sk-SK.languageAbbrev=SKY
+locale.sl.lcid=0x0024
+locale.sl.locale=Slovenian
+locale.sl.language=Slovenian
+locale.sl.languageLocal=slovenski
+locale.sl.codepageAnsi=1250
+locale.sl.codepageOem=852
+locale.sl.regionAbbrev=SVN
+locale.sl.languageAbbrev=SLV
+locale.sl-SI.lcid=0x0424
+locale.sl-SI.locale=Slovenian (Slovenia)
+locale.sl-SI.language=Slovenian
+locale.sl-SI.languageLocal=slovenski (Slovenija)
+locale.sl-SI.codepageAnsi=1250
+locale.sl-SI.codepageOem=852
+locale.sl-SI.regionAbbrev=SVN
+locale.sl-SI.languageAbbrev=SLV
+locale.es.lcid=0x000A
+locale.es.locale=Spanish
+locale.es.language=Spanish
+locale.es.languageLocal=español
+locale.es.codepageAnsi=1252
+locale.es.codepageOem=850
+locale.es.regionAbbrev=ESP
+locale.es.languageAbbrev=ESP
+locale.es-AR.lcid=0x2C0A
+locale.es-AR.locale=Spanish (Argentina)
+locale.es-AR.language=Spanish
+locale.es-AR.languageLocal=Español (Argentina)
+locale.es-AR.codepageAnsi=1252
+locale.es-AR.codepageOem=850
+locale.es-AR.regionAbbrev=ARG
+locale.es-AR.languageAbbrev=ESS
+locale.es-BO.lcid=0x400A
+locale.es-BO.locale=Spanish (Bolivia)
+locale.es-BO.language=Spanish
+locale.es-BO.languageLocal=Español (Bolivia)
+locale.es-BO.codepageAnsi=1252
+locale.es-BO.codepageOem=850
+locale.es-BO.regionAbbrev=BOL
+locale.es-BO.languageAbbrev=ESB
+locale.es-CL.lcid=0x340A
+locale.es-CL.locale=Spanish (Chile)
+locale.es-CL.language=Spanish
+locale.es-CL.languageLocal=Español (Chile)
+locale.es-CL.codepageAnsi=1252
+locale.es-CL.codepageOem=850
+locale.es-CL.regionAbbrev=CHL
+locale.es-CL.languageAbbrev=ESL
+locale.es-CO.lcid=0x240A
+locale.es-CO.locale=Spanish (Colombia)
+locale.es-CO.language=Spanish
+locale.es-CO.languageLocal=Español (Colombia)
+locale.es-CO.codepageAnsi=1252
+locale.es-CO.codepageOem=850
+locale.es-CO.regionAbbrev=COL
+locale.es-CO.languageAbbrev=ESO
+locale.es-CR.lcid=0x140A
+locale.es-CR.locale=Spanish (Costa Rica)
+locale.es-CR.language=Spanish
+locale.es-CR.languageLocal=Español (Costa Rica)
+locale.es-CR.codepageAnsi=1252
+locale.es-CR.codepageOem=850
+locale.es-CR.regionAbbrev=CRI
+locale.es-CR.languageAbbrev=ESC
+locale.es-DO.lcid=0x1C0A
+locale.es-DO.locale=Spanish (Dominican Republic)
+locale.es-DO.language=Spanish
+locale.es-DO.languageLocal=Español (República Dominicana)
+locale.es-DO.codepageAnsi=1252
+locale.es-DO.codepageOem=850
+locale.es-DO.regionAbbrev=DOM
+locale.es-DO.languageAbbrev=ESD
+locale.es-EC.lcid=0x300A
+locale.es-EC.locale=Spanish (Ecuador)
+locale.es-EC.language=Spanish
+locale.es-EC.languageLocal=Español (Ecuador)
+locale.es-EC.codepageAnsi=1252
+locale.es-EC.codepageOem=850
+locale.es-EC.regionAbbrev=ECU
+locale.es-EC.languageAbbrev=ESF
+locale.es-SV.lcid=0x440A
+locale.es-SV.locale=Spanish (El Salvador)
+locale.es-SV.language=Spanish
+locale.es-SV.languageLocal=Español (El Salvador)
+locale.es-SV.codepageAnsi=1252
+locale.es-SV.codepageOem=850
+locale.es-SV.regionAbbrev=SLV
+locale.es-SV.languageAbbrev=ESE
+locale.es-GT.lcid=0x100A
+locale.es-GT.locale=Spanish (Guatemala)
+locale.es-GT.language=Spanish
+locale.es-GT.languageLocal=Español (Guatemala)
+locale.es-GT.codepageAnsi=1252
+locale.es-GT.codepageOem=850
+locale.es-GT.regionAbbrev=GTM
+locale.es-GT.languageAbbrev=ESG
+locale.es-HN.lcid=0x480A
+locale.es-HN.locale=Spanish (Honduras)
+locale.es-HN.language=Spanish
+locale.es-HN.languageLocal=Español (Honduras)
+locale.es-HN.codepageAnsi=1252
+locale.es-HN.codepageOem=850
+locale.es-HN.regionAbbrev=HND
+locale.es-HN.languageAbbrev=ESH
+locale.es-MX.lcid=0x080A
+locale.es-MX.locale=Spanish (Mexico)
+locale.es-MX.language=Spanish
+locale.es-MX.languageLocal=Español (México)
+locale.es-MX.codepageAnsi=1252
+locale.es-MX.codepageOem=850
+locale.es-MX.regionAbbrev=MEX
+locale.es-MX.languageAbbrev=ESM
+locale.es-NI.lcid=0x4C0A
+locale.es-NI.locale=Spanish (Nicaragua)
+locale.es-NI.language=Spanish
+locale.es-NI.languageLocal=Español (Nicaragua)
+locale.es-NI.codepageAnsi=1252
+locale.es-NI.codepageOem=850
+locale.es-NI.regionAbbrev=NIC
+locale.es-NI.languageAbbrev=ESI
+locale.es-PA.lcid=0x180A
+locale.es-PA.locale=Spanish (Panama)
+locale.es-PA.language=Spanish
+locale.es-PA.languageLocal=Español (Panamá)
+locale.es-PA.codepageAnsi=1252
+locale.es-PA.codepageOem=850
+locale.es-PA.regionAbbrev=PAN
+locale.es-PA.languageAbbrev=ESA
+locale.es-PY.lcid=0x3C0A
+locale.es-PY.locale=Spanish (Paraguay)
+locale.es-PY.language=Spanish
+locale.es-PY.languageLocal=Español (Paraguay)
+locale.es-PY.codepageAnsi=1252
+locale.es-PY.codepageOem=850
+locale.es-PY.regionAbbrev=PRY
+locale.es-PY.languageAbbrev=ESZ
+locale.es-PE.lcid=0x280A
+locale.es-PE.locale=Spanish (Peru)
+locale.es-PE.language=Spanish
+locale.es-PE.languageLocal=Español (Perú)
+locale.es-PE.codepageAnsi=1252
+locale.es-PE.codepageOem=850
+locale.es-PE.regionAbbrev=PER
+locale.es-PE.languageAbbrev=ESR
+locale.es-PR.lcid=0x500A
+locale.es-PR.locale=Spanish (Puerto Rico)
+locale.es-PR.language=Spanish
+locale.es-PR.languageLocal=Español (Puerto Rico)
+locale.es-PR.codepageAnsi=1252
+locale.es-PR.codepageOem=850
+locale.es-PR.regionAbbrev=PRI
+locale.es-PR.languageAbbrev=ESU
+locale.es-ES.lcid=0x0C0A
+locale.es-ES.locale=Spanish (Spain)
+locale.es-ES.language=Spanish
+locale.es-ES.languageLocal=español (España)
+locale.es-ES.codepageAnsi=1252
+locale.es-ES.codepageOem=850
+locale.es-ES.regionAbbrev=ESP
+locale.es-ES.languageAbbrev=ESN
+locale.es-US.lcid=0x540A
+locale.es-US.locale=Spanish (United States)
+locale.es-US.language=Spanish
+locale.es-US.languageLocal=Español (Estados Unidos)
+locale.es-US.codepageAnsi=1252
+locale.es-US.codepageOem=850
+locale.es-US.regionAbbrev=USA
+locale.es-US.languageAbbrev=EST
+locale.es-UY.lcid=0x380A
+locale.es-UY.locale=Spanish (Uruguay)
+locale.es-UY.language=Spanish
+locale.es-UY.languageLocal=Español (Uruguay)
+locale.es-UY.codepageAnsi=1252
+locale.es-UY.codepageOem=850
+locale.es-UY.regionAbbrev=URY
+locale.es-UY.languageAbbrev=ESY
+locale.es-VE.lcid=0x200A
+locale.es-VE.locale=Spanish (Venezuela)
+locale.es-VE.language=Spanish
+locale.es-VE.languageLocal=Español (Republica Bolivariana de Venezuela)
+locale.es-VE.codepageAnsi=1252
+locale.es-VE.codepageOem=850
+locale.es-VE.regionAbbrev=VEN
+locale.es-VE.languageAbbrev=ESV
+locale.sv.lcid=0x001D
+locale.sv.locale=Swedish
+locale.sv.language=Swedish
+locale.sv.languageLocal=svenska
+locale.sv.codepageAnsi=1252
+locale.sv.codepageOem=850
+locale.sv.regionAbbrev=SWE
+locale.sv.languageAbbrev=SVE
+locale.sv-FI.lcid=0x081D
+locale.sv-FI.locale=Swedish (Finland)
+locale.sv-FI.language=Swedish
+locale.sv-FI.languageLocal=svenska (Finland)
+locale.sv-FI.codepageAnsi=1252
+locale.sv-FI.codepageOem=850
+locale.sv-FI.regionAbbrev=FIN
+locale.sv-FI.languageAbbrev=SVF
+locale.sv-SE.lcid=0x041D
+locale.sv-SE.locale=Swedish (Sweden)
+locale.sv-SE.language=Swedish
+locale.sv-SE.languageLocal=svenska (Sverige)
+locale.sv-SE.codepageAnsi=1252
+locale.sv-SE.codepageOem=850
+locale.sv-SE.regionAbbrev=SWE
+locale.sv-SE.languageAbbrev=SVE
+locale.syr.lcid=0x005A
+locale.syr.locale=Syriac
+locale.syr.language=Syriac
+locale.syr.languageLocal=ܣܘܪܝܝܐ
+locale.syr.codepageAnsi=0
+locale.syr.codepageOem=1
+locale.syr.regionAbbrev=SYR
+locale.syr.languageAbbrev=SYR
+locale.syr-SY.lcid=0x045A
+locale.syr-SY.locale=Syriac (Syria)
+locale.syr-SY.language=Syriac
+locale.syr-SY.languageLocal=ܣܘܪܝܝܐ (سوريا)
+locale.syr-SY.codepageAnsi=0
+locale.syr-SY.codepageOem=1
+locale.syr-SY.regionAbbrev=SYR
+locale.syr-SY.languageAbbrev=SYR
+locale.tg-Cyrl-TJ.lcid=0x0428
+locale.tg-Cyrl-TJ.locale="Tajik (Cyrillic, Tajikistan)"
+locale.tg-Cyrl-TJ.language=Tajik (Cyrillic)
+locale.tg-Cyrl-TJ.languageLocal=Тоҷикӣ (Тоҷикистон)
+locale.tg-Cyrl-TJ.codepageAnsi=1251
+locale.tg-Cyrl-TJ.codepageOem=866
+locale.tg-Cyrl-TJ.regionAbbrev=TAJ
+locale.tg-Cyrl-TJ.languageAbbrev=TAJ
+locale.tzm-Latn-DZ.lcid=0x085F
+locale.tzm-Latn-DZ.locale="Tamazight (Latin, Algeria)"
+locale.tzm-Latn-DZ.language=Tamazight (Latin)
+locale.tzm-Latn-DZ.languageLocal=Tamazight (Djazaïr)
+locale.tzm-Latn-DZ.codepageAnsi=1252
+locale.tzm-Latn-DZ.codepageOem=850
+locale.tzm-Latn-DZ.regionAbbrev=DZA
+locale.tzm-Latn-DZ.languageAbbrev=TZM
+locale.ta.lcid=0x0049
+locale.ta.locale=Tamil
+locale.ta.language=Tamil
+locale.ta.languageLocal=தமிழ்
+locale.ta.codepageAnsi=0
+locale.ta.codepageOem=1
+locale.ta.regionAbbrev=IND
+locale.ta.languageAbbrev=TAM
+locale.ta-IN.lcid=0x0449
+locale.ta-IN.locale=Tamil (India)
+locale.ta-IN.language=Tamil
+locale.ta-IN.languageLocal=தமிழ் (இந்தியா)
+locale.ta-IN.codepageAnsi=0
+locale.ta-IN.codepageOem=1
+locale.ta-IN.regionAbbrev=IND
+locale.ta-IN.languageAbbrev=TAM
+locale.tt.lcid=0x0044
+locale.tt.locale=Tatar
+locale.tt.language=Tatar
+locale.tt.languageLocal=Татар
+locale.tt.codepageAnsi=1251
+locale.tt.codepageOem=866
+locale.tt.regionAbbrev=RUS
+locale.tt.languageAbbrev=TTT
+locale.tt-RU.lcid=0x0444
+locale.tt-RU.locale=Tatar (Russia)
+locale.tt-RU.language=Tatar
+locale.tt-RU.languageLocal=Татар (Россия)
+locale.tt-RU.codepageAnsi=1251
+locale.tt-RU.codepageOem=866
+locale.tt-RU.regionAbbrev=RUS
+locale.tt-RU.languageAbbrev=TTT
+locale.te.lcid=0x004A
+locale.te.locale=Telugu
+locale.te.language=Telugu
+locale.te.languageLocal=తెలుగు
+locale.te.codepageAnsi=0
+locale.te.codepageOem=1
+locale.te.regionAbbrev=IND
+locale.te.languageAbbrev=TEL
+locale.te-IN.lcid=0x044A
+locale.te-IN.locale=Telugu (India)
+locale.te-IN.language=Telugu
+locale.te-IN.languageLocal=తెలుగు (భారత దేశం)
+locale.te-IN.codepageAnsi=0
+locale.te-IN.codepageOem=1
+locale.te-IN.regionAbbrev=IND
+locale.te-IN.languageAbbrev=TEL
+locale.th.lcid=0x001E
+locale.th.locale=Thai
+locale.th.language=Thai
+locale.th.languageLocal=ไทย
+locale.th.codepageAnsi=874
+locale.th.codepageOem=874
+locale.th.regionAbbrev=THA
+locale.th.languageAbbrev=THA
+locale.th-TH.lcid=0x041E
+locale.th-TH.locale=Thai (Thailand)
+locale.th-TH.language=Thai
+locale.th-TH.languageLocal=ไทย (ไทย)
+locale.th-TH.codepageAnsi=874
+locale.th-TH.codepageOem=874
+locale.th-TH.regionAbbrev=THA
+locale.th-TH.languageAbbrev=THA
+locale.bo-CN.lcid=0x0451
+locale.bo-CN.locale=Tibetan (PRC)
+locale.bo-CN.language=Tibetan
+locale.bo-CN.languageLocal=བོད་ཡིག (ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ།)
+locale.bo-CN.codepageAnsi=0
+locale.bo-CN.codepageOem=1
+locale.bo-CN.regionAbbrev=CHN
+locale.bo-CN.languageAbbrev=BOB
+locale.tr.lcid=0x001F
+locale.tr.locale=Turkish
+locale.tr.language=Turkish
+locale.tr.languageLocal=Türkçe
+locale.tr.codepageAnsi=1254
+locale.tr.codepageOem=857
+locale.tr.regionAbbrev=TUR
+locale.tr.languageAbbrev=TRK
+locale.tr-TR.lcid=0x041F
+locale.tr-TR.locale=Turkish (Turkey)
+locale.tr-TR.language=Turkish
+locale.tr-TR.languageLocal=Türkçe (Türkiye)
+locale.tr-TR.codepageAnsi=1254
+locale.tr-TR.codepageOem=857
+locale.tr-TR.regionAbbrev=TUR
+locale.tr-TR.languageAbbrev=TRK
+locale.tk-TM.lcid=0x0442
+locale.tk-TM.locale=Turkmen (Turkmenistan)
+locale.tk-TM.language=Turkmen
+locale.tk-TM.languageLocal=türkmençe (Türkmenistan)
+locale.tk-TM.codepageAnsi=1250
+locale.tk-TM.codepageOem=852
+locale.tk-TM.regionAbbrev=TKM
+locale.tk-TM.languageAbbrev=TUK
+locale.ug-CN.lcid=0x0480
+locale.ug-CN.locale=Uighur (PRC)
+locale.ug-CN.language=Uighur
+locale.ug-CN.languageLocal=ئۇيغۇر يېزىقى (جۇڭخۇا خەلق جۇمھۇرىيىتى)
+locale.ug-CN.codepageAnsi=1256
+locale.ug-CN.codepageOem=720
+locale.ug-CN.regionAbbrev=CHN
+locale.ug-CN.languageAbbrev=UIG
+locale.uk.lcid=0x0022
+locale.uk.locale=Ukrainian
+locale.uk.language=Ukrainian
+locale.uk.languageLocal=україньска
+locale.uk.codepageAnsi=1251
+locale.uk.codepageOem=866
+locale.uk.regionAbbrev=UKR
+locale.uk.languageAbbrev=UKR
+locale.uk-UA.lcid=0x0422
+locale.uk-UA.locale=Ukrainian (Ukraine)
+locale.uk-UA.language=Ukrainian
+locale.uk-UA.languageLocal=україньска (Україна)
+locale.uk-UA.codepageAnsi=1251
+locale.uk-UA.codepageOem=866
+locale.uk-UA.regionAbbrev=UKR
+locale.uk-UA.languageAbbrev=UKR
+locale.wen-DE.lcid=0x042E
+locale.wen-DE.locale=Upper Sorbian (Germany)
+locale.wen-DE.language=Upper Sorbian
+locale.wen-DE.languageLocal=hornjoserbšćina (Němska)
+locale.wen-DE.codepageAnsi=1252
+locale.wen-DE.codepageOem=850
+locale.wen-DE.regionAbbrev=GER
+locale.wen-DE.languageAbbrev=HSB
+locale.ur.lcid=0x0020
+locale.ur.locale=Urdu
+locale.ur.language=Urdu
+locale.ur.languageLocal=اُردو
+locale.ur.codepageAnsi=1256
+locale.ur.codepageOem=720
+locale.ur.regionAbbrev=PAK
+locale.ur.languageAbbrev=URD
+locale.ur-PK.lcid=0x0420
+locale.ur-PK.locale=Urdu (Islamic Republic of Pakistan)
+locale.ur-PK.language=Urdu
+locale.ur-PK.languageLocal=اُردو (پاکستان)
+locale.ur-PK.codepageAnsi=1256
+locale.ur-PK.codepageOem=720
+locale.ur-PK.regionAbbrev=PAK
+locale.ur-PK.languageAbbrev=URD
+locale.uz.lcid=0x0043
+locale.uz.locale=Uzbek
+locale.uz.language=Uzbek (Latin)
+locale.uz.languageLocal=U'zbek
+locale.uz.codepageAnsi=1254
+locale.uz.codepageOem=857
+locale.uz.regionAbbrev=UZB
+locale.uz.languageAbbrev=UZB
+locale.uz-Cyrl-UZ.lcid=0x0843
+locale.uz-Cyrl-UZ.locale="Uzbek (Cyrillic, Uzbekistan)"
+locale.uz-Cyrl-UZ.language=Uzbek (Cyrillic)
+locale.uz-Cyrl-UZ.languageLocal=Ўзбек (Ўзбекистон)
+locale.uz-Cyrl-UZ.codepageAnsi=1251
+locale.uz-Cyrl-UZ.codepageOem=866
+locale.uz-Cyrl-UZ.regionAbbrev=UZB
+locale.uz-Cyrl-UZ.languageAbbrev=UZB
+locale.uz-Latn-UZ.lcid=0x0443
+locale.uz-Latn-UZ.locale="Uzbek (Latin, Uzbekistan)"
+locale.uz-Latn-UZ.language=Uzbek (Latin)
+locale.uz-Latn-UZ.languageLocal=U'zbek (U'zbekiston Respublikasi)
+locale.uz-Latn-UZ.codepageAnsi=1254
+locale.uz-Latn-UZ.codepageOem=857
+locale.uz-Latn-UZ.regionAbbrev=UZB
+locale.uz-Latn-UZ.languageAbbrev=UZB
+locale.vi.lcid=0x002A
+locale.vi.locale=Vietnamese
+locale.vi.language=Vietnamese
+locale.vi.languageLocal=Tiếng Việt
+locale.vi.codepageAnsi=1258
+locale.vi.codepageOem=1258
+locale.vi.regionAbbrev=VNM
+locale.vi.languageAbbrev=VIT
+locale.vi-VN.lcid=0x042A
+locale.vi-VN.locale=Vietnamese (Vietnam)
+locale.vi-VN.language=Vietnamese
+locale.vi-VN.languageLocal=Tiếng Việt (Việt Nam)
+locale.vi-VN.codepageAnsi=1258
+locale.vi-VN.codepageOem=1258
+locale.vi-VN.regionAbbrev=VNM
+locale.vi-VN.languageAbbrev=VIT
+locale.cy-GB.lcid=0x0452
+locale.cy-GB.locale=Welsh (United Kingdom)
+locale.cy-GB.language=Welsh
+locale.cy-GB.languageLocal=Cymraeg (y Deyrnas Unedig)
+locale.cy-GB.codepageAnsi=1252
+locale.cy-GB.codepageOem=850
+locale.cy-GB.regionAbbrev=GBR
+locale.cy-GB.languageAbbrev=CYM
+locale.wo-SN.lcid=0x0488
+locale.wo-SN.locale=Wolof (Senegal)
+locale.wo-SN.language=Wolof
+locale.wo-SN.languageLocal=Wolof (Sénégal)
+locale.wo-SN.codepageAnsi=1252
+locale.wo-SN.codepageOem=850
+locale.wo-SN.regionAbbrev=SEN
+locale.wo-SN.languageAbbrev=WOL
+locale.sah-RU.lcid=0x0485
+locale.sah-RU.locale=Yakut (Russia)
+locale.sah-RU.language=Yakut
+locale.sah-RU.languageLocal=саха (Россия)
+locale.sah-RU.codepageAnsi=1251
+locale.sah-RU.codepageOem=866
+locale.sah-RU.regionAbbrev=RUS
+locale.sah-RU.languageAbbrev=SAH
+locale.ii-CN.lcid=0x0478
+locale.ii-CN.locale=Yi (PRC)
+locale.ii-CN.language=Yi
+locale.ii-CN.languageLocal=ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ)
+locale.ii-CN.codepageAnsi=0
+locale.ii-CN.codepageOem=1
+locale.ii-CN.regionAbbrev=CHN
+locale.ii-CN.languageAbbrev=III
+locale.yo-NG.lcid=0x046A
+locale.yo-NG.locale=Yoruba (Nigeria)
+locale.yo-NG.language=Yoruba
+locale.yo-NG.languageLocal=Yoruba (Nigeria)
+locale.yo-NG.codepageAnsi=1252
+locale.yo-NG.codepageOem=437
+locale.yo-NG.regionAbbrev=NGA
+locale.yo-NG.languageAbbrev=YOR
+# End nls.properties
diff --git a/testsrc/org/olap4j/impl/Olap4jUtilTest.java b/testsrc/org/olap4j/impl/Olap4jUtilTest.java
index 7797c37..63b9640 100644
--- a/testsrc/org/olap4j/impl/Olap4jUtilTest.java
+++ b/testsrc/org/olap4j/impl/Olap4jUtilTest.java
@@ -683,8 +683,19 @@ public void testLocaleToLcid() {
assertEquals(0x0007, LcidLocale.localeToLcid(Locale.GERMAN));
assertEquals(0x0407, LcidLocale.localeToLcid(Locale.GERMANY));
- // Locale en_SG is unknown; fall back to en. For bug 3526908.
- assertEquals(0x0009, LcidLocale.localeToLcid(new Locale("en", "SG")));
+ // Locale en_SG was previously unknown, now known.
+ String s = Integer.toHexString(18441);
+ assertEquals(0x4809, LcidLocale.localeToLcid(new Locale("en", "SG")));
+
+ // Locale en_XX is unknown; fall back to en.
+ // For bug http://sourceforge.net/p/olap4j/bugs/73.
+ assertEquals(0x0009, LcidLocale.localeToLcid(new Locale("en", "XX")));
+
+ // For bug http://sourceforge.net/p/olap4j/bugs/76/,
+ // "Still missing codes from LCID-to-Locale mapping".
+ assertEquals(0x0C0A, LcidLocale.localeToLcid(new Locale("es", "ES")));
+ assertEquals(
+ "es_ES", LcidLocale.lcidToLocale((short) 0x0C0A).toString());
}
/**