Update CLDR to v27

+ A bunch of fixes in the locale data
+ New scripts from Unicode 7.0
+ New locales
- Some locales disappeared (aa_DJ, aa_ER, st_LS, ss_SZ, swc_CD, tn_BW)
- Some locales lost their contents (i.e. en_Dsrt_US)

[ChangeLog][QtCore] QLocale data updated to CLDR v.27

Change-Id: Iba8c7884f8087e577cbb25a8fc106dd7bd3ebb5d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Konstantin Ritt 2015-03-23 14:00:07 +04:00
parent 7946b83ace
commit d8a0b97f60
7 changed files with 5077 additions and 4582 deletions

View File

@ -2376,15 +2376,21 @@ Qt::LayoutDirection QLocale::textDirection() const
case QLocale::KharoshthiScript: case QLocale::KharoshthiScript:
case QLocale::LydianScript: case QLocale::LydianScript:
case QLocale::MandaeanScript: case QLocale::MandaeanScript:
case QLocale::ManichaeanScript:
case QLocale::MendeKikakuiScript:
case QLocale::MeroiticCursiveScript: case QLocale::MeroiticCursiveScript:
case QLocale::MeroiticScript: case QLocale::MeroiticScript:
case QLocale::NabataeanScript:
case QLocale::NkoScript:
case QLocale::OldNorthArabianScript:
case QLocale::OldSouthArabianScript:
case QLocale::OrkhonScript:
case QLocale::PalmyreneScript:
case QLocale::PhoenicianScript:
case QLocale::PsalterPahlaviScript:
case QLocale::SamaritanScript: case QLocale::SamaritanScript:
case QLocale::SyriacScript: case QLocale::SyriacScript:
case QLocale::ThaanaScript: case QLocale::ThaanaScript:
case QLocale::NkoScript:
case QLocale::OldSouthArabianScript:
case QLocale::OrkhonScript:
case QLocale::PhoenicianScript:
return Qt::RightToLeft; return Qt::RightToLeft;
default: default:
break; break;

View File

@ -382,6 +382,31 @@ public:
Akoose = 312, Akoose = 312,
Lakota = 313, Lakota = 313,
StandardMoroccanTamazight = 314, StandardMoroccanTamazight = 314,
Mapuche = 315,
CentralKurdish = 316,
LowerSorbian = 317,
UpperSorbian = 318,
Kenyang = 319,
Mohawk = 320,
Nko = 321,
Prussian = 322,
Kiche = 323,
SouthernSami = 324,
LuleSami = 325,
InariSami = 326,
SkoltSami = 327,
Warlpiri = 328,
ManichaeanMiddlePersian = 329,
Mende = 330,
AncientNorthArabian = 331,
LinearA = 332,
HmongNjua = 333,
Ho = 334,
Lezghian = 335,
Bassa = 336,
Mono = 337,
TedimChin = 338,
Maithili = 339,
Norwegian = NorwegianBokmal, Norwegian = NorwegianBokmal,
Moldavian = Romanian, Moldavian = Romanian,
SerboCroatian = Serbian, SerboCroatian = Serbian,
@ -396,7 +421,7 @@ public:
Chewa = Nyanja, Chewa = Nyanja,
Frisian = WesternFrisian, Frisian = WesternFrisian,
Uigur = Uighur, Uigur = Uighur,
LastLanguage = StandardMoroccanTamazight LastLanguage = Maithili
}; };
enum Script { enum Script {
@ -505,9 +530,32 @@ public:
UgariticScript = 102, UgariticScript = 102,
BrailleScript = 103, BrailleScript = 103,
HiraganaScript = 104, HiraganaScript = 104,
CaucasianAlbanianScript = 105,
BassaVahScript = 106,
DuployanScript = 107,
ElbasanScript = 108,
GranthaScript = 109,
PahawhHmongScript = 110,
KhojkiScript = 111,
LinearAScript = 112,
MahajaniScript = 113,
ManichaeanScript = 114,
MendeKikakuiScript = 115,
ModiScript = 116,
MroScript = 117,
OldNorthArabianScript = 118,
NabataeanScript = 119,
PalmyreneScript = 120,
PauCinHauScript = 121,
OldPermicScript = 122,
PsalterPahlaviScript = 123,
SiddhamScript = 124,
KhudawadiScript = 125,
TirhutaScript = 126,
VarangKshitiScript = 127,
SimplifiedChineseScript = SimplifiedHanScript, SimplifiedChineseScript = SimplifiedHanScript,
TraditionalChineseScript = TraditionalHanScript, TraditionalChineseScript = TraditionalHanScript,
LastScript = HiraganaScript LastScript = VarangKshitiScript
}; };
enum Country { enum Country {
AnyCountry = 0, AnyCountry = 0,

View File

@ -92,7 +92,7 @@
\note For the current keyboard input locale take a look at \note For the current keyboard input locale take a look at
QInputMethod::locale(). QInputMethod::locale().
QLocale's data is based on Common Locale Data Repository v24. QLocale's data is based on Common Locale Data Repository v27.
The double-to-string and string-to-double conversion functions are The double-to-string and string-to-double conversion functions are
covered by the following licenses: covered by the following licenses:
@ -456,6 +456,33 @@
\value TaiDam \value TaiDam
\value TaiNua \value TaiNua
\value Ugaritic \value Ugaritic
\value Mapuche Since Qt 5.5
\value CentralKurdish Since Qt 5.5
\value LowerSorbian Since Qt 5.5
\value UpperSorbian Since Qt 5.5
\value Kenyang Since Qt 5.5
\value Mohawk Since Qt 5.5
\value Nko Since Qt 5.5
\value Prussian Since Qt 5.5
\value Kiche Since Qt 5.5
\value SouthernSami Since Qt 5.5
\value LuleSami Since Qt 5.5
\value InariSami Since Qt 5.5
\value SkoltSami Since Qt 5.5
\value Warlpiri Since Qt 5.5
\value ManichaeanMiddlePersian Since Qt 5.5
\value Mende Since Qt 5.5
\value AncientNorthArabian Since Qt 5.5
\value LinearA Since Qt 5.5
\value HmongNjua Since Qt 5.5
\value Ho Since Qt 5.5
\value Lezghian Since Qt 5.5
\value Bassa Since Qt 5.5
\value Mono Since Qt 5.5
\value TedimChin Since Qt 5.5
\value Maithili Since Qt 5.5
\value LowerSorbian Since Qt 5.5
\value UpperSorbian Since Qt 5.5
\omitvalue LastLanguage \omitvalue LastLanguage
\sa language(), languageToString() \sa language(), languageToString()
@ -746,6 +773,7 @@
\value AvestanScript \value AvestanScript
\value BalineseScript \value BalineseScript
\value BamumScript \value BamumScript
\value BassaVahScript Since Qt 5.5
\value BatakScript \value BatakScript
\value BengaliScript \value BengaliScript
\value BopomofoScript \value BopomofoScript
@ -755,6 +783,7 @@
\value BuhidScript \value BuhidScript
\value CanadianAboriginalScript \value CanadianAboriginalScript
\value CarianScript \value CarianScript
\value CaucasianAlbanianScript Since Qt 5.5
\value ChakmaScript \value ChakmaScript
\value ChamScript \value ChamScript
\value CherokeeScript \value CherokeeScript
@ -763,12 +792,15 @@
\value CyrillicScript \value CyrillicScript
\value DeseretScript \value DeseretScript
\value DevanagariScript \value DevanagariScript
\value DuployanScript Since Qt 5.5
\value EgyptianHieroglyphsScript \value EgyptianHieroglyphsScript
\value ElbasanScript Since Qt 5.5
\value EthiopicScript \value EthiopicScript
\value FraserScript \value FraserScript
\value GeorgianScript \value GeorgianScript
\value GlagoliticScript \value GlagoliticScript
\value GothicScript \value GothicScript
\value GranthaScript Since Qt 5.5
\value GreekScript \value GreekScript
\value GujaratiScript \value GujaratiScript
\value GurmukhiScript \value GurmukhiScript
@ -788,41 +820,57 @@
\value KayahLiScript \value KayahLiScript
\value KharoshthiScript \value KharoshthiScript
\value KhmerScript \value KhmerScript
\value KhojkiScript Since Qt 5.5
\value KhudawadiScript Since Qt 5.5
\value KoreanScript \value KoreanScript
\value LannaScript \value LannaScript
\value LaoScript \value LaoScript
\value LatinScript \value LatinScript
\value LepchaScript \value LepchaScript
\value LimbuScript \value LimbuScript
\value LinearAScript Since Qt 5.5
\value LinearBScript \value LinearBScript
\value LycianScript \value LycianScript
\value LydianScript \value LydianScript
\value MahajaniScript Since Qt 5.5
\value MalayalamScript \value MalayalamScript
\value MandaeanScript \value MandaeanScript
\value ManichaeanScript Since Qt 5.5
\value MeiteiMayekScript \value MeiteiMayekScript
\value MendeKikakuiScript Since Qt 5.5
\value MeroiticScript \value MeroiticScript
\value MeroiticCursiveScript \value MeroiticCursiveScript
\value ModiScript Since Qt 5.5
\value MongolianScript \value MongolianScript
\value MroScript Since Qt 5.5
\value MyanmarScript \value MyanmarScript
\value NabataeanScript Since Qt 5.5
\value NkoScript \value NkoScript
\value NewTaiLueScript \value NewTaiLueScript
\value OghamScript \value OghamScript
\value OlChikiScript \value OlChikiScript
\value OldItalicScript \value OldItalicScript
\value OldNorthArabianScript Since Qt 5.5
\value OldPermicScript Since Qt 5.5
\value OldPersianScript \value OldPersianScript
\value OldSouthArabianScript \value OldSouthArabianScript
\value OriyaScript \value OriyaScript
\value OrkhonScript \value OrkhonScript
\value OsmanyaScript \value OsmanyaScript
\value PahawhHmongScript Since Qt 5.5
\value PalmyreneScript Since Qt 5.5
\value PauCinHauScript Since Qt 5.5
\value PhagsPaScript \value PhagsPaScript
\value PhoenicianScript \value PhoenicianScript
\value PollardPhoneticScript \value PollardPhoneticScript
\value PsalterPahlaviScript Since Qt 5.5
\value RejangScript \value RejangScript
\value RunicScript \value RunicScript
\value SamaritanScript \value SamaritanScript
\value SaurashtraScript \value SaurashtraScript
\value SharadaScript \value SharadaScript
\value ShavianScript \value ShavianScript
\value SiddhamScript Since Qt 5.5
\value SimplifiedHanScript same as SimplifiedChineseScript \value SimplifiedHanScript same as SimplifiedChineseScript
\value SimplifiedChineseScript same as SimplifiedHanScript \value SimplifiedChineseScript same as SimplifiedHanScript
\value SinhalaScript \value SinhalaScript
@ -842,10 +890,12 @@
\value ThaiScript \value ThaiScript
\value TibetanScript \value TibetanScript
\value TifinaghScript \value TifinaghScript
\value TirhutaScript Since Qt 5.5
\value TraditionalHanScript same as TraditionalChineseScript \value TraditionalHanScript same as TraditionalChineseScript
\value TraditionalChineseScript same as TraditionalHanScript \value TraditionalChineseScript same as TraditionalHanScript
\value UgariticScript \value UgariticScript
\value VaiScript \value VaiScript
\value VarangKshitiScript Since Qt 5.5
\value YiScript \value YiScript
\omitvalue LastScript \omitvalue LastScript

File diff suppressed because it is too large Load Diff

View File

@ -1889,8 +1889,8 @@ void tst_QLocale::ampm()
QCOMPARE(sv.pmText(), QLatin1String("em")); QCOMPARE(sv.pmText(), QLatin1String("em"));
QLocale nn("nl_NL"); QLocale nn("nl_NL");
QCOMPARE(nn.amText(), QLatin1String("AM")); QCOMPARE(nn.amText(), QLatin1String("a.m."));
QCOMPARE(nn.pmText(), QLatin1String("PM")); QCOMPARE(nn.pmText(), QLatin1String("p.m."));
QLocale ua("uk_UA"); QLocale ua("uk_UA");
QCOMPARE(ua.amText(), QString::fromUtf8("\320\264\320\277")); QCOMPARE(ua.amText(), QString::fromUtf8("\320\264\320\277"));
@ -1916,12 +1916,12 @@ void tst_QLocale::dateFormat()
QCOMPARE(c.dateFormat(QLocale::NarrowFormat), c.dateFormat(QLocale::ShortFormat)); QCOMPARE(c.dateFormat(QLocale::NarrowFormat), c.dateFormat(QLocale::ShortFormat));
const QLocale no("no_NO"); const QLocale no("no_NO");
QCOMPARE(no.dateFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yy")); QCOMPARE(no.dateFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy"));
QCOMPARE(no.dateFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yy")); QCOMPARE(no.dateFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy"));
QCOMPARE(no.dateFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy")); QCOMPARE(no.dateFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy"));
const QLocale ca("en_CA"); const QLocale ca("en_CA");
QCOMPARE(ca.dateFormat(QLocale::ShortFormat), QLatin1String("M/d/yy")); QCOMPARE(ca.dateFormat(QLocale::ShortFormat), QLatin1String("yyyy-MM-dd"));
QCOMPARE(ca.dateFormat(QLocale::LongFormat), QLatin1String("dddd, MMMM d, yyyy")); QCOMPARE(ca.dateFormat(QLocale::LongFormat), QLatin1String("dddd, MMMM d, yyyy"));
const QLocale ja("ja_JP"); const QLocale ja("ja_JP");
@ -1947,8 +1947,8 @@ void tst_QLocale::timeFormat()
QCOMPARE(id.timeFormat(QLocale::LongFormat), QLatin1String("HH.mm.ss t")); QCOMPARE(id.timeFormat(QLocale::LongFormat), QLatin1String("HH.mm.ss t"));
const QLocale cat("ca_ES"); const QLocale cat("ca_ES");
QCOMPARE(cat.timeFormat(QLocale::ShortFormat), QLatin1String("H.mm")); QCOMPARE(cat.timeFormat(QLocale::ShortFormat), QLatin1String("H:mm"));
QCOMPARE(cat.timeFormat(QLocale::LongFormat), QLatin1String("H.mm.ss t")); QCOMPARE(cat.timeFormat(QLocale::LongFormat), QLatin1String("H:mm:ss t"));
const QLocale bra("pt_BR"); const QLocale bra("pt_BR");
QCOMPARE(bra.timeFormat(QLocale::ShortFormat), QLatin1String("HH:mm")); QCOMPARE(bra.timeFormat(QLocale::ShortFormat), QLatin1String("HH:mm"));
@ -1962,8 +1962,8 @@ void tst_QLocale::dateTimeFormat()
QCOMPARE(c.dateTimeFormat(QLocale::NarrowFormat), c.dateTimeFormat(QLocale::ShortFormat)); QCOMPARE(c.dateTimeFormat(QLocale::NarrowFormat), c.dateTimeFormat(QLocale::ShortFormat));
const QLocale no("no_NO"); const QLocale no("no_NO");
QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yy HH.mm")); QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy HH.mm"));
QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yy HH.mm")); QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy HH.mm"));
QCOMPARE(no.dateTimeFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy HH.mm.ss t")); QCOMPARE(no.dateTimeFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy HH.mm.ss t"));
} }
@ -1992,10 +1992,6 @@ void tst_QLocale::monthName()
QCOMPARE(ru.monthName(1, QLocale::ShortFormat), QString::fromUtf8("\321\217\320\275\320\262\56")); QCOMPARE(ru.monthName(1, QLocale::ShortFormat), QString::fromUtf8("\321\217\320\275\320\262\56"));
QCOMPARE(ru.monthName(1, QLocale::NarrowFormat), QString::fromUtf8("\320\257")); QCOMPARE(ru.monthName(1, QLocale::NarrowFormat), QString::fromUtf8("\320\257"));
// check that our CLDR scripts handle surrogate pairs correctly
QLocale dsrt("en-Dsrt-US");
QCOMPARE(dsrt.monthName(1, QLocale::LongFormat), QString::fromUtf8("\xf0\x90\x90\x96\xf0\x90\x90\xb0\xf0\x90\x91\x8c\xf0\x90\x90\xb7\xf0\x90\x90\xad\xf0\x90\x90\xaf\xf0\x90\x91\x89\xf0\x90\x90\xa8"));
QLocale ir("ga_IE"); QLocale ir("ga_IE");
QCOMPARE(ir.monthName(1, QLocale::ShortFormat), QLatin1String("Ean")); QCOMPARE(ir.monthName(1, QLocale::ShortFormat), QLatin1String("Ean"));
QCOMPARE(ir.monthName(12, QLocale::ShortFormat), QLatin1String("Noll")); QCOMPARE(ir.monthName(12, QLocale::ShortFormat), QLatin1String("Noll"));
@ -2027,9 +2023,9 @@ void tst_QLocale::standaloneMonthName()
QCOMPARE(de.standaloneMonthName(12, QLocale::NarrowFormat), QLatin1String("D")); QCOMPARE(de.standaloneMonthName(12, QLocale::NarrowFormat), QLatin1String("D"));
QLocale ru("ru_RU"); QLocale ru("ru_RU");
QCOMPARE(ru.standaloneMonthName(1, QLocale::LongFormat), QString::fromUtf8("\320\257\320\275\320\262\320\260\321\200\321\214")); QCOMPARE(ru.standaloneMonthName(1, QLocale::LongFormat), QString::fromUtf8("\xd1\x8f\xd0\xbd\xd0\xb2\xd0\xb0\xd1\x80\xd1\x8c"));
QCOMPARE(ru.standaloneMonthName(1, QLocale::ShortFormat), QString::fromUtf8("\320\257\320\275\320\262\56")); QCOMPARE(ru.standaloneMonthName(1, QLocale::ShortFormat), QString::fromUtf8("\xd1\x8f\xd0\xbd\xd0\xb2."));
QCOMPARE(ru.standaloneMonthName(1, QLocale::NarrowFormat), QString::fromUtf8("\320\257")); QCOMPARE(ru.standaloneMonthName(1, QLocale::NarrowFormat), QString::fromUtf8("\xd0\xaf"));
} }
void tst_QLocale::currency() void tst_QLocale::currency()
@ -2073,8 +2069,8 @@ void tst_QLocale::quoteString()
QCOMPARE(c.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\x27" "text" "\x27")); QCOMPARE(c.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\x27" "text" "\x27"));
const QLocale de_CH("de_CH"); const QLocale de_CH("de_CH");
QCOMPARE(de_CH.quoteString(someText), QString::fromUtf8("\xc2\xab" "text" "\xc2\xbb")); QCOMPARE(de_CH.quoteString(someText), QString::fromUtf8("\xe2\x80\x9e" "text" "\xe2\x80\x9c"));
QCOMPARE(de_CH.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\xe2\x80\xb9" "text" "\xe2\x80\xba")); QCOMPARE(de_CH.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\xe2\x80\x9a" "text" "\xe2\x80\x98"));
} }
@ -2201,15 +2197,36 @@ void tst_QLocale::textDirection_data()
for (int language = QLocale::C; language <= QLocale::LastLanguage; ++language) { for (int language = QLocale::C; language <= QLocale::LastLanguage; ++language) {
bool rightToLeft = false; bool rightToLeft = false;
switch (language) { switch (language) {
// based on likelySubtags for RTL scripts
case QLocale::AncientGreek:
case QLocale::AncientNorthArabian:
case QLocale::Arabic: case QLocale::Arabic:
case QLocale::Aramaic:
case QLocale::Avestan:
case QLocale::CentralKurdish:
case QLocale::ClassicalMandaic:
case QLocale::Divehi:
case QLocale::Hebrew: case QLocale::Hebrew:
case QLocale::Kashmiri: case QLocale::Kashmiri:
case QLocale::Persian: case QLocale::Lydian:
case QLocale::Mandingo:
case QLocale::ManichaeanMiddlePersian:
case QLocale::Mende:
case QLocale::Meroitic:
case QLocale::Nko:
case QLocale::OldTurkish:
case QLocale::Pahlavi:
case QLocale::Parthian:
case QLocale::Pashto: case QLocale::Pashto:
case QLocale::Persian:
case QLocale::Phoenician:
case QLocale::PrakritLanguage:
case QLocale::Sabaean:
case QLocale::Samaritan:
case QLocale::Sindhi:
case QLocale::Syriac:
case QLocale::Uighur: case QLocale::Uighur:
case QLocale::Urdu: case QLocale::Urdu:
case QLocale::Syriac:
case QLocale::Divehi:
rightToLeft = QLocale(QLocale::Language(language)).language() == QLocale::Language(language); // false if there is no locale data for language rightToLeft = QLocale(QLocale::Language(language)).language() == QLocale::Language(language); // false if there is no locale data for language
break; break;
default: default:

View File

@ -803,42 +803,42 @@ for key in locale_keys:
print " <minus>" + fixOrdStrMinus(l['minus']) + "</minus>" print " <minus>" + fixOrdStrMinus(l['minus']) + "</minus>"
print " <plus>" + fixOrdStrPlus(l['plus']) + "</plus>" print " <plus>" + fixOrdStrPlus(l['plus']) + "</plus>"
print " <exp>" + fixOrdStrExp(l['exp']) + "</exp>" print " <exp>" + fixOrdStrExp(l['exp']) + "</exp>"
print " <quotationStart>" + l['quotationStart'].encode('utf-8') + "</quotationStart>" print " <quotationStart>" + escape(l['quotationStart']).encode('utf-8') + "</quotationStart>"
print " <quotationEnd>" + l['quotationEnd'].encode('utf-8') + "</quotationEnd>" print " <quotationEnd>" + escape(l['quotationEnd']).encode('utf-8') + "</quotationEnd>"
print " <alternateQuotationStart>" + l['alternateQuotationStart'].encode('utf-8') + "</alternateQuotationStart>" print " <alternateQuotationStart>" + escape(l['alternateQuotationStart']).encode('utf-8') + "</alternateQuotationStart>"
print " <alternateQuotationEnd>" + l['alternateQuotationEnd'].encode('utf-8') + "</alternateQuotationEnd>" print " <alternateQuotationEnd>" + escape(l['alternateQuotationEnd']).encode('utf-8') + "</alternateQuotationEnd>"
print " <listPatternPartStart>" + l['listPatternPartStart'].encode('utf-8') + "</listPatternPartStart>" print " <listPatternPartStart>" + escape(l['listPatternPartStart']).encode('utf-8') + "</listPatternPartStart>"
print " <listPatternPartMiddle>" + l['listPatternPartMiddle'].encode('utf-8') + "</listPatternPartMiddle>" print " <listPatternPartMiddle>" + escape(l['listPatternPartMiddle']).encode('utf-8') + "</listPatternPartMiddle>"
print " <listPatternPartEnd>" + l['listPatternPartEnd'].encode('utf-8') + "</listPatternPartEnd>" print " <listPatternPartEnd>" + escape(l['listPatternPartEnd']).encode('utf-8') + "</listPatternPartEnd>"
print " <listPatternPartTwo>" + l['listPatternPartTwo'].encode('utf-8') + "</listPatternPartTwo>" print " <listPatternPartTwo>" + escape(l['listPatternPartTwo']).encode('utf-8') + "</listPatternPartTwo>"
print " <am>" + l['am'].encode('utf-8') + "</am>" print " <am>" + escape(l['am']).encode('utf-8') + "</am>"
print " <pm>" + l['pm'].encode('utf-8') + "</pm>" print " <pm>" + escape(l['pm']).encode('utf-8') + "</pm>"
print " <firstDayOfWeek>" + l['firstDayOfWeek'].encode('utf-8') + "</firstDayOfWeek>" print " <firstDayOfWeek>" + escape(l['firstDayOfWeek']).encode('utf-8') + "</firstDayOfWeek>"
print " <weekendStart>" + l['weekendStart'].encode('utf-8') + "</weekendStart>" print " <weekendStart>" + escape(l['weekendStart']).encode('utf-8') + "</weekendStart>"
print " <weekendEnd>" + l['weekendEnd'].encode('utf-8') + "</weekendEnd>" print " <weekendEnd>" + escape(l['weekendEnd']).encode('utf-8') + "</weekendEnd>"
print " <longDateFormat>" + l['longDateFormat'].encode('utf-8') + "</longDateFormat>" print " <longDateFormat>" + escape(l['longDateFormat']).encode('utf-8') + "</longDateFormat>"
print " <shortDateFormat>" + l['shortDateFormat'].encode('utf-8') + "</shortDateFormat>" print " <shortDateFormat>" + escape(l['shortDateFormat']).encode('utf-8') + "</shortDateFormat>"
print " <longTimeFormat>" + l['longTimeFormat'].encode('utf-8') + "</longTimeFormat>" print " <longTimeFormat>" + escape(l['longTimeFormat']).encode('utf-8') + "</longTimeFormat>"
print " <shortTimeFormat>" + l['shortTimeFormat'].encode('utf-8') + "</shortTimeFormat>" print " <shortTimeFormat>" + escape(l['shortTimeFormat']).encode('utf-8') + "</shortTimeFormat>"
print " <standaloneLongMonths>" + l['standaloneLongMonths'].encode('utf-8') + "</standaloneLongMonths>" print " <standaloneLongMonths>" + escape(l['standaloneLongMonths']).encode('utf-8') + "</standaloneLongMonths>"
print " <standaloneShortMonths>"+ l['standaloneShortMonths'].encode('utf-8') + "</standaloneShortMonths>" print " <standaloneShortMonths>"+ escape(l['standaloneShortMonths']).encode('utf-8') + "</standaloneShortMonths>"
print " <standaloneNarrowMonths>"+ l['standaloneNarrowMonths'].encode('utf-8') + "</standaloneNarrowMonths>" print " <standaloneNarrowMonths>"+ escape(l['standaloneNarrowMonths']).encode('utf-8') + "</standaloneNarrowMonths>"
print " <longMonths>" + l['longMonths'].encode('utf-8') + "</longMonths>" print " <longMonths>" + escape(l['longMonths']).encode('utf-8') + "</longMonths>"
print " <shortMonths>" + l['shortMonths'].encode('utf-8') + "</shortMonths>" print " <shortMonths>" + escape(l['shortMonths']).encode('utf-8') + "</shortMonths>"
print " <narrowMonths>" + l['narrowMonths'].encode('utf-8') + "</narrowMonths>" print " <narrowMonths>" + escape(l['narrowMonths']).encode('utf-8') + "</narrowMonths>"
print " <longDays>" + l['longDays'].encode('utf-8') + "</longDays>" print " <longDays>" + escape(l['longDays']).encode('utf-8') + "</longDays>"
print " <shortDays>" + l['shortDays'].encode('utf-8') + "</shortDays>" print " <shortDays>" + escape(l['shortDays']).encode('utf-8') + "</shortDays>"
print " <narrowDays>" + l['narrowDays'].encode('utf-8') + "</narrowDays>" print " <narrowDays>" + escape(l['narrowDays']).encode('utf-8') + "</narrowDays>"
print " <standaloneLongDays>" + l['standaloneLongDays'].encode('utf-8') + "</standaloneLongDays>" print " <standaloneLongDays>" + escape(l['standaloneLongDays']).encode('utf-8') + "</standaloneLongDays>"
print " <standaloneShortDays>" + l['standaloneShortDays'].encode('utf-8') + "</standaloneShortDays>" print " <standaloneShortDays>" + escape(l['standaloneShortDays']).encode('utf-8') + "</standaloneShortDays>"
print " <standaloneNarrowDays>" + l['standaloneNarrowDays'].encode('utf-8') + "</standaloneNarrowDays>" print " <standaloneNarrowDays>" + escape(l['standaloneNarrowDays']).encode('utf-8') + "</standaloneNarrowDays>"
print " <currencyIsoCode>" + l['currencyIsoCode'].encode('utf-8') + "</currencyIsoCode>" print " <currencyIsoCode>" + escape(l['currencyIsoCode']).encode('utf-8') + "</currencyIsoCode>"
print " <currencySymbol>" + l['currencySymbol'].encode('utf-8') + "</currencySymbol>" print " <currencySymbol>" + escape(l['currencySymbol']).encode('utf-8') + "</currencySymbol>"
print " <currencyDisplayName>" + l['currencyDisplayName'].encode('utf-8') + "</currencyDisplayName>" print " <currencyDisplayName>" + escape(l['currencyDisplayName']).encode('utf-8') + "</currencyDisplayName>"
print " <currencyDigits>" + str(l['currencyDigits']) + "</currencyDigits>" print " <currencyDigits>" + str(l['currencyDigits']) + "</currencyDigits>"
print " <currencyRounding>" + str(l['currencyRounding']) + "</currencyRounding>" print " <currencyRounding>" + str(l['currencyRounding']) + "</currencyRounding>"
print " <currencyFormat>" + l['currencyFormat'].encode('utf-8') + "</currencyFormat>" print " <currencyFormat>" + escape(l['currencyFormat']).encode('utf-8') + "</currencyFormat>"
print " <currencyNegativeFormat>" + l['currencyNegativeFormat'].encode('utf-8') + "</currencyNegativeFormat>" print " <currencyNegativeFormat>" + escape(l['currencyNegativeFormat']).encode('utf-8') + "</currencyNegativeFormat>"
print " </locale>" print " </locale>"
print " </localeList>" print " </localeList>"
print "</localeDatabase>" print "</localeDatabase>"

View File

@ -351,7 +351,32 @@ language_list = {
311 : [ "Ugaritic", "uga" ], 311 : [ "Ugaritic", "uga" ],
312 : [ "Akoose", "bss" ], 312 : [ "Akoose", "bss" ],
313 : [ "Lakota", "lkt" ], 313 : [ "Lakota", "lkt" ],
314 : [ "Standard Moroccan Tamazight", "zgh" ] 314 : [ "Standard Moroccan Tamazight", "zgh" ],
315 : [ "Mapuche", "arn" ],
316 : [ "Central Kurdish", "ckb" ],
317 : [ "LowerSorbian", "dsb" ],
318 : [ "UpperSorbian", "hsb" ],
319 : [ "Kenyang", "ken" ],
320 : [ "Mohawk", "moh" ],
321 : [ "Nko", "nqo" ],
322 : [ "Prussian", "prg" ],
323 : [ "Kiche", "quc" ],
324 : [ "Southern Sami", "sma" ],
325 : [ "Lule Sami", "smj" ],
326 : [ "Inari Sami", "smn" ],
327 : [ "Skolt Sami", "sms" ],
328 : [ "Warlpiri", "wbp" ],
329 : [ "Manichaean Middle Persian", "xmn" ],
330 : [ "Mende", "men" ],
331 : [ "Ancient North Arabian", "xna" ],
332 : [ "Linear A", "lab" ],
333 : [ "Hmong Njua", "hnj" ],
334 : [ "Ho", "hoc" ],
335 : [ "Lezghian", "lez" ],
336 : [ "Bassa", "bsq" ],
337 : [ "Mono", "mru" ],
338 : [ "Tedim Chin", "ctd" ],
339 : [ "Maithili", "mai" ]
} }
country_list = { country_list = {
@ -720,13 +745,33 @@ script_list = {
101 : [ "Takri", "Takr" ], 101 : [ "Takri", "Takr" ],
102 : [ "Ugaritic", "Ugar" ], 102 : [ "Ugaritic", "Ugar" ],
103 : [ "Braille", "Brai" ], 103 : [ "Braille", "Brai" ],
104 : [ "Hiragana", "Hira" ] 104 : [ "Hiragana", "Hira" ],
105 : [ "Caucasian Albanian", "Aghb" ],
106 : [ "Bassa Vah", "Bass" ],
107 : [ "Duployan", "Dupl" ],
108 : [ "Elbasan", "Elba" ],
109 : [ "Grantha", "Gran" ],
110 : [ "Pahawh Hmong", "Hmng" ],
111 : [ "Khojki", "Khoj" ],
112 : [ "Linear A", "Lina" ],
113 : [ "Mahajani", "Mahj" ],
114 : [ "Manichaean", "Mani" ],
115 : [ "Mende Kikakui", "Mend" ],
116 : [ "Modi", "Modi" ],
117 : [ "Mro", "Mroo" ],
118 : [ "Old North Arabian", "Narb" ],
119 : [ "Nabataean", "Nbat" ],
120 : [ "Palmyrene", "Palm" ],
121 : [ "Pau Cin Hau", "Pauc" ],
122 : [ "Old Permic", "Perm" ],
123 : [ "Psalter Pahlavi", "Phlp" ],
124 : [ "Siddham", "Sidd" ],
125 : [ "Khudawadi", "Sind" ],
126 : [ "Tirhuta", "Tirh" ],
127 : [ "Varang Kshiti", "Wara" ]
# ### : [ "Blissymbols", "Blis" ], # ### : [ "Blissymbols", "Blis" ],
# ### : [ "Linear A", "Lina" ],
# ### : [ "Naxi Geba", "Nkgb" ], # ### : [ "Naxi Geba", "Nkgb" ],
# ### : [ "Pahawh Hmong", "Hmng" ],
# ### : [ "Varang Kshiti", "Wara" ],
} }
def countryCodeToId(code): def countryCodeToId(code):