summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-03-29 10:50:24 (GMT)
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-03-29 15:18:07 (GMT)
commit7590288fd6419159116f4392389cb8ca9691fb06 (patch)
treed38121cbb3bb2ea41cbdc7b1b2ae97f3875f7aec
parent335fdd66947adadcdaaeb2896c42fba28d67843a (diff)
downloadQt-7590288fd6419159116f4392389cb8ca9691fb06.zip
Qt-7590288fd6419159116f4392389cb8ca9691fb06.tar.gz
Qt-7590288fd6419159116f4392389cb8ca9691fb06.tar.bz2
Added native language and country names (endonyms) to QLocale.
Task-number: QTBUG-17092 Reviewed-by: Zeno Albisser Reviewed-by: Liang Qi
-rw-r--r--src/corelib/tools/qlocale.cpp40
-rw-r--r--src/corelib/tools/qlocale.h6
-rw-r--r--src/corelib/tools/qlocale_p.h3
-rw-r--r--src/corelib/tools/qlocale_win.cpp27
-rw-r--r--tests/manual/qlocale/info.cpp92
-rw-r--r--tests/manual/qlocale/info.h72
-rw-r--r--tests/manual/qlocale/qlocale.pro4
-rw-r--r--tests/manual/qlocale/window.cpp3
-rw-r--r--tests/manual/qlocale/window.h2
-rwxr-xr-xutil/local_database/cldr2qlocalexml.py16
-rwxr-xr-xutil/local_database/qlocalexml2cpp.py15
11 files changed, 275 insertions, 5 deletions
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index af95a75..197c742 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -3224,4 +3224,44 @@ QStringList QLocale::uiLanguages() const
return QStringList(bcp47Name());
}
+/*!
+ \since 4.8
+
+ Returns a native name of the language for the locale. For example
+ "Schwiizertüütsch" for Swiss-German locale.
+
+ \sa nativeCountryName(), languageToString()
+*/
+QString QLocale::nativeLanguageName() const
+{
+#ifndef QT_NO_SYSTEMLOCALE
+ if (d() == systemPrivate()) {
+ QVariant res = systemLocale()->query(QSystemLocale::NativeLanguageName, QVariant());
+ if (!res.isNull())
+ return res.toString();
+ }
+#endif
+ return getLocaleData(endonyms_data + d()->m_language_endonym_idx, d()->m_language_endonym_size);
+}
+
+/*!
+ \since 4.8
+
+ Returns a native name of the country for the locale. For example
+ "España" for Spanish/Spain locale.
+
+ \sa nativeLanguageName(), countryToString()
+*/
+QString QLocale::nativeCountryName() const
+{
+#ifndef QT_NO_SYSTEMLOCALE
+ if (d() == systemPrivate()) {
+ QVariant res = systemLocale()->query(QSystemLocale::NativeCountryName, QVariant());
+ if (!res.isNull())
+ return res.toString();
+ }
+#endif
+ return getLocaleData(endonyms_data + d()->m_country_endonym_idx, d()->m_country_endonym_size);
+}
+
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h
index 4ac7630..9f44e30 100644
--- a/src/corelib/tools/qlocale.h
+++ b/src/corelib/tools/qlocale.h
@@ -114,7 +114,9 @@ public:
StringToAlternateQuotation, // QString in: QStringRef to quote
ScriptId, // uint
ListToSeparatedString, // QString
- LocaleChanged // system locale changed
+ LocaleChanged, // system locale changed
+ NativeLanguageName, // QString
+ NativeCountryName // QString
};
virtual QVariant query(QueryType type, QVariant in) const;
virtual QLocale fallbackLocale() const;
@@ -658,6 +660,8 @@ public:
QString name() const;
QString bcp47Name() const;
+ QString nativeLanguageName() const;
+ QString nativeCountryName() const;
short toShort(const QString &s, bool *ok = 0, int base = 0) const;
ushort toUShort(const QString &s, bool *ok = 0, int base = 0) const;
diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h
index e600807..1b31929 100644
--- a/src/corelib/tools/qlocale_p.h
+++ b/src/corelib/tools/qlocale_p.h
@@ -211,11 +211,14 @@ public:
quint16 m_currency_display_name_idx, m_currency_display_name_size;
quint8 m_currency_format_idx, m_currency_format_size;
quint8 m_currency_negative_format_idx, m_currency_negative_format_size;
+ quint16 m_language_endonym_idx, m_language_endonym_size;
+ quint16 m_country_endonym_idx, m_country_endonym_size;
quint16 m_currency_digits : 2;
quint16 m_currency_rounding : 3;
quint16 m_first_day_of_week : 3;
quint16 m_weekend_start : 3;
quint16 m_weekend_end : 3;
+
};
inline char QLocalePrivate::digitToCLocale(const QChar &in) const
diff --git a/src/corelib/tools/qlocale_win.cpp b/src/corelib/tools/qlocale_win.cpp
index 0c2d039..3325419 100644
--- a/src/corelib/tools/qlocale_win.cpp
+++ b/src/corelib/tools/qlocale_win.cpp
@@ -76,6 +76,12 @@ static QString winIso3116CtryName(LCID id = LOCALE_USER_DEFAULT);
# define LOCALE_SSHORTESTDAYNAME6 0x0065
# define LOCALE_SSHORTESTDAYNAME7 0x0066
#endif
+#ifndef LOCALE_SNATIVELANGUAGENAME
+# define LOCALE_SNATIVELANGUAGENAME 0x00000004
+#endif
+#ifndef LOCALE_SNATIVECOUNTRYNAME
+# define LOCALE_SNATIVECOUNTRYNAME 0x00000008
+#endif
struct QSystemLocalePrivate
{
@@ -101,6 +107,8 @@ struct QSystemLocalePrivate
QVariant currencySymbol(QLocale::CurrencySymbolFormat);
QVariant toCurrencyString(const QSystemLocale::CurrencyToStringArgument &);
QVariant uiLanguages();
+ QVariant nativeLanguageName();
+ QVariant nativeCountryName();
void update();
@@ -559,6 +567,21 @@ QVariant QSystemLocalePrivate::uiLanguages()
return QStringList(QString::fromLatin1(winLangCodeToIsoName(GetUserDefaultUILanguage())));
}
+QVariant QSystemLocalePrivate::nativeLanguageName()
+{
+ if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS7)
+ return getLocaleInfo(LOCALE_SNATIVELANGNAME);
+ return getLocaleInfo(LOCALE_SNATIVELANGUAGENAME);
+}
+
+QVariant QSystemLocalePrivate::nativeCountryName()
+{
+ if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS7)
+ return getLocaleInfo(LOCALE_SNATIVECTRYNAME);
+ return getLocaleInfo(LOCALE_SNATIVECOUNTRYNAME);
+}
+
+
void QSystemLocalePrivate::update()
{
lcid = GetUserDefaultLCID();
@@ -713,6 +736,10 @@ QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const
case LocaleChanged:
d->update();
break;
+ case NativeLanguageName:
+ return d->nativeLanguageName();
+ case NativeCountryName:
+ return d->nativeCountryName();
default:
break;
}
diff --git a/tests/manual/qlocale/info.cpp b/tests/manual/qlocale/info.cpp
new file mode 100644
index 0000000..a4f6adf
--- /dev/null
+++ b/tests/manual/qlocale/info.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "info.h"
+
+InfoWidget::InfoWidget()
+{
+ scrollArea = new QScrollArea;
+ scrollAreaWidget = new QWidget;
+ scrollArea->setWidget(scrollAreaWidget);
+ scrollArea->setWidgetResizable(true);
+ layout = new QGridLayout();
+ QVBoxLayout *v = new QVBoxLayout(scrollAreaWidget);
+ v->addLayout(layout);
+ v->addStretch();
+
+ QVBoxLayout *l = new QVBoxLayout(this);
+ l->addWidget(scrollArea);
+
+ name = addItem("Name:");
+ bcp47Name = addItem("Bcp47 name:");
+ languageName = addItem("Language name:");
+ nativeLanguageName = addItem("Native language name:");
+ scriptName = addItem("Script name:");
+ countryName = addItem("Country name:");
+ nativeCountryName = addItem("Native country name:");
+}
+
+void InfoWidget::localeChanged(QLocale locale)
+{
+ setLocale(locale);
+ name->setText(locale.name());
+ bcp47Name->setText(locale.bcp47Name());
+ languageName->setText(QLocale::languageToString(locale.language()));
+ nativeLanguageName->setText(locale.nativeLanguageName());
+ scriptName->setText(QLocale::scriptToString(locale.script()));
+ countryName->setText(QLocale::countryToString(locale.country()));
+ nativeCountryName->setText(locale.nativeCountryName());
+}
+
+void InfoWidget::addItem(const QString &label, QWidget *w)
+{
+ QLabel *lbl = new QLabel(label);
+ int row = layout->rowCount();
+ layout->addWidget(lbl, row, 0);
+ layout->addWidget(w, row, 1, 1, 2);
+}
+
+QLineEdit *InfoWidget::addItem(const QString &label)
+{
+ QLineEdit *le = new QLineEdit;
+ le->setReadOnly(true);
+ addItem(label, le);
+ return le;
+}
diff --git a/tests/manual/qlocale/info.h b/tests/manual/qlocale/info.h
new file mode 100644
index 0000000..b23ecf5
--- /dev/null
+++ b/tests/manual/qlocale/info.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef INFO_H
+#define INFO_H
+
+#include <QtGui>
+
+class InfoWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ InfoWidget();
+
+private:
+ void addItem(const QString &label, QWidget *);
+ QLineEdit *addItem(const QString &label);
+
+ QScrollArea *scrollArea;
+ QWidget *scrollAreaWidget;
+ QGridLayout *layout;
+
+ QLineEdit *name;
+ QLineEdit *bcp47Name;
+ QLineEdit *languageName;
+ QLineEdit *nativeLanguageName;
+ QLineEdit *scriptName;
+ QLineEdit *countryName;
+ QLineEdit *nativeCountryName;
+
+private slots:
+ void localeChanged(QLocale locale);
+};
+
+#endif
diff --git a/tests/manual/qlocale/qlocale.pro b/tests/manual/qlocale/qlocale.pro
index 6f0bf88..e9f17f4 100644
--- a/tests/manual/qlocale/qlocale.pro
+++ b/tests/manual/qlocale/qlocale.pro
@@ -4,5 +4,5 @@ DEPENDPATH += .
INCLUDEPATH += .
# Input
-HEADERS += currency.h calendar.h dateformats.h numberformats.h languages.h window.h miscellaneous.h
-SOURCES += currency.cpp main.cpp calendar.cpp dateformats.cpp numberformats.cpp languages.cpp window.cpp miscellaneous.cpp
+HEADERS += currency.h calendar.h dateformats.h numberformats.h languages.h window.h miscellaneous.h info.h
+SOURCES += currency.cpp main.cpp calendar.cpp dateformats.cpp numberformats.cpp languages.cpp window.cpp miscellaneous.cpp info.cpp
diff --git a/tests/manual/qlocale/window.cpp b/tests/manual/qlocale/window.cpp
index 38bbbe4..775023e 100644
--- a/tests/manual/qlocale/window.cpp
+++ b/tests/manual/qlocale/window.cpp
@@ -62,6 +62,8 @@ Window::Window()
this, SLOT(localeChanged(int)));
tabWidget = new QTabWidget;
+ info = new InfoWidget;
+ connect(this, SIGNAL(localeChanged(QLocale)), info, SLOT(localeChanged(QLocale)));
calendar = new CalendarWidget;
connect(this, SIGNAL(localeChanged(QLocale)), calendar, SLOT(localeChanged(QLocale)));
currency = new CurrencyWidget;
@@ -87,6 +89,7 @@ Window::Window()
l->addWidget(w);
l->addWidget(tabWidget);
+ tabWidget->addTab(info, "Info");
tabWidget->addTab(calendar, "Calendar");
tabWidget->addTab(currency, "Currency");
tabWidget->addTab(languages, "Languages");
diff --git a/tests/manual/qlocale/window.h b/tests/manual/qlocale/window.h
index dfef895..aee728f 100644
--- a/tests/manual/qlocale/window.h
+++ b/tests/manual/qlocale/window.h
@@ -49,6 +49,7 @@
#include "dateformats.h"
#include "numberformats.h"
#include "miscellaneous.h"
+#include "info.h"
class Window : public QMainWindow
{
@@ -65,6 +66,7 @@ public:
DateFormatsWidget *dateFormats;
NumberFormatsWidget *numberFormats;
MiscWidget *miscellaneous;
+ InfoWidget *info;
private:
bool event(QEvent *);
diff --git a/util/local_database/cldr2qlocalexml.py b/util/local_database/cldr2qlocalexml.py
index a67971b..f0f9cb1 100755
--- a/util/local_database/cldr2qlocalexml.py
+++ b/util/local_database/cldr2qlocalexml.py
@@ -234,6 +234,18 @@ def generateLocaleInfo(path):
result['longTimeFormat'] = convert_date(findEntry(path, "dates/calendars/calendar[gregorian]/timeFormats/timeFormatLength[full]/timeFormat/pattern"))
result['shortTimeFormat'] = convert_date(findEntry(path, "dates/calendars/calendar[gregorian]/timeFormats/timeFormatLength[short]/timeFormat/pattern"))
+ endonym = None
+ if country_code and script_code:
+ endonym = findEntryDef(path, "localeDisplayNames/languages/language[type=%s_%s_%s]" % (language_code, script_code, country_code))
+ if not endonym and script_code:
+ endonym = findEntryDef(path, "localeDisplayNames/languages/language[type=%s_%s]" % (language_code, script_code))
+ if not endonym and country_code:
+ endonym = findEntryDef(path, "localeDisplayNames/languages/language[type=%s_%s]" % (language_code, country_code))
+ if not endonym:
+ endonym = findEntryDef(path, "localeDisplayNames/languages/language[type=%s]" % (language_code))
+ result['language_endonym'] = endonym
+ result['country_endonym'] = findEntryDef(path, "localeDisplayNames/territories/territory[type=%s]" % (country_code))
+
currency_format = get_number_in_system(path, "numbers/currencyFormats/currencyFormatLength/currencyFormat/pattern", numbering_system)
currency_format = parse_number_format(currency_format, result)
result['currencyFormat'] = currency_format[0]
@@ -687,8 +699,10 @@ print " <localeList>"
print \
" <locale>\n\
<language>C</language>\n\
+ <languageEndonym></languageEndonym>\n\
<script>AnyScript</script>\n\
<country>AnyCountry</country>\n\
+ <countryEndonym></countryEndonym>\n\
<decimal>46</decimal>\n\
<group>44</group>\n\
<list>59</list>\n\
@@ -740,8 +754,10 @@ for key in locale_keys:
print " <locale>"
print " <language>" + l['language'] + "</language>"
+ print " <languageEndonym>" + l['language_endonym'].encode('utf-8') + "</languageEndonym>"
print " <script>" + l['script'] + "</script>"
print " <country>" + l['country'] + "</country>"
+ print " <countryEndonym>" + l['country_endonym'].encode('utf-8') + "</countryEndonym>"
print " <languagecode>" + l['language_code'] + "</languagecode>"
print " <scriptcode>" + l['script_code'] + "</scriptcode>"
print " <countrycode>" + l['country_code'] + "</countrycode>"
diff --git a/util/local_database/qlocalexml2cpp.py b/util/local_database/qlocalexml2cpp.py
index f16ecbf..8907435 100755
--- a/util/local_database/qlocalexml2cpp.py
+++ b/util/local_database/qlocalexml2cpp.py
@@ -237,8 +237,10 @@ def assertSingleChar(string):
class Locale:
def __init__(self, elt):
self.language = eltText(firstChildElt(elt, "language"))
+ self.languageEndonym = eltText(firstChildElt(elt, "languageEndonym"))
self.script = eltText(firstChildElt(elt, "script"))
self.country = eltText(firstChildElt(elt, "country"))
+ self.countryEndonym = eltText(firstChildElt(elt, "countryEndonym"))
self.decimal = int(eltText(firstChildElt(elt, "decimal")))
self.group = int(eltText(firstChildElt(elt, "group")))
self.listDelim = int(eltText(firstChildElt(elt, "list")))
@@ -509,6 +511,7 @@ def main():
currency_symbol_data = StringData()
currency_display_name_data = StringData()
currency_format_data = StringData()
+ endonyms_data = StringData()
# Locale data
data_temp_file.write("static const QLocalePrivate locale_data[] = {\n")
@@ -521,7 +524,7 @@ def main():
for key in locale_keys:
l = locale_map[key]
- data_temp_file.write(" { %6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, {%s}, %s,%s,%s,%s,%6d,%6d,%6d,%6d,%6d }, // %s/%s/%s\n" \
+ data_temp_file.write(" { %6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%6d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, {%s}, %s,%s,%s,%s,%s,%s,%6d,%6d,%6d,%6d,%6d }, // %s/%s/%s\n" \
% (key[0], key[1], key[2],
l.decimal,
l.group,
@@ -562,6 +565,8 @@ def main():
currency_display_name_data.append(l.currencyDisplayName),
currency_format_data.append(l.currencyFormat),
currency_format_data.append(l.currencyNegativeFormat),
+ endonyms_data.append(l.languageEndonym),
+ endonyms_data.append(l.countryEndonym),
l.currencyDigits,
l.currencyRounding,
l.firstDayOfWeek,
@@ -570,7 +575,7 @@ def main():
l.language,
l.script,
l.country))
- data_temp_file.write(" { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, {0,0,0}, 0,0, 0,0, 0,0, 0,0, 0, 0, 0, 0, 0 } // trailing 0s\n")
+ data_temp_file.write(" { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, {0,0,0}, 0,0, 0,0, 0,0, 0,0, 0, 0, 0, 0, 0, 0,0, 0,0 } // trailing 0s\n")
data_temp_file.write("};\n")
data_temp_file.write("\n")
@@ -661,6 +666,12 @@ def main():
data_temp_file.write(wrap_list(currency_format_data.data))
data_temp_file.write("\n};\n")
+ # Endonyms data
+ #check_static_char_array_length("endonyms", endonyms_data.data)
+ data_temp_file.write("static const ushort endonyms_data[] = {\n")
+ data_temp_file.write(wrap_list(endonyms_data.data))
+ data_temp_file.write("\n};\n")
+
data_temp_file.write("\n")
# Language name list