+
+#include "../../crengine/include/crlocaledata.h"
#if defined(__arm__) || defined(__aarch64__) || defined(__i386__) || defined(__mips__)
#define USE_COFFEECATCH 1
@@ -985,49 +983,53 @@ JNIEXPORT jboolean JNICALL Java_org_coolreader_crengine_Engine_setCacheDirectory
/*
* Class: org_coolreader_crengine_Engine
- * Method: haveFcLangCodeInternal
- * Signature: (Ljava/lang/String;)Z
+ * Method: checkFontLanguageCompatibilityInternal
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
*/
-JNIEXPORT jboolean JNICALL Java_org_coolreader_crengine_Engine_haveFcLangCodeInternal
- (JNIEnv *env, jclass cls, jstring langCode)
+JNIEXPORT jint JNICALL Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal
+ (JNIEnv *env, jclass cls, jstring fontFace, jstring langTag)
{
- jboolean res = JNI_FALSE;
- const char* langCode_ptr = env->GetStringUTFChars(langCode, 0);
- if (langCode_ptr) {
- struct fc_lang_catalog* lang_ptr = fc_lang_cat;
- for (int i = 0; i < fc_lang_cat_sz; i++)
- {
- if (strcmp(lang_ptr->lang_code, langCode_ptr) == 0)
- {
- res = JNI_TRUE;
- break;
- }
- lang_ptr++;
- }
- env->ReleaseStringUTFChars(langCode, langCode_ptr);
+ font_lang_compat res = font_lang_compat_invalid_tag;
+ const char* fontFace_ptr = env->GetStringUTFChars(fontFace, 0);
+ const char* langTag_ptr = env->GetStringUTFChars(langTag, 0);
+ if (fontFace_ptr && langTag_ptr) {
+ res = fontMan->checkFontLangCompat(lString8(fontFace_ptr), lString8(langTag_ptr));
}
- return res;
+ if (langTag_ptr)
+ env->ReleaseStringUTFChars(langTag, langTag_ptr);
+ if (fontFace_ptr)
+ env->ReleaseStringUTFChars(fontFace, fontFace_ptr);
+ return (jint)res;
}
-
/*
* Class: org_coolreader_crengine_Engine
- * Method: checkFontLanguageCompatibilityInternal
- * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
+ * Method: getHumanReadableLocaleNameInternal
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
-JNIEXPORT jboolean JNICALL Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal
- (JNIEnv *env, jclass cls, jstring fontFace, jstring langCode)
+JNIEXPORT jstring JNICALL Java_org_coolreader_crengine_Engine_getHumanReadableLocaleNameInternal
+ (JNIEnv *env, jclass cls, jstring langTag)
{
- jboolean res = JNI_TRUE;
- const char* fontFace_ptr = env->GetStringUTFChars(fontFace, 0);
- const char* langCode_ptr = env->GetStringUTFChars(langCode, 0);
- if (fontFace_ptr && langCode_ptr) {
- res = fontMan->checkFontLangCompat(lString8(fontFace_ptr), lString8(langCode_ptr)) ? JNI_TRUE : JNI_FALSE;
+ jstring res = NULL;
+ const char* langTag_ptr = env->GetStringUTFChars(langTag, 0);
+ if (langTag_ptr) {
+ CRLocaleData loc(langTag_ptr);
+ if (loc.isValid()) {
+ lString8 langDescr = loc.langName();
+ if (loc.scriptNumeric() > 0) {
+ langDescr.append("-");
+ langDescr.append(loc.scriptName());
+ }
+ if (loc.regionNumeric() > 0) {
+ langDescr.append(" (");
+ langDescr.append(loc.regionAlpha3());
+ langDescr.append(")");
+ }
+ jstring str = env->NewStringUTF(langDescr.c_str());
+ res = (jstring)env->NewGlobalRef(str);
+ }
+ env->ReleaseStringUTFChars(langTag, langTag_ptr);
}
- if (langCode_ptr)
- env->ReleaseStringUTFChars(langCode, langCode_ptr);
- if (fontFace_ptr)
- env->ReleaseStringUTFChars(fontFace, fontFace_ptr);
return res;
}
@@ -1181,8 +1183,8 @@ static JNINativeMethod sEngineMethods[] = {
{"setKeyBacklightInternal", "(I)Z", (void*)Java_org_coolreader_crengine_Engine_setKeyBacklightInternal},
{"scanBookCoverInternal", "(Ljava/lang/String;)[B", (void*)Java_org_coolreader_crengine_Engine_scanBookCoverInternal},
{"drawBookCoverInternal", "(Landroid/graphics/Bitmap;[BLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V", (void*)Java_org_coolreader_crengine_Engine_drawBookCoverInternal},
- {"haveFcLangCodeInternal", "(Ljava/lang/String;)Z", (void*)Java_org_coolreader_crengine_Engine_haveFcLangCodeInternal},
- {"checkFontLanguageCompatibilityInternal", "(Ljava/lang/String;Ljava/lang/String;)Z", (void*)Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal},
+ {"checkFontLanguageCompatibilityInternal", "(Ljava/lang/String;Ljava/lang/String;)I", (void*)Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal},
+ {"getHumanReadableLocaleNameInternal", "(Ljava/lang/String;)Ljava/lang/String;", (void*)Java_org_coolreader_crengine_Engine_getHumanReadableLocaleNameInternal},
{"listFilesInternal", "(Ljava/io/File;)[Ljava/io/File;", (void*)Java_org_coolreader_crengine_Engine_listFilesInternal},
{"getDomVersionCurrent", "()I", (void*)Java_org_coolreader_crengine_Engine_getDomVersionCurrent}
};
diff --git a/android/jni/gen_jni_studio b/android/jni/gen_jni_studio
index 2d17c5c239..a5ad870bba 100755
--- a/android/jni/gen_jni_studio
+++ b/android/jni/gen_jni_studio
@@ -1,7 +1,7 @@
#!/bin/sh
sdk="/opt/android-sdk-update-manager"
-binclass_path=../app/build/intermediates/javac/debug/classes
+binclass_path=../app/build/intermediates/javac/primaryDebug/classes
export CLASSPATH="${CLASSPATH}:${sdk}/platforms/android-17/*:${binclass_path}"
diff --git a/android/jni/org_coolreader_crengine_Engine.h b/android/jni/org_coolreader_crengine_Engine.h
index d5ecaa55a2..d0cccdf657 100644
--- a/android/jni/org_coolreader_crengine_Engine.h
+++ b/android/jni/org_coolreader_crengine_Engine.h
@@ -149,19 +149,19 @@ JNIEXPORT void JNICALL Java_org_coolreader_crengine_Engine_suspendLongOperationI
/*
* Class: org_coolreader_crengine_Engine
- * Method: haveFcLangCodeInternal
- * Signature: (Ljava/lang/String;)Z
+ * Method: checkFontLanguageCompatibilityInternal
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)I
*/
-JNIEXPORT jboolean JNICALL Java_org_coolreader_crengine_Engine_haveFcLangCodeInternal
- (JNIEnv *, jclass, jstring);
+JNIEXPORT jint JNICALL Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal
+ (JNIEnv *, jclass, jstring, jstring);
/*
* Class: org_coolreader_crengine_Engine
- * Method: checkFontLanguageCompatibilityInternal
- * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
+ * Method: getHumanReadableLocaleNameInternal
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
-JNIEXPORT jboolean JNICALL Java_org_coolreader_crengine_Engine_checkFontLanguageCompatibilityInternal
- (JNIEnv *, jclass, jstring, jstring);
+JNIEXPORT jstring JNICALL Java_org_coolreader_crengine_Engine_getHumanReadableLocaleNameInternal
+ (JNIEnv *, jclass, jstring);
/*
* Class: org_coolreader_crengine_Engine
diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml
index 345025e352..cf21914d62 100644
--- a/android/res/values-ru/strings.xml
+++ b/android/res/values-ru/strings.xml
@@ -639,7 +639,8 @@
Контрастная черная
Ошибка открытия документа \"%s\"
Каталог с данными приложения \"%s\" был удален другой программой!\nВозможно какой-то оптимизатор дискового пространства?\nК сожалению, все настройки утеряны.
- Предупреждение: шрифт \"%s\" не содержит полный набор символов языка \"%s\". Недостающие символы будут взяты из резервного шрифта.
+ Предупреждение: шрифт \"%s\" содержит не полный набор символов языка \"%s\". Недостающие символы будут получены из резервных шрифтов.
+ Предупреждение: шрифт \"%s\" не содержит ни одного символа языка \"%s\". Всё необходимые символы будут получены из резервных шрифтов.
Набор символов различных писменностей от Fontconfig:
https://www.fontconfig.org/
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index 2d5cd80279..892fa6fc22 100644
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -668,7 +668,8 @@
"20 pages (track)"
Error while opening document \"%s\"
Application data directory \"%s\" has been removed by other app.\nPossibly it was some kind of disc space optimizer.\nUnfortunately all the settings were lost.
- Warning: font \"%s\" does not contain the full character set of the language \"%s\". Missing characters will be taken from the fallback font.
+ Warning: font \"%s\" does not contain the full character set of the language \"%s\". Missing characters will be obtained from fallback fonts.
+ Warning: the font \"%s\" does not contain any character of the language \"%s\". All necessary characters will be obtained from the fallback fonts.
"Languages character set database by Fontconfig:
https://www.fontconfig.org/ "
diff --git a/android/src/org/coolreader/crengine/Engine.java b/android/src/org/coolreader/crengine/Engine.java
index ec55689698..d6b380a0d3 100644
--- a/android/src/org/coolreader/crengine/Engine.java
+++ b/android/src/org/coolreader/crengine/Engine.java
@@ -23,7 +23,6 @@
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
-import java.util.MissingResourceException;
import java.util.zip.ZipEntry;
/**
@@ -41,6 +40,12 @@ public class Engine {
private BaseActivity mActivity;
+ public enum font_lang_compat {
+ font_lang_compat_invalid_tag,
+ font_lang_compat_none,
+ font_lang_compat_partial,
+ font_lang_compat_full,
+ }
// private final View mMainView;
// private final ExecutorService mExecutor =
@@ -634,23 +639,26 @@ public void initAgain() {
private native static void suspendLongOperationInternal(); // cancel current long operation in engine thread (swapping to cache file) -- call it from GUI thread
/**
- * Test if in embedded FontConfig language orthography catalog have record with language code langCode.
+ * Check the font for compatibility with the specified language.
*
- * @param langCode language code
- * @return true if record with langCode found, false - otherwise.
- *
- * Language code compared as is without any modifications.
+ * @param fontFace font face to check.
+ * @param langTag language tag in embedded FontConfig language orthography catalog.
+ * @return font compatibility level.
+ *
+ * levels:
+ * 0 - invalid langTag
+ * 1 - not compatible (all required glyphs omitted)
+ * 2 - partially compatible (have not all required glyphs)
+ * 3 - fully compatible (have all required glyphs)
*/
- private native static boolean haveFcLangCodeInternal(String langCode);
+ private native static int checkFontLanguageCompatibilityInternal(String fontFace, String langTag);
/**
- * Check the font for compatibility with the specified language.
- *
- * @param fontFace font face to check.
- * @param langCode language code in embedded FontConfig language orthography catalog.
- * @return true if font compatible with language, false - otherwise.
+ * Convert language tag to human readable locale name.
+ * @param langTag language tag
+ * @return locale name if successful, null if langTag is invalid.
*/
- private native static boolean checkFontLanguageCompatibilityInternal(String fontFace, String langCode);
+ private native static String getHumanReadableLocaleNameInternal(String langTag);
private native static File[] listFilesInternal(File dir);
@@ -658,8 +666,29 @@ public static void suspendLongOperation() {
suspendLongOperationInternal();
}
- public synchronized static boolean checkFontLanguageCompatibility(String fontFace, String langCode) {
- return checkFontLanguageCompatibilityInternal(fontFace, langCode);
+ public synchronized static font_lang_compat checkFontLanguageCompatibility(String fontFace, String langCode) {
+ int level = checkFontLanguageCompatibilityInternal(fontFace, langCode);
+ font_lang_compat compat;
+ switch (level) {
+ case 1:
+ compat = font_lang_compat.font_lang_compat_none;
+ break;
+ case 2:
+ compat = font_lang_compat.font_lang_compat_partial;
+ break;
+ case 3:
+ compat = font_lang_compat.font_lang_compat_full;
+ break;
+ case 0:
+ default:
+ compat = font_lang_compat.font_lang_compat_invalid_tag;
+ break;
+ }
+ return compat;
+ }
+
+ public synchronized static String getHumanReadableLocaleName(String langCode) {
+ return getHumanReadableLocaleNameInternal(langCode);
}
public static synchronized File[] listFiles(File dir) {
@@ -668,136 +697,6 @@ public static synchronized File[] listFiles(File dir) {
private native static int getDomVersionCurrent();
- /**
- * Finds the corresponding language code in embedded FontConfig language orthography catalog.
- *
- * @param language language code in free form: ISO 639-1, ISO 639-2 or full name of the language in English. Also allowed concatenation of country code in ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3.
- * @return language code in the FontConfig language orthography catalog if it's found, null - otherwise.
- *
- * If a country code in any form is added to the language, but the record with the country code is not found - it is simply ignored and the search continues without a country code.
- */
- public static String findCompatibleFcLangCode(String language) {
- String langCode = null;
-
- String lang_part;
- String country_part;
- String testLang;
-
- // Split language and country codes
- int pos = language.indexOf('-');
- if (-1 == pos)
- pos = language.indexOf('_');
- if (pos > 0) {
- lang_part = language.substring(0, pos);
- if (pos < language.length() - 1)
- country_part = language.substring(pos + 1);
- else
- country_part = "";
- } else {
- lang_part = language;
- country_part = "";
- }
- lang_part = lang_part.toLowerCase();
- country_part = country_part.toLowerCase();
-
- if (country_part.length() > 0)
- testLang = lang_part + "_" + country_part;
- else
- testLang = lang_part;
- // 1. Check if testLang is already language code accepted by FontConfig languages symbols database
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- else {
- // Check if lang_part is the three-letter abbreviation: ISO 639-2 or ISO 639-3
- // and if country_part code is the three-letter country code: ISO 3366-1 alpha 3
- // Then convert them to two-letter code and test
- String lang_2l = null;
- String country_2l = null;
- int found = 0;
- for (Locale loc : Locale.getAvailableLocales()) {
- try {
- if (lang_part.equals(loc.getISO3Language())) {
- lang_2l = loc.getLanguage();
- found |= 1;
- }
- } catch (MissingResourceException e) {
- // three-letter language abbreviation is not available for this locale
- // just ignore this exception
- }
- if (country_part.length() > 0) {
- try {
- if (country_part.equals(loc.getISO3Country().toLowerCase())) {
- country_2l = loc.getCountry().toLowerCase();
- found |= 2;
- }
- } catch (MissingResourceException e) {
- // the three-letter country abbreviation is not available for this locale
- // just ignore this exception
- }
- if (3 == found)
- break;
- } else if (1 == found)
- break;
- }
- if (country_part.length() > 0) {
- // 2. test lang_2l + country_part
- if (null != lang_2l) {
- testLang = lang_2l + "_" + country_part;
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- }
- if (null == langCode && null != country_2l) {
- // 3. test lang_part + country_2l
- testLang = lang_part + "_" + country_2l;
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- }
- if (null == langCode && null != country_2l && null != lang_2l) {
- // 4. test lang_2l + country_2l
- testLang = lang_2l + "_" + country_2l;
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- }
- }
- if (null == langCode) {
- if (null != lang_2l) {
- // 5. test lang_2l
- // if two-letter country code not found or county code omitted
- // but found two-letter language code
- testLang = lang_2l;
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- } else {
- // 6. test lang_part
- testLang = lang_part;
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- }
- }
- }
- if (null == langCode) {
- Locale locale = null;
- // 7. Try to find by full language name
- for (Locale loc : Locale.getAvailableLocales()) {
- if (language.equalsIgnoreCase(loc.getDisplayLanguage(Locale.ENGLISH))) {
- locale = loc;
- break;
- }
- }
- if (null != locale) {
- testLang = locale.getISO3Language();
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- else {
- testLang = locale.getLanguage(); // two-letter code
- if (haveFcLangCodeInternal(testLang))
- langCode = testLang;
- }
- }
- }
- return langCode;
- }
-
/**
* Checks whether specified directlry or file is symbolic link.
* (thread-safe)
diff --git a/android/src/org/coolreader/crengine/ReaderView.java b/android/src/org/coolreader/crengine/ReaderView.java
index 862a145193..4473fc34c2 100644
--- a/android/src/org/coolreader/crengine/ReaderView.java
+++ b/android/src/org/coolreader/crengine/ReaderView.java
@@ -2694,21 +2694,30 @@ private void applySettings(Properties props) {
FileInfo fileInfo = mBookInfo.getFileInfo();
final String bookLanguage = fileInfo.getLanguage();
final String fontFace = props.getProperty(PROP_FONT_FACE);
- String fcLangCode = null;
if (null != bookLanguage && bookLanguage.length() > 0) {
- fcLangCode = Engine.findCompatibleFcLangCode(bookLanguage);
if (props.getBool(PROP_TEXTLANG_EMBEDDED_LANGS_ENABLED, false))
props.setProperty(PROP_TEXTLANG_MAIN_LANG, bookLanguage);
- }
- if (null != fcLangCode && fcLangCode.length() > 0) {
- boolean res = Engine.checkFontLanguageCompatibility(fontFace, fcLangCode);
- log.d("Checking font \"" + fontFace + "\" for compatibility with language \"" + bookLanguage + "\" fcLangCode=" + fcLangCode + ": res=" + res);
- if (!res) {
- BackgroundThread.instance().executeGUI(() -> mActivity.showToast(R.string.font_not_compat_with_language, fontFace, bookLanguage));
+ final String langDescr = Engine.getHumanReadableLocaleName(bookLanguage);
+ if (null != langDescr && langDescr.length() > 0) {
+ Engine.font_lang_compat compat = Engine.checkFontLanguageCompatibility(fontFace, bookLanguage);
+ log.d("Checking font \"" + fontFace + "\" for compatibility with language \"" + bookLanguage + "\" fcLangCode=" + langDescr + ": compat=" + compat);
+ switch (compat) {
+ case font_lang_compat_invalid_tag:
+ log.w("Can't find compatible language code in embedded FontConfig catalog: language=\"" + bookLanguage + "\", filename=\"" + fileInfo + "\"");
+ break;
+ case font_lang_compat_none:
+ BackgroundThread.instance().executeGUI(() -> mActivity.showToast(R.string.font_not_compat_with_language, fontFace, langDescr));
+ break;
+ case font_lang_compat_partial:
+ BackgroundThread.instance().executeGUI(() -> mActivity.showToast(R.string.font_compat_partial_with_language, fontFace, langDescr));
+ break;
+ case font_lang_compat_full:
+ // good, do nothing
+ break;
+ }
+ } else {
+ log.d("Invalid language tag: \"" + bookLanguage + "\", filename=\"" + fileInfo + "\"");
}
- } else {
- if (null != bookLanguage)
- log.d("Can't find compatible language code in embedded FontConfig catalog: language=\"" + bookLanguage + "\" bookInfo=" + fileInfo);
}
}
doc.applySettings(props);
diff --git a/cr3qt/src/cr3widget.cpp b/cr3qt/src/cr3widget.cpp
index b1eac574fe..67f959fd3f 100644
--- a/cr3qt/src/cr3widget.cpp
+++ b/cr3qt/src/cr3widget.cpp
@@ -31,7 +31,9 @@
#include
#include
-#include "fc-lang-cat.h"
+#if USE_LOCALE_DATA==1
+#include "crlocaledata.h"
+#endif
/// to hide non-qt implementation, place all crengine-related fields here
class CR3View::DocViewData
@@ -1094,6 +1096,7 @@ bool CR3View::updateSelection( ldomXPointer p )
void CR3View::checkFontLanguageCompatibility()
{
+#if USE_LOCALE_DATA==1
lString32 fontFace;
lString32 fileName;
_data->_props->getString(PROP_FONT_FACE, fontFace);
@@ -1106,106 +1109,39 @@ void CR3View::checkFontLanguageCompatibility()
return;
}
if (fontFace_u8.length() > 0) {
- lString8 fcLang = findCompatibleFcLangCode(langCode_u8);
- if (!fcLang.empty()) {
- bool res = fontMan->checkFontLangCompat(fontFace_u8, fcLang);
- CRLog::debug("Checking font \"%s\" for compatibility with language \"%s\": %d", fontFace_u8.c_str(), langCode_u8.c_str(), res);
- if (!res)
- {
- QMessageBox::warning(this, tr("Warning"),
- tr("Font \"%1\" isn't compatible with language \"%2\". Instead will be used fallback font.").arg(fontFace_u8.c_str()).arg(langCode_u8.c_str()),
- QMessageBox::Ok);
+ CRLocaleData loc(langCode_u8);
+ if (loc.isValid()) {
+ QString langDescr = loc.langName().c_str();
+ if (loc.scriptNumeric() > 0) {
+ langDescr.append("-");
+ langDescr.append(loc.scriptName().c_str());
}
- } else {
- CRLog::warn("Can't find compatible language code in embedded FontConfig catalog: language=\"%s\", filename=\"%s\"", langCode_u8.c_str(), LCSTR(fileName));
- }
- }
-}
-
-lString8 CR3View::findCompatibleFcLangCode(lString8 language)
-{
- lString8 langCode;
-
- lString8 lang_part;
- lString8 country_part;
- lString8 testLang;
-
- language = language.lowercase();
-
- // Split language and country codes
- int pos = language.pos('-');
- if (-1 == pos)
- pos = language.pos('_');
- if (pos > 0) {
- lang_part = language.substr(0, pos);
- if (pos < language.length() - 1)
- country_part = language.substr(pos + 1);
- else
- country_part = "";
- } else {
- lang_part = language;
- country_part = "";
- }
- lang_part = lang_part.lowercase();
- country_part = country_part.lowercase();
-
- if (country_part.length() > 0)
- testLang = lang_part + "_" + country_part;
- else
- testLang = lang_part;
- // 1. Check if testLang is already language code accepted by FontConfig languages symbols database
- if (haveFcLangCode(testLang))
- langCode = testLang;
- else {
- // TODO: convert three letter language code to two-letter language code
- // TODO: convert three letter country code to two-letter country code
- // TODO: test with two letter codes
- // See android/src: org.coolreader.crengine.Engine.findCompatibleFcLangCode()
- if (langCode.empty()) {
- // 2. test lang_part
- testLang = lang_part;
- if (haveFcLangCode(testLang))
- langCode = testLang;
- }
- }
- if (langCode.empty()) {
- QString match_lang;
- // 3. Try to find by full language name
- QList allLocales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry);
- QList::const_iterator it;
- for (it = allLocales.begin(); it != allLocales.end(); ++it) {
- const QLocale& loc = *it;
- QString full_lang = QLocale::languageToString(loc.language()).toLower();
- if (language.compare(full_lang.toLatin1().data()) == 0) {
- match_lang = loc.name();
- pos = match_lang.indexOf('_');
- if (pos > 0)
- match_lang = match_lang.mid(0, pos);
+ if (loc.regionNumeric() > 0) {
+ langDescr.append(" (");
+ langDescr.append(loc.regionAlpha3().c_str());
+ langDescr.append(")");
}
- }
- if (!match_lang.isEmpty()) {
- testLang = lString8(match_lang.toLatin1().data());
- if (haveFcLangCode(testLang))
- langCode = testLang;
- }
- }
- return langCode;
-}
-
-bool CR3View::haveFcLangCode(lString8 langCode)
-{
- bool res = false;
- if (!langCode.empty()) {
- struct fc_lang_catalog* lang_ptr = fc_lang_cat;
- for (int i = 0; i < fc_lang_cat_sz; i++) {
- if (langCode.compare(lang_ptr->lang_code) == 0) {
- res = true;
- break;
+ font_lang_compat compat = fontMan->checkFontLangCompat(fontFace_u8, langCode_u8);
+ CRLog::debug("Checking font \"%s\" for compatibility with language \"%s\": %d", fontFace_u8.c_str(), langCode_u8.c_str(), (int)compat);
+ switch (compat) {
+ case font_lang_compat_invalid_tag:
+ CRLog::warn("Can't find compatible language code in embedded FontConfig catalog: language=\"%s\", filename=\"%s\"", langCode_u8.c_str(), LCSTR(fileName));
+ break;
+ case font_lang_compat_none:
+ case font_lang_compat_partial:
+ QMessageBox::warning(this, tr("Warning"),
+ tr("Font \"%1\" isn't compatible with language \"%2\". Instead will be used fallback font.").arg(fontFace_u8.c_str()).arg(langDescr),
+ QMessageBox::Ok);
+ break;
+ case font_lang_compat_full:
+ // good, do nothing
+ break;
}
- lang_ptr++;
+ } else {
+ CRLog::warn("Invalid language tag: \"%s\", filename=\"%s\"", langCode_u8.c_str(), LCSTR(fileName));
}
}
- return res;
+#endif
}
void CR3View::mousePressEvent ( QMouseEvent * event )
diff --git a/cr3qt/src/cr3widget.h b/cr3qt/src/cr3widget.h
index 1dc9ad5194..8f8a00a42d 100644
--- a/cr3qt/src/cr3widget.h
+++ b/cr3qt/src/cr3widget.h
@@ -169,24 +169,6 @@ class CR3View : public QWidget, public LVDocViewCallback
bool endSelection( ldomXPointer p );
bool updateSelection( ldomXPointer p );
void checkFontLanguageCompatibility();
- /**
- * Finds the corresponding language code in embedded FontConfig language orthography catalog.
- *
- * @param language language code in free form: ISO 639-1, ISO 639-2 or full name of the language in English. Also allowed concatenation of country code in ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3.
- * @return language code in the FontConfig language orthography catalog if it's found, null - otherwise.
- *
- * If a country code in any form is added to the language, but the record with the country code is not found - it is simply ignored and the search continues without a country code.
- */
- lString8 findCompatibleFcLangCode(lString8 language);
- /**
- * Test if in embedded FontConfig language orthography catalog have record with language code langCode.
- *
- * @param langCode language code
- * @return true if record with langCode found, false - otherwise.
- *
- * Language code compared as is without any modifications.
- */
- bool haveFcLangCode(lString8 langCode);
DocViewData * _data; // to hide non-qt implementation
LVDocView * _docview;
diff --git a/crengine/CMakeLists.txt b/crengine/CMakeLists.txt
index 98604cc05b..b5048bdff5 100644
--- a/crengine/CMakeLists.txt
+++ b/crengine/CMakeLists.txt
@@ -1,8 +1,6 @@
option(BUILD_TOOLS "Build tools" OFF)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/fc-lang)
-
SET (CRENGINE_SOURCES
src/cp_stats.cpp
src/lvstring.cpp
@@ -50,7 +48,8 @@ SET (CRENGINE_SOURCES
src/lvxml/lvhtmlparser.cpp
src/lvxml/fb2coverpageparsercallback.cpp
src/lvxml/lvxmlutils.cpp
- fc-lang/fc-lang-cat.c
+ src/locale_data/fc-lang-data.c
+ src/locale_data/crlocaledata.cpp
)
if ( NOT ${GUI} STREQUAL FB2PROPS )
diff --git a/crengine/fc-lang/fc-lang-cat.h b/crengine/fc-lang/fc-lang-cat.h
deleted file mode 100644
index 95a523f3cb..0000000000
--- a/crengine/fc-lang/fc-lang-cat.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2019 by Chernov A.A. *
- * valexlin@gmail.com *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- ***************************************************************************/
-
-#ifndef FCLANGCAT_H
-#define FCLANGCAT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct fc_lang_catalog
-{
- const char* lang_code;
- unsigned int char_set_sz;
- unsigned int* char_set;
-};
-
-extern struct fc_lang_catalog fc_lang_cat[];
-extern unsigned int fc_lang_cat_sz;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // FCLANGCAT_H
diff --git a/crengine/fc-lang/files/ab_orth.c b/crengine/fc-lang/files/ab_orth.c
deleted file mode 100644
index 4af4f9583e..0000000000
--- a/crengine/fc-lang/files/ab_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ab_lang_orth_chars[] = {
- 0x0401,
- 0x040f,
- 2, 0x0410, 0x044f, // range
- 0x0451,
- 0x045f,
- 2, 0x049e, 0x049f, // range
- 2, 0x04a6, 0x04a9, // range
- 2, 0x04ac, 0x04ad, // range
- 2, 0x04b2, 0x04b7, // range
- 2, 0x04bc, 0x04bf, // range
- 0x04d8,
- 0x04d9,
- 2, 0x04e0, 0x04e1, // range
-};
-#define AB_LANG_ORTH_SZ 27
diff --git a/crengine/fc-lang/files/am_orth.c b/crengine/fc-lang/files/am_orth.c
deleted file mode 100644
index b5aff1eefe..0000000000
--- a/crengine/fc-lang/files/am_orth.c
+++ /dev/null
@@ -1,45 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int am_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x1226, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1260, 0x1267, // range
- 2, 0x1270, 0x1277, // range
- 2, 0x1280, 0x1286, // range
- 0x1288,
- 2, 0x128a, 0x128d, // range
- 2, 0x1290, 0x1297, // range
- 2, 0x12a0, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12df, // range
- 2, 0x12e8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1308, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x1328, // range
- 2, 0x1330, 0x1346, // range
- 2, 0x1348, 0x1356, // range
- 2, 0x1238, 0x123f, // range
- 2, 0x1268, 0x126e, // range
- 2, 0x1278, 0x127f, // range
- 2, 0x1298, 0x129f, // range
- 0x12a8,
- 2, 0x12e0, 0x12e8, // range
- 2, 0x1300, 0x1307, // range
- 2, 0x1328, 0x132f, // range
-};
-#define AM_LANG_ORTH_SZ 98
diff --git a/crengine/fc-lang/files/as_orth.c b/crengine/fc-lang/files/as_orth.c
deleted file mode 100644
index f7c19980ea..0000000000
--- a/crengine/fc-lang/files/as_orth.c
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int as_lang_orth_chars[] = {
- 2, 0x0981, 0x0983, // range
- 2, 0x0985, 0x098c, // range
- 2, 0x098f, 0x0990, // range
- 2, 0x0993, 0x09a8, // range
- 2, 0x09aa, 0x09af, // range
- 0x09b2,
- 2, 0x09b6, 0x09b9, // range
- 0x09bc,
- 2, 0x09be, 0x09c4, // range
- 2, 0x09c7, 0x09c8, // range
- 2, 0x09cb, 0x09cd, // range
- 2, 0x09dc, 0x09dd, // range
- 0x09df,
- 2, 0x09f0, 0x09f1, // range
-};
-#define AS_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/ber_dz_orth.c b/crengine/fc-lang/files/ber_dz_orth.c
deleted file mode 100644
index 139b1c6d74..0000000000
--- a/crengine/fc-lang/files/ber_dz_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ber_dz_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x010c, 0x010d, // range
- 0x0190,
- 0x0194,
- 2, 0x01e6, 0x01e7, // range
- 0x025b,
- 0x0263,
- 2, 0x1e0c, 0x1e0d, // range
- 2, 0x1e24, 0x1e25, // range
- 2, 0x1e62, 0x1e63, // range
- 2, 0x1e6c, 0x1e6d, // range
- 2, 0x1e92, 0x1e93, // range
-};
-#define BER_DZ_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/ber_ma_orth.c b/crengine/fc-lang/files/ber_ma_orth.c
deleted file mode 100644
index f2e7be8bd6..0000000000
--- a/crengine/fc-lang/files/ber_ma_orth.c
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ber_ma_lang_orth_chars[] = {
- 2, 0x2d30, 0x2d31, // range
- 0x2d33,
- 0x2d37,
- 0x2d39,
- 2, 0x2d3b, 0x2d3d, // range
- 0x2d40,
- 2, 0x2d43, 0x2d45, // range
- 0x2d47,
- 2, 0x2d49, 0x2d4a, // range
- 2, 0x2d4d, 0x2d4f, // range
- 2, 0x2d53, 0x2d56, // range
- 2, 0x2d59, 0x2d5c, // range
- 0x2d5f,
- 2, 0x2d61, 0x2d63, // range
- 0x2d65,
- 0x2d6f,
-};
-#define BER_MA_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/bg_orth.c b/crengine/fc-lang/files/bg_orth.c
deleted file mode 100644
index 8ee824397f..0000000000
--- a/crengine/fc-lang/files/bg_orth.c
+++ /dev/null
@@ -1,15 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int bg_lang_orth_chars[] = {
- 2, 0x0410, 0x042a, // range
- 0x042c,
- 2, 0x042e, 0x042f, // range
- 2, 0x0430, 0x044a, // range
- 0x044c,
- 2, 0x044e, 0x044f, // range
-};
-#define BG_LANG_ORTH_SZ 14
diff --git a/crengine/fc-lang/files/bh_orth.c b/crengine/fc-lang/files/bh_orth.c
deleted file mode 100644
index f18d7bdaa4..0000000000
--- a/crengine/fc-lang/files/bh_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int bh_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define BH_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/bho_orth.c b/crengine/fc-lang/files/bho_orth.c
deleted file mode 100644
index a9b758bf70..0000000000
--- a/crengine/fc-lang/files/bho_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int bho_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define BHO_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/bn_orth.c b/crengine/fc-lang/files/bn_orth.c
deleted file mode 100644
index 3e3892c1fd..0000000000
--- a/crengine/fc-lang/files/bn_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int bn_lang_orth_chars[] = {
- 2, 0x0981, 0x0983, // range
- 2, 0x0985, 0x098c, // range
- 2, 0x098f, 0x0990, // range
- 2, 0x0993, 0x09a8, // range
- 2, 0x09aa, 0x09b0, // range
- 0x09b2,
- 2, 0x09b6, 0x09b9, // range
- 0x09bc,
- 2, 0x09be, 0x09c4, // range
- 2, 0x09c7, 0x09c8, // range
- 2, 0x09cb, 0x09cd, // range
- 2, 0x09dc, 0x09dd, // range
- 0x09df,
-};
-#define BN_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/bo_orth.c b/crengine/fc-lang/files/bo_orth.c
deleted file mode 100644
index 87a87deb82..0000000000
--- a/crengine/fc-lang/files/bo_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int bo_lang_orth_chars[] = {
- 2, 0x0f40, 0x0f47, // range
- 2, 0x0f49, 0x0f69, // range
- 2, 0x0f71, 0x0f76, // range
- 0x0f78,
- 2, 0x0f7a, 0x0f7d, // range
- 2, 0x0f80, 0x0f81, // range
- 2, 0x0f90, 0x0f97, // range
- 2, 0x0f99, 0x0fb9, // range
-};
-#define BO_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/brx_orth.c b/crengine/fc-lang/files/brx_orth.c
deleted file mode 100644
index b0be32aae9..0000000000
--- a/crengine/fc-lang/files/brx_orth.c
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int brx_lang_orth_chars[] = {
- 2, 0x0901, 0x0903, // range
- 2, 0x0905, 0x090c, // range
- 2, 0x090f, 0x0910, // range
- 2, 0x0913, 0x0914, // range
- 2, 0x0915, 0x0928, // range
- 2, 0x092a, 0x0930, // range
- 2, 0x0932, 0x0932, // range
- 2, 0x0935, 0x0939, // range
- 2, 0x093c, 0x0944, // range
- 2, 0x0947, 0x0948, // range
- 2, 0x094b, 0x094d, // range
- 2, 0x0950, 0x0952, // range
- 2, 0x0960, 0x0963, // range
- 2, 0x0964, 0x0965, // range
- 2, 0x0966, 0x096f, // range
- 0x0970,
-};
-#define BRX_LANG_ORTH_SZ 46
diff --git a/crengine/fc-lang/files/byn_orth.c b/crengine/fc-lang/files/byn_orth.c
deleted file mode 100644
index 74516c1168..0000000000
--- a/crengine/fc-lang/files/byn_orth.c
+++ /dev/null
@@ -1,37 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int byn_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1250, 0x1256, // range
- 0x1258,
- 2, 0x125a, 0x125d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 0x12c0,
- 2, 0x12c2, 0x12c5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
-};
-#define BYN_LANG_ORTH_SZ 74
diff --git a/crengine/fc-lang/files/csb_orth.c b/crengine/fc-lang/files/csb_orth.c
deleted file mode 100644
index b814b4df4f..0000000000
--- a/crengine/fc-lang/files/csb_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int csb_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c3,
- 0x00c9,
- 0x00cb,
- 2, 0x00d2, 0x00d4, // range
- 0x00d9,
- 0x00e3,
- 0x00e9,
- 0x00eb,
- 2, 0x00f2, 0x00f4, // range
- 0x00f9,
- 2, 0x0104, 0x0105, // range
- 2, 0x0141, 0x0144, // range
- 2, 0x017b, 0x017c, // range
-};
-#define CSB_LANG_ORTH_SZ 29
diff --git a/crengine/fc-lang/files/cu_orth.c b/crengine/fc-lang/files/cu_orth.c
deleted file mode 100644
index e8655f25a7..0000000000
--- a/crengine/fc-lang/files/cu_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int cu_lang_orth_chars[] = {
- 2, 0x0401, 0x0402, // range
- 2, 0x0405, 0x0406, // range
- 0x0408,
- 0x040b,
- 0x040d,
- 2, 0x040f, 0x0418, // range
- 2, 0x041a, 0x042c, // range
- 2, 0x042e, 0x044c, // range
- 2, 0x044e, 0x0450, // range
- 0x0452,
- 2, 0x0455, 0x0456, // range
- 0x0458,
- 0x045b,
- 0x045d,
- 2, 0x045f, 0x0479, // range
-};
-#define CU_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/doi_orth.c b/crengine/fc-lang/files/doi_orth.c
deleted file mode 100644
index cdf28ce207..0000000000
--- a/crengine/fc-lang/files/doi_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int doi_lang_orth_chars[] = {
- 2, 0x0902, 0x0903, // range
- 2, 0x0905, 0x090c, // range
- 2, 0x090f, 0x0910, // range
- 2, 0x0913, 0x0928, // range
- 2, 0x092a, 0x0930, // range
- 0x0932,
- 2, 0x0935, 0x0939, // range
- 2, 0x093c, 0x0944, // range
- 2, 0x0947, 0x0948, // range
- 2, 0x094b, 0x094d, // range
- 2, 0x0950, 0x0952, // range
- 2, 0x095b, 0x096f, // range
-};
-#define DOI_LANG_ORTH_SZ 34
diff --git a/crengine/fc-lang/files/dv_orth.c b/crengine/fc-lang/files/dv_orth.c
deleted file mode 100644
index d47a3b1ba5..0000000000
--- a/crengine/fc-lang/files/dv_orth.c
+++ /dev/null
@@ -1,12 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int dv_lang_orth_chars[] = {
- 2, 0x0780, 0x0797, // range
- 2, 0x0798, 0x07a5, // range
- 2, 0x07a6, 0x07b0, // range
-};
-#define DV_LANG_ORTH_SZ 9
diff --git a/crengine/fc-lang/files/dz_orth.c b/crengine/fc-lang/files/dz_orth.c
deleted file mode 100644
index a9cd378054..0000000000
--- a/crengine/fc-lang/files/dz_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int dz_lang_orth_chars[] = {
- 2, 0x0f40, 0x0f47, // range
- 2, 0x0f49, 0x0f69, // range
- 2, 0x0f71, 0x0f76, // range
- 0x0f78,
- 2, 0x0f7a, 0x0f7d, // range
- 2, 0x0f80, 0x0f81, // range
- 2, 0x0f90, 0x0f97, // range
- 2, 0x0f99, 0x0fb9, // range
-};
-#define DZ_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/ee_orth.c b/crengine/fc-lang/files/ee_orth.c
deleted file mode 100644
index baa44cbceb..0000000000
--- a/crengine/fc-lang/files/ee_orth.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ee_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c0, 0x00c1, // range
- 2, 0x00c8, 0x00c9, // range
- 2, 0x00cc, 0x00cd, // range
- 2, 0x00d2, 0x00d3, // range
- 2, 0x00d9, 0x00da, // range
- 2, 0x00e0, 0x00e1, // range
- 2, 0x00e8, 0x00e9, // range
- 2, 0x00ec, 0x00ed, // range
- 2, 0x00f2, 0x00f3, // range
- 2, 0x00f9, 0x00fa, // range
- 2, 0x011a, 0x011b, // range
- 2, 0x014a, 0x014b, // range
- 0x0186,
- 0x0189,
- 2, 0x0190, 0x0192, // range
- 0x0194,
- 0x01b2,
- 2, 0x01cd, 0x01d4, // range
- 0x0254,
- 0x0256,
- 0x025b,
- 0x0263,
- 0x028b,
- 2, 0x0300, 0x0301, // range
- 0x030c,
-};
-#define EE_LANG_ORTH_SZ 61
diff --git a/crengine/fc-lang/files/eo_orth.c b/crengine/fc-lang/files/eo_orth.c
deleted file mode 100644
index aee78ab382..0000000000
--- a/crengine/fc-lang/files/eo_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int eo_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0108, 0x0109, // range
- 2, 0x011c, 0x011d, // range
- 2, 0x0124, 0x0125, // range
- 2, 0x0134, 0x0135, // range
- 2, 0x015c, 0x015d, // range
- 2, 0x016c, 0x016d, // range
-};
-#define EO_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/fa_orth.c b/crengine/fc-lang/files/fa_orth.c
deleted file mode 100644
index 56abcb9263..0000000000
--- a/crengine/fc-lang/files/fa_orth.c
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int fa_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
- 0x0629,
- 2, 0x062a, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
- 0x064b,
- 0x0654,
- 0x067e,
- 0x0686,
- 0x0698,
- 0x06a9,
- 0x06af,
- 0x06cc,
-};
-#define FA_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/fc-lang-cat.c b/crengine/fc-lang/files/fc-lang-cat.c
deleted file mode 100644
index 16d5b25cd5..0000000000
--- a/crengine/fc-lang/files/fc-lang-cat.c
+++ /dev/null
@@ -1,251 +0,0 @@
-
-#define FC_LANG_CAT_SZ 246
-struct fc_lang_catalog* fc_lang_cat = {
- "aa", AA_LANG_ORTH_SZ, aa_lang_orth_chars,
- "ab", AB_LANG_ORTH_SZ, ab_lang_orth_chars,
- "af", AF_LANG_ORTH_SZ, af_lang_orth_chars,
- "ak", AK_LANG_ORTH_SZ, ak_lang_orth_chars,
- "am", AM_LANG_ORTH_SZ, am_lang_orth_chars,
- "an", AN_LANG_ORTH_SZ, an_lang_orth_chars,
- "ar", AR_LANG_ORTH_SZ, ar_lang_orth_chars,
- "as", AS_LANG_ORTH_SZ, as_lang_orth_chars,
- "ast", AST_LANG_ORTH_SZ, ast_lang_orth_chars,
- "av", AV_LANG_ORTH_SZ, av_lang_orth_chars,
- "ay", AY_LANG_ORTH_SZ, ay_lang_orth_chars,
- "az_az", AZ_AZ_LANG_ORTH_SZ, az_az_lang_orth_chars,
- "az_ir", AZ_IR_LANG_ORTH_SZ, az_ir_lang_orth_chars,
- "ba", BA_LANG_ORTH_SZ, ba_lang_orth_chars,
- "be", BE_LANG_ORTH_SZ, be_lang_orth_chars,
- "ber_dz", BER_DZ_LANG_ORTH_SZ, ber_dz_lang_orth_chars,
- "ber_ma", BER_MA_LANG_ORTH_SZ, ber_ma_lang_orth_chars,
- "bg", BG_LANG_ORTH_SZ, bg_lang_orth_chars,
- "bho", BHO_LANG_ORTH_SZ, bho_lang_orth_chars,
- "bh", BH_LANG_ORTH_SZ, bh_lang_orth_chars,
- "bin", BIN_LANG_ORTH_SZ, bin_lang_orth_chars,
- "bi", BI_LANG_ORTH_SZ, bi_lang_orth_chars,
- "bm", BM_LANG_ORTH_SZ, bm_lang_orth_chars,
- "bn", BN_LANG_ORTH_SZ, bn_lang_orth_chars,
- "bo", BO_LANG_ORTH_SZ, bo_lang_orth_chars,
- "br", BR_LANG_ORTH_SZ, br_lang_orth_chars,
- "brx", BRX_LANG_ORTH_SZ, brx_lang_orth_chars,
- "bs", BS_LANG_ORTH_SZ, bs_lang_orth_chars,
- "bua", BUA_LANG_ORTH_SZ, bua_lang_orth_chars,
- "byn", BYN_LANG_ORTH_SZ, byn_lang_orth_chars,
- "ca", CA_LANG_ORTH_SZ, ca_lang_orth_chars,
- "ce", CE_LANG_ORTH_SZ, ce_lang_orth_chars,
- "chm", CHM_LANG_ORTH_SZ, chm_lang_orth_chars,
- "ch", CH_LANG_ORTH_SZ, ch_lang_orth_chars,
- "chr", CHR_LANG_ORTH_SZ, chr_lang_orth_chars,
- "co", CO_LANG_ORTH_SZ, co_lang_orth_chars,
- "crh", CRH_LANG_ORTH_SZ, crh_lang_orth_chars,
- "csb", CSB_LANG_ORTH_SZ, csb_lang_orth_chars,
- "cs", CS_LANG_ORTH_SZ, cs_lang_orth_chars,
- "cu", CU_LANG_ORTH_SZ, cu_lang_orth_chars,
- "cv", CV_LANG_ORTH_SZ, cv_lang_orth_chars,
- "cy", CY_LANG_ORTH_SZ, cy_lang_orth_chars,
- "da", DA_LANG_ORTH_SZ, da_lang_orth_chars,
- "de", DE_LANG_ORTH_SZ, de_lang_orth_chars,
- "doi", DOI_LANG_ORTH_SZ, doi_lang_orth_chars,
- "dv", DV_LANG_ORTH_SZ, dv_lang_orth_chars,
- "dz", DZ_LANG_ORTH_SZ, dz_lang_orth_chars,
- "ee", EE_LANG_ORTH_SZ, ee_lang_orth_chars,
- "el", EL_LANG_ORTH_SZ, el_lang_orth_chars,
- "en", EN_LANG_ORTH_SZ, en_lang_orth_chars,
- "eo", EO_LANG_ORTH_SZ, eo_lang_orth_chars,
- "es", ES_LANG_ORTH_SZ, es_lang_orth_chars,
- "et", ET_LANG_ORTH_SZ, et_lang_orth_chars,
- "eu", EU_LANG_ORTH_SZ, eu_lang_orth_chars,
- "fa", FA_LANG_ORTH_SZ, fa_lang_orth_chars,
- "fat", FAT_LANG_ORTH_SZ, fat_lang_orth_chars,
- "ff", FF_LANG_ORTH_SZ, ff_lang_orth_chars,
- "fil", FIL_LANG_ORTH_SZ, fil_lang_orth_chars,
- "fi", FI_LANG_ORTH_SZ, fi_lang_orth_chars,
- "fj", FJ_LANG_ORTH_SZ, fj_lang_orth_chars,
- "fo", FO_LANG_ORTH_SZ, fo_lang_orth_chars,
- "fr", FR_LANG_ORTH_SZ, fr_lang_orth_chars,
- "fur", FUR_LANG_ORTH_SZ, fur_lang_orth_chars,
- "fy", FY_LANG_ORTH_SZ, fy_lang_orth_chars,
- "ga", GA_LANG_ORTH_SZ, ga_lang_orth_chars,
- "gd", GD_LANG_ORTH_SZ, gd_lang_orth_chars,
- "gez", GEZ_LANG_ORTH_SZ, gez_lang_orth_chars,
- "gl", GL_LANG_ORTH_SZ, gl_lang_orth_chars,
- "gn", GN_LANG_ORTH_SZ, gn_lang_orth_chars,
- "gu", GU_LANG_ORTH_SZ, gu_lang_orth_chars,
- "gv", GV_LANG_ORTH_SZ, gv_lang_orth_chars,
- "ha", HA_LANG_ORTH_SZ, ha_lang_orth_chars,
- "haw", HAW_LANG_ORTH_SZ, haw_lang_orth_chars,
- "he", HE_LANG_ORTH_SZ, he_lang_orth_chars,
- "hi", HI_LANG_ORTH_SZ, hi_lang_orth_chars,
- "hne", HNE_LANG_ORTH_SZ, hne_lang_orth_chars,
- "ho", HO_LANG_ORTH_SZ, ho_lang_orth_chars,
- "hr", HR_LANG_ORTH_SZ, hr_lang_orth_chars,
- "hsb", HSB_LANG_ORTH_SZ, hsb_lang_orth_chars,
- "ht", HT_LANG_ORTH_SZ, ht_lang_orth_chars,
- "hu", HU_LANG_ORTH_SZ, hu_lang_orth_chars,
- "hy", HY_LANG_ORTH_SZ, hy_lang_orth_chars,
- "hz", HZ_LANG_ORTH_SZ, hz_lang_orth_chars,
- "ia", IA_LANG_ORTH_SZ, ia_lang_orth_chars,
- "id", ID_LANG_ORTH_SZ, id_lang_orth_chars,
- "ie", IE_LANG_ORTH_SZ, ie_lang_orth_chars,
- "ig", IG_LANG_ORTH_SZ, ig_lang_orth_chars,
- "ii", II_LANG_ORTH_SZ, ii_lang_orth_chars,
- "ik", IK_LANG_ORTH_SZ, ik_lang_orth_chars,
- "io", IO_LANG_ORTH_SZ, io_lang_orth_chars,
- "is", IS_LANG_ORTH_SZ, is_lang_orth_chars,
- "it", IT_LANG_ORTH_SZ, it_lang_orth_chars,
- "iu", IU_LANG_ORTH_SZ, iu_lang_orth_chars,
- "ja", JA_LANG_ORTH_SZ, ja_lang_orth_chars,
- "jv", JV_LANG_ORTH_SZ, jv_lang_orth_chars,
- "kaa", KAA_LANG_ORTH_SZ, kaa_lang_orth_chars,
- "kab", KAB_LANG_ORTH_SZ, kab_lang_orth_chars,
- "ka", KA_LANG_ORTH_SZ, ka_lang_orth_chars,
- "ki", KI_LANG_ORTH_SZ, ki_lang_orth_chars,
- "kj", KJ_LANG_ORTH_SZ, kj_lang_orth_chars,
- "kk", KK_LANG_ORTH_SZ, kk_lang_orth_chars,
- "kl", KL_LANG_ORTH_SZ, kl_lang_orth_chars,
- "km", KM_LANG_ORTH_SZ, km_lang_orth_chars,
- "kn", KN_LANG_ORTH_SZ, kn_lang_orth_chars,
- "kok", KOK_LANG_ORTH_SZ, kok_lang_orth_chars,
- "ko", KO_LANG_ORTH_SZ, ko_lang_orth_chars,
- "kr", KR_LANG_ORTH_SZ, kr_lang_orth_chars,
- "ks", KS_LANG_ORTH_SZ, ks_lang_orth_chars,
- "ku_am", KU_AM_LANG_ORTH_SZ, ku_am_lang_orth_chars,
- "ku_iq", KU_IQ_LANG_ORTH_SZ, ku_iq_lang_orth_chars,
- "ku_ir", KU_IR_LANG_ORTH_SZ, ku_ir_lang_orth_chars,
- "kum", KUM_LANG_ORTH_SZ, kum_lang_orth_chars,
- "ku_tr", KU_TR_LANG_ORTH_SZ, ku_tr_lang_orth_chars,
- "kv", KV_LANG_ORTH_SZ, kv_lang_orth_chars,
- "kwm", KWM_LANG_ORTH_SZ, kwm_lang_orth_chars,
- "kw", KW_LANG_ORTH_SZ, kw_lang_orth_chars,
- "ky", KY_LANG_ORTH_SZ, ky_lang_orth_chars,
- "lah", LAH_LANG_ORTH_SZ, lah_lang_orth_chars,
- "la", LA_LANG_ORTH_SZ, la_lang_orth_chars,
- "lb", LB_LANG_ORTH_SZ, lb_lang_orth_chars,
- "lez", LEZ_LANG_ORTH_SZ, lez_lang_orth_chars,
- "lg", LG_LANG_ORTH_SZ, lg_lang_orth_chars,
- "li", LI_LANG_ORTH_SZ, li_lang_orth_chars,
- "ln", LN_LANG_ORTH_SZ, ln_lang_orth_chars,
- "lo", LO_LANG_ORTH_SZ, lo_lang_orth_chars,
- "lt", LT_LANG_ORTH_SZ, lt_lang_orth_chars,
- "lv", LV_LANG_ORTH_SZ, lv_lang_orth_chars,
- "mai", MAI_LANG_ORTH_SZ, mai_lang_orth_chars,
- "mg", MG_LANG_ORTH_SZ, mg_lang_orth_chars,
- "mh", MH_LANG_ORTH_SZ, mh_lang_orth_chars,
- "mi", MI_LANG_ORTH_SZ, mi_lang_orth_chars,
- "mk", MK_LANG_ORTH_SZ, mk_lang_orth_chars,
- "ml", ML_LANG_ORTH_SZ, ml_lang_orth_chars,
- "mn_cn", MN_CN_LANG_ORTH_SZ, mn_cn_lang_orth_chars,
- "mni", MNI_LANG_ORTH_SZ, mni_lang_orth_chars,
- "mn_mn", MN_MN_LANG_ORTH_SZ, mn_mn_lang_orth_chars,
- "mo", MO_LANG_ORTH_SZ, mo_lang_orth_chars,
- "mr", MR_LANG_ORTH_SZ, mr_lang_orth_chars,
- "ms", MS_LANG_ORTH_SZ, ms_lang_orth_chars,
- "mt", MT_LANG_ORTH_SZ, mt_lang_orth_chars,
- "my", MY_LANG_ORTH_SZ, my_lang_orth_chars,
- "na", NA_LANG_ORTH_SZ, na_lang_orth_chars,
- "nb", NB_LANG_ORTH_SZ, nb_lang_orth_chars,
- "nds", NDS_LANG_ORTH_SZ, nds_lang_orth_chars,
- "ne", NE_LANG_ORTH_SZ, ne_lang_orth_chars,
- "ng", NG_LANG_ORTH_SZ, ng_lang_orth_chars,
- "nl", NL_LANG_ORTH_SZ, nl_lang_orth_chars,
- "nn", NN_LANG_ORTH_SZ, nn_lang_orth_chars,
- "no", NO_LANG_ORTH_SZ, no_lang_orth_chars,
- "nqo", NQO_LANG_ORTH_SZ, nqo_lang_orth_chars,
- "nr", NR_LANG_ORTH_SZ, nr_lang_orth_chars,
- "nso", NSO_LANG_ORTH_SZ, nso_lang_orth_chars,
- "nv", NV_LANG_ORTH_SZ, nv_lang_orth_chars,
- "ny", NY_LANG_ORTH_SZ, ny_lang_orth_chars,
- "oc", OC_LANG_ORTH_SZ, oc_lang_orth_chars,
- "om", OM_LANG_ORTH_SZ, om_lang_orth_chars,
- "or", OR_LANG_ORTH_SZ, or_lang_orth_chars,
- "os", OS_LANG_ORTH_SZ, os_lang_orth_chars,
- "ota", OTA_LANG_ORTH_SZ, ota_lang_orth_chars,
- "pa", PA_LANG_ORTH_SZ, pa_lang_orth_chars,
- "pap_an", PAP_AN_LANG_ORTH_SZ, pap_an_lang_orth_chars,
- "pap_aw", PAP_AW_LANG_ORTH_SZ, pap_aw_lang_orth_chars,
- "pa_pk", PA_PK_LANG_ORTH_SZ, pa_pk_lang_orth_chars,
- "pl", PL_LANG_ORTH_SZ, pl_lang_orth_chars,
- "ps_af", PS_AF_LANG_ORTH_SZ, ps_af_lang_orth_chars,
- "ps_pk", PS_PK_LANG_ORTH_SZ, ps_pk_lang_orth_chars,
- "pt", PT_LANG_ORTH_SZ, pt_lang_orth_chars,
- "qu", QU_LANG_ORTH_SZ, qu_lang_orth_chars,
- "quz", QUZ_LANG_ORTH_SZ, quz_lang_orth_chars,
- "rm", RM_LANG_ORTH_SZ, rm_lang_orth_chars,
- "rn", RN_LANG_ORTH_SZ, rn_lang_orth_chars,
- "ro", RO_LANG_ORTH_SZ, ro_lang_orth_chars,
- "ru", RU_LANG_ORTH_SZ, ru_lang_orth_chars,
- "rw", RW_LANG_ORTH_SZ, rw_lang_orth_chars,
- "sah", SAH_LANG_ORTH_SZ, sah_lang_orth_chars,
- "sa", SA_LANG_ORTH_SZ, sa_lang_orth_chars,
- "sat", SAT_LANG_ORTH_SZ, sat_lang_orth_chars,
- "sco", SCO_LANG_ORTH_SZ, sco_lang_orth_chars,
- "sc", SC_LANG_ORTH_SZ, sc_lang_orth_chars,
- "sd", SD_LANG_ORTH_SZ, sd_lang_orth_chars,
- "sel", SEL_LANG_ORTH_SZ, sel_lang_orth_chars,
- "se", SE_LANG_ORTH_SZ, se_lang_orth_chars,
- "sg", SG_LANG_ORTH_SZ, sg_lang_orth_chars,
- "sh", SH_LANG_ORTH_SZ, sh_lang_orth_chars,
- "shs", SHS_LANG_ORTH_SZ, shs_lang_orth_chars,
- "sid", SID_LANG_ORTH_SZ, sid_lang_orth_chars,
- "si", SI_LANG_ORTH_SZ, si_lang_orth_chars,
- "sk", SK_LANG_ORTH_SZ, sk_lang_orth_chars,
- "sl", SL_LANG_ORTH_SZ, sl_lang_orth_chars,
- "sma", SMA_LANG_ORTH_SZ, sma_lang_orth_chars,
- "smj", SMJ_LANG_ORTH_SZ, smj_lang_orth_chars,
- "smn", SMN_LANG_ORTH_SZ, smn_lang_orth_chars,
- "sm", SM_LANG_ORTH_SZ, sm_lang_orth_chars,
- "sms", SMS_LANG_ORTH_SZ, sms_lang_orth_chars,
- "sn", SN_LANG_ORTH_SZ, sn_lang_orth_chars,
- "so", SO_LANG_ORTH_SZ, so_lang_orth_chars,
- "sq", SQ_LANG_ORTH_SZ, sq_lang_orth_chars,
- "sr", SR_LANG_ORTH_SZ, sr_lang_orth_chars,
- "ss", SS_LANG_ORTH_SZ, ss_lang_orth_chars,
- "st", ST_LANG_ORTH_SZ, st_lang_orth_chars,
- "su", SU_LANG_ORTH_SZ, su_lang_orth_chars,
- "sv", SV_LANG_ORTH_SZ, sv_lang_orth_chars,
- "sw", SW_LANG_ORTH_SZ, sw_lang_orth_chars,
- "syr", SYR_LANG_ORTH_SZ, syr_lang_orth_chars,
- "ta", TA_LANG_ORTH_SZ, ta_lang_orth_chars,
- "te", TE_LANG_ORTH_SZ, te_lang_orth_chars,
- "tg", TG_LANG_ORTH_SZ, tg_lang_orth_chars,
- "th", TH_LANG_ORTH_SZ, th_lang_orth_chars,
- "ti_er", TI_ER_LANG_ORTH_SZ, ti_er_lang_orth_chars,
- "ti_et", TI_ET_LANG_ORTH_SZ, ti_et_lang_orth_chars,
- "tig", TIG_LANG_ORTH_SZ, tig_lang_orth_chars,
- "tk", TK_LANG_ORTH_SZ, tk_lang_orth_chars,
- "tl", TL_LANG_ORTH_SZ, tl_lang_orth_chars,
- "tn", TN_LANG_ORTH_SZ, tn_lang_orth_chars,
- "to", TO_LANG_ORTH_SZ, to_lang_orth_chars,
- "tr", TR_LANG_ORTH_SZ, tr_lang_orth_chars,
- "ts", TS_LANG_ORTH_SZ, ts_lang_orth_chars,
- "tt", TT_LANG_ORTH_SZ, tt_lang_orth_chars,
- "tw", TW_LANG_ORTH_SZ, tw_lang_orth_chars,
- "ty", TY_LANG_ORTH_SZ, ty_lang_orth_chars,
- "tyv", TYV_LANG_ORTH_SZ, tyv_lang_orth_chars,
- "ug", UG_LANG_ORTH_SZ, ug_lang_orth_chars,
- "uk", UK_LANG_ORTH_SZ, uk_lang_orth_chars,
- "und_zmth", UND_ZMTH_LANG_ORTH_SZ, und_zmth_lang_orth_chars,
- "und_zsye", UND_ZSYE_LANG_ORTH_SZ, und_zsye_lang_orth_chars,
- "ur", UR_LANG_ORTH_SZ, ur_lang_orth_chars,
- "uz", UZ_LANG_ORTH_SZ, uz_lang_orth_chars,
- "ve", VE_LANG_ORTH_SZ, ve_lang_orth_chars,
- "vi", VI_LANG_ORTH_SZ, vi_lang_orth_chars,
- "vo", VO_LANG_ORTH_SZ, vo_lang_orth_chars,
- "vot", VOT_LANG_ORTH_SZ, vot_lang_orth_chars,
- "wal", WAL_LANG_ORTH_SZ, wal_lang_orth_chars,
- "wa", WA_LANG_ORTH_SZ, wa_lang_orth_chars,
- "wen", WEN_LANG_ORTH_SZ, wen_lang_orth_chars,
- "wo", WO_LANG_ORTH_SZ, wo_lang_orth_chars,
- "xh", XH_LANG_ORTH_SZ, xh_lang_orth_chars,
- "yap", YAP_LANG_ORTH_SZ, yap_lang_orth_chars,
- "yi", YI_LANG_ORTH_SZ, yi_lang_orth_chars,
- "yo", YO_LANG_ORTH_SZ, yo_lang_orth_chars,
- "za", ZA_LANG_ORTH_SZ, za_lang_orth_chars,
- "zh_cn", ZH_CN_LANG_ORTH_SZ, zh_cn_lang_orth_chars,
- "zh_hk", ZH_HK_LANG_ORTH_SZ, zh_hk_lang_orth_chars,
- "zh_mo", ZH_MO_LANG_ORTH_SZ, zh_mo_lang_orth_chars,
- "zh_sg", ZH_SG_LANG_ORTH_SZ, zh_sg_lang_orth_chars,
- "zh_tw", ZH_TW_LANG_ORTH_SZ, zh_tw_lang_orth_chars,
- "zu", ZU_LANG_ORTH_SZ, zu_lang_orth_chars,
-};
-unsigned int fc_lang_cat_sz = 246;
diff --git a/crengine/fc-lang/files/fil_orth.c b/crengine/fc-lang/files/fil_orth.c
deleted file mode 100644
index db8b6ae68b..0000000000
--- a/crengine/fc-lang/files/fil_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int fil_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c0, 0x00c2, // range
- 2, 0x00c8, 0x00ca, // range
- 2, 0x00cc, 0x00ce, // range
- 2, 0x00d1, 0x00d4, // range
- 2, 0x00d9, 0x00db, // range
- 2, 0x00e0, 0x00e2, // range
- 2, 0x00e8, 0x00ea, // range
- 2, 0x00ec, 0x00ee, // range
- 2, 0x00f1, 0x00f4, // range
- 2, 0x00f9, 0x00fb, // range
-};
-#define FIL_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/gez_orth.c b/crengine/fc-lang/files/gez_orth.c
deleted file mode 100644
index 8b2c9f699e..0000000000
--- a/crengine/fc-lang/files/gez_orth.c
+++ /dev/null
@@ -1,37 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int gez_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x1226, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1260, 0x1267, // range
- 2, 0x1270, 0x1277, // range
- 2, 0x1280, 0x1286, // range
- 0x1288,
- 2, 0x128a, 0x128d, // range
- 2, 0x1290, 0x1297, // range
- 2, 0x12a0, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12df, // range
- 2, 0x12e8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1308, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x1328, // range
- 2, 0x1330, 0x1346, // range
- 2, 0x1348, 0x1356, // range
-};
-#define GEZ_LANG_ORTH_SZ 76
diff --git a/crengine/fc-lang/files/gu_orth.c b/crengine/fc-lang/files/gu_orth.c
deleted file mode 100644
index ad4207cdb4..0000000000
--- a/crengine/fc-lang/files/gu_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int gu_lang_orth_chars[] = {
- 2, 0x0a81, 0x0a83, // range
- 2, 0x0a85, 0x0a8b, // range
- 0x0a8d,
- 2, 0x0a8f, 0x0a91, // range
- 2, 0x0a93, 0x0aa8, // range
- 2, 0x0aaa, 0x0ab0, // range
- 2, 0x0ab2, 0x0ab3, // range
- 2, 0x0ab5, 0x0ab9, // range
- 2, 0x0abc, 0x0ac5, // range
- 2, 0x0ac7, 0x0ac9, // range
- 2, 0x0acb, 0x0acd, // range
- 0x0ad0,
- 0x0ae0,
-};
-#define GU_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/haw_orth.c b/crengine/fc-lang/files/haw_orth.c
deleted file mode 100644
index b5d51f4c01..0000000000
--- a/crengine/fc-lang/files/haw_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int haw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0100, 0x0101, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x012a, 0x012b, // range
- 2, 0x014c, 0x014d, // range
- 2, 0x016a, 0x016b, // range
- 0x02bb,
-};
-#define HAW_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/hi_orth.c b/crengine/fc-lang/files/hi_orth.c
deleted file mode 100644
index 3016802f03..0000000000
--- a/crengine/fc-lang/files/hi_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int hi_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define HI_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/hne_orth.c b/crengine/fc-lang/files/hne_orth.c
deleted file mode 100644
index f4bace12be..0000000000
--- a/crengine/fc-lang/files/hne_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int hne_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define HNE_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/hr_orth.c b/crengine/fc-lang/files/hr_orth.c
deleted file mode 100644
index 475163d214..0000000000
--- a/crengine/fc-lang/files/hr_orth.c
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int hr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0106, 0x0107, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x0110, 0x0111, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x017d, 0x017e, // range
-};
-#define HR_LANG_ORTH_SZ 21
diff --git a/crengine/fc-lang/files/hsb_orth.c b/crengine/fc-lang/files/hsb_orth.c
deleted file mode 100644
index c5728b72c6..0000000000
--- a/crengine/fc-lang/files/hsb_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int hsb_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00d3,
- 0x00f3,
- 2, 0x0106, 0x0107, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x011a, 0x011b, // range
- 2, 0x0141, 0x0144, // range
- 2, 0x0158, 0x0159, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x0179, 0x017a, // range
- 2, 0x017d, 0x017e, // range
-};
-#define HSB_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/hz_orth.c b/crengine/fc-lang/files/hz_orth.c
deleted file mode 100644
index fd6425db2f..0000000000
--- a/crengine/fc-lang/files/hz_orth.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int hz_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x032f,
- 2, 0x1e12, 0x1e13, // range
- 2, 0x1e4a, 0x1e4b, // range
-};
-#define HZ_LANG_ORTH_SZ 13
diff --git a/crengine/fc-lang/files/ie_orth.c b/crengine/fc-lang/files/ie_orth.c
deleted file mode 100644
index 04ccaf0ee5..0000000000
--- a/crengine/fc-lang/files/ie_orth.c
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ie_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
-};
-#define IE_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/it_orth.c b/crengine/fc-lang/files/it_orth.c
deleted file mode 100644
index c55d5a4888..0000000000
--- a/crengine/fc-lang/files/it_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int it_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c0,
- 2, 0x00c8, 0x00c9, // range
- 0x00cc,
- 0x00cd,
- 0x00cf,
- 2, 0x00d2, 0x00d3, // range
- 0x00d9,
- 0x00da,
- 0x00e0,
- 2, 0x00e8, 0x00e9, // range
- 0x00ec,
- 0x00ed,
- 0x00ef,
- 2, 0x00f2, 0x00f3, // range
- 0x00f9,
- 0x00fa,
-};
-#define IT_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/iu_orth.c b/crengine/fc-lang/files/iu_orth.c
deleted file mode 100644
index dc89030527..0000000000
--- a/crengine/fc-lang/files/iu_orth.c
+++ /dev/null
@@ -1,57 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int iu_lang_orth_chars[] = {
- 2, 0x1401, 0x1406, // range
- 2, 0x140a, 0x140b, // range
- 2, 0x142f, 0x1434, // range
- 2, 0x1438, 0x1439, // range
- 0x1449,
- 2, 0x144c, 0x1451, // range
- 2, 0x1455, 0x1456, // range
- 0x1466,
- 2, 0x146b, 0x1470, // range
- 2, 0x1472, 0x1473, // range
- 0x1483,
- 2, 0x1489, 0x148e, // range
- 2, 0x1490, 0x1491, // range
- 0x14a1,
- 2, 0x14a3, 0x14a8, // range
- 2, 0x14aa, 0x14ab, // range
- 0x14bb,
- 2, 0x14c0, 0x14c5, // range
- 2, 0x14c7, 0x14c8, // range
- 0x14d0,
- 2, 0x14d3, 0x14d8, // range
- 2, 0x14da, 0x14db, // range
- 0x14ea,
- 2, 0x14ed, 0x14f2, // range
- 2, 0x14f4, 0x14f5, // range
- 0x14fa,
- 0x14fc,
- 0x14fe,
- 0x1500,
- 0x1502,
- 0x1505,
- 2, 0x1526, 0x152b, // range
- 2, 0x152d, 0x152e, // range
- 0x153e,
- 0x1542,
- 2, 0x1545, 0x1549, // range
- 2, 0x154b, 0x154c, // range
- 0x1550,
- 2, 0x1553, 0x155a, // range
- 0x155d,
- 2, 0x1575, 0x1577, // range
- 2, 0x1579, 0x157c, // range
- 2, 0x157e, 0x1585, // range
- 2, 0x158b, 0x1596, // range
- 2, 0x15a0, 0x15a6, // range
- 2, 0x15a8, 0x15ae, // range
- 0x166f,
- 2, 0x1670, 0x1676, // range
-};
-#define IU_LANG_ORTH_SZ 108
diff --git a/crengine/fc-lang/files/jv_orth.c b/crengine/fc-lang/files/jv_orth.c
deleted file mode 100644
index d8f45c0958..0000000000
--- a/crengine/fc-lang/files/jv_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int jv_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c8, 0x00c9, // range
- 2, 0x00e8, 0x00e9, // range
-};
-#define JV_LANG_ORTH_SZ 12
diff --git a/crengine/fc-lang/files/kab_orth.c b/crengine/fc-lang/files/kab_orth.c
deleted file mode 100644
index 912546b26d..0000000000
--- a/crengine/fc-lang/files/kab_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int kab_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x010c, 0x010d, // range
- 0x0190,
- 0x0194,
- 2, 0x01e6, 0x01e7, // range
- 0x025b,
- 0x0263,
- 2, 0x1e0c, 0x1e0d, // range
- 2, 0x1e24, 0x1e25, // range
- 2, 0x1e62, 0x1e63, // range
- 2, 0x1e6c, 0x1e6d, // range
- 2, 0x1e92, 0x1e93, // range
-};
-#define KAB_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/kk_orth.c b/crengine/fc-lang/files/kk_orth.c
deleted file mode 100644
index 224249fc26..0000000000
--- a/crengine/fc-lang/files/kk_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int kk_lang_orth_chars[] = {
- 2, 0x0410, 0x044f, // range
- 0x0456,
- 2, 0x0492, 0x0493, // range
- 2, 0x049a, 0x049b, // range
- 2, 0x04a2, 0x04a3, // range
- 2, 0x04ba, 0x04bb, // range
- 2, 0x04d8, 0x04d9, // range
- 2, 0x04e8, 0x04e9, // range
-};
-#define KK_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/km_orth.c b/crengine/fc-lang/files/km_orth.c
deleted file mode 100644
index 50ba9b0e09..0000000000
--- a/crengine/fc-lang/files/km_orth.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int km_lang_orth_chars[] = {
- 2, 0x1780, 0x179c, // range
- 2, 0x179f, 0x17a2, // range
- 2, 0x17a5, 0x17a7, // range
- 2, 0x17a9, 0x17b3, // range
- 2, 0x17b6, 0x17c5, // range
-};
-#define KM_LANG_ORTH_SZ 15
diff --git a/crengine/fc-lang/files/kn_orth.c b/crengine/fc-lang/files/kn_orth.c
deleted file mode 100644
index f83e1b8865..0000000000
--- a/crengine/fc-lang/files/kn_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int kn_lang_orth_chars[] = {
- 2, 0x0c82, 0x0c83, // range
- 2, 0x0c85, 0x0c8c, // range
- 2, 0x0c8e, 0x0c90, // range
- 2, 0x0c92, 0x0ca8, // range
- 2, 0x0caa, 0x0cb3, // range
- 2, 0x0cb5, 0x0cb9, // range
- 2, 0x0cbe, 0x0cc4, // range
- 2, 0x0cc6, 0x0cc8, // range
- 2, 0x0cca, 0x0ccd, // range
- 2, 0x0cd5, 0x0cd6, // range
- 0x0cde,
- 2, 0x0ce0, 0x0ce1, // range
-};
-#define KN_LANG_ORTH_SZ 34
diff --git a/crengine/fc-lang/files/kok_orth.c b/crengine/fc-lang/files/kok_orth.c
deleted file mode 100644
index ee38cf2677..0000000000
--- a/crengine/fc-lang/files/kok_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int kok_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define KOK_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/ku_iq_orth.c b/crengine/fc-lang/files/ku_iq_orth.c
deleted file mode 100644
index cedf542b72..0000000000
--- a/crengine/fc-lang/files/ku_iq_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ku_iq_lang_orth_chars[] = {
- 2, 0x0626, 0x0628, // range
- 0x062a,
- 2, 0x062c, 0x062f, // range
- 2, 0x0631, 0x0634, // range
- 2, 0x0639, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
- 0x067e,
- 0x0686,
- 0x0692,
- 0x0698,
- 0x06a4,
- 0x06a9,
- 0x06af,
- 0x06b5,
- 0x06c6,
- 0x06cc,
- 0x06ce,
-};
-#define KU_IQ_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/ku_ir_orth.c b/crengine/fc-lang/files/ku_ir_orth.c
deleted file mode 100644
index 0a1ca52628..0000000000
--- a/crengine/fc-lang/files/ku_ir_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ku_ir_lang_orth_chars[] = {
- 2, 0x0626, 0x0628, // range
- 0x062a,
- 2, 0x062c, 0x062f, // range
- 2, 0x0631, 0x0634, // range
- 2, 0x0639, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
- 0x067e,
- 0x0686,
- 0x0692,
- 0x0698,
- 0x06a4,
- 0x06a9,
- 0x06af,
- 0x06b5,
- 0x06c6,
- 0x06cc,
- 0x06ce,
-};
-#define KU_IR_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/kw_orth.c b/crengine/fc-lang/files/kw_orth.c
deleted file mode 100644
index e25fd7245d..0000000000
--- a/crengine/fc-lang/files/kw_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int kw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0100, 0x0101, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x012a, 0x012b, // range
- 2, 0x014c, 0x014d, // range
- 2, 0x016a, 0x016b, // range
- 2, 0x0232, 0x0233, // range
-};
-#define KW_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/la_orth.c b/crengine/fc-lang/files/la_orth.c
deleted file mode 100644
index 7addb48465..0000000000
--- a/crengine/fc-lang/files/la_orth.c
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int la_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0100, 0x0101, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x012a, 0x012d, // range
- 2, 0x014c, 0x014f, // range
- 2, 0x016a, 0x016d, // range
-};
-#define LA_LANG_ORTH_SZ 21
diff --git a/crengine/fc-lang/files/lg_orth.c b/crengine/fc-lang/files/lg_orth.c
deleted file mode 100644
index 38dba52856..0000000000
--- a/crengine/fc-lang/files/lg_orth.c
+++ /dev/null
@@ -1,12 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int lg_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x014a, 0x014b, // range
-};
-#define LG_LANG_ORTH_SZ 9
diff --git a/crengine/fc-lang/files/ln_orth.c b/crengine/fc-lang/files/ln_orth.c
deleted file mode 100644
index cca201c068..0000000000
--- a/crengine/fc-lang/files/ln_orth.c
+++ /dev/null
@@ -1,28 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ln_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c1, 0x00c2, // range
- 2, 0x00c9, 0x00ca, // range
- 2, 0x00cd, 0x00ce, // range
- 2, 0x00d3, 0x00d4, // range
- 2, 0x00da, 0x00db, // range
- 2, 0x00e1, 0x00e2, // range
- 2, 0x00e9, 0x00ea, // range
- 2, 0x00ed, 0x00ee, // range
- 2, 0x00f3, 0x00f4, // range
- 2, 0x00fa, 0x00fb, // range
- 2, 0x011a, 0x011b, // range
- 0x0186,
- 0x0190,
- 0x0254,
- 0x025b,
- 2, 0x0301, 0x0302, // range
- 0x030c,
-};
-#define LN_LANG_ORTH_SZ 47
diff --git a/crengine/fc-lang/files/lo_orth.c b/crengine/fc-lang/files/lo_orth.c
deleted file mode 100644
index b84fd194ad..0000000000
--- a/crengine/fc-lang/files/lo_orth.c
+++ /dev/null
@@ -1,26 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int lo_lang_orth_chars[] = {
- 2, 0x0e81, 0x0e82, // range
- 0x0e84,
- 2, 0x0e87, 0x0e88, // range
- 0x0e8a,
- 0x0e8d,
- 2, 0x0e94, 0x0e97, // range
- 2, 0x0e99, 0x0e9f, // range
- 2, 0x0ea1, 0x0ea3, // range
- 0x0ea5,
- 0x0ea7,
- 2, 0x0eaa, 0x0eab, // range
- 2, 0x0ead, 0x0eb9, // range
- 2, 0x0ebb, 0x0ebd, // range
- 2, 0x0ec0, 0x0ec4, // range
- 0x0ec6,
- 2, 0x0ec8, 0x0ecd, // range
- 2, 0x0edc, 0x0edd, // range
-};
-#define LO_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/lt_orth.c b/crengine/fc-lang/files/lt_orth.c
deleted file mode 100644
index f668eb1a1f..0000000000
--- a/crengine/fc-lang/files/lt_orth.c
+++ /dev/null
@@ -1,20 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int lt_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0104, 0x0105, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x0116, 0x0117, // range
- 2, 0x0118, 0x0119, // range
- 2, 0x012e, 0x012f, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x016a, 0x016b, // range
- 2, 0x0172, 0x0173, // range
- 2, 0x017d, 0x017e, // range
-};
-#define LT_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/lv_orth.c b/crengine/fc-lang/files/lv_orth.c
deleted file mode 100644
index 5dc8f4acdf..0000000000
--- a/crengine/fc-lang/files/lv_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int lv_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0100, 0x0101, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x0122, 0x0123, // range
- 2, 0x012a, 0x012b, // range
- 2, 0x0136, 0x0137, // range
- 2, 0x013b, 0x013c, // range
- 2, 0x0145, 0x0146, // range
- 2, 0x014c, 0x014d, // range
- 2, 0x0156, 0x0157, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x016a, 0x016b, // range
- 2, 0x017d, 0x017e, // range
-};
-#define LV_LANG_ORTH_SZ 45
diff --git a/crengine/fc-lang/files/mai_orth.c b/crengine/fc-lang/files/mai_orth.c
deleted file mode 100644
index 92fa523778..0000000000
--- a/crengine/fc-lang/files/mai_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mai_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define MAI_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/mi_orth.c b/crengine/fc-lang/files/mi_orth.c
deleted file mode 100644
index 91b01ec048..0000000000
--- a/crengine/fc-lang/files/mi_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mi_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0100, 0x0101, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x012a, 0x012b, // range
- 2, 0x014c, 0x014d, // range
- 2, 0x016a, 0x016b, // range
- 2, 0x1e34, 0x1e35, // range
-};
-#define MI_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/ml_orth.c b/crengine/fc-lang/files/ml_orth.c
deleted file mode 100644
index 7ea6d804ed..0000000000
--- a/crengine/fc-lang/files/ml_orth.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ml_lang_orth_chars[] = {
- 2, 0x0d02, 0x0d03, // range
- 2, 0x0d05, 0x0d0c, // range
- 2, 0x0d0e, 0x0d10, // range
- 2, 0x0d12, 0x0d28, // range
- 2, 0x0d2a, 0x0d39, // range
- 2, 0x0d3e, 0x0d43, // range
- 2, 0x0d46, 0x0d48, // range
- 2, 0x0d4a, 0x0d4d, // range
- 0x0d57,
- 2, 0x0d60, 0x0d61, // range
-};
-#define ML_LANG_ORTH_SZ 28
diff --git a/crengine/fc-lang/files/mn_cn_orth.c b/crengine/fc-lang/files/mn_cn_orth.c
deleted file mode 100644
index 069ef60ddc..0000000000
--- a/crengine/fc-lang/files/mn_cn_orth.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mn_cn_lang_orth_chars[] = {
- 2, 0x1820, 0x1842, // range
- 2, 0x1843, 0x185c, // range
- 2, 0x185d, 0x1872, // range
- 2, 0x1873, 0x1877, // range
- 2, 0x1880, 0x18a9, // range
-};
-#define MN_CN_LANG_ORTH_SZ 15
diff --git a/crengine/fc-lang/files/mni_orth.c b/crengine/fc-lang/files/mni_orth.c
deleted file mode 100644
index 999ac5f531..0000000000
--- a/crengine/fc-lang/files/mni_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mni_lang_orth_chars[] = {
- 2, 0x0981, 0x0983, // range
- 2, 0x0985, 0x098c, // range
- 2, 0x098f, 0x0990, // range
- 2, 0x0993, 0x09a8, // range
- 2, 0x09aa, 0x09b0, // range
- 0x09b2,
- 2, 0x09b6, 0x09b9, // range
- 0x09bc,
- 2, 0x09be, 0x09c4, // range
- 2, 0x09c7, 0x09c8, // range
- 2, 0x09cb, 0x09cd, // range
- 2, 0x09dc, 0x09dd, // range
- 0x09df,
- 0x0964,
- 0x09bd,
- 0x09ce,
- 2, 0x09e6, 0x09ef, // range
- 0x09f1,
-};
-#define MNI_LANG_ORTH_SZ 40
diff --git a/crengine/fc-lang/files/mo_orth.c b/crengine/fc-lang/files/mo_orth.c
deleted file mode 100644
index 72a66baa93..0000000000
--- a/crengine/fc-lang/files/mo_orth.c
+++ /dev/null
@@ -1,20 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mo_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c2,
- 0x00ce,
- 0x00e2,
- 0x00ee,
- 2, 0x0102, 0x0103, // range
- 2, 0x0218, 0x021b, // range
- 0x0401,
- 2, 0x0410, 0x044f, // range
- 0x0451,
-};
-#define MO_LANG_ORTH_SZ 21
diff --git a/crengine/fc-lang/files/mr_orth.c b/crengine/fc-lang/files/mr_orth.c
deleted file mode 100644
index 270dc880a2..0000000000
--- a/crengine/fc-lang/files/mr_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mr_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define MR_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/mt_orth.c b/crengine/fc-lang/files/mt_orth.c
deleted file mode 100644
index 47ad9d6969..0000000000
--- a/crengine/fc-lang/files/mt_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int mt_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c0,
- 0x00c8,
- 0x00cc,
- 0x00ce,
- 0x00d2,
- 0x00d9,
- 0x00e0,
- 0x00e8,
- 0x00ec,
- 0x00ee,
- 0x00f2,
- 0x00f9,
- 2, 0x010a, 0x010b, // range
- 2, 0x0120, 0x0121, // range
- 2, 0x0126, 0x0127, // range
- 2, 0x017b, 0x017c, // range
-};
-#define MT_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/my_orth.c b/crengine/fc-lang/files/my_orth.c
deleted file mode 100644
index ff6d1712bd..0000000000
--- a/crengine/fc-lang/files/my_orth.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int my_lang_orth_chars[] = {
- 2, 0x1000, 0x1020, // range
- 0x1021,
- 2, 0x1023, 0x1027, // range
- 2, 0x1029, 0x102a, // range
- 2, 0x102c, 0x1032, // range
-};
-#define MY_LANG_ORTH_SZ 13
diff --git a/crengine/fc-lang/files/ne_orth.c b/crengine/fc-lang/files/ne_orth.c
deleted file mode 100644
index bebf2caf27..0000000000
--- a/crengine/fc-lang/files/ne_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ne_lang_orth_chars[] = {
- 2, 0x0901, 0x0903, // range
- 2, 0x0905, 0x090b, // range
- 2, 0x090f, 0x0910, // range
- 2, 0x0913, 0x0914, // range
- 2, 0x0915, 0x0928, // range
- 2, 0x092a, 0x0930, // range
- 0x0932,
- 2, 0x0935, 0x0939, // range
- 2, 0x093e, 0x0943, // range
- 2, 0x0947, 0x0948, // range
- 2, 0x094b, 0x094d, // range
- 0x0950,
- 2, 0x0964, 0x0965, // range
- 2, 0x0966, 0x096f, // range
- 0x0970,
-};
-#define NE_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/nn_orth.c b/crengine/fc-lang/files/nn_orth.c
deleted file mode 100644
index 54a6685aaf..0000000000
--- a/crengine/fc-lang/files/nn_orth.c
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int nn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c0,
- 2, 0x00c4, 0x00c6, // range
- 2, 0x00c9, 0x00ca, // range
- 2, 0x00d2, 0x00d4, // range
- 0x00d6,
- 0x00d8,
- 0x00dc,
- 0x00e0,
- 2, 0x00e4, 0x00e6, // range
- 2, 0x00e9, 0x00ea, // range
- 2, 0x00f2, 0x00f4, // range
- 0x00f6,
- 0x00f8,
- 0x00fc,
-};
-#define NN_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/nv_orth.c b/crengine/fc-lang/files/nv_orth.c
deleted file mode 100644
index 63db79f8bb..0000000000
--- a/crengine/fc-lang/files/nv_orth.c
+++ /dev/null
@@ -1,26 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int nv_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c1,
- 0x00c9,
- 0x00cd,
- 0x00d3,
- 0x00e1,
- 0x00e9,
- 0x00ed,
- 0x00f3,
- 2, 0x0104, 0x0105, // range
- 2, 0x0118, 0x0119, // range
- 2, 0x012e, 0x012f, // range
- 2, 0x0141, 0x0142, // range
- 2, 0x01ea, 0x01eb, // range
- 0x02bc,
- 0x0301,
-};
-#define NV_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/ny_orth.c b/crengine/fc-lang/files/ny_orth.c
deleted file mode 100644
index 0b0463ec94..0000000000
--- a/crengine/fc-lang/files/ny_orth.c
+++ /dev/null
@@ -1,12 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ny_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0174, 0x0175, // range
-};
-#define NY_LANG_ORTH_SZ 9
diff --git a/crengine/fc-lang/files/or_orth.c b/crengine/fc-lang/files/or_orth.c
deleted file mode 100644
index a8a0c748aa..0000000000
--- a/crengine/fc-lang/files/or_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int or_lang_orth_chars[] = {
- 2, 0x0b01, 0x0b03, // range
- 2, 0x0b05, 0x0b0c, // range
- 2, 0x0b0f, 0x0b10, // range
- 2, 0x0b13, 0x0b28, // range
- 2, 0x0b2a, 0x0b30, // range
- 2, 0x0b32, 0x0b33, // range
- 2, 0x0b36, 0x0b39, // range
- 2, 0x0b3c, 0x0b43, // range
- 2, 0x0b47, 0x0b48, // range
- 2, 0x0b4b, 0x0b4d, // range
- 2, 0x0b56, 0x0b57, // range
- 2, 0x0b5c, 0x0b5d, // range
- 2, 0x0b5f, 0x0b61, // range
-};
-#define OR_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/pa_orth.c b/crengine/fc-lang/files/pa_orth.c
deleted file mode 100644
index f7e2403cd3..0000000000
--- a/crengine/fc-lang/files/pa_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int pa_lang_orth_chars[] = {
- 2, 0x0a05, 0x0a0a, // range
- 2, 0x0a0f, 0x0a10, // range
- 2, 0x0a13, 0x0a14, // range
- 2, 0x0a15, 0x0a28, // range
- 2, 0x0a2a, 0x0a30, // range
- 2, 0x0a32, 0x0a33, // range
- 2, 0x0a35, 0x0a36, // range
- 2, 0x0a38, 0x0a39, // range
- 0x0a3c,
- 2, 0x0a3e, 0x0a42, // range
- 2, 0x0a47, 0x0a48, // range
- 2, 0x0a4b, 0x0a4c, // range
- 0x0a4d,
- 2, 0x0a59, 0x0a5c, // range
- 2, 0x0a70, 0x0a74, // range
-};
-#define PA_LANG_ORTH_SZ 41
diff --git a/crengine/fc-lang/files/pap_an_orth.c b/crengine/fc-lang/files/pap_an_orth.c
deleted file mode 100644
index 7bc6fd922f..0000000000
--- a/crengine/fc-lang/files/pap_an_orth.c
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int pap_an_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c1,
- 2, 0x00c8, 0x00c9, // range
- 0x00cd,
- 2, 0x00d1, 0x00d3, // range
- 2, 0x00d9, 0x00da, // range
- 0x00dc,
- 0x00e1,
- 2, 0x00e8, 0x00e9, // range
- 0x00ed,
- 2, 0x00f1, 0x00f3, // range
- 2, 0x00f9, 0x00fa, // range
- 0x00fc,
-};
-#define PAP_AN_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/pl_orth.c b/crengine/fc-lang/files/pl_orth.c
deleted file mode 100644
index bc30b848d5..0000000000
--- a/crengine/fc-lang/files/pl_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int pl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00d3,
- 0x00f3,
- 2, 0x0104, 0x0105, // range
- 2, 0x0106, 0x0107, // range
- 2, 0x0118, 0x0119, // range
- 2, 0x0141, 0x0142, // range
- 2, 0x0143, 0x0144, // range
- 2, 0x015a, 0x015b, // range
- 2, 0x0179, 0x017a, // range
- 2, 0x017b, 0x017c, // range
-};
-#define PL_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/ro_orth.c b/crengine/fc-lang/files/ro_orth.c
deleted file mode 100644
index 2ba914a3ba..0000000000
--- a/crengine/fc-lang/files/ro_orth.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ro_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c2,
- 0x00ce,
- 0x00e2,
- 0x00ee,
- 2, 0x0102, 0x0103, // range
- 2, 0x0218, 0x021b, // range
-};
-#define RO_LANG_ORTH_SZ 16
diff --git a/crengine/fc-lang/files/sa_orth.c b/crengine/fc-lang/files/sa_orth.c
deleted file mode 100644
index e6e7adf427..0000000000
--- a/crengine/fc-lang/files/sa_orth.c
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sa_lang_orth_chars[] = {
- 2, 0x0905, 0x0914, // range
- 2, 0x0915, 0x0939, // range
- 2, 0x093f, 0x094c, // range
- 0x094d,
-};
-#define SA_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/sat_orth.c b/crengine/fc-lang/files/sat_orth.c
deleted file mode 100644
index 3fcec0fef4..0000000000
--- a/crengine/fc-lang/files/sat_orth.c
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sat_lang_orth_chars[] = {
- 2, 0x0901, 0x0903, // range
- 2, 0x0905, 0x090a, // range
- 2, 0x090f, 0x0910, // range
- 2, 0x0913, 0x0914, // range
- 2, 0x0915, 0x0928, // range
- 2, 0x092a, 0x0930, // range
- 2, 0x0932, 0x0932, // range
- 0x0935,
- 2, 0x0938, 0x0939, // range
- 2, 0x093c, 0x0942, // range
- 2, 0x0947, 0x0948, // range
- 2, 0x094b, 0x094d, // range
- 0x0950,
- 2, 0x0964, 0x0965, // range
- 2, 0x0966, 0x096f, // range
- 0x0970,
-};
-#define SAT_LANG_ORTH_SZ 42
diff --git a/crengine/fc-lang/files/sd_orth.c b/crengine/fc-lang/files/sd_orth.c
deleted file mode 100644
index 80024c62d7..0000000000
--- a/crengine/fc-lang/files/sd_orth.c
+++ /dev/null
@@ -1,31 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sd_lang_orth_chars[] = {
- 2, 0x0621, 0x0622, // range
- 0x0624,
- 2, 0x0626, 0x0628, // range
- 2, 0x062a, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
- 0x064a,
- 2, 0x067a, 0x067b, // range
- 2, 0x067d, 0x0680, // range
- 2, 0x0683, 0x0684, // range
- 2, 0x0686, 0x0687, // range
- 0x068a,
- 2, 0x068c, 0x068d, // range
- 0x068f,
- 0x0699,
- 0x06a6,
- 2, 0x06a9, 0x06aa, // range
- 0x06af,
- 0x06b1,
- 0x06b3,
- 0x06bb,
- 0x06be,
-};
-#define SD_LANG_ORTH_SZ 44
diff --git a/crengine/fc-lang/files/se_orth.c b/crengine/fc-lang/files/se_orth.c
deleted file mode 100644
index 3829f75d30..0000000000
--- a/crengine/fc-lang/files/se_orth.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int se_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c1,
- 0x00e1,
- 2, 0x010c, 0x010d, // range
- 2, 0x0110, 0x0111, // range
- 2, 0x014a, 0x014b, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x0166, 0x0167, // range
- 2, 0x017d, 0x017e, // range
-};
-#define SE_LANG_ORTH_SZ 26
diff --git a/crengine/fc-lang/files/sg_orth.c b/crengine/fc-lang/files/sg_orth.c
deleted file mode 100644
index 6d77c9fd3f..0000000000
--- a/crengine/fc-lang/files/sg_orth.c
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sg_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c2,
- 0x00c4,
- 2, 0x00ca, 0x00cb, // range
- 2, 0x00ce, 0x00cf, // range
- 0x00d4,
- 0x00d6,
- 2, 0x00db, 0x00dc, // range
- 0x00e2,
- 0x00e4,
- 2, 0x00ea, 0x00eb, // range
- 2, 0x00ee, 0x00ef, // range
- 0x00f4,
- 0x00f6,
- 2, 0x00fb, 0x00fc, // range
-};
-#define SG_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/sh_orth.c b/crengine/fc-lang/files/sh_orth.c
deleted file mode 100644
index c0f4060f9f..0000000000
--- a/crengine/fc-lang/files/sh_orth.c
+++ /dev/null
@@ -1,45 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sh_lang_orth_chars[] = {
- 2, 0x0410, 0x044f, // range
- 0x0492,
- 0x0493,
- 0x0498,
- 0x0499,
- 0x04a0,
- 0x04a1,
- 0x04a2,
- 0x04a3,
- 0x04aa,
- 0x04ab,
- 0x04ae,
- 0x04af,
- 0x04ba,
- 0x04bb,
- 0x04d8,
- 0x04d9,
- 0x04e8,
- 0x04e9,
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0106, 0x0107, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x0110, 0x0111, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x017d, 0x017e, // range
- 0x0402,
- 2, 0x0408, 0x040b, // range
- 0x040f,
- 2, 0x0410, 0x0418, // range
- 2, 0x041a, 0x0428, // range
- 2, 0x0430, 0x0438, // range
- 2, 0x043a, 0x0448, // range
- 0x0452,
- 2, 0x0458, 0x045b, // range
- 0x045f,
-};
-#define SH_LANG_ORTH_SZ 64
diff --git a/crengine/fc-lang/files/shs_orth.c b/crengine/fc-lang/files/shs_orth.c
deleted file mode 100644
index 84371c0250..0000000000
--- a/crengine/fc-lang/files/shs_orth.c
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int shs_lang_orth_chars[] = {
- 0x0037,
- 0x0041,
- 0x0043,
- 0x0045,
- 2, 0x0047, 0x0049, // range
- 2, 0x004b, 0x0055, // range
- 2, 0x0057, 0x0059, // range
- 0x0061,
- 0x0063,
- 0x0065,
- 2, 0x0067, 0x0069, // range
- 2, 0x006b, 0x0075, // range
- 2, 0x0077, 0x0079, // range
- 0x00c1,
- 0x00c9,
- 0x00cd,
- 0x00e1,
- 0x00e9,
- 0x00ed,
- 0x0313,
-};
-#define SHS_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/si_orth.c b/crengine/fc-lang/files/si_orth.c
deleted file mode 100644
index 8d7e9f93c2..0000000000
--- a/crengine/fc-lang/files/si_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int si_lang_orth_chars[] = {
- 2, 0x0d82, 0x0d83, // range
- 2, 0x0d85, 0x0d8d, // range
- 2, 0x0d91, 0x0d96, // range
- 2, 0x0d9a, 0x0da5, // range
- 2, 0x0da7, 0x0db1, // range
- 2, 0x0db3, 0x0dbb, // range
- 0x0dbd,
- 2, 0x0dc0, 0x0dc6, // range
- 0x0dca,
- 2, 0x0dcf, 0x0dd4, // range
- 0x0dd6,
- 2, 0x0dd8, 0x0dde, // range
- 0x0df2,
-};
-#define SI_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/sid_orth.c b/crengine/fc-lang/files/sid_orth.c
deleted file mode 100644
index aae26d943c..0000000000
--- a/crengine/fc-lang/files/sid_orth.c
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sid_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1250, 0x1256, // range
- 0x1258,
- 2, 0x125a, 0x125d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 0x12c0,
- 2, 0x12c2, 0x12c5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
- 2, 0x1220, 0x1226, // range
- 2, 0x1280, 0x1286, // range
- 0x1288,
- 2, 0x128a, 0x128d, // range
- 2, 0x1340, 0x1346, // range
-};
-#define SID_LANG_ORTH_SZ 87
diff --git a/crengine/fc-lang/files/sk_orth.c b/crengine/fc-lang/files/sk_orth.c
deleted file mode 100644
index d9dc7b03a2..0000000000
--- a/crengine/fc-lang/files/sk_orth.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sk_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c1,
- 0x00c4,
- 0x00c9,
- 0x00cd,
- 0x00d3,
- 0x00d4,
- 0x00da,
- 0x00dd,
- 0x00e1,
- 0x00e4,
- 0x00e9,
- 0x00ed,
- 0x00f3,
- 0x00f4,
- 0x00fa,
- 0x00fd,
- 2, 0x010c, 0x010d, // range
- 2, 0x010e, 0x010f, // range
- 2, 0x0139, 0x013a, // range
- 2, 0x013d, 0x013e, // range
- 2, 0x0147, 0x0148, // range
- 2, 0x0154, 0x0155, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x0164, 0x0165, // range
- 2, 0x017d, 0x017e, // range
-};
-#define SK_LANG_ORTH_SZ 49
diff --git a/crengine/fc-lang/files/smn_orth.c b/crengine/fc-lang/files/smn_orth.c
deleted file mode 100644
index 2d41bf0934..0000000000
--- a/crengine/fc-lang/files/smn_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int smn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c1,
- 0x00e1,
- 0x00c2,
- 0x00e2,
- 0x00c4,
- 0x00e4,
- 2, 0x010c, 0x010d, // range
- 2, 0x0110, 0x0111, // range
- 2, 0x014a, 0x014b, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x017d, 0x017e, // range
-};
-#define SMN_LANG_ORTH_SZ 27
diff --git a/crengine/fc-lang/files/sms_orth.c b/crengine/fc-lang/files/sms_orth.c
deleted file mode 100644
index c3c3440da1..0000000000
--- a/crengine/fc-lang/files/sms_orth.c
+++ /dev/null
@@ -1,30 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sms_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c2,
- 0x00e2,
- 0x00c4,
- 0x00e4,
- 0x00c5,
- 0x00e5,
- 2, 0x010c, 0x010d, // range
- 2, 0x0110, 0x0111, // range
- 0x01b7,
- 0x0292,
- 2, 0x01ee, 0x01ef, // range
- 2, 0x01e6, 0x01e7, // range
- 2, 0x01e4, 0x01e5, // range
- 2, 0x01e8, 0x01e9, // range
- 2, 0x014a, 0x014b, // range
- 0x00d5,
- 0x00f5,
- 2, 0x0160, 0x0161, // range
- 2, 0x017d, 0x017e, // range
-};
-#define SMS_LANG_ORTH_SZ 43
diff --git a/crengine/fc-lang/files/sr_orth.c b/crengine/fc-lang/files/sr_orth.c
deleted file mode 100644
index a15d72f939..0000000000
--- a/crengine/fc-lang/files/sr_orth.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int sr_lang_orth_chars[] = {
- 0x0402,
- 2, 0x0408, 0x040b, // range
- 0x040f,
- 2, 0x0410, 0x0418, // range
- 2, 0x041a, 0x0428, // range
- 2, 0x0430, 0x0438, // range
- 2, 0x043a, 0x0448, // range
- 0x0452,
- 2, 0x0458, 0x045b, // range
- 0x045f,
-};
-#define SR_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/ta_orth.c b/crengine/fc-lang/files/ta_orth.c
deleted file mode 100644
index 280b111d8b..0000000000
--- a/crengine/fc-lang/files/ta_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ta_lang_orth_chars[] = {
- 0x0b83,
- 2, 0x0b85, 0x0b8a, // range
- 2, 0x0b8e, 0x0b90, // range
- 2, 0x0b92, 0x0b95, // range
- 2, 0x0b99, 0x0b9a, // range
- 0x0b9c,
- 2, 0x0b9e, 0x0b9f, // range
- 2, 0x0ba3, 0x0ba4, // range
- 2, 0x0ba8, 0x0baa, // range
- 2, 0x0bae, 0x0bb5, // range
- 2, 0x0bb7, 0x0bb9, // range
- 2, 0x0bbe, 0x0bc2, // range
- 2, 0x0bc6, 0x0bc8, // range
- 2, 0x0bca, 0x0bcd, // range
- 0x0bd7,
-};
-#define TA_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/te_orth.c b/crengine/fc-lang/files/te_orth.c
deleted file mode 100644
index 5c2358bdc5..0000000000
--- a/crengine/fc-lang/files/te_orth.c
+++ /dev/null
@@ -1,20 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int te_lang_orth_chars[] = {
- 2, 0x0c01, 0x0c03, // range
- 2, 0x0c05, 0x0c0c, // range
- 2, 0x0c0e, 0x0c10, // range
- 2, 0x0c12, 0x0c28, // range
- 2, 0x0c2a, 0x0c33, // range
- 2, 0x0c35, 0x0c39, // range
- 2, 0x0c3e, 0x0c44, // range
- 2, 0x0c46, 0x0c48, // range
- 2, 0x0c4a, 0x0c4d, // range
- 2, 0x0c55, 0x0c56, // range
- 2, 0x0c60, 0x0c61, // range
-};
-#define TE_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/ti_er_orth.c b/crengine/fc-lang/files/ti_er_orth.c
deleted file mode 100644
index 12feff7bca..0000000000
--- a/crengine/fc-lang/files/ti_er_orth.c
+++ /dev/null
@@ -1,37 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ti_er_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1250, 0x1256, // range
- 0x1258,
- 2, 0x125a, 0x125d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 0x12c0,
- 2, 0x12c2, 0x12c5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
-};
-#define TI_ER_LANG_ORTH_SZ 74
diff --git a/crengine/fc-lang/files/ti_et_orth.c b/crengine/fc-lang/files/ti_et_orth.c
deleted file mode 100644
index 0586c22b21..0000000000
--- a/crengine/fc-lang/files/ti_et_orth.c
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ti_et_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1250, 0x1256, // range
- 0x1258,
- 2, 0x125a, 0x125d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 0x12c0,
- 2, 0x12c2, 0x12c5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
- 2, 0x1220, 0x1226, // range
- 2, 0x1280, 0x1286, // range
- 0x1288,
- 2, 0x128a, 0x128d, // range
- 2, 0x1340, 0x1346, // range
-};
-#define TI_ET_LANG_ORTH_SZ 87
diff --git a/crengine/fc-lang/files/tig_orth.c b/crengine/fc-lang/files/tig_orth.c
deleted file mode 100644
index 6c3585fd2a..0000000000
--- a/crengine/fc-lang/files/tig_orth.c
+++ /dev/null
@@ -1,33 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int tig_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x1297, // range
- 2, 0x12a0, 0x12a6, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12df, // range
- 2, 0x12e8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
-};
-#define TIG_LANG_ORTH_SZ 66
diff --git a/crengine/fc-lang/files/tk_orth.c b/crengine/fc-lang/files/tk_orth.c
deleted file mode 100644
index 738cbce03c..0000000000
--- a/crengine/fc-lang/files/tk_orth.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int tk_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c4,
- 0x00c7,
- 0x00d6,
- 2, 0x00dc, 0x00dd, // range
- 0x00e4,
- 0x00e7,
- 0x00f6,
- 2, 0x00fc, 0x00fd, // range
- 2, 0x0147, 0x0148, // range
- 2, 0x015e, 0x015f, // range
- 2, 0x017d, 0x017e, // range
-};
-#define TK_LANG_ORTH_SZ 27
diff --git a/crengine/fc-lang/files/tl_orth.c b/crengine/fc-lang/files/tl_orth.c
deleted file mode 100644
index a761cbebbf..0000000000
--- a/crengine/fc-lang/files/tl_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int tl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c0, 0x00c2, // range
- 2, 0x00c8, 0x00ca, // range
- 2, 0x00cc, 0x00ce, // range
- 2, 0x00d1, 0x00d4, // range
- 2, 0x00d9, 0x00db, // range
- 2, 0x00e0, 0x00e2, // range
- 2, 0x00e8, 0x00ea, // range
- 2, 0x00ec, 0x00ee, // range
- 2, 0x00f1, 0x00f4, // range
- 2, 0x00f9, 0x00fb, // range
-};
-#define TL_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/ty_orth.c b/crengine/fc-lang/files/ty_orth.c
deleted file mode 100644
index d7aa37017e..0000000000
--- a/crengine/fc-lang/files/ty_orth.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ty_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00cf,
- 0x00ef,
- 2, 0x0100, 0x0101, // range
- 2, 0x0112, 0x0113, // range
- 2, 0x012a, 0x012b, // range
- 2, 0x014c, 0x014d, // range
- 2, 0x016a, 0x016b, // range
- 0x02bc,
-};
-#define TY_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/ug_orth.c b/crengine/fc-lang/files/ug_orth.c
deleted file mode 100644
index 5506263b42..0000000000
--- a/crengine/fc-lang/files/ug_orth.c
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ug_lang_orth_chars[] = {
- 2, 0x0626, 0x0628, // range
- 0x062a,
- 0x062c,
- 2, 0x062e, 0x062f, // range
- 2, 0x0631, 0x0634, // range
- 0x063a,
- 2, 0x0641, 0x0646, // range
- 2, 0x0648, 0x064a, // range
- 0x067e,
- 0x0686,
- 0x0698,
- 0x06ad,
- 0x06af,
- 0x06be,
- 2, 0x06c6, 0x06c8, // range
- 0x06cb,
- 0x06d0,
- 0x06d5,
-};
-#define UG_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/und_zmth_orth.c b/crengine/fc-lang/files/und_zmth_orth.c
deleted file mode 100644
index f2467d503d..0000000000
--- a/crengine/fc-lang/files/und_zmth_orth.c
+++ /dev/null
@@ -1,124 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int und_zmth_lang_orth_chars[] = {
- 0x0020,
- 0x0021,
- 0x0021,
- 2, 0x0023, 0x0026, // range
- 0x0028,
- 0x0029,
- 0x002a,
- 0x002b,
- 0x002c,
- 0x002d,
- 0x002e,
- 0x002f,
- 2, 0x0030, 0x0039, // range
- 2, 0x003a, 0x003b, // range
- 2, 0x003c, 0x003e, // range
- 0x003f,
- 0x0040,
- 2, 0x0041, 0x005a, // range
- 0x005b,
- 0x005c,
- 0x005d,
- 0x005e,
- 2, 0x0061, 0x007a, // range
- 0x007b,
- 0x007c,
- 0x007d,
- 0x007e,
- 0x00a1,
- 2, 0x00a2, 0x00a7, // range
- 0x00ac,
- 0x00b0,
- 0x00b1,
- 2, 0x00b5, 0x00b6, // range
- 0x00b7,
- 0x00bf,
- 0x00d7,
- 0x00f7,
- 0x0131,
- 0x0308,
- 0x030a,
- 0x030c,
- 0x0338,
- 2, 0x0391, 0x03a1, // range
- 2, 0x03a3, 0x03a4, // range
- 2, 0x03a6, 0x03a9, // range
- 2, 0x03b1, 0x03c1, // range
- 2, 0x03c3, 0x03c9, // range
- 2, 0x03d5, 0x03d6, // range
- 2, 0x03f0, 0x03f1, // range
- 0x2016,
- 0x2020,
- 0x2020,
- 0x2021,
- 0x2021,
- 0x2022,
- 0x2026,
- 0x2044,
- 0x2057,
- 0x20e1,
- 0x2102,
- 2, 0x210e, 0x210f, // range
- 2, 0x2110, 0x2113, // range
- 0x2115,
- 2, 0x2118, 0x211d, // range
- 0x2124,
- 2, 0x2200, 0x2201, // range
- 0x2202,
- 2, 0x2203, 0x2204, // range
- 0x2205,
- 2, 0x2206, 0x2207, // range
- 2, 0x2208, 0x220d, // range
- 2, 0x220f, 0x2211, // range
- 2, 0x2212, 0x2213, // range
- 2, 0x2214, 0x2219, // range
- 0x221d,
- 2, 0x221e, 0x2222, // range
- 2, 0x2223, 0x2226, // range
- 2, 0x2227, 0x222a, // range
- 2, 0x2234, 0x2235, // range
- 2, 0x2236, 0x2237, // range
- 0x2238,
- 2, 0x2239, 0x223d, // range
- 0x223e,
- 0x223f,
- 0x2240,
- 2, 0x228c, 0x228e, // range
- 2, 0x228f, 0x2292, // range
- 2, 0x2293, 0x22a1, // range
- 2, 0x22a2, 0x22a3, // range
- 2, 0x22a4, 0x22a5, // range
- 2, 0x22c0, 0x22c3, // range
- 0x22c8,
- 0x22cd,
- 2, 0x22ce, 0x22cf, // range
- 0x2308,
- 0x2309,
- 0x230a,
- 0x230b,
- 2, 0x2322, 0x2323, // range
- 2, 0x25a0, 0x25a1, // range
- 0x27e6,
- 0x27e7,
- 0x27e8,
- 0x27e9,
- 2, 0x1d400, 0x1d454, // range
- 2, 0x1d456, 0x1d49c, // range
- 2, 0x1d49e, 0x1d49f, // range
- 0x1d4a2,
- 2, 0x1d4a5, 0x1d4a6, // range
- 2, 0x1d4a9, 0x1d4ac, // range
- 2, 0x1d53b, 0x1d53e, // range
- 2, 0x1d540, 0x1d544, // range
- 0x1d546,
- 2, 0x1d54a, 0x1d550, // range
- 2, 0x1d6a4, 0x1d6a5, // range
-};
-#define UND_ZMTH_LANG_ORTH_SZ 213
diff --git a/crengine/fc-lang/files/und_zsye_orth.c b/crengine/fc-lang/files/und_zsye_orth.c
deleted file mode 100644
index 604c5a2f0e..0000000000
--- a/crengine/fc-lang/files/und_zsye_orth.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int und_zsye_lang_orth_chars[] = {
- 2, 0x231a, 0x231b, // range
- 2, 0x23e9, 0x23ec, // range
- 0x23f0,
- 0x23f3,
- 2, 0x25fd, 0x25fe, // range
- 2, 0x2614, 0x2615, // range
- 2, 0x2648, 0x2653, // range
- 0x267f,
- 0x2693,
- 0x26a1,
- 2, 0x26aa, 0x26ab, // range
- 2, 0x26bd, 0x26be, // range
- 2, 0x26c4, 0x26c5, // range
- 0x26ce,
- 0x26d4,
- 0x26ea,
- 2, 0x26f2, 0x26f3, // range
- 0x26f5,
- 0x26fa,
- 0x26fd,
- 0x2705,
- 2, 0x270a, 0x270b, // range
- 0x2728,
- 0x274c,
- 0x274e,
- 2, 0x2753, 0x2755, // range
- 0x2757,
- 2, 0x2795, 0x2797, // range
- 0x27b0,
- 0x27bf,
- 2, 0x2b1b, 0x2b1c, // range
- 0x2b50,
- 0x2b55,
- 0x1f004,
- 0x1f0cf,
- 0x1f18e,
- 2, 0x1f191, 0x1f19a, // range
- 2, 0x1f1e6, 0x1f1ff, // range
- 0x1f201,
- 0x1f21a,
- 0x1f22f,
- 2, 0x1f232, 0x1f236, // range
- 2, 0x1f238, 0x1f23a, // range
- 2, 0x1f250, 0x1f251, // range
- 2, 0x1f300, 0x1f320, // range
- 2, 0x1f330, 0x1f335, // range
- 2, 0x1f337, 0x1f37c, // range
- 2, 0x1f380, 0x1f393, // range
- 2, 0x1f3a0, 0x1f3c4, // range
- 2, 0x1f3c6, 0x1f3ca, // range
- 2, 0x1f3e0, 0x1f3f0, // range
- 0x1f440,
- 2, 0x1f442, 0x1f4f7, // range
- 2, 0x1f4f9, 0x1f4fc, // range
- 2, 0x1f500, 0x1f53d, // range
- 2, 0x1f550, 0x1f567, // range
- 2, 0x1f5fb, 0x1f5ff, // range
- 2, 0x1f601, 0x1f610, // range
- 2, 0x1f612, 0x1f614, // range
- 0x1f616,
- 0x1f618,
- 0x1f61a,
- 2, 0x1f61c, 0x1f61e, // range
- 2, 0x1f620, 0x1f625, // range
- 2, 0x1f628, 0x1f62b, // range
- 0x1f62d,
- 2, 0x1f630, 0x1f633, // range
- 2, 0x1f635, 0x1f640, // range
- 2, 0x1f645, 0x1f64f, // range
-};
-#define UND_ZSYE_LANG_ORTH_SZ 145
diff --git a/crengine/fc-lang/files/ve_orth.c b/crengine/fc-lang/files/ve_orth.c
deleted file mode 100644
index 8181cfeb7d..0000000000
--- a/crengine/fc-lang/files/ve_orth.c
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int ve_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x1e12, 0x1e13, // range
- 2, 0x1e3c, 0x1e3d, // range
- 2, 0x1e44, 0x1e45, // range
- 2, 0x1e4a, 0x1e4b, // range
- 2, 0x1e70, 0x1e71, // range
-};
-#define VE_LANG_ORTH_SZ 21
diff --git a/crengine/fc-lang/files/vi_orth.c b/crengine/fc-lang/files/vi_orth.c
deleted file mode 100644
index fe94eb61a8..0000000000
--- a/crengine/fc-lang/files/vi_orth.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int vi_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c0, 0x00c3, // range
- 2, 0x00c8, 0x00ca, // range
- 2, 0x00cc, 0x00cd, // range
- 2, 0x00d2, 0x00d5, // range
- 2, 0x00d9, 0x00da, // range
- 0x00dd,
- 2, 0x00e0, 0x00e3, // range
- 2, 0x00e8, 0x00ea, // range
- 2, 0x00ec, 0x00ed, // range
- 2, 0x00f2, 0x00f5, // range
- 2, 0x00f9, 0x00fa, // range
- 0x00fd,
- 2, 0x0102, 0x0103, // range
- 2, 0x0110, 0x0111, // range
- 2, 0x0128, 0x0129, // range
- 2, 0x0168, 0x0169, // range
- 2, 0x01a0, 0x01a1, // range
- 2, 0x01af, 0x01b0, // range
- 2, 0x0300, 0x0303, // range
- 0x0306,
- 0x0309,
- 0x031b,
- 0x0323,
- 2, 0x1ea0, 0x1ef9, // range
-};
-#define VI_LANG_ORTH_SZ 66
diff --git a/crengine/fc-lang/files/vo_orth.c b/crengine/fc-lang/files/vo_orth.c
deleted file mode 100644
index 0792524301..0000000000
--- a/crengine/fc-lang/files/vo_orth.c
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int vo_lang_orth_chars[] = {
- 2, 0x0041, 0x0050, // range
- 2, 0x0052, 0x0056, // range
- 2, 0x0058, 0x005a, // range
- 2, 0x0061, 0x0070, // range
- 2, 0x0072, 0x0076, // range
- 2, 0x0078, 0x007a, // range
- 0x00c4,
- 0x00d6,
- 0x00dc,
- 0x00e4,
- 0x00f6,
- 0x00fc,
-};
-#define VO_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/wal_orth.c b/crengine/fc-lang/files/wal_orth.c
deleted file mode 100644
index 9a69e3202e..0000000000
--- a/crengine/fc-lang/files/wal_orth.c
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int wal_lang_orth_chars[] = {
- 2, 0x1200, 0x1206, // range
- 2, 0x1208, 0x1216, // range
- 2, 0x1218, 0x121f, // range
- 2, 0x1228, 0x1230, // range
- 2, 0x1238, 0x1246, // range
- 0x1248,
- 2, 0x124a, 0x124d, // range
- 2, 0x1250, 0x1256, // range
- 0x1258,
- 2, 0x125a, 0x125d, // range
- 2, 0x1260, 0x126e, // range
- 2, 0x1270, 0x127f, // range
- 2, 0x1290, 0x12a7, // range
- 2, 0x12a8, 0x12ae, // range
- 0x12b0,
- 2, 0x12b2, 0x12b5, // range
- 2, 0x12c8, 0x12ce, // range
- 0x12c0,
- 2, 0x12c2, 0x12c5, // range
- 2, 0x12c8, 0x12ce, // range
- 2, 0x12d0, 0x12d6, // range
- 2, 0x12d8, 0x12ee, // range
- 2, 0x12f0, 0x12f7, // range
- 2, 0x1300, 0x130e, // range
- 0x1310,
- 2, 0x1312, 0x1315, // range
- 2, 0x1320, 0x133f, // range
- 2, 0x1348, 0x1356, // range
- 2, 0x1220, 0x1226, // range
- 2, 0x1280, 0x1286, // range
- 0x1288,
- 2, 0x128a, 0x128d, // range
- 2, 0x1340, 0x1346, // range
-};
-#define WAL_LANG_ORTH_SZ 87
diff --git a/crengine/fc-lang/files/wen_orth.c b/crengine/fc-lang/files/wen_orth.c
deleted file mode 100644
index 7ef9e404e5..0000000000
--- a/crengine/fc-lang/files/wen_orth.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int wen_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x0106, 0x0107, // range
- 2, 0x010c, 0x010d, // range
- 2, 0x011a, 0x011b, // range
- 2, 0x0141, 0x0142, // range
- 2, 0x0143, 0x0144, // range
- 0x00d3,
- 0x00f3,
- 2, 0x0154, 0x0155, // range
- 2, 0x0158, 0x0159, // range
- 2, 0x015a, 0x015b, // range
- 2, 0x0160, 0x0161, // range
- 2, 0x0179, 0x017a, // range
- 2, 0x017d, 0x017e, // range
-};
-#define WEN_LANG_ORTH_SZ 41
diff --git a/crengine/fc-lang/files/yo_orth.c b/crengine/fc-lang/files/yo_orth.c
deleted file mode 100644
index ce8d7a4e57..0000000000
--- a/crengine/fc-lang/files/yo_orth.c
+++ /dev/null
@@ -1,64 +0,0 @@
-
-// This file is autogenerated from fc-lang database.
-// https://www.freedesktop.org/wiki/Software/fontconfig/
-// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
-
-unsigned int yo_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 0x00c0,
- 0x00c1,
- 0x00c2,
- 0x00c3,
- 0x00c8,
- 0x00c9,
- 0x00ca,
- 0x00cc,
- 0x00cd,
- 0x00ce,
- 0x00d2,
- 0x00d3,
- 0x00d4,
- 0x00d5,
- 0x00d9,
- 0x00da,
- 0x00db,
- 0x00e0,
- 0x00e1,
- 0x00e2,
- 0x00e3,
- 0x00e8,
- 0x00e9,
- 0x00ea,
- 0x00ec,
- 0x00ed,
- 0x00ee,
- 0x00f2,
- 0x00f3,
- 0x00f4,
- 0x00f5,
- 0x00f9,
- 0x00fa,
- 0x00fb,
- 2, 0x011a, 0x011b, // range
- 2, 0x0128, 0x0129, // range
- 2, 0x0143, 0x0144, // range
- 2, 0x0168, 0x0169, // range
- 2, 0x01cd, 0x01ce, // range
- 2, 0x01cf, 0x01d0, // range
- 2, 0x01d1, 0x01d2, // range
- 2, 0x01d3, 0x01d4, // range
- 2, 0x01f8, 0x01f9, // range
- 0x0300,
- 0x0301,
- 0x0302,
- 0x0303,
- 0x030c,
- 2, 0x1e3e, 0x1e3f, // range
- 2, 0x1e62, 0x1e63, // range
- 2, 0x1eb8, 0x1eb9, // range
- 2, 0x1ebc, 0x1ebd, // range
- 2, 0x1ecc, 0x1ecd, // range
-};
-#define YO_LANG_ORTH_SZ 87
diff --git a/crengine/include/crlocaledata.h b/crengine/include/crlocaledata.h
new file mode 100644
index 0000000000..79e7ce3a5d
--- /dev/null
+++ b/crengine/include/crlocaledata.h
@@ -0,0 +1,96 @@
+/***************************************************************************
+ CoolReader Engine
+
+ crlocaledata.h: parsing and comparision locales
+
+ (c) Aleksey Chernov, 2021
+ This source code is distributed under the terms of
+ GNU General Public License
+ See LICENSE file for details
+
+ ***************************************************************************/
+
+#ifndef CRLOCALEDATA_H
+#define CRLOCALEDATA_H
+
+#include "crsetup.h"
+
+#if USE_LOCALE_DATA==1
+
+#include "lvstring.h"
+
+class CRLocaleData
+{
+public:
+ CRLocaleData(const char* langtag);
+ CRLocaleData(const lString8& langtag);
+ bool isValid() const {
+ return m_isValid;
+ }
+ lString8 langTag() const;
+ const lString8& langCode() const {
+ return m_lang_code;
+ }
+ const lString8& langPart2B() const {
+ return m_lang_part2b;
+ }
+ const lString8& langPart2T() const {
+ return m_lang_part2t;
+ }
+ const lString8& langPart1() const {
+ return m_lang_part1;
+ }
+ const lString8& langName() const {
+ return m_lang_name;
+ }
+ const lString8& scriptCode() const {
+ return m_script_code;
+ }
+ const lString8& scriptName() const {
+ return m_script_name;
+ }
+ const lString8& scriptAlias() const {
+ return m_script_name;
+ }
+ unsigned int scriptNumeric() const {
+ return m_script_num;
+ }
+ const lString8& regionAlpha2() const {
+ return m_region_alpha2;
+ }
+ const lString8& regionAlpha3() const {
+ return m_region_alpha3;
+ }
+ const lString8& regionName() const {
+ return m_region_name;
+ }
+ unsigned int regionNumeric() const {
+ return m_region_num;
+ }
+ int calcMatch(const CRLocaleData& other) const;
+protected:
+ void parseTag(const lString8& langtag);
+private:
+ bool m_isValid;
+
+ lString8 m_langtag_src; // full langtag (source)
+ lString8 m_lang_code; // ISO 639-3 lang id/code
+ lString8 m_lang_part2b; // Equivalent 639-2 identifier of the bibliographic application code set, if there is one
+ lString8 m_lang_part2t; // Equivalent 639-2 identifier of the terminology application code set, if there is one
+ lString8 m_lang_part1; // Equivalent 639-1 identifier, if there is one
+ lString8 m_lang_name; // Reference language name
+
+ lString8 m_script_code; // script code
+ lString8 m_script_name; // script name (english)
+ lString8 m_script_alias; // script alias
+ unsigned int m_script_num; // script: numeric
+
+ lString8 m_region_name; // region name (english)
+ lString8 m_region_alpha2; // region: alpha2 code
+ lString8 m_region_alpha3; // region: alpha2 code
+ unsigned int m_region_num; // script: numeric
+};
+
+#endif // USE_LOCALE_DATA==1
+
+#endif // CRLOCALEDATA_H
diff --git a/crengine/include/crsetup.h b/crengine/include/crsetup.h
index 05ea7bd879..3b30d89917 100644
--- a/crengine/include/crsetup.h
+++ b/crengine/include/crsetup.h
@@ -50,6 +50,7 @@
#define ZIP_STREAM_BUFFER_SIZE 0x1000
#define FILE_STREAM_BUFFER_SIZE 0x1000
#define MATHML_SUPPORT 0
+#define USE_LOCALE_DATA 0
#else
@@ -67,6 +68,7 @@
#define ZIP_STREAM_BUFFER_SIZE 0x80000
#define FILE_STREAM_BUFFER_SIZE 0x40000
#define MATHML_SUPPORT 1
+#define USE_LOCALE_DATA 1
#endif // (BUILD_LITE==1)
@@ -103,6 +105,7 @@
#define USE_LIBUNIBREAK 1
#define USE_GLYPHCACHE_HASHTABLE 1
#define MATHML_SUPPORT 1
+#define USE_LOCALE_DATA 1
#ifndef ANDROID
#ifndef MAC
@@ -154,6 +157,7 @@
#define FILE_STREAM_BUFFER_SIZE 0x40000
//#define USE_LIBJPEG 0
#define MATHML_SUPPORT 1
+#define USE_LOCALE_DATA 1
#endif // !defined(__SYMBIAN32__) && defined(_WIN32)
#ifndef GLYPH_CACHE_SIZE
@@ -265,6 +269,10 @@
#define MATHML_SUPPORT 0
#endif
+#ifndef USE_LOCALE_DATA
+#define USE_LOCALE_DATA 0
+#endif
+
#ifndef USE_FREETYPE
#define USE_FREETYPE 0
#endif
diff --git a/crengine/include/fc-lang-data.h b/crengine/include/fc-lang-data.h
new file mode 100644
index 0000000000..2aff07ca90
--- /dev/null
+++ b/crengine/include/fc-lang-data.h
@@ -0,0 +1,47 @@
+// FontConfig database of language orthographies.
+// License: Public Domain.
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+#ifndef FC_LANG_DATA_H
+#define FC_LANG_DATA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FC_LANG_DATA_SZ 248
+
+struct fc_lang_rec
+{
+ const char* lang_code;
+ const unsigned int char_set_sz;
+ const unsigned int* char_set;
+};
+
+/**
+ * @brief Return pointer to FontConfig database of language orthographies
+ * @return array of fc_lang_rec records.
+ */
+const struct fc_lang_rec* get_fc_lang_data();
+
+/**
+ * @brief Get count of records in the FontConfig database of language orthographies.
+ * @return Count of records in array.
+ */
+unsigned int get_fc_lang_data_size();
+
+/**
+ * @brief Find language in database by code
+ * @param lang_code language code is exactly as it appears in the fc_lang catalog.
+ * @return Pointer to fc_lang_rec instance if language found, NULL otherwise.
+ */
+const struct fc_lang_rec* fc_lang_find(const char* lang_code);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // FC_LANG_DATA_H
diff --git a/crengine/include/lvfntman.h b/crengine/include/lvfntman.h
index 069d047657..55fa3e662f 100644
--- a/crengine/include/lvfntman.h
+++ b/crengine/include/lvfntman.h
@@ -126,7 +126,7 @@ class LVFontManager {
/// returns available font files
virtual void getFontFileNameList( lString32Collection & ) { }
/// check font language compatibility
- virtual bool checkFontLangCompat(const lString8 &typeface, const lString8 &langCode) { return true; }
+ virtual font_lang_compat checkFontLangCompat(const lString8 &typeface, const lString8 &langCode) { return font_lang_compat_invalid_tag; }
/// returns first found face from passed list, or return face for font found by family only
virtual lString8 findFontFace(lString8 commaSeparatedFaceList, css_font_family_t fallbackByFamily);
/// fills array with list of available gamma levels
diff --git a/crengine/include/lvfont.h b/crengine/include/lvfont.h
index cfe8300322..7dd06e1104 100644
--- a/crengine/include/lvfont.h
+++ b/crengine/include/lvfont.h
@@ -210,6 +210,13 @@ enum font_antialiasing_t {
font_aa_lcd_v_pentile_m
};
+enum font_lang_compat {
+ font_lang_compat_invalid_tag = 0,
+ font_lang_compat_none,
+ font_lang_compat_partial,
+ font_lang_compat_full,
+};
+
struct LVFontGlyphCacheItem;
class TextLangCfg;
@@ -412,7 +419,7 @@ class LVFont : public LVRefCounter {
return 0;
}
- virtual bool checkFontLangCompat(const lString8 &langCode) { return true; }
+ virtual font_lang_compat checkFontLangCompat(const lString8 &langCode) { return font_lang_compat_invalid_tag; }
/// set fallback font for this font
virtual void setFallbackFont(LVFontRef font) { CR_UNUSED(font); }
diff --git a/crengine/include/lvstring.h b/crengine/include/lvstring.h
index f55250cc85..55819b1a4a 100644
--- a/crengine/include/lvstring.h
+++ b/crengine/include/lvstring.h
@@ -415,6 +415,8 @@ class lString8
lString8 & replace(size_type p0, size_type n0, const lString8 & str, size_type offset, size_type count);
/// replace fragment with repeated character
lString8 & replace(size_type p0, size_type n0, size_type count, value_type ch);
+ /// replaces every occurrence of the character before with the character after and returns a reference to this string
+ lString8 & replace(value_type before, value_type after);
/// make string uppercase
lString8 & uppercase();
/// make string lowercase
diff --git a/crengine/src/locale_data/crlocaledata.cpp b/crengine/src/locale_data/crlocaledata.cpp
new file mode 100644
index 0000000000..20e499122c
--- /dev/null
+++ b/crengine/src/locale_data/crlocaledata.cpp
@@ -0,0 +1,280 @@
+/***************************************************************************
+ CoolReader Engine
+
+ crlocaledata.cpp: parsing and comparision locales
+
+ (c) Aleksey Chernov, 2021
+ This source code is distributed under the terms of
+ GNU General Public License
+ See LICENSE file for details
+
+ ***************************************************************************/
+
+#include "crlocaledata.h"
+
+#if USE_LOCALE_DATA==1
+
+#include "lvstring8collection.h"
+
+#include "iso-639-2_data.c"
+#include "iso-639-3_data.c"
+#include "iso-3166-1_data.c"
+#include "iso-15924_data.c"
+
+CRLocaleData::CRLocaleData(const char* langtag)
+{
+ parseTag(lString8(langtag));
+}
+
+CRLocaleData::CRLocaleData(const lString8 &langtag)
+{
+ parseTag(langtag);
+}
+
+lString8 CRLocaleData::langTag() const
+{
+ if (m_lang_code.empty())
+ return lString8::empty_str;
+
+ lString8 tag;
+
+ // part 1: main language
+ if (!m_lang_part1.empty())
+ tag = m_lang_part1;
+ else
+ tag = m_lang_code;
+
+ // part2: script
+ if (!m_script_code.empty()) {
+ tag.append("-");
+ tag.append(m_script_code);
+ }
+
+ // part 3: region/country
+ if (!m_region_alpha2.empty()) {
+ tag.append("-");
+ tag.append(m_region_alpha2);
+ } else if (!m_region_alpha3.empty()) {
+ tag.append("-");
+ tag.append(m_region_alpha3);
+ }
+
+ return tag;
+}
+
+int CRLocaleData::calcMatch(const CRLocaleData& other) const
+{
+ lString8 this_lang_code_lc = m_lang_code;
+ this_lang_code_lc = this_lang_code_lc.lowercase();
+ lString8 other_lang_code_lc = other.langCode();
+ other_lang_code_lc = other_lang_code_lc.lowercase();
+ if (this_lang_code_lc.compare(other_lang_code_lc) != 0)
+ return 0;
+ int match = 100;
+ if (m_script_num != 0 && other.scriptNumeric() != 0) {
+ if (m_script_num == other.scriptNumeric())
+ match += 10;
+ else
+ match -= 10;
+ }
+ if (m_region_num != 0 && other.regionNumeric() != 0) {
+ if (m_region_num == other.regionNumeric())
+ match += 1;
+ else
+ match -= 1;
+ }
+ return match;
+}
+
+void CRLocaleData::parseTag(const lString8& langtag)
+{
+ m_langtag_src = langtag;
+ lString8 tag = langtag;
+ bool lang_ok = false;
+ bool script_ok = true;
+ bool region_ok = true;
+
+ // 0. clear all fields
+ m_isValid = false;
+ m_lang_code = lString8::empty_str;
+ m_lang_part2b = lString8::empty_str;
+ m_lang_part2t = lString8::empty_str;
+ m_lang_part1 = lString8::empty_str;
+ m_lang_name = lString8::empty_str;
+
+ m_script_code = lString8::empty_str;
+ m_script_name = lString8::empty_str;
+ m_script_alias = lString8::empty_str;
+ m_script_num = 0;
+
+ m_region_name = lString8::empty_str;
+ m_region_alpha2 = lString8::empty_str;
+ m_region_alpha3 = lString8::empty_str;
+ m_region_num = 0;
+
+ // 1. replace '_' with '-'
+ tag = tag.replace('_', '-');
+
+ // 2. split to components
+ lString8Collection list(tag, cs8("-"));
+
+ // 3. Analyze each part
+
+ /* pass state codes:
+ * 0 - start
+ * 1 - language parsed
+ * 2 - script parsed
+ * 3 - region parsed
+ */
+ int state = 0;
+ int i;
+ bool part_parsed;
+ int it;
+ for (it = 0; it < list.length(); ++it) {
+ lString8 part = list[it];
+ if (part.empty())
+ continue;
+ part_parsed = false;
+ while (!part_parsed) {
+ switch (state) {
+ case 0: {
+ // search language code in ISO-639-3
+ part = part.lowercase();
+ const struct iso639_3_rec* ptr = &iso639_3_data[0];
+ const struct iso639_3_rec* rec3 = NULL;
+ const struct iso639_2_rec* rec2 = NULL;
+ for (i = 0; i < ISO639_3_DATA_SZ; i++) {
+ if (part.compare(ptr->id) == 0) {
+ rec3 = ptr;
+ break;
+ } else if (part.compare(ptr->part1) == 0) {
+ rec3 = ptr;
+ break;
+ } else if (part.compare(ptr->part2b) == 0) {
+ rec3 = ptr;
+ break;
+ }
+ // don't test Part/2T, ISO-639-3 id already use Part/2T
+ ptr++;
+ }
+ if (!rec3) {
+ // if not found by code => search by full name
+ ptr = &iso639_3_data[0];
+ for (i = 0; i < ISO639_3_DATA_SZ; i++) {
+ lString8 ref_name(ptr->ref_name);
+ ref_name = ref_name.lowercase();
+ if (part.compare(ref_name) == 0) {
+ rec3 = ptr;
+ break;
+ }
+ ptr++;
+ }
+ }
+ if (!rec3) {
+ // if not found in ISO-639-3 => search in ISO-639-2 (for scope "collective")
+ // search only by id, part1
+ const struct iso639_2_rec* ptr2 = &iso639_2_data[0];
+ for (i = 0; i < ISO639_2_DATA_SZ; i++) {
+ if (part.compare(ptr2->id) == 0) {
+ rec2 = ptr2;
+ break;
+ } else if (part.compare(ptr2->part1) == 0) {
+ rec2 = ptr2;
+ break;
+ }
+ ptr2++;
+ }
+ }
+ if (rec3 || rec2)
+ lang_ok = true;
+ else if (ISO639_3_UND_INDEX >= 0)
+ rec3 = &iso639_3_data[ISO639_3_UND_INDEX];
+ if (rec3) {
+ m_lang_code = lString8(rec3->id);
+ m_lang_part2b = rec3->part2b != NULL ? lString8(rec3->part2b) : lString8::empty_str;
+ m_lang_part2t = rec3->part2t != NULL ? lString8(rec3->part2t) : lString8::empty_str;
+ m_lang_part1 = rec3->part1 != NULL ? lString8(rec3->part1) : lString8::empty_str;
+ m_lang_name = lString8(rec3->ref_name);
+ } else if (rec2) {
+ m_lang_code = lString8(rec2->id);
+ m_lang_part2b = lString8::empty_str;
+ m_lang_part2t = rec2->part2t != NULL ? lString8(rec2->part2t) : lString8::empty_str;
+ m_lang_part1 = rec2->part1 != NULL ? lString8(rec2->part1) : lString8::empty_str;
+ m_lang_name = lString8(rec2->ref_name);
+ }
+ part_parsed = true;
+ state = 1;
+ break;
+ }
+ case 1: {
+ // search script in ISO-15924
+ part = part.lowercase();
+ if (part.length() == 4) {
+ script_ok = false;
+ const struct iso15924_rec* ptr = &iso15924_data[0];
+ const struct iso15924_rec* rec = NULL;
+ for (i = 0; i < ISO15924_DATA_SZ; i++) {
+ lString8 code(ptr->code);
+ code = code.lowercase();
+ if (part.compare(code) == 0) {
+ rec = ptr;
+ break;
+ }
+ ptr++;
+ }
+ if (rec) {
+ // script is found
+ m_script_code = lString8(rec->code);
+ m_script_name = rec->name != NULL ? lString8(rec->name) : lString8::empty_str;
+ m_script_alias = rec->alias != NULL ? lString8(rec->alias) : lString8::empty_str;
+ m_script_num = rec->num;
+ part_parsed = true;
+ script_ok = true;
+ }
+ }
+ state = 2;
+ break;
+ }
+ case 2:
+ // search region/country code in ISO-3166-1
+ part = part.uppercase();
+ region_ok = false;
+ const struct iso3166_1_rec* ptr = &iso3166_1_data[0];
+ const struct iso3166_1_rec* rec = NULL;
+ for (i = 0; i < ISO3166_1_DATA_SZ; i++) {
+ lString8 name(ptr->name);
+ name = name.uppercase();
+ if (part.compare(ptr->alpha2) == 0) {
+ rec = ptr;
+ break;
+ } else if (part.compare(ptr->alpha3) == 0) {
+ rec = ptr;
+ break;
+ } else if (part.compare(name) == 0) {
+ rec = ptr;
+ break;
+ }
+ ptr++;
+ }
+ if (rec) {
+ // region is found
+ m_region_name = lString8(rec->name);
+ m_region_alpha2 = lString8(rec->alpha2);
+ m_region_alpha3 = lString8(rec->alpha3);
+ m_region_num = rec->num;
+ region_ok = true;
+ }
+ part_parsed = true;
+ state = 1;
+ break;
+ }
+ }
+ if (3 == state) {
+ // ignore all trailing tags
+ break;
+ }
+ }
+ m_isValid = lang_ok && script_ok && region_ok;
+}
+
+#endif // #if USE_LOCALE_DATA==1
diff --git a/crengine/fc-lang/fc-lang-cat.c b/crengine/src/locale_data/fc-lang-data.c
similarity index 95%
rename from crengine/fc-lang/fc-lang-cat.c
rename to crengine/src/locale_data/fc-lang-data.c
index f4a1a858df..3c7e4fb363 100644
--- a/crengine/fc-lang/fc-lang-cat.c
+++ b/crengine/src/locale_data/fc-lang-data.c
@@ -1,10 +1,16 @@
-
+// FontConfig database of language orthographies.
+// License: Public Domain.
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+#include "crsetup.h"
+#if USE_LOCALE_DATA==1
+
+#include
-#include "fc-lang-cat.h"
+#include "fc-lang-data.h"
#include "files/aa_orth.c"
#include "files/ab_orth.c"
@@ -24,10 +30,10 @@
#include "files/ber_dz_orth.c"
#include "files/ber_ma_orth.c"
#include "files/bg_orth.c"
-#include "files/bho_orth.c"
#include "files/bh_orth.c"
-#include "files/bin_orth.c"
+#include "files/bho_orth.c"
#include "files/bi_orth.c"
+#include "files/bin_orth.c"
#include "files/bm_orth.c"
#include "files/bn_orth.c"
#include "files/bo_orth.c"
@@ -38,13 +44,13 @@
#include "files/byn_orth.c"
#include "files/ca_orth.c"
#include "files/ce_orth.c"
-#include "files/chm_orth.c"
#include "files/ch_orth.c"
+#include "files/chm_orth.c"
#include "files/chr_orth.c"
#include "files/co_orth.c"
#include "files/crh_orth.c"
-#include "files/csb_orth.c"
#include "files/cs_orth.c"
+#include "files/csb_orth.c"
#include "files/cu_orth.c"
#include "files/cv_orth.c"
#include "files/cy_orth.c"
@@ -63,8 +69,8 @@
#include "files/fa_orth.c"
#include "files/fat_orth.c"
#include "files/ff_orth.c"
-#include "files/fil_orth.c"
#include "files/fi_orth.c"
+#include "files/fil_orth.c"
#include "files/fj_orth.c"
#include "files/fo_orth.c"
#include "files/fr_orth.c"
@@ -101,30 +107,30 @@
#include "files/iu_orth.c"
#include "files/ja_orth.c"
#include "files/jv_orth.c"
+#include "files/ka_orth.c"
#include "files/kaa_orth.c"
#include "files/kab_orth.c"
-#include "files/ka_orth.c"
#include "files/ki_orth.c"
#include "files/kj_orth.c"
#include "files/kk_orth.c"
#include "files/kl_orth.c"
#include "files/km_orth.c"
#include "files/kn_orth.c"
-#include "files/kok_orth.c"
#include "files/ko_orth.c"
+#include "files/kok_orth.c"
#include "files/kr_orth.c"
#include "files/ks_orth.c"
#include "files/ku_am_orth.c"
#include "files/ku_iq_orth.c"
#include "files/ku_ir_orth.c"
-#include "files/kum_orth.c"
#include "files/ku_tr_orth.c"
+#include "files/kum_orth.c"
#include "files/kv_orth.c"
-#include "files/kwm_orth.c"
#include "files/kw_orth.c"
+#include "files/kwm_orth.c"
#include "files/ky_orth.c"
-#include "files/lah_orth.c"
#include "files/la_orth.c"
+#include "files/lah_orth.c"
#include "files/lb_orth.c"
#include "files/lez_orth.c"
#include "files/lg_orth.c"
@@ -140,8 +146,8 @@
#include "files/mk_orth.c"
#include "files/ml_orth.c"
#include "files/mn_cn_orth.c"
-#include "files/mni_orth.c"
#include "files/mn_mn_orth.c"
+#include "files/mni_orth.c"
#include "files/mo_orth.c"
#include "files/mr_orth.c"
#include "files/ms_orth.c"
@@ -166,10 +172,12 @@
#include "files/os_orth.c"
#include "files/ota_orth.c"
#include "files/pa_orth.c"
+#include "files/pa_pk_orth.c"
#include "files/pap_an_orth.c"
#include "files/pap_aw_orth.c"
-#include "files/pa_pk_orth.c"
+#include "files/pes_orth.c"
#include "files/pl_orth.c"
+#include "files/prs_orth.c"
#include "files/ps_af_orth.c"
#include "files/ps_pk_orth.c"
#include "files/pt_orth.c"
@@ -180,25 +188,25 @@
#include "files/ro_orth.c"
#include "files/ru_orth.c"
#include "files/rw_orth.c"
-#include "files/sah_orth.c"
#include "files/sa_orth.c"
+#include "files/sah_orth.c"
#include "files/sat_orth.c"
-#include "files/sco_orth.c"
#include "files/sc_orth.c"
+#include "files/sco_orth.c"
#include "files/sd_orth.c"
-#include "files/sel_orth.c"
#include "files/se_orth.c"
+#include "files/sel_orth.c"
#include "files/sg_orth.c"
#include "files/sh_orth.c"
#include "files/shs_orth.c"
-#include "files/sid_orth.c"
#include "files/si_orth.c"
+#include "files/sid_orth.c"
#include "files/sk_orth.c"
#include "files/sl_orth.c"
+#include "files/sm_orth.c"
#include "files/sma_orth.c"
#include "files/smj_orth.c"
#include "files/smn_orth.c"
-#include "files/sm_orth.c"
#include "files/sms_orth.c"
#include "files/sn_orth.c"
#include "files/so_orth.c"
@@ -237,8 +245,8 @@
#include "files/vi_orth.c"
#include "files/vo_orth.c"
#include "files/vot_orth.c"
-#include "files/wal_orth.c"
#include "files/wa_orth.c"
+#include "files/wal_orth.c"
#include "files/wen_orth.c"
#include "files/wo_orth.c"
#include "files/xh_orth.c"
@@ -253,8 +261,7 @@
#include "files/zh_tw_orth.c"
#include "files/zu_orth.c"
-#define FC_LANG_CAT_SZ 246
-struct fc_lang_catalog fc_lang_cat[] = {
+static const struct fc_lang_rec fc_lang_data[] = {
"aa", AA_LANG_ORTH_SZ, aa_lang_orth_chars,
"ab", AB_LANG_ORTH_SZ, ab_lang_orth_chars,
"af", AF_LANG_ORTH_SZ, af_lang_orth_chars,
@@ -273,10 +280,10 @@ struct fc_lang_catalog fc_lang_cat[] = {
"ber_dz", BER_DZ_LANG_ORTH_SZ, ber_dz_lang_orth_chars,
"ber_ma", BER_MA_LANG_ORTH_SZ, ber_ma_lang_orth_chars,
"bg", BG_LANG_ORTH_SZ, bg_lang_orth_chars,
- "bho", BHO_LANG_ORTH_SZ, bho_lang_orth_chars,
"bh", BH_LANG_ORTH_SZ, bh_lang_orth_chars,
- "bin", BIN_LANG_ORTH_SZ, bin_lang_orth_chars,
+ "bho", BHO_LANG_ORTH_SZ, bho_lang_orth_chars,
"bi", BI_LANG_ORTH_SZ, bi_lang_orth_chars,
+ "bin", BIN_LANG_ORTH_SZ, bin_lang_orth_chars,
"bm", BM_LANG_ORTH_SZ, bm_lang_orth_chars,
"bn", BN_LANG_ORTH_SZ, bn_lang_orth_chars,
"bo", BO_LANG_ORTH_SZ, bo_lang_orth_chars,
@@ -287,13 +294,13 @@ struct fc_lang_catalog fc_lang_cat[] = {
"byn", BYN_LANG_ORTH_SZ, byn_lang_orth_chars,
"ca", CA_LANG_ORTH_SZ, ca_lang_orth_chars,
"ce", CE_LANG_ORTH_SZ, ce_lang_orth_chars,
- "chm", CHM_LANG_ORTH_SZ, chm_lang_orth_chars,
"ch", CH_LANG_ORTH_SZ, ch_lang_orth_chars,
+ "chm", CHM_LANG_ORTH_SZ, chm_lang_orth_chars,
"chr", CHR_LANG_ORTH_SZ, chr_lang_orth_chars,
"co", CO_LANG_ORTH_SZ, co_lang_orth_chars,
"crh", CRH_LANG_ORTH_SZ, crh_lang_orth_chars,
- "csb", CSB_LANG_ORTH_SZ, csb_lang_orth_chars,
"cs", CS_LANG_ORTH_SZ, cs_lang_orth_chars,
+ "csb", CSB_LANG_ORTH_SZ, csb_lang_orth_chars,
"cu", CU_LANG_ORTH_SZ, cu_lang_orth_chars,
"cv", CV_LANG_ORTH_SZ, cv_lang_orth_chars,
"cy", CY_LANG_ORTH_SZ, cy_lang_orth_chars,
@@ -312,8 +319,8 @@ struct fc_lang_catalog fc_lang_cat[] = {
"fa", FA_LANG_ORTH_SZ, fa_lang_orth_chars,
"fat", FAT_LANG_ORTH_SZ, fat_lang_orth_chars,
"ff", FF_LANG_ORTH_SZ, ff_lang_orth_chars,
- "fil", FIL_LANG_ORTH_SZ, fil_lang_orth_chars,
"fi", FI_LANG_ORTH_SZ, fi_lang_orth_chars,
+ "fil", FIL_LANG_ORTH_SZ, fil_lang_orth_chars,
"fj", FJ_LANG_ORTH_SZ, fj_lang_orth_chars,
"fo", FO_LANG_ORTH_SZ, fo_lang_orth_chars,
"fr", FR_LANG_ORTH_SZ, fr_lang_orth_chars,
@@ -350,30 +357,30 @@ struct fc_lang_catalog fc_lang_cat[] = {
"iu", IU_LANG_ORTH_SZ, iu_lang_orth_chars,
"ja", JA_LANG_ORTH_SZ, ja_lang_orth_chars,
"jv", JV_LANG_ORTH_SZ, jv_lang_orth_chars,
+ "ka", KA_LANG_ORTH_SZ, ka_lang_orth_chars,
"kaa", KAA_LANG_ORTH_SZ, kaa_lang_orth_chars,
"kab", KAB_LANG_ORTH_SZ, kab_lang_orth_chars,
- "ka", KA_LANG_ORTH_SZ, ka_lang_orth_chars,
"ki", KI_LANG_ORTH_SZ, ki_lang_orth_chars,
"kj", KJ_LANG_ORTH_SZ, kj_lang_orth_chars,
"kk", KK_LANG_ORTH_SZ, kk_lang_orth_chars,
"kl", KL_LANG_ORTH_SZ, kl_lang_orth_chars,
"km", KM_LANG_ORTH_SZ, km_lang_orth_chars,
"kn", KN_LANG_ORTH_SZ, kn_lang_orth_chars,
- "kok", KOK_LANG_ORTH_SZ, kok_lang_orth_chars,
"ko", KO_LANG_ORTH_SZ, ko_lang_orth_chars,
+ "kok", KOK_LANG_ORTH_SZ, kok_lang_orth_chars,
"kr", KR_LANG_ORTH_SZ, kr_lang_orth_chars,
"ks", KS_LANG_ORTH_SZ, ks_lang_orth_chars,
"ku_am", KU_AM_LANG_ORTH_SZ, ku_am_lang_orth_chars,
"ku_iq", KU_IQ_LANG_ORTH_SZ, ku_iq_lang_orth_chars,
"ku_ir", KU_IR_LANG_ORTH_SZ, ku_ir_lang_orth_chars,
- "kum", KUM_LANG_ORTH_SZ, kum_lang_orth_chars,
"ku_tr", KU_TR_LANG_ORTH_SZ, ku_tr_lang_orth_chars,
+ "kum", KUM_LANG_ORTH_SZ, kum_lang_orth_chars,
"kv", KV_LANG_ORTH_SZ, kv_lang_orth_chars,
- "kwm", KWM_LANG_ORTH_SZ, kwm_lang_orth_chars,
"kw", KW_LANG_ORTH_SZ, kw_lang_orth_chars,
+ "kwm", KWM_LANG_ORTH_SZ, kwm_lang_orth_chars,
"ky", KY_LANG_ORTH_SZ, ky_lang_orth_chars,
- "lah", LAH_LANG_ORTH_SZ, lah_lang_orth_chars,
"la", LA_LANG_ORTH_SZ, la_lang_orth_chars,
+ "lah", LAH_LANG_ORTH_SZ, lah_lang_orth_chars,
"lb", LB_LANG_ORTH_SZ, lb_lang_orth_chars,
"lez", LEZ_LANG_ORTH_SZ, lez_lang_orth_chars,
"lg", LG_LANG_ORTH_SZ, lg_lang_orth_chars,
@@ -389,8 +396,8 @@ struct fc_lang_catalog fc_lang_cat[] = {
"mk", MK_LANG_ORTH_SZ, mk_lang_orth_chars,
"ml", ML_LANG_ORTH_SZ, ml_lang_orth_chars,
"mn_cn", MN_CN_LANG_ORTH_SZ, mn_cn_lang_orth_chars,
- "mni", MNI_LANG_ORTH_SZ, mni_lang_orth_chars,
"mn_mn", MN_MN_LANG_ORTH_SZ, mn_mn_lang_orth_chars,
+ "mni", MNI_LANG_ORTH_SZ, mni_lang_orth_chars,
"mo", MO_LANG_ORTH_SZ, mo_lang_orth_chars,
"mr", MR_LANG_ORTH_SZ, mr_lang_orth_chars,
"ms", MS_LANG_ORTH_SZ, ms_lang_orth_chars,
@@ -415,10 +422,12 @@ struct fc_lang_catalog fc_lang_cat[] = {
"os", OS_LANG_ORTH_SZ, os_lang_orth_chars,
"ota", OTA_LANG_ORTH_SZ, ota_lang_orth_chars,
"pa", PA_LANG_ORTH_SZ, pa_lang_orth_chars,
+ "pa_pk", PA_PK_LANG_ORTH_SZ, pa_pk_lang_orth_chars,
"pap_an", PAP_AN_LANG_ORTH_SZ, pap_an_lang_orth_chars,
"pap_aw", PAP_AW_LANG_ORTH_SZ, pap_aw_lang_orth_chars,
- "pa_pk", PA_PK_LANG_ORTH_SZ, pa_pk_lang_orth_chars,
+ "pes", PES_LANG_ORTH_SZ, pes_lang_orth_chars,
"pl", PL_LANG_ORTH_SZ, pl_lang_orth_chars,
+ "prs", PRS_LANG_ORTH_SZ, prs_lang_orth_chars,
"ps_af", PS_AF_LANG_ORTH_SZ, ps_af_lang_orth_chars,
"ps_pk", PS_PK_LANG_ORTH_SZ, ps_pk_lang_orth_chars,
"pt", PT_LANG_ORTH_SZ, pt_lang_orth_chars,
@@ -429,25 +438,25 @@ struct fc_lang_catalog fc_lang_cat[] = {
"ro", RO_LANG_ORTH_SZ, ro_lang_orth_chars,
"ru", RU_LANG_ORTH_SZ, ru_lang_orth_chars,
"rw", RW_LANG_ORTH_SZ, rw_lang_orth_chars,
- "sah", SAH_LANG_ORTH_SZ, sah_lang_orth_chars,
"sa", SA_LANG_ORTH_SZ, sa_lang_orth_chars,
+ "sah", SAH_LANG_ORTH_SZ, sah_lang_orth_chars,
"sat", SAT_LANG_ORTH_SZ, sat_lang_orth_chars,
- "sco", SCO_LANG_ORTH_SZ, sco_lang_orth_chars,
"sc", SC_LANG_ORTH_SZ, sc_lang_orth_chars,
+ "sco", SCO_LANG_ORTH_SZ, sco_lang_orth_chars,
"sd", SD_LANG_ORTH_SZ, sd_lang_orth_chars,
- "sel", SEL_LANG_ORTH_SZ, sel_lang_orth_chars,
"se", SE_LANG_ORTH_SZ, se_lang_orth_chars,
+ "sel", SEL_LANG_ORTH_SZ, sel_lang_orth_chars,
"sg", SG_LANG_ORTH_SZ, sg_lang_orth_chars,
"sh", SH_LANG_ORTH_SZ, sh_lang_orth_chars,
"shs", SHS_LANG_ORTH_SZ, shs_lang_orth_chars,
- "sid", SID_LANG_ORTH_SZ, sid_lang_orth_chars,
"si", SI_LANG_ORTH_SZ, si_lang_orth_chars,
+ "sid", SID_LANG_ORTH_SZ, sid_lang_orth_chars,
"sk", SK_LANG_ORTH_SZ, sk_lang_orth_chars,
"sl", SL_LANG_ORTH_SZ, sl_lang_orth_chars,
+ "sm", SM_LANG_ORTH_SZ, sm_lang_orth_chars,
"sma", SMA_LANG_ORTH_SZ, sma_lang_orth_chars,
"smj", SMJ_LANG_ORTH_SZ, smj_lang_orth_chars,
"smn", SMN_LANG_ORTH_SZ, smn_lang_orth_chars,
- "sm", SM_LANG_ORTH_SZ, sm_lang_orth_chars,
"sms", SMS_LANG_ORTH_SZ, sms_lang_orth_chars,
"sn", SN_LANG_ORTH_SZ, sn_lang_orth_chars,
"so", SO_LANG_ORTH_SZ, so_lang_orth_chars,
@@ -486,8 +495,8 @@ struct fc_lang_catalog fc_lang_cat[] = {
"vi", VI_LANG_ORTH_SZ, vi_lang_orth_chars,
"vo", VO_LANG_ORTH_SZ, vo_lang_orth_chars,
"vot", VOT_LANG_ORTH_SZ, vot_lang_orth_chars,
- "wal", WAL_LANG_ORTH_SZ, wal_lang_orth_chars,
"wa", WA_LANG_ORTH_SZ, wa_lang_orth_chars,
+ "wal", WAL_LANG_ORTH_SZ, wal_lang_orth_chars,
"wen", WEN_LANG_ORTH_SZ, wen_lang_orth_chars,
"wo", WO_LANG_ORTH_SZ, wo_lang_orth_chars,
"xh", XH_LANG_ORTH_SZ, xh_lang_orth_chars,
@@ -502,4 +511,29 @@ struct fc_lang_catalog fc_lang_cat[] = {
"zh_tw", ZH_TW_LANG_ORTH_SZ, zh_tw_lang_orth_chars,
"zu", ZU_LANG_ORTH_SZ, zu_lang_orth_chars,
};
-unsigned int fc_lang_cat_sz = 246;
+
+const struct fc_lang_rec* get_fc_lang_data() {
+ return &fc_lang_data[0];
+}
+
+unsigned int get_fc_lang_data_size() {
+ return FC_LANG_DATA_SZ;
+}
+
+const struct fc_lang_rec* fc_lang_find(const char* lang_code) {
+ const struct fc_lang_rec* lang_ptr = fc_lang_data;
+ int i;
+ int found = 0;
+ for (i = 0; i < FC_LANG_DATA_SZ; i++) {
+ if (strcmp(lang_ptr->lang_code, lang_code) == 0)
+ {
+ found = 1;
+ break;
+ }
+ }
+ if (found)
+ return lang_ptr;
+ return 0;
+}
+
+#endif // USE_LOCALE_DATA==1
diff --git a/crengine/fc-lang/files/aa_orth.c b/crengine/src/locale_data/files/aa_orth.c
similarity index 61%
rename from crengine/fc-lang/files/aa_orth.c
rename to crengine/src/locale_data/files/aa_orth.c
index 0da27e6a5e..1e39541328 100644
--- a/crengine/fc-lang/files/aa_orth.c
+++ b/crengine/src/locale_data/files/aa_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int aa_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int aa_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00ca,
0x00ce,
diff --git a/crengine/src/locale_data/files/ab_orth.c b/crengine/src/locale_data/files/ab_orth.c
new file mode 100644
index 0000000000..8d3506765a
--- /dev/null
+++ b/crengine/src/locale_data/files/ab_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ab_lang_orth_chars[] = {
+ 0x0401,
+ 0x040f,
+ 0xf0f0ffff, 0x0410, 0x044f, // range
+ 0x0451,
+ 0x045f,
+ 0xf0f0ffff, 0x049e, 0x049f, // range
+ 0xf0f0ffff, 0x04a6, 0x04a9, // range
+ 0xf0f0ffff, 0x04ac, 0x04ad, // range
+ 0xf0f0ffff, 0x04b2, 0x04b7, // range
+ 0xf0f0ffff, 0x04bc, 0x04bf, // range
+ 0x04d8,
+ 0x04d9,
+ 0xf0f0ffff, 0x04e0, 0x04e1, // range
+};
+#define AB_LANG_ORTH_SZ 27
diff --git a/crengine/fc-lang/files/af_orth.c b/crengine/src/locale_data/files/af_orth.c
similarity index 65%
rename from crengine/fc-lang/files/af_orth.c
rename to crengine/src/locale_data/files/af_orth.c
index 632db2ad2a..dfb05a0408 100644
--- a/crengine/fc-lang/files/af_orth.c
+++ b/crengine/src/locale_data/files/af_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int af_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int af_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c8,
0x00e8,
0x00c9,
diff --git a/crengine/fc-lang/files/ak_orth.c b/crengine/src/locale_data/files/ak_orth.c
similarity index 67%
rename from crengine/fc-lang/files/ak_orth.c
rename to crengine/src/locale_data/files/ak_orth.c
index 9e60b213b8..2feb74a2c7 100644
--- a/crengine/fc-lang/files/ak_orth.c
+++ b/crengine/src/locale_data/files/ak_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ak_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ak_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c3,
0x00e3,
0x00d1,
diff --git a/crengine/src/locale_data/files/am_orth.c b/crengine/src/locale_data/files/am_orth.c
new file mode 100644
index 0000000000..f2b915a32f
--- /dev/null
+++ b/crengine/src/locale_data/files/am_orth.c
@@ -0,0 +1,45 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int am_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x1226, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1260, 0x1267, // range
+ 0xf0f0ffff, 0x1270, 0x1277, // range
+ 0xf0f0ffff, 0x1280, 0x1286, // range
+ 0x1288,
+ 0xf0f0ffff, 0x128a, 0x128d, // range
+ 0xf0f0ffff, 0x1290, 0x1297, // range
+ 0xf0f0ffff, 0x12a0, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12df, // range
+ 0xf0f0ffff, 0x12e8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1308, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x1328, // range
+ 0xf0f0ffff, 0x1330, 0x1346, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+ 0xf0f0ffff, 0x1238, 0x123f, // range
+ 0xf0f0ffff, 0x1268, 0x126e, // range
+ 0xf0f0ffff, 0x1278, 0x127f, // range
+ 0xf0f0ffff, 0x1298, 0x129f, // range
+ 0x12a8,
+ 0xf0f0ffff, 0x12e0, 0x12e8, // range
+ 0xf0f0ffff, 0x1300, 0x1307, // range
+ 0xf0f0ffff, 0x1328, 0x132f, // range
+};
+#define AM_LANG_ORTH_SZ 98
diff --git a/crengine/fc-lang/files/an_orth.c b/crengine/src/locale_data/files/an_orth.c
similarity index 64%
rename from crengine/fc-lang/files/an_orth.c
rename to crengine/src/locale_data/files/an_orth.c
index 583d2ab331..9973f67d24 100644
--- a/crengine/fc-lang/files/an_orth.c
+++ b/crengine/src/locale_data/files/an_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int an_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int an_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/fc-lang/files/ar_orth.c b/crengine/src/locale_data/files/ar_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ar_orth.c
rename to crengine/src/locale_data/files/ar_orth.c
index 42b1041002..41cc70c7ec 100644
--- a/crengine/fc-lang/files/ar_orth.c
+++ b/crengine/src/locale_data/files/ar_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ar_lang_orth_chars[] = {
- 2, 0x0621, 0x063a, // range
- 2, 0x0641, 0x064a, // range
+const unsigned int ar_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x064a, // range
};
#define AR_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/as_orth.c b/crengine/src/locale_data/files/as_orth.c
new file mode 100644
index 0000000000..e36753907b
--- /dev/null
+++ b/crengine/src/locale_data/files/as_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int as_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0981, 0x0983, // range
+ 0xf0f0ffff, 0x0985, 0x098c, // range
+ 0xf0f0ffff, 0x098f, 0x0990, // range
+ 0xf0f0ffff, 0x0993, 0x09a8, // range
+ 0xf0f0ffff, 0x09aa, 0x09af, // range
+ 0x09b2,
+ 0xf0f0ffff, 0x09b6, 0x09b9, // range
+ 0x09bc,
+ 0xf0f0ffff, 0x09be, 0x09c4, // range
+ 0xf0f0ffff, 0x09c7, 0x09c8, // range
+ 0xf0f0ffff, 0x09cb, 0x09cd, // range
+ 0xf0f0ffff, 0x09dc, 0x09dd, // range
+ 0x09df,
+ 0xf0f0ffff, 0x09f0, 0x09f1, // range
+};
+#define AS_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/ast_orth.c b/crengine/src/locale_data/files/ast_orth.c
similarity index 66%
rename from crengine/fc-lang/files/ast_orth.c
rename to crengine/src/locale_data/files/ast_orth.c
index cca1b98867..66780cd438 100644
--- a/crengine/fc-lang/files/ast_orth.c
+++ b/crengine/src/locale_data/files/ast_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ast_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ast_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/fc-lang/files/av_orth.c b/crengine/src/locale_data/files/av_orth.c
similarity index 87%
rename from crengine/fc-lang/files/av_orth.c
rename to crengine/src/locale_data/files/av_orth.c
index b173aea3ae..384d70970e 100644
--- a/crengine/fc-lang/files/av_orth.c
+++ b/crengine/src/locale_data/files/av_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int av_lang_orth_chars[] = {
+const unsigned int av_lang_orth_chars[] = {
0x0401,
0x0406,
0x0410,
diff --git a/crengine/fc-lang/files/ay_orth.c b/crengine/src/locale_data/files/ay_orth.c
similarity index 60%
rename from crengine/fc-lang/files/ay_orth.c
rename to crengine/src/locale_data/files/ay_orth.c
index a776c8c535..493067d69f 100644
--- a/crengine/fc-lang/files/ay_orth.c
+++ b/crengine/src/locale_data/files/ay_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ay_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ay_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00cf,
0x00d1,
diff --git a/crengine/fc-lang/files/az_az_orth.c b/crengine/src/locale_data/files/az_az_orth.c
similarity index 63%
rename from crengine/fc-lang/files/az_az_orth.c
rename to crengine/src/locale_data/files/az_az_orth.c
index d75582c064..89495a10fa 100644
--- a/crengine/fc-lang/files/az_az_orth.c
+++ b/crengine/src/locale_data/files/az_az_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int az_az_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int az_az_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c7,
0x00d6,
0x00dc,
diff --git a/crengine/fc-lang/files/az_ir_orth.c b/crengine/src/locale_data/files/az_ir_orth.c
similarity index 50%
rename from crengine/fc-lang/files/az_ir_orth.c
rename to crengine/src/locale_data/files/az_ir_orth.c
index c85a951e09..7ea4d8dfa9 100644
--- a/crengine/fc-lang/files/az_ir_orth.c
+++ b/crengine/src/locale_data/files/az_ir_orth.c
@@ -2,15 +2,15 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int az_ir_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
+const unsigned int az_ir_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
0x0629,
- 2, 0x062a, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
+ 0xf0f0ffff, 0x062a, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
0x064b,
0x0654,
0x067e,
diff --git a/crengine/fc-lang/files/ba_orth.c b/crengine/src/locale_data/files/ba_orth.c
similarity index 71%
rename from crengine/fc-lang/files/ba_orth.c
rename to crengine/src/locale_data/files/ba_orth.c
index 8f63055171..866ac2c054 100644
--- a/crengine/fc-lang/files/ba_orth.c
+++ b/crengine/src/locale_data/files/ba_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ba_lang_orth_chars[] = {
- 2, 0x0410, 0x044f, // range
+const unsigned int ba_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0410, 0x044f, // range
0x0492,
0x0493,
0x0498,
diff --git a/crengine/fc-lang/files/be_orth.c b/crengine/src/locale_data/files/be_orth.c
similarity index 62%
rename from crengine/fc-lang/files/be_orth.c
rename to crengine/src/locale_data/files/be_orth.c
index fd2b06e853..ee4334e2a3 100644
--- a/crengine/fc-lang/files/be_orth.c
+++ b/crengine/src/locale_data/files/be_orth.c
@@ -2,12 +2,12 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int be_lang_orth_chars[] = {
+const unsigned int be_lang_orth_chars[] = {
0x0406,
0x040e,
- 2, 0x0410, 0x044f, // range
+ 0xf0f0ffff, 0x0410, 0x044f, // range
0x0456,
0x045e,
};
diff --git a/crengine/src/locale_data/files/ber_dz_orth.c b/crengine/src/locale_data/files/ber_dz_orth.c
new file mode 100644
index 0000000000..6ea1b0c62d
--- /dev/null
+++ b/crengine/src/locale_data/files/ber_dz_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ber_dz_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0x0190,
+ 0x0194,
+ 0xf0f0ffff, 0x01e6, 0x01e7, // range
+ 0x025b,
+ 0x0263,
+ 0xf0f0ffff, 0x1e0c, 0x1e0d, // range
+ 0xf0f0ffff, 0x1e24, 0x1e25, // range
+ 0xf0f0ffff, 0x1e62, 0x1e63, // range
+ 0xf0f0ffff, 0x1e6c, 0x1e6d, // range
+ 0xf0f0ffff, 0x1e92, 0x1e93, // range
+};
+#define BER_DZ_LANG_ORTH_SZ 31
diff --git a/crengine/src/locale_data/files/ber_ma_orth.c b/crengine/src/locale_data/files/ber_ma_orth.c
new file mode 100644
index 0000000000..c7fce72e74
--- /dev/null
+++ b/crengine/src/locale_data/files/ber_ma_orth.c
@@ -0,0 +1,25 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ber_ma_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x2d30, 0x2d31, // range
+ 0x2d33,
+ 0x2d37,
+ 0x2d39,
+ 0xf0f0ffff, 0x2d3b, 0x2d3d, // range
+ 0x2d40,
+ 0xf0f0ffff, 0x2d43, 0x2d45, // range
+ 0x2d47,
+ 0xf0f0ffff, 0x2d49, 0x2d4a, // range
+ 0xf0f0ffff, 0x2d4d, 0x2d4f, // range
+ 0xf0f0ffff, 0x2d53, 0x2d56, // range
+ 0xf0f0ffff, 0x2d59, 0x2d5c, // range
+ 0x2d5f,
+ 0xf0f0ffff, 0x2d61, 0x2d63, // range
+ 0x2d65,
+ 0x2d6f,
+};
+#define BER_MA_LANG_ORTH_SZ 32
diff --git a/crengine/src/locale_data/files/bg_orth.c b/crengine/src/locale_data/files/bg_orth.c
new file mode 100644
index 0000000000..1c5d12e505
--- /dev/null
+++ b/crengine/src/locale_data/files/bg_orth.c
@@ -0,0 +1,15 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int bg_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0410, 0x042a, // range
+ 0x042c,
+ 0xf0f0ffff, 0x042e, 0x042f, // range
+ 0xf0f0ffff, 0x0430, 0x044a, // range
+ 0x044c,
+ 0xf0f0ffff, 0x044e, 0x044f, // range
+};
+#define BG_LANG_ORTH_SZ 14
diff --git a/crengine/src/locale_data/files/bh_orth.c b/crengine/src/locale_data/files/bh_orth.c
new file mode 100644
index 0000000000..bf17631245
--- /dev/null
+++ b/crengine/src/locale_data/files/bh_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int bh_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define BH_LANG_ORTH_SZ 10
diff --git a/crengine/src/locale_data/files/bho_orth.c b/crengine/src/locale_data/files/bho_orth.c
new file mode 100644
index 0000000000..af894418f1
--- /dev/null
+++ b/crengine/src/locale_data/files/bho_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int bho_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define BHO_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/bi_orth.c b/crengine/src/locale_data/files/bi_orth.c
similarity index 58%
rename from crengine/fc-lang/files/bi_orth.c
rename to crengine/src/locale_data/files/bi_orth.c
index aac776a531..a4c08313b4 100644
--- a/crengine/fc-lang/files/bi_orth.c
+++ b/crengine/src/locale_data/files/bi_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int bi_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int bi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c9,
0x00e9,
0x00cf,
diff --git a/crengine/fc-lang/files/bin_orth.c b/crengine/src/locale_data/files/bin_orth.c
similarity index 70%
rename from crengine/fc-lang/files/bin_orth.c
rename to crengine/src/locale_data/files/bin_orth.c
index fd5a79b04f..400fb60342 100644
--- a/crengine/fc-lang/files/bin_orth.c
+++ b/crengine/src/locale_data/files/bin_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int bin_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int bin_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c1,
0x00c8,
diff --git a/crengine/fc-lang/files/bm_orth.c b/crengine/src/locale_data/files/bm_orth.c
similarity index 60%
rename from crengine/fc-lang/files/bm_orth.c
rename to crengine/src/locale_data/files/bm_orth.c
index c39e6fce7d..6a775404ca 100644
--- a/crengine/fc-lang/files/bm_orth.c
+++ b/crengine/src/locale_data/files/bm_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int bm_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int bm_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0190,
0x025b,
0x014a,
diff --git a/crengine/src/locale_data/files/bn_orth.c b/crengine/src/locale_data/files/bn_orth.c
new file mode 100644
index 0000000000..f8ffab2fb9
--- /dev/null
+++ b/crengine/src/locale_data/files/bn_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int bn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0981, 0x0983, // range
+ 0xf0f0ffff, 0x0985, 0x098c, // range
+ 0xf0f0ffff, 0x098f, 0x0990, // range
+ 0xf0f0ffff, 0x0993, 0x09a8, // range
+ 0xf0f0ffff, 0x09aa, 0x09b0, // range
+ 0x09b2,
+ 0xf0f0ffff, 0x09b6, 0x09b9, // range
+ 0x09bc,
+ 0xf0f0ffff, 0x09be, 0x09c4, // range
+ 0xf0f0ffff, 0x09c7, 0x09c8, // range
+ 0xf0f0ffff, 0x09cb, 0x09cd, // range
+ 0xf0f0ffff, 0x09dc, 0x09dd, // range
+ 0x09df,
+};
+#define BN_LANG_ORTH_SZ 33
diff --git a/crengine/src/locale_data/files/bo_orth.c b/crengine/src/locale_data/files/bo_orth.c
new file mode 100644
index 0000000000..10514f25fc
--- /dev/null
+++ b/crengine/src/locale_data/files/bo_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int bo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0f40, 0x0f47, // range
+ 0xf0f0ffff, 0x0f49, 0x0f69, // range
+ 0xf0f0ffff, 0x0f71, 0x0f76, // range
+ 0x0f78,
+ 0xf0f0ffff, 0x0f7a, 0x0f7d, // range
+ 0xf0f0ffff, 0x0f80, 0x0f81, // range
+ 0xf0f0ffff, 0x0f90, 0x0f97, // range
+ 0xf0f0ffff, 0x0f99, 0x0fb9, // range
+};
+#define BO_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/br_orth.c b/crengine/src/locale_data/files/br_orth.c
similarity index 62%
rename from crengine/fc-lang/files/br_orth.c
rename to crengine/src/locale_data/files/br_orth.c
index 522a21b4f7..43c37c678e 100644
--- a/crengine/fc-lang/files/br_orth.c
+++ b/crengine/src/locale_data/files/br_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int br_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int br_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00ca,
0x00d1,
diff --git a/crengine/src/locale_data/files/brx_orth.c b/crengine/src/locale_data/files/brx_orth.c
new file mode 100644
index 0000000000..40e9bd98d1
--- /dev/null
+++ b/crengine/src/locale_data/files/brx_orth.c
@@ -0,0 +1,25 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int brx_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0901, 0x0903, // range
+ 0xf0f0ffff, 0x0905, 0x090c, // range
+ 0xf0f0ffff, 0x090f, 0x0910, // range
+ 0xf0f0ffff, 0x0913, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0928, // range
+ 0xf0f0ffff, 0x092a, 0x0930, // range
+ 0xf0f0ffff, 0x0932, 0x0932, // range
+ 0xf0f0ffff, 0x0935, 0x0939, // range
+ 0xf0f0ffff, 0x093c, 0x0944, // range
+ 0xf0f0ffff, 0x0947, 0x0948, // range
+ 0xf0f0ffff, 0x094b, 0x094d, // range
+ 0xf0f0ffff, 0x0950, 0x0952, // range
+ 0xf0f0ffff, 0x0960, 0x0963, // range
+ 0xf0f0ffff, 0x0964, 0x0965, // range
+ 0xf0f0ffff, 0x0966, 0x096f, // range
+ 0x0970,
+};
+#define BRX_LANG_ORTH_SZ 46
diff --git a/crengine/fc-lang/files/bs_orth.c b/crengine/src/locale_data/files/bs_orth.c
similarity index 61%
rename from crengine/fc-lang/files/bs_orth.c
rename to crengine/src/locale_data/files/bs_orth.c
index 9e34ded64c..644cd3c945 100644
--- a/crengine/fc-lang/files/bs_orth.c
+++ b/crengine/src/locale_data/files/bs_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int bs_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int bs_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0106,
0x0107,
0x010c,
diff --git a/crengine/fc-lang/files/bua_orth.c b/crengine/src/locale_data/files/bua_orth.c
similarity index 87%
rename from crengine/fc-lang/files/bua_orth.c
rename to crengine/src/locale_data/files/bua_orth.c
index d9ac0616f3..728d0b62fe 100644
--- a/crengine/fc-lang/files/bua_orth.c
+++ b/crengine/src/locale_data/files/bua_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int bua_lang_orth_chars[] = {
+const unsigned int bua_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/byn_orth.c b/crengine/src/locale_data/files/byn_orth.c
new file mode 100644
index 0000000000..c9448d0712
--- /dev/null
+++ b/crengine/src/locale_data/files/byn_orth.c
@@ -0,0 +1,37 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int byn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1250, 0x1256, // range
+ 0x1258,
+ 0xf0f0ffff, 0x125a, 0x125d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0x12c0,
+ 0xf0f0ffff, 0x12c2, 0x12c5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+};
+#define BYN_LANG_ORTH_SZ 74
diff --git a/crengine/fc-lang/files/ca_orth.c b/crengine/src/locale_data/files/ca_orth.c
similarity index 68%
rename from crengine/fc-lang/files/ca_orth.c
rename to crengine/src/locale_data/files/ca_orth.c
index df52273339..127185d560 100644
--- a/crengine/fc-lang/files/ca_orth.c
+++ b/crengine/src/locale_data/files/ca_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ca_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ca_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c7,
0x00c8,
diff --git a/crengine/fc-lang/files/ce_orth.c b/crengine/src/locale_data/files/ce_orth.c
similarity index 87%
rename from crengine/fc-lang/files/ce_orth.c
rename to crengine/src/locale_data/files/ce_orth.c
index a67e343c23..bfe8bfff91 100644
--- a/crengine/fc-lang/files/ce_orth.c
+++ b/crengine/src/locale_data/files/ce_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ce_lang_orth_chars[] = {
+const unsigned int ce_lang_orth_chars[] = {
0x0401,
0x0406,
0x0410,
diff --git a/crengine/fc-lang/files/ch_orth.c b/crengine/src/locale_data/files/ch_orth.c
similarity index 58%
rename from crengine/fc-lang/files/ch_orth.c
rename to crengine/src/locale_data/files/ch_orth.c
index 407cc06da2..b9259f6f96 100644
--- a/crengine/fc-lang/files/ch_orth.c
+++ b/crengine/src/locale_data/files/ch_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ch_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ch_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00e2,
0x00d1,
diff --git a/crengine/fc-lang/files/chm_orth.c b/crengine/src/locale_data/files/chm_orth.c
similarity index 88%
rename from crengine/fc-lang/files/chm_orth.c
rename to crengine/src/locale_data/files/chm_orth.c
index de49836465..0847f8b942 100644
--- a/crengine/fc-lang/files/chm_orth.c
+++ b/crengine/src/locale_data/files/chm_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int chm_lang_orth_chars[] = {
+const unsigned int chm_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/fc-lang/files/chr_orth.c b/crengine/src/locale_data/files/chr_orth.c
similarity index 58%
rename from crengine/fc-lang/files/chr_orth.c
rename to crengine/src/locale_data/files/chr_orth.c
index 84bfa0861f..6d5f70e515 100644
--- a/crengine/fc-lang/files/chr_orth.c
+++ b/crengine/src/locale_data/files/chr_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int chr_lang_orth_chars[] = {
- 2, 0x13a0, 0x13f4, // range
+const unsigned int chr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x13a0, 0x13f4, // range
};
#define CHR_LANG_ORTH_SZ 3
diff --git a/crengine/fc-lang/files/co_orth.c b/crengine/src/locale_data/files/co_orth.c
similarity index 72%
rename from crengine/fc-lang/files/co_orth.c
rename to crengine/src/locale_data/files/co_orth.c
index 6e39d9c56b..7fca92ccb4 100644
--- a/crengine/fc-lang/files/co_orth.c
+++ b/crengine/src/locale_data/files/co_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int co_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int co_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c2,
0x00e0,
diff --git a/crengine/fc-lang/files/crh_orth.c b/crengine/src/locale_data/files/crh_orth.c
similarity index 50%
rename from crengine/fc-lang/files/crh_orth.c
rename to crengine/src/locale_data/files/crh_orth.c
index fb2e2f8ac9..6a6985c6ad 100644
--- a/crengine/fc-lang/files/crh_orth.c
+++ b/crengine/src/locale_data/files/crh_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int crh_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int crh_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00c7,
0x00d1,
@@ -17,8 +17,8 @@ unsigned int crh_lang_orth_chars[] = {
0x00f1,
0x00f6,
0x00fc,
- 2, 0x011e, 0x011f, // range
- 2, 0x0130, 0x0131, // range
- 2, 0x015e, 0x015f, // range
+ 0xf0f0ffff, 0x011e, 0x011f, // range
+ 0xf0f0ffff, 0x0130, 0x0131, // range
+ 0xf0f0ffff, 0x015e, 0x015f, // range
};
#define CRH_LANG_ORTH_SZ 25
diff --git a/crengine/fc-lang/files/cs_orth.c b/crengine/src/locale_data/files/cs_orth.c
similarity index 71%
rename from crengine/fc-lang/files/cs_orth.c
rename to crengine/src/locale_data/files/cs_orth.c
index c33556e294..d9399c52ed 100644
--- a/crengine/fc-lang/files/cs_orth.c
+++ b/crengine/src/locale_data/files/cs_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int cs_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int cs_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/src/locale_data/files/csb_orth.c b/crengine/src/locale_data/files/csb_orth.c
new file mode 100644
index 0000000000..0e6dc9f617
--- /dev/null
+++ b/crengine/src/locale_data/files/csb_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int csb_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c3,
+ 0x00c9,
+ 0x00cb,
+ 0xf0f0ffff, 0x00d2, 0x00d4, // range
+ 0x00d9,
+ 0x00e3,
+ 0x00e9,
+ 0x00eb,
+ 0xf0f0ffff, 0x00f2, 0x00f4, // range
+ 0x00f9,
+ 0xf0f0ffff, 0x0104, 0x0105, // range
+ 0xf0f0ffff, 0x0141, 0x0144, // range
+ 0xf0f0ffff, 0x017b, 0x017c, // range
+};
+#define CSB_LANG_ORTH_SZ 29
diff --git a/crengine/src/locale_data/files/cu_orth.c b/crengine/src/locale_data/files/cu_orth.c
new file mode 100644
index 0000000000..7fb347ff50
--- /dev/null
+++ b/crengine/src/locale_data/files/cu_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int cu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0401, 0x0402, // range
+ 0xf0f0ffff, 0x0405, 0x0406, // range
+ 0x0408,
+ 0x040b,
+ 0x040d,
+ 0xf0f0ffff, 0x040f, 0x0418, // range
+ 0xf0f0ffff, 0x041a, 0x042c, // range
+ 0xf0f0ffff, 0x042e, 0x044c, // range
+ 0xf0f0ffff, 0x044e, 0x0450, // range
+ 0x0452,
+ 0xf0f0ffff, 0x0455, 0x0456, // range
+ 0x0458,
+ 0x045b,
+ 0x045d,
+ 0xf0f0ffff, 0x045f, 0x0479, // range
+};
+#define CU_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/cv_orth.c b/crengine/src/locale_data/files/cv_orth.c
similarity index 88%
rename from crengine/fc-lang/files/cv_orth.c
rename to crengine/src/locale_data/files/cv_orth.c
index 6de8ceb07d..85a1f0f274 100644
--- a/crengine/fc-lang/files/cv_orth.c
+++ b/crengine/src/locale_data/files/cv_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int cv_lang_orth_chars[] = {
+const unsigned int cv_lang_orth_chars[] = {
0x04aa,
0x04ab,
0x0102,
diff --git a/crengine/fc-lang/files/cy_orth.c b/crengine/src/locale_data/files/cy_orth.c
similarity index 70%
rename from crengine/fc-lang/files/cy_orth.c
rename to crengine/src/locale_data/files/cy_orth.c
index 9722ff0dea..9f2d3e6f15 100644
--- a/crengine/fc-lang/files/cy_orth.c
+++ b/crengine/src/locale_data/files/cy_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int cy_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int cy_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00c9,
0x00ca,
diff --git a/crengine/fc-lang/files/da_orth.c b/crengine/src/locale_data/files/da_orth.c
similarity index 66%
rename from crengine/fc-lang/files/da_orth.c
rename to crengine/src/locale_data/files/da_orth.c
index ba04ccda39..1b32d82038 100644
--- a/crengine/fc-lang/files/da_orth.c
+++ b/crengine/src/locale_data/files/da_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int da_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int da_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c5,
0x00c6,
diff --git a/crengine/fc-lang/files/de_orth.c b/crengine/src/locale_data/files/de_orth.c
similarity index 59%
rename from crengine/fc-lang/files/de_orth.c
rename to crengine/src/locale_data/files/de_orth.c
index 5e4f549a3a..e530713512 100644
--- a/crengine/fc-lang/files/de_orth.c
+++ b/crengine/src/locale_data/files/de_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int de_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int de_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00d6,
0x00dc,
diff --git a/crengine/src/locale_data/files/doi_orth.c b/crengine/src/locale_data/files/doi_orth.c
new file mode 100644
index 0000000000..c8601b94ee
--- /dev/null
+++ b/crengine/src/locale_data/files/doi_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int doi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0902, 0x0903, // range
+ 0xf0f0ffff, 0x0905, 0x090c, // range
+ 0xf0f0ffff, 0x090f, 0x0910, // range
+ 0xf0f0ffff, 0x0913, 0x0928, // range
+ 0xf0f0ffff, 0x092a, 0x0930, // range
+ 0x0932,
+ 0xf0f0ffff, 0x0935, 0x0939, // range
+ 0xf0f0ffff, 0x093c, 0x0944, // range
+ 0xf0f0ffff, 0x0947, 0x0948, // range
+ 0xf0f0ffff, 0x094b, 0x094d, // range
+ 0xf0f0ffff, 0x0950, 0x0952, // range
+ 0xf0f0ffff, 0x095b, 0x096f, // range
+};
+#define DOI_LANG_ORTH_SZ 34
diff --git a/crengine/src/locale_data/files/dv_orth.c b/crengine/src/locale_data/files/dv_orth.c
new file mode 100644
index 0000000000..f55860451b
--- /dev/null
+++ b/crengine/src/locale_data/files/dv_orth.c
@@ -0,0 +1,12 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int dv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0780, 0x0797, // range
+ 0xf0f0ffff, 0x0798, 0x07a5, // range
+ 0xf0f0ffff, 0x07a6, 0x07b0, // range
+};
+#define DV_LANG_ORTH_SZ 9
diff --git a/crengine/src/locale_data/files/dz_orth.c b/crengine/src/locale_data/files/dz_orth.c
new file mode 100644
index 0000000000..20f5bf482f
--- /dev/null
+++ b/crengine/src/locale_data/files/dz_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int dz_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0f40, 0x0f47, // range
+ 0xf0f0ffff, 0x0f49, 0x0f69, // range
+ 0xf0f0ffff, 0x0f71, 0x0f76, // range
+ 0x0f78,
+ 0xf0f0ffff, 0x0f7a, 0x0f7d, // range
+ 0xf0f0ffff, 0x0f80, 0x0f81, // range
+ 0xf0f0ffff, 0x0f90, 0x0f97, // range
+ 0xf0f0ffff, 0x0f99, 0x0fb9, // range
+};
+#define DZ_LANG_ORTH_SZ 22
diff --git a/crengine/src/locale_data/files/ee_orth.c b/crengine/src/locale_data/files/ee_orth.c
new file mode 100644
index 0000000000..db7d4934ae
--- /dev/null
+++ b/crengine/src/locale_data/files/ee_orth.c
@@ -0,0 +1,36 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ee_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c0, 0x00c1, // range
+ 0xf0f0ffff, 0x00c8, 0x00c9, // range
+ 0xf0f0ffff, 0x00cc, 0x00cd, // range
+ 0xf0f0ffff, 0x00d2, 0x00d3, // range
+ 0xf0f0ffff, 0x00d9, 0x00da, // range
+ 0xf0f0ffff, 0x00e0, 0x00e1, // range
+ 0xf0f0ffff, 0x00e8, 0x00e9, // range
+ 0xf0f0ffff, 0x00ec, 0x00ed, // range
+ 0xf0f0ffff, 0x00f2, 0x00f3, // range
+ 0xf0f0ffff, 0x00f9, 0x00fa, // range
+ 0xf0f0ffff, 0x011a, 0x011b, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
+ 0x0186,
+ 0x0189,
+ 0xf0f0ffff, 0x0190, 0x0192, // range
+ 0x0194,
+ 0x01b2,
+ 0xf0f0ffff, 0x01cd, 0x01d4, // range
+ 0x0254,
+ 0x0256,
+ 0x025b,
+ 0x0263,
+ 0x028b,
+ 0xf0f0ffff, 0x0300, 0x0301, // range
+ 0x030c,
+};
+#define EE_LANG_ORTH_SZ 61
diff --git a/crengine/fc-lang/files/el_orth.c b/crengine/src/locale_data/files/el_orth.c
similarity index 50%
rename from crengine/fc-lang/files/el_orth.c
rename to crengine/src/locale_data/files/el_orth.c
index df621c78d0..7e1668c9d7 100644
--- a/crengine/fc-lang/files/el_orth.c
+++ b/crengine/src/locale_data/files/el_orth.c
@@ -2,13 +2,13 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int el_lang_orth_chars[] = {
+const unsigned int el_lang_orth_chars[] = {
0x0386,
- 2, 0x0388, 0x038a, // range
+ 0xf0f0ffff, 0x0388, 0x038a, // range
0x038c,
- 2, 0x038e, 0x03a1, // range
- 2, 0x03a3, 0x03ce, // range
+ 0xf0f0ffff, 0x038e, 0x03a1, // range
+ 0xf0f0ffff, 0x03a3, 0x03ce, // range
};
#define EL_LANG_ORTH_SZ 11
diff --git a/crengine/fc-lang/files/en_orth.c b/crengine/src/locale_data/files/en_orth.c
similarity index 53%
rename from crengine/fc-lang/files/en_orth.c
rename to crengine/src/locale_data/files/en_orth.c
index ad4108dea2..3a8d081c8f 100644
--- a/crengine/fc-lang/files/en_orth.c
+++ b/crengine/src/locale_data/files/en_orth.c
@@ -2,19 +2,19 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int en_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int en_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
- 2, 0x00c7, 0x00cb, // range
+ 0xf0f0ffff, 0x00c7, 0x00cb, // range
0x00cf,
0x00d1,
0x00d4,
0x00d6,
0x00e0,
- 2, 0x00e7, 0x00eb, // range
+ 0xf0f0ffff, 0x00e7, 0x00eb, // range
0x00ef,
0x00f1,
0x00f4,
diff --git a/crengine/src/locale_data/files/eo_orth.c b/crengine/src/locale_data/files/eo_orth.c
new file mode 100644
index 0000000000..93d397cff6
--- /dev/null
+++ b/crengine/src/locale_data/files/eo_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int eo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0108, 0x0109, // range
+ 0xf0f0ffff, 0x011c, 0x011d, // range
+ 0xf0f0ffff, 0x0124, 0x0125, // range
+ 0xf0f0ffff, 0x0134, 0x0135, // range
+ 0xf0f0ffff, 0x015c, 0x015d, // range
+ 0xf0f0ffff, 0x016c, 0x016d, // range
+};
+#define EO_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/es_orth.c b/crengine/src/locale_data/files/es_orth.c
similarity index 64%
rename from crengine/fc-lang/files/es_orth.c
rename to crengine/src/locale_data/files/es_orth.c
index ce9c9dbf86..254672a15e 100644
--- a/crengine/fc-lang/files/es_orth.c
+++ b/crengine/src/locale_data/files/es_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int es_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int es_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/fc-lang/files/et_orth.c b/crengine/src/locale_data/files/et_orth.c
similarity index 62%
rename from crengine/fc-lang/files/et_orth.c
rename to crengine/src/locale_data/files/et_orth.c
index 4b7e044387..8cba7de9fc 100644
--- a/crengine/fc-lang/files/et_orth.c
+++ b/crengine/src/locale_data/files/et_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int et_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int et_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00d5,
0x00d6,
diff --git a/crengine/fc-lang/files/eu_orth.c b/crengine/src/locale_data/files/eu_orth.c
similarity index 56%
rename from crengine/fc-lang/files/eu_orth.c
rename to crengine/src/locale_data/files/eu_orth.c
index 72a5cd6de0..20a8d5433f 100644
--- a/crengine/fc-lang/files/eu_orth.c
+++ b/crengine/src/locale_data/files/eu_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int eu_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int eu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00d1,
0x00dc,
0x00f1,
diff --git a/crengine/src/locale_data/files/fa_orth.c b/crengine/src/locale_data/files/fa_orth.c
new file mode 100644
index 0000000000..adb9185bc4
--- /dev/null
+++ b/crengine/src/locale_data/files/fa_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int fa_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x0629,
+ 0xf0f0ffff, 0x062a, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x064b,
+ 0x0654,
+ 0x067e,
+ 0x0686,
+ 0x0698,
+ 0x06a9,
+ 0x06af,
+ 0x06cc,
+};
+#define FA_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/fat_orth.c b/crengine/src/locale_data/files/fat_orth.c
similarity index 67%
rename from crengine/fc-lang/files/fat_orth.c
rename to crengine/src/locale_data/files/fat_orth.c
index 57dac9d323..c33dc5a856 100644
--- a/crengine/fc-lang/files/fat_orth.c
+++ b/crengine/src/locale_data/files/fat_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fat_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fat_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c3,
0x00e3,
0x00d1,
diff --git a/crengine/fc-lang/files/ff_orth.c b/crengine/src/locale_data/files/ff_orth.c
similarity index 55%
rename from crengine/fc-lang/files/ff_orth.c
rename to crengine/src/locale_data/files/ff_orth.c
index 603c21c68e..529e4a8ac1 100644
--- a/crengine/fc-lang/files/ff_orth.c
+++ b/crengine/src/locale_data/files/ff_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ff_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ff_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0181,
0x0253,
0x018a,
@@ -15,6 +15,6 @@ unsigned int ff_lang_orth_chars[] = {
0x014b,
0x019d,
0x0272,
- 2, 0x01b3, 0x01b4, // range
+ 0xf0f0ffff, 0x01b3, 0x01b4, // range
};
#define FF_LANG_ORTH_SZ 17
diff --git a/crengine/fc-lang/files/fi_orth.c b/crengine/src/locale_data/files/fi_orth.c
similarity index 61%
rename from crengine/fc-lang/files/fi_orth.c
rename to crengine/src/locale_data/files/fi_orth.c
index 3d511f58a6..702f9f2e7e 100644
--- a/crengine/fc-lang/files/fi_orth.c
+++ b/crengine/src/locale_data/files/fi_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fi_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00c5,
0x00d6,
diff --git a/crengine/src/locale_data/files/fil_orth.c b/crengine/src/locale_data/files/fil_orth.c
new file mode 100644
index 0000000000..7fa8db6a73
--- /dev/null
+++ b/crengine/src/locale_data/files/fil_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int fil_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c0, 0x00c2, // range
+ 0xf0f0ffff, 0x00c8, 0x00ca, // range
+ 0xf0f0ffff, 0x00cc, 0x00ce, // range
+ 0xf0f0ffff, 0x00d1, 0x00d4, // range
+ 0xf0f0ffff, 0x00d9, 0x00db, // range
+ 0xf0f0ffff, 0x00e0, 0x00e2, // range
+ 0xf0f0ffff, 0x00e8, 0x00ea, // range
+ 0xf0f0ffff, 0x00ec, 0x00ee, // range
+ 0xf0f0ffff, 0x00f1, 0x00f4, // range
+ 0xf0f0ffff, 0x00f9, 0x00fb, // range
+};
+#define FIL_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/fj_orth.c b/crengine/src/locale_data/files/fj_orth.c
similarity index 52%
rename from crengine/fc-lang/files/fj_orth.c
rename to crengine/src/locale_data/files/fj_orth.c
index 40f379a8c6..9a55fc60f1 100644
--- a/crengine/fc-lang/files/fj_orth.c
+++ b/crengine/src/locale_data/files/fj_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fj_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fj_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define FJ_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/fo_orth.c b/crengine/src/locale_data/files/fo_orth.c
similarity index 65%
rename from crengine/fc-lang/files/fo_orth.c
rename to crengine/src/locale_data/files/fo_orth.c
index 3e7f24e3e7..34e3bd1601 100644
--- a/crengine/fc-lang/files/fo_orth.c
+++ b/crengine/src/locale_data/files/fo_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fo_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c6,
0x00cd,
diff --git a/crengine/fc-lang/files/fr_orth.c b/crengine/src/locale_data/files/fr_orth.c
similarity index 72%
rename from crengine/fc-lang/files/fr_orth.c
rename to crengine/src/locale_data/files/fr_orth.c
index a4e6c30204..3a9fc0c923 100644
--- a/crengine/fc-lang/files/fr_orth.c
+++ b/crengine/src/locale_data/files/fr_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c2,
0x00e0,
diff --git a/crengine/fc-lang/files/fur_orth.c b/crengine/src/locale_data/files/fur_orth.c
similarity index 51%
rename from crengine/fc-lang/files/fur_orth.c
rename to crengine/src/locale_data/files/fur_orth.c
index 1d8205d37d..1c78461dc1 100644
--- a/crengine/fc-lang/files/fur_orth.c
+++ b/crengine/src/locale_data/files/fur_orth.c
@@ -2,17 +2,17 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fur_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
- 2, 0x00c0, 0x00c2, // range
+const unsigned int fur_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c0, 0x00c2, // range
0x00c8,
0x00cc,
0x00d2,
0x00d9,
- 2, 0x00e0, 0x00e2, // range
+ 0xf0f0ffff, 0x00e0, 0x00e2, // range
0x00e8,
0x00ec,
0x00f2,
diff --git a/crengine/fc-lang/files/fy_orth.c b/crengine/src/locale_data/files/fy_orth.c
similarity index 68%
rename from crengine/fc-lang/files/fy_orth.c
rename to crengine/src/locale_data/files/fy_orth.c
index a0cc138bd4..7ca60aac58 100644
--- a/crengine/fc-lang/files/fy_orth.c
+++ b/crengine/src/locale_data/files/fy_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int fy_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int fy_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00c4,
0x00c9,
diff --git a/crengine/fc-lang/files/ga_orth.c b/crengine/src/locale_data/files/ga_orth.c
similarity index 70%
rename from crengine/fc-lang/files/ga_orth.c
rename to crengine/src/locale_data/files/ga_orth.c
index a4add10b52..7e2b844467 100644
--- a/crengine/fc-lang/files/ga_orth.c
+++ b/crengine/src/locale_data/files/ga_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ga_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ga_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/fc-lang/files/gd_orth.c b/crengine/src/locale_data/files/gd_orth.c
similarity index 66%
rename from crengine/fc-lang/files/gd_orth.c
rename to crengine/src/locale_data/files/gd_orth.c
index a3d88faa59..536f9f172d 100644
--- a/crengine/fc-lang/files/gd_orth.c
+++ b/crengine/src/locale_data/files/gd_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int gd_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int gd_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c1,
0x00c7,
diff --git a/crengine/src/locale_data/files/gez_orth.c b/crengine/src/locale_data/files/gez_orth.c
new file mode 100644
index 0000000000..4fbe0f766e
--- /dev/null
+++ b/crengine/src/locale_data/files/gez_orth.c
@@ -0,0 +1,37 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int gez_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x1226, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1260, 0x1267, // range
+ 0xf0f0ffff, 0x1270, 0x1277, // range
+ 0xf0f0ffff, 0x1280, 0x1286, // range
+ 0x1288,
+ 0xf0f0ffff, 0x128a, 0x128d, // range
+ 0xf0f0ffff, 0x1290, 0x1297, // range
+ 0xf0f0ffff, 0x12a0, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12df, // range
+ 0xf0f0ffff, 0x12e8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1308, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x1328, // range
+ 0xf0f0ffff, 0x1330, 0x1346, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+};
+#define GEZ_LANG_ORTH_SZ 76
diff --git a/crengine/fc-lang/files/gl_orth.c b/crengine/src/locale_data/files/gl_orth.c
similarity index 64%
rename from crengine/fc-lang/files/gl_orth.c
rename to crengine/src/locale_data/files/gl_orth.c
index ac6944e3c1..7132f5c7df 100644
--- a/crengine/fc-lang/files/gl_orth.c
+++ b/crengine/src/locale_data/files/gl_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int gl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int gl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
diff --git a/crengine/fc-lang/files/gn_orth.c b/crengine/src/locale_data/files/gn_orth.c
similarity index 66%
rename from crengine/fc-lang/files/gn_orth.c
rename to crengine/src/locale_data/files/gn_orth.c
index 9ccb857fad..31be19f14f 100644
--- a/crengine/fc-lang/files/gn_orth.c
+++ b/crengine/src/locale_data/files/gn_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int gn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int gn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00e1,
0x00e3,
diff --git a/crengine/src/locale_data/files/gu_orth.c b/crengine/src/locale_data/files/gu_orth.c
new file mode 100644
index 0000000000..0c4ceefabc
--- /dev/null
+++ b/crengine/src/locale_data/files/gu_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int gu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0a81, 0x0a83, // range
+ 0xf0f0ffff, 0x0a85, 0x0a8b, // range
+ 0x0a8d,
+ 0xf0f0ffff, 0x0a8f, 0x0a91, // range
+ 0xf0f0ffff, 0x0a93, 0x0aa8, // range
+ 0xf0f0ffff, 0x0aaa, 0x0ab0, // range
+ 0xf0f0ffff, 0x0ab2, 0x0ab3, // range
+ 0xf0f0ffff, 0x0ab5, 0x0ab9, // range
+ 0xf0f0ffff, 0x0abc, 0x0ac5, // range
+ 0xf0f0ffff, 0x0ac7, 0x0ac9, // range
+ 0xf0f0ffff, 0x0acb, 0x0acd, // range
+ 0x0ad0,
+ 0x0ae0,
+};
+#define GU_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/gv_orth.c b/crengine/src/locale_data/files/gv_orth.c
similarity index 54%
rename from crengine/fc-lang/files/gv_orth.c
rename to crengine/src/locale_data/files/gv_orth.c
index 03362be4c7..7a8f95162d 100644
--- a/crengine/fc-lang/files/gv_orth.c
+++ b/crengine/src/locale_data/files/gv_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int gv_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int gv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c7,
0x00e7,
};
diff --git a/crengine/fc-lang/files/ha_orth.c b/crengine/src/locale_data/files/ha_orth.c
similarity index 54%
rename from crengine/fc-lang/files/ha_orth.c
rename to crengine/src/locale_data/files/ha_orth.c
index 901667c017..26e4aa2541 100644
--- a/crengine/fc-lang/files/ha_orth.c
+++ b/crengine/src/locale_data/files/ha_orth.c
@@ -2,16 +2,16 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ha_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ha_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0181,
0x0253,
0x018a,
0x0257,
- 2, 0x0198, 0x0199, // range
+ 0xf0f0ffff, 0x0198, 0x0199, // range
0x01b3,
0x01b4,
};
diff --git a/crengine/src/locale_data/files/haw_orth.c b/crengine/src/locale_data/files/haw_orth.c
new file mode 100644
index 0000000000..bb14190bea
--- /dev/null
+++ b/crengine/src/locale_data/files/haw_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int haw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x012a, 0x012b, // range
+ 0xf0f0ffff, 0x014c, 0x014d, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0x02bb,
+};
+#define HAW_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/he_orth.c b/crengine/src/locale_data/files/he_orth.c
similarity index 58%
rename from crengine/fc-lang/files/he_orth.c
rename to crengine/src/locale_data/files/he_orth.c
index 5cdf56dcd9..9811ae13e8 100644
--- a/crengine/fc-lang/files/he_orth.c
+++ b/crengine/src/locale_data/files/he_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int he_lang_orth_chars[] = {
- 2, 0x05d0, 0x05ea, // range
+const unsigned int he_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x05d0, 0x05ea, // range
};
#define HE_LANG_ORTH_SZ 3
diff --git a/crengine/src/locale_data/files/hi_orth.c b/crengine/src/locale_data/files/hi_orth.c
new file mode 100644
index 0000000000..ac72ee6cef
--- /dev/null
+++ b/crengine/src/locale_data/files/hi_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int hi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define HI_LANG_ORTH_SZ 10
diff --git a/crengine/src/locale_data/files/hne_orth.c b/crengine/src/locale_data/files/hne_orth.c
new file mode 100644
index 0000000000..016167631c
--- /dev/null
+++ b/crengine/src/locale_data/files/hne_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int hne_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define HNE_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/ho_orth.c b/crengine/src/locale_data/files/ho_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ho_orth.c
rename to crengine/src/locale_data/files/ho_orth.c
index 900191f20c..eb02672402 100644
--- a/crengine/fc-lang/files/ho_orth.c
+++ b/crengine/src/locale_data/files/ho_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ho_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ho_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define HO_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/hr_orth.c b/crengine/src/locale_data/files/hr_orth.c
new file mode 100644
index 0000000000..f0cdf2ff2e
--- /dev/null
+++ b/crengine/src/locale_data/files/hr_orth.c
@@ -0,0 +1,16 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int hr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0106, 0x0107, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define HR_LANG_ORTH_SZ 21
diff --git a/crengine/src/locale_data/files/hsb_orth.c b/crengine/src/locale_data/files/hsb_orth.c
new file mode 100644
index 0000000000..9ced5c3593
--- /dev/null
+++ b/crengine/src/locale_data/files/hsb_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int hsb_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00d3,
+ 0x00f3,
+ 0xf0f0ffff, 0x0106, 0x0107, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x011a, 0x011b, // range
+ 0xf0f0ffff, 0x0141, 0x0144, // range
+ 0xf0f0ffff, 0x0158, 0x0159, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0179, 0x017a, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define HSB_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/ht_orth.c b/crengine/src/locale_data/files/ht_orth.c
similarity index 56%
rename from crengine/fc-lang/files/ht_orth.c
rename to crengine/src/locale_data/files/ht_orth.c
index 49f291de4b..d20e300da3 100644
--- a/crengine/fc-lang/files/ht_orth.c
+++ b/crengine/src/locale_data/files/ht_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ht_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ht_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c8,
0x00d2,
0x00e8,
diff --git a/crengine/fc-lang/files/hu_orth.c b/crengine/src/locale_data/files/hu_orth.c
similarity index 56%
rename from crengine/fc-lang/files/hu_orth.c
rename to crengine/src/locale_data/files/hu_orth.c
index 5cb18ef7fa..f80e3b46ed 100644
--- a/crengine/fc-lang/files/hu_orth.c
+++ b/crengine/src/locale_data/files/hu_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int hu_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int hu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c9,
0x00cd,
@@ -21,7 +21,7 @@ unsigned int hu_lang_orth_chars[] = {
0x00f6,
0x00fa,
0x00fc,
- 2, 0x0150, 0x0151, // range
- 2, 0x0170, 0x0171, // range
+ 0xf0f0ffff, 0x0150, 0x0151, // range
+ 0xf0f0ffff, 0x0170, 0x0171, // range
};
#define HU_LANG_ORTH_SZ 26
diff --git a/crengine/fc-lang/files/hy_orth.c b/crengine/src/locale_data/files/hy_orth.c
similarity index 52%
rename from crengine/fc-lang/files/hy_orth.c
rename to crengine/src/locale_data/files/hy_orth.c
index b31b3cc53e..6ef3caeee4 100644
--- a/crengine/fc-lang/files/hy_orth.c
+++ b/crengine/src/locale_data/files/hy_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int hy_lang_orth_chars[] = {
- 2, 0x0531, 0x0556, // range
- 2, 0x0561, 0x0587, // range
+const unsigned int hy_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0531, 0x0556, // range
+ 0xf0f0ffff, 0x0561, 0x0587, // range
};
#define HY_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/hz_orth.c b/crengine/src/locale_data/files/hz_orth.c
new file mode 100644
index 0000000000..1520a0aaaa
--- /dev/null
+++ b/crengine/src/locale_data/files/hz_orth.c
@@ -0,0 +1,14 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int hz_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x032f,
+ 0xf0f0ffff, 0x1e12, 0x1e13, // range
+ 0xf0f0ffff, 0x1e4a, 0x1e4b, // range
+};
+#define HZ_LANG_ORTH_SZ 13
diff --git a/crengine/fc-lang/files/ia_orth.c b/crengine/src/locale_data/files/ia_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ia_orth.c
rename to crengine/src/locale_data/files/ia_orth.c
index 451914e5b4..0fd0cdd067 100644
--- a/crengine/fc-lang/files/ia_orth.c
+++ b/crengine/src/locale_data/files/ia_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ia_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ia_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define IA_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/id_orth.c b/crengine/src/locale_data/files/id_orth.c
similarity index 54%
rename from crengine/fc-lang/files/id_orth.c
rename to crengine/src/locale_data/files/id_orth.c
index bc6872c127..52887833b4 100644
--- a/crengine/fc-lang/files/id_orth.c
+++ b/crengine/src/locale_data/files/id_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int id_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int id_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c9,
0x00e9,
};
diff --git a/crengine/src/locale_data/files/ie_orth.c b/crengine/src/locale_data/files/ie_orth.c
new file mode 100644
index 0000000000..05a082e05e
--- /dev/null
+++ b/crengine/src/locale_data/files/ie_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ie_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0x00c9,
+ 0x00cd,
+ 0x00d3,
+ 0x00da,
+ 0x00dd,
+ 0x00e1,
+ 0x00e9,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00fd,
+};
+#define IE_LANG_ORTH_SZ 18
diff --git a/crengine/fc-lang/files/ig_orth.c b/crengine/src/locale_data/files/ig_orth.c
similarity index 58%
rename from crengine/fc-lang/files/ig_orth.c
rename to crengine/src/locale_data/files/ig_orth.c
index cfa953765f..1f1c4362a9 100644
--- a/crengine/fc-lang/files/ig_orth.c
+++ b/crengine/src/locale_data/files/ig_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ig_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ig_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x1eca,
0x1ecb,
0x1ecc,
diff --git a/crengine/fc-lang/files/ii_orth.c b/crengine/src/locale_data/files/ii_orth.c
similarity index 58%
rename from crengine/fc-lang/files/ii_orth.c
rename to crengine/src/locale_data/files/ii_orth.c
index b322b6eaf4..0d6bd36be8 100644
--- a/crengine/fc-lang/files/ii_orth.c
+++ b/crengine/src/locale_data/files/ii_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ii_lang_orth_chars[] = {
- 2, 0xa000, 0xa48c, // range
+const unsigned int ii_lang_orth_chars[] = {
+ 0xf0f0ffff, 0xa000, 0xa48c, // range
};
#define II_LANG_ORTH_SZ 3
diff --git a/crengine/fc-lang/files/ik_orth.c b/crengine/src/locale_data/files/ik_orth.c
similarity index 87%
rename from crengine/fc-lang/files/ik_orth.c
rename to crengine/src/locale_data/files/ik_orth.c
index b0fb26bf7e..79a08a8216 100644
--- a/crengine/fc-lang/files/ik_orth.c
+++ b/crengine/src/locale_data/files/ik_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ik_lang_orth_chars[] = {
+const unsigned int ik_lang_orth_chars[] = {
0x0401,
0x040e,
0x0410,
diff --git a/crengine/fc-lang/files/io_orth.c b/crengine/src/locale_data/files/io_orth.c
similarity index 52%
rename from crengine/fc-lang/files/io_orth.c
rename to crengine/src/locale_data/files/io_orth.c
index 623a20515b..326b10ef81 100644
--- a/crengine/fc-lang/files/io_orth.c
+++ b/crengine/src/locale_data/files/io_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int io_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int io_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define IO_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/is_orth.c b/crengine/src/locale_data/files/is_orth.c
similarity index 66%
rename from crengine/fc-lang/files/is_orth.c
rename to crengine/src/locale_data/files/is_orth.c
index f2e08c8ed3..b447a599fa 100644
--- a/crengine/fc-lang/files/is_orth.c
+++ b/crengine/src/locale_data/files/is_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int is_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int is_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c6,
0x00c9,
diff --git a/crengine/src/locale_data/files/it_orth.c b/crengine/src/locale_data/files/it_orth.c
new file mode 100644
index 0000000000..d39c772765
--- /dev/null
+++ b/crengine/src/locale_data/files/it_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int it_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c0,
+ 0xf0f0ffff, 0x00c8, 0x00c9, // range
+ 0x00cc,
+ 0x00cd,
+ 0x00cf,
+ 0xf0f0ffff, 0x00d2, 0x00d3, // range
+ 0x00d9,
+ 0x00da,
+ 0x00e0,
+ 0xf0f0ffff, 0x00e8, 0x00e9, // range
+ 0x00ec,
+ 0x00ed,
+ 0x00ef,
+ 0xf0f0ffff, 0x00f2, 0x00f3, // range
+ 0x00f9,
+ 0x00fa,
+};
+#define IT_LANG_ORTH_SZ 30
diff --git a/crengine/src/locale_data/files/iu_orth.c b/crengine/src/locale_data/files/iu_orth.c
new file mode 100644
index 0000000000..79569c5200
--- /dev/null
+++ b/crengine/src/locale_data/files/iu_orth.c
@@ -0,0 +1,57 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int iu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1401, 0x1406, // range
+ 0xf0f0ffff, 0x140a, 0x140b, // range
+ 0xf0f0ffff, 0x142f, 0x1434, // range
+ 0xf0f0ffff, 0x1438, 0x1439, // range
+ 0x1449,
+ 0xf0f0ffff, 0x144c, 0x1451, // range
+ 0xf0f0ffff, 0x1455, 0x1456, // range
+ 0x1466,
+ 0xf0f0ffff, 0x146b, 0x1470, // range
+ 0xf0f0ffff, 0x1472, 0x1473, // range
+ 0x1483,
+ 0xf0f0ffff, 0x1489, 0x148e, // range
+ 0xf0f0ffff, 0x1490, 0x1491, // range
+ 0x14a1,
+ 0xf0f0ffff, 0x14a3, 0x14a8, // range
+ 0xf0f0ffff, 0x14aa, 0x14ab, // range
+ 0x14bb,
+ 0xf0f0ffff, 0x14c0, 0x14c5, // range
+ 0xf0f0ffff, 0x14c7, 0x14c8, // range
+ 0x14d0,
+ 0xf0f0ffff, 0x14d3, 0x14d8, // range
+ 0xf0f0ffff, 0x14da, 0x14db, // range
+ 0x14ea,
+ 0xf0f0ffff, 0x14ed, 0x14f2, // range
+ 0xf0f0ffff, 0x14f4, 0x14f5, // range
+ 0x14fa,
+ 0x14fc,
+ 0x14fe,
+ 0x1500,
+ 0x1502,
+ 0x1505,
+ 0xf0f0ffff, 0x1526, 0x152b, // range
+ 0xf0f0ffff, 0x152d, 0x152e, // range
+ 0x153e,
+ 0x1542,
+ 0xf0f0ffff, 0x1545, 0x1549, // range
+ 0xf0f0ffff, 0x154b, 0x154c, // range
+ 0x1550,
+ 0xf0f0ffff, 0x1553, 0x155a, // range
+ 0x155d,
+ 0xf0f0ffff, 0x1575, 0x1577, // range
+ 0xf0f0ffff, 0x1579, 0x157c, // range
+ 0xf0f0ffff, 0x157e, 0x1585, // range
+ 0xf0f0ffff, 0x158b, 0x1596, // range
+ 0xf0f0ffff, 0x15a0, 0x15a6, // range
+ 0xf0f0ffff, 0x15a8, 0x15ae, // range
+ 0x166f,
+ 0xf0f0ffff, 0x1670, 0x1676, // range
+};
+#define IU_LANG_ORTH_SZ 108
diff --git a/crengine/fc-lang/files/ja_orth.c b/crengine/src/locale_data/files/ja_orth.c
similarity index 99%
rename from crengine/fc-lang/files/ja_orth.c
rename to crengine/src/locale_data/files/ja_orth.c
index a66f79f629..57390ef71c 100644
--- a/crengine/fc-lang/files/ja_orth.c
+++ b/crengine/src/locale_data/files/ja_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ja_lang_orth_chars[] = {
+const unsigned int ja_lang_orth_chars[] = {
0x3000,
0x3001,
0x3002,
diff --git a/crengine/src/locale_data/files/jv_orth.c b/crengine/src/locale_data/files/jv_orth.c
new file mode 100644
index 0000000000..31c5ad3a28
--- /dev/null
+++ b/crengine/src/locale_data/files/jv_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int jv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c8, 0x00c9, // range
+ 0xf0f0ffff, 0x00e8, 0x00e9, // range
+};
+#define JV_LANG_ORTH_SZ 12
diff --git a/crengine/fc-lang/files/ka_orth.c b/crengine/src/locale_data/files/ka_orth.c
similarity index 58%
rename from crengine/fc-lang/files/ka_orth.c
rename to crengine/src/locale_data/files/ka_orth.c
index 907c48fd65..1618c071d7 100644
--- a/crengine/fc-lang/files/ka_orth.c
+++ b/crengine/src/locale_data/files/ka_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ka_lang_orth_chars[] = {
- 2, 0x10d0, 0x10f0, // range
+const unsigned int ka_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x10d0, 0x10f0, // range
};
#define KA_LANG_ORTH_SZ 3
diff --git a/crengine/fc-lang/files/kaa_orth.c b/crengine/src/locale_data/files/kaa_orth.c
similarity index 88%
rename from crengine/fc-lang/files/kaa_orth.c
rename to crengine/src/locale_data/files/kaa_orth.c
index 91c024f3c8..f992358b6d 100644
--- a/crengine/fc-lang/files/kaa_orth.c
+++ b/crengine/src/locale_data/files/kaa_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kaa_lang_orth_chars[] = {
+const unsigned int kaa_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/kab_orth.c b/crengine/src/locale_data/files/kab_orth.c
new file mode 100644
index 0000000000..2fec5eeec8
--- /dev/null
+++ b/crengine/src/locale_data/files/kab_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int kab_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0x0190,
+ 0x0194,
+ 0xf0f0ffff, 0x01e6, 0x01e7, // range
+ 0x025b,
+ 0x0263,
+ 0xf0f0ffff, 0x1e0c, 0x1e0d, // range
+ 0xf0f0ffff, 0x1e24, 0x1e25, // range
+ 0xf0f0ffff, 0x1e62, 0x1e63, // range
+ 0xf0f0ffff, 0x1e6c, 0x1e6d, // range
+ 0xf0f0ffff, 0x1e92, 0x1e93, // range
+};
+#define KAB_LANG_ORTH_SZ 31
diff --git a/crengine/fc-lang/files/ki_orth.c b/crengine/src/locale_data/files/ki_orth.c
similarity index 56%
rename from crengine/fc-lang/files/ki_orth.c
rename to crengine/src/locale_data/files/ki_orth.c
index 626e54b37f..d39b254056 100644
--- a/crengine/fc-lang/files/ki_orth.c
+++ b/crengine/src/locale_data/files/ki_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ki_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ki_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0128,
0x0129,
0x0168,
diff --git a/crengine/fc-lang/files/kj_orth.c b/crengine/src/locale_data/files/kj_orth.c
similarity index 52%
rename from crengine/fc-lang/files/kj_orth.c
rename to crengine/src/locale_data/files/kj_orth.c
index 8dd866027b..b69fd5156f 100644
--- a/crengine/fc-lang/files/kj_orth.c
+++ b/crengine/src/locale_data/files/kj_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kj_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int kj_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define KJ_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/kk_orth.c b/crengine/src/locale_data/files/kk_orth.c
new file mode 100644
index 0000000000..a51e36b501
--- /dev/null
+++ b/crengine/src/locale_data/files/kk_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int kk_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0410, 0x044f, // range
+ 0x0456,
+ 0xf0f0ffff, 0x0492, 0x0493, // range
+ 0xf0f0ffff, 0x049a, 0x049b, // range
+ 0xf0f0ffff, 0x04a2, 0x04a3, // range
+ 0xf0f0ffff, 0x04ba, 0x04bb, // range
+ 0xf0f0ffff, 0x04d8, 0x04d9, // range
+ 0xf0f0ffff, 0x04e8, 0x04e9, // range
+};
+#define KK_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/kl_orth.c b/crengine/src/locale_data/files/kl_orth.c
similarity index 62%
rename from crengine/fc-lang/files/kl_orth.c
rename to crengine/src/locale_data/files/kl_orth.c
index 7d5843d8b0..6e15945465 100644
--- a/crengine/fc-lang/files/kl_orth.c
+++ b/crengine/src/locale_data/files/kl_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int kl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c2,
0x00c3,
@@ -31,8 +31,8 @@ unsigned int kl_lang_orth_chars[] = {
0x00f8,
0x00fa,
0x00fb,
- 2, 0x0128, 0x0129, // range
+ 0xf0f0ffff, 0x0128, 0x0129, // range
0x0138,
- 2, 0x0168, 0x0169, // range
+ 0xf0f0ffff, 0x0168, 0x0169, // range
};
#define KL_LANG_ORTH_SZ 37
diff --git a/crengine/src/locale_data/files/km_orth.c b/crengine/src/locale_data/files/km_orth.c
new file mode 100644
index 0000000000..ae8d46c19d
--- /dev/null
+++ b/crengine/src/locale_data/files/km_orth.c
@@ -0,0 +1,14 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int km_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1780, 0x179c, // range
+ 0xf0f0ffff, 0x179f, 0x17a2, // range
+ 0xf0f0ffff, 0x17a5, 0x17a7, // range
+ 0xf0f0ffff, 0x17a9, 0x17b3, // range
+ 0xf0f0ffff, 0x17b6, 0x17c5, // range
+};
+#define KM_LANG_ORTH_SZ 15
diff --git a/crengine/src/locale_data/files/kn_orth.c b/crengine/src/locale_data/files/kn_orth.c
new file mode 100644
index 0000000000..f82c0b0b68
--- /dev/null
+++ b/crengine/src/locale_data/files/kn_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int kn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0c82, 0x0c83, // range
+ 0xf0f0ffff, 0x0c85, 0x0c8c, // range
+ 0xf0f0ffff, 0x0c8e, 0x0c90, // range
+ 0xf0f0ffff, 0x0c92, 0x0ca8, // range
+ 0xf0f0ffff, 0x0caa, 0x0cb3, // range
+ 0xf0f0ffff, 0x0cb5, 0x0cb9, // range
+ 0xf0f0ffff, 0x0cbe, 0x0cc4, // range
+ 0xf0f0ffff, 0x0cc6, 0x0cc8, // range
+ 0xf0f0ffff, 0x0cca, 0x0ccd, // range
+ 0xf0f0ffff, 0x0cd5, 0x0cd6, // range
+ 0x0cde,
+ 0xf0f0ffff, 0x0ce0, 0x0ce1, // range
+};
+#define KN_LANG_ORTH_SZ 34
diff --git a/crengine/fc-lang/files/ko_orth.c b/crengine/src/locale_data/files/ko_orth.c
similarity index 99%
rename from crengine/fc-lang/files/ko_orth.c
rename to crengine/src/locale_data/files/ko_orth.c
index 1d1cf8c3b3..ae95307da6 100644
--- a/crengine/fc-lang/files/ko_orth.c
+++ b/crengine/src/locale_data/files/ko_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ko_lang_orth_chars[] = {
+const unsigned int ko_lang_orth_chars[] = {
0x3131,
0x3132,
0x3133,
diff --git a/crengine/src/locale_data/files/kok_orth.c b/crengine/src/locale_data/files/kok_orth.c
new file mode 100644
index 0000000000..6f26853eee
--- /dev/null
+++ b/crengine/src/locale_data/files/kok_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int kok_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define KOK_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/kr_orth.c b/crengine/src/locale_data/files/kr_orth.c
similarity index 50%
rename from crengine/fc-lang/files/kr_orth.c
rename to crengine/src/locale_data/files/kr_orth.c
index 682a192016..00d379925d 100644
--- a/crengine/fc-lang/files/kr_orth.c
+++ b/crengine/src/locale_data/files/kr_orth.c
@@ -2,13 +2,13 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int kr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x018e,
0x01dd,
- 2, 0x024c, 0x024d, // range
+ 0xf0f0ffff, 0x024c, 0x024d, // range
};
#define KR_LANG_ORTH_SZ 11
diff --git a/crengine/fc-lang/files/ks_orth.c b/crengine/src/locale_data/files/ks_orth.c
similarity index 60%
rename from crengine/fc-lang/files/ks_orth.c
rename to crengine/src/locale_data/files/ks_orth.c
index d510f69a0b..8d0088ebe3 100644
--- a/crengine/fc-lang/files/ks_orth.c
+++ b/crengine/src/locale_data/files/ks_orth.c
@@ -2,14 +2,14 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ks_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
+const unsigned int ks_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
0x063a,
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0646, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0646, // range
0x0648,
0x0679,
0x067e,
diff --git a/crengine/fc-lang/files/ku_am_orth.c b/crengine/src/locale_data/files/ku_am_orth.c
similarity index 82%
rename from crengine/fc-lang/files/ku_am_orth.c
rename to crengine/src/locale_data/files/ku_am_orth.c
index 132f2d7ddd..ff510db2e7 100644
--- a/crengine/fc-lang/files/ku_am_orth.c
+++ b/crengine/src/locale_data/files/ku_am_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ku_am_lang_orth_chars[] = {
+const unsigned int ku_am_lang_orth_chars[] = {
0x0410,
0x0411,
0x0412,
@@ -65,6 +65,6 @@ unsigned int ku_am_lang_orth_chars[] = {
0x04d9,
0x04e6,
0x04e7,
- 2, 0x051a, 0x051d, // range
+ 0xf0f0ffff, 0x051a, 0x051d, // range
};
#define KU_AM_LANG_ORTH_SZ 63
diff --git a/crengine/src/locale_data/files/ku_iq_orth.c b/crengine/src/locale_data/files/ku_iq_orth.c
new file mode 100644
index 0000000000..eb59a0afab
--- /dev/null
+++ b/crengine/src/locale_data/files/ku_iq_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ku_iq_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x062a,
+ 0xf0f0ffff, 0x062c, 0x062f, // range
+ 0xf0f0ffff, 0x0631, 0x0634, // range
+ 0xf0f0ffff, 0x0639, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x067e,
+ 0x0686,
+ 0x0692,
+ 0x0698,
+ 0x06a4,
+ 0x06a9,
+ 0x06af,
+ 0x06b5,
+ 0x06c6,
+ 0x06cc,
+ 0x06ce,
+};
+#define KU_IQ_LANG_ORTH_SZ 30
diff --git a/crengine/src/locale_data/files/ku_ir_orth.c b/crengine/src/locale_data/files/ku_ir_orth.c
new file mode 100644
index 0000000000..5c668945dc
--- /dev/null
+++ b/crengine/src/locale_data/files/ku_ir_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ku_ir_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x062a,
+ 0xf0f0ffff, 0x062c, 0x062f, // range
+ 0xf0f0ffff, 0x0631, 0x0634, // range
+ 0xf0f0ffff, 0x0639, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x067e,
+ 0x0686,
+ 0x0692,
+ 0x0698,
+ 0x06a4,
+ 0x06a9,
+ 0x06af,
+ 0x06b5,
+ 0x06c6,
+ 0x06cc,
+ 0x06ce,
+};
+#define KU_IR_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/ku_tr_orth.c b/crengine/src/locale_data/files/ku_tr_orth.c
similarity index 55%
rename from crengine/fc-lang/files/ku_tr_orth.c
rename to crengine/src/locale_data/files/ku_tr_orth.c
index 864d394685..ca9912f914 100644
--- a/crengine/fc-lang/files/ku_tr_orth.c
+++ b/crengine/src/locale_data/files/ku_tr_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ku_tr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ku_tr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c7,
0x00ca,
0x00ce,
@@ -15,6 +15,6 @@ unsigned int ku_tr_lang_orth_chars[] = {
0x00ea,
0x00ee,
0x00fb,
- 2, 0x015e, 0x015f, // range
+ 0xf0f0ffff, 0x015e, 0x015f, // range
};
#define KU_TR_LANG_ORTH_SZ 17
diff --git a/crengine/fc-lang/files/kum_orth.c b/crengine/src/locale_data/files/kum_orth.c
similarity index 87%
rename from crengine/fc-lang/files/kum_orth.c
rename to crengine/src/locale_data/files/kum_orth.c
index 4e57b218ec..073dd9f7fb 100644
--- a/crengine/fc-lang/files/kum_orth.c
+++ b/crengine/src/locale_data/files/kum_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kum_lang_orth_chars[] = {
+const unsigned int kum_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/fc-lang/files/kv_orth.c b/crengine/src/locale_data/files/kv_orth.c
similarity index 87%
rename from crengine/fc-lang/files/kv_orth.c
rename to crengine/src/locale_data/files/kv_orth.c
index bed6c91e07..33c8ece77d 100644
--- a/crengine/fc-lang/files/kv_orth.c
+++ b/crengine/src/locale_data/files/kv_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kv_lang_orth_chars[] = {
+const unsigned int kv_lang_orth_chars[] = {
0x0401,
0x0406,
0x0410,
diff --git a/crengine/src/locale_data/files/kw_orth.c b/crengine/src/locale_data/files/kw_orth.c
new file mode 100644
index 0000000000..d0fc2f2366
--- /dev/null
+++ b/crengine/src/locale_data/files/kw_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int kw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x012a, 0x012b, // range
+ 0xf0f0ffff, 0x014c, 0x014d, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0xf0f0ffff, 0x0232, 0x0233, // range
+};
+#define KW_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/kwm_orth.c b/crengine/src/locale_data/files/kwm_orth.c
similarity index 52%
rename from crengine/fc-lang/files/kwm_orth.c
rename to crengine/src/locale_data/files/kwm_orth.c
index de7ee401f5..fa7f9e171d 100644
--- a/crengine/fc-lang/files/kwm_orth.c
+++ b/crengine/src/locale_data/files/kwm_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int kwm_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int kwm_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define KWM_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/ky_orth.c b/crengine/src/locale_data/files/ky_orth.c
similarity index 87%
rename from crengine/fc-lang/files/ky_orth.c
rename to crengine/src/locale_data/files/ky_orth.c
index c59698f9b6..0d3f3a5534 100644
--- a/crengine/fc-lang/files/ky_orth.c
+++ b/crengine/src/locale_data/files/ky_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ky_lang_orth_chars[] = {
+const unsigned int ky_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/la_orth.c b/crengine/src/locale_data/files/la_orth.c
new file mode 100644
index 0000000000..f8aa9a018b
--- /dev/null
+++ b/crengine/src/locale_data/files/la_orth.c
@@ -0,0 +1,16 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int la_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x012a, 0x012d, // range
+ 0xf0f0ffff, 0x014c, 0x014f, // range
+ 0xf0f0ffff, 0x016a, 0x016d, // range
+};
+#define LA_LANG_ORTH_SZ 21
diff --git a/crengine/fc-lang/files/lah_orth.c b/crengine/src/locale_data/files/lah_orth.c
similarity index 56%
rename from crengine/fc-lang/files/lah_orth.c
rename to crengine/src/locale_data/files/lah_orth.c
index f245eae7d1..72e51e67ca 100644
--- a/crengine/fc-lang/files/lah_orth.c
+++ b/crengine/src/locale_data/files/lah_orth.c
@@ -2,14 +2,14 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int lah_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
+const unsigned int lah_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
0x063a,
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0646, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0646, // range
0x0648,
0x0679,
0x067e,
diff --git a/crengine/fc-lang/files/lb_orth.c b/crengine/src/locale_data/files/lb_orth.c
similarity index 68%
rename from crengine/fc-lang/files/lb_orth.c
rename to crengine/src/locale_data/files/lb_orth.c
index 22354dd19e..e5b1850b48 100644
--- a/crengine/fc-lang/files/lb_orth.c
+++ b/crengine/src/locale_data/files/lb_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int lb_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int lb_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00e4,
0x00c9,
diff --git a/crengine/fc-lang/files/lez_orth.c b/crengine/src/locale_data/files/lez_orth.c
similarity index 87%
rename from crengine/fc-lang/files/lez_orth.c
rename to crengine/src/locale_data/files/lez_orth.c
index 0e4c490a4e..94832ad45c 100644
--- a/crengine/fc-lang/files/lez_orth.c
+++ b/crengine/src/locale_data/files/lez_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int lez_lang_orth_chars[] = {
+const unsigned int lez_lang_orth_chars[] = {
0x0401,
0x0406,
0x0410,
diff --git a/crengine/src/locale_data/files/lg_orth.c b/crengine/src/locale_data/files/lg_orth.c
new file mode 100644
index 0000000000..7cccb2ad6e
--- /dev/null
+++ b/crengine/src/locale_data/files/lg_orth.c
@@ -0,0 +1,12 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int lg_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
+};
+#define LG_LANG_ORTH_SZ 9
diff --git a/crengine/fc-lang/files/li_orth.c b/crengine/src/locale_data/files/li_orth.c
similarity index 61%
rename from crengine/fc-lang/files/li_orth.c
rename to crengine/src/locale_data/files/li_orth.c
index edb6c188ff..c7bef89e3c 100644
--- a/crengine/fc-lang/files/li_orth.c
+++ b/crengine/src/locale_data/files/li_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int li_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int li_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00c8,
0x00cb,
diff --git a/crengine/src/locale_data/files/ln_orth.c b/crengine/src/locale_data/files/ln_orth.c
new file mode 100644
index 0000000000..8536a607d2
--- /dev/null
+++ b/crengine/src/locale_data/files/ln_orth.c
@@ -0,0 +1,28 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ln_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c1, 0x00c2, // range
+ 0xf0f0ffff, 0x00c9, 0x00ca, // range
+ 0xf0f0ffff, 0x00cd, 0x00ce, // range
+ 0xf0f0ffff, 0x00d3, 0x00d4, // range
+ 0xf0f0ffff, 0x00da, 0x00db, // range
+ 0xf0f0ffff, 0x00e1, 0x00e2, // range
+ 0xf0f0ffff, 0x00e9, 0x00ea, // range
+ 0xf0f0ffff, 0x00ed, 0x00ee, // range
+ 0xf0f0ffff, 0x00f3, 0x00f4, // range
+ 0xf0f0ffff, 0x00fa, 0x00fb, // range
+ 0xf0f0ffff, 0x011a, 0x011b, // range
+ 0x0186,
+ 0x0190,
+ 0x0254,
+ 0x025b,
+ 0xf0f0ffff, 0x0301, 0x0302, // range
+ 0x030c,
+};
+#define LN_LANG_ORTH_SZ 47
diff --git a/crengine/src/locale_data/files/lo_orth.c b/crengine/src/locale_data/files/lo_orth.c
new file mode 100644
index 0000000000..74bd19c4b4
--- /dev/null
+++ b/crengine/src/locale_data/files/lo_orth.c
@@ -0,0 +1,26 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int lo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0e81, 0x0e82, // range
+ 0x0e84,
+ 0xf0f0ffff, 0x0e87, 0x0e88, // range
+ 0x0e8a,
+ 0x0e8d,
+ 0xf0f0ffff, 0x0e94, 0x0e97, // range
+ 0xf0f0ffff, 0x0e99, 0x0e9f, // range
+ 0xf0f0ffff, 0x0ea1, 0x0ea3, // range
+ 0x0ea5,
+ 0x0ea7,
+ 0xf0f0ffff, 0x0eaa, 0x0eab, // range
+ 0xf0f0ffff, 0x0ead, 0x0eb9, // range
+ 0xf0f0ffff, 0x0ebb, 0x0ebd, // range
+ 0xf0f0ffff, 0x0ec0, 0x0ec4, // range
+ 0x0ec6,
+ 0xf0f0ffff, 0x0ec8, 0x0ecd, // range
+ 0xf0f0ffff, 0x0edc, 0x0edd, // range
+};
+#define LO_LANG_ORTH_SZ 39
diff --git a/crengine/src/locale_data/files/lt_orth.c b/crengine/src/locale_data/files/lt_orth.c
new file mode 100644
index 0000000000..65b7634a65
--- /dev/null
+++ b/crengine/src/locale_data/files/lt_orth.c
@@ -0,0 +1,20 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int lt_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0104, 0x0105, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0116, 0x0117, // range
+ 0xf0f0ffff, 0x0118, 0x0119, // range
+ 0xf0f0ffff, 0x012e, 0x012f, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0xf0f0ffff, 0x0172, 0x0173, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define LT_LANG_ORTH_SZ 33
diff --git a/crengine/src/locale_data/files/lv_orth.c b/crengine/src/locale_data/files/lv_orth.c
new file mode 100644
index 0000000000..4e328b2476
--- /dev/null
+++ b/crengine/src/locale_data/files/lv_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int lv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x0122, 0x0123, // range
+ 0xf0f0ffff, 0x012a, 0x012b, // range
+ 0xf0f0ffff, 0x0136, 0x0137, // range
+ 0xf0f0ffff, 0x013b, 0x013c, // range
+ 0xf0f0ffff, 0x0145, 0x0146, // range
+ 0xf0f0ffff, 0x014c, 0x014d, // range
+ 0xf0f0ffff, 0x0156, 0x0157, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define LV_LANG_ORTH_SZ 45
diff --git a/crengine/src/locale_data/files/mai_orth.c b/crengine/src/locale_data/files/mai_orth.c
new file mode 100644
index 0000000000..e9f237f869
--- /dev/null
+++ b/crengine/src/locale_data/files/mai_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mai_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define MAI_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/mg_orth.c b/crengine/src/locale_data/files/mg_orth.c
similarity index 56%
rename from crengine/fc-lang/files/mg_orth.c
rename to crengine/src/locale_data/files/mg_orth.c
index 7e2abae48d..7d86eaed29 100644
--- a/crengine/fc-lang/files/mg_orth.c
+++ b/crengine/src/locale_data/files/mg_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int mg_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int mg_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00e1,
0x00d4,
diff --git a/crengine/fc-lang/files/mh_orth.c b/crengine/src/locale_data/files/mh_orth.c
similarity index 61%
rename from crengine/fc-lang/files/mh_orth.c
rename to crengine/src/locale_data/files/mh_orth.c
index 7a9cf13f72..097d6e5b19 100644
--- a/crengine/fc-lang/files/mh_orth.c
+++ b/crengine/src/locale_data/files/mh_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int mh_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int mh_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0100,
0x0101,
0x013b,
diff --git a/crengine/src/locale_data/files/mi_orth.c b/crengine/src/locale_data/files/mi_orth.c
new file mode 100644
index 0000000000..a5d9a31f06
--- /dev/null
+++ b/crengine/src/locale_data/files/mi_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x012a, 0x012b, // range
+ 0xf0f0ffff, 0x014c, 0x014d, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0xf0f0ffff, 0x1e34, 0x1e35, // range
+};
+#define MI_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/mk_orth.c b/crengine/src/locale_data/files/mk_orth.c
similarity index 54%
rename from crengine/fc-lang/files/mk_orth.c
rename to crengine/src/locale_data/files/mk_orth.c
index 39a9f46c35..2a452ae5f0 100644
--- a/crengine/fc-lang/files/mk_orth.c
+++ b/crengine/src/locale_data/files/mk_orth.c
@@ -2,22 +2,22 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int mk_lang_orth_chars[] = {
+const unsigned int mk_lang_orth_chars[] = {
0x0400,
0x0403,
0x0405,
- 2, 0x0408, 0x040a, // range
+ 0xf0f0ffff, 0x0408, 0x040a, // range
0x040c,
0x040d,
0x040f,
- 2, 0x0410, 0x0418, // range
- 2, 0x041a, 0x0428, // range
+ 0xf0f0ffff, 0x0410, 0x0418, // range
+ 0xf0f0ffff, 0x041a, 0x0428, // range
0x0450,
0x0453,
0x0455,
- 2, 0x0458, 0x045a, // range
+ 0xf0f0ffff, 0x0458, 0x045a, // range
0x045c,
0x045d,
0x045f,
diff --git a/crengine/src/locale_data/files/ml_orth.c b/crengine/src/locale_data/files/ml_orth.c
new file mode 100644
index 0000000000..7dcbc255de
--- /dev/null
+++ b/crengine/src/locale_data/files/ml_orth.c
@@ -0,0 +1,19 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ml_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0d02, 0x0d03, // range
+ 0xf0f0ffff, 0x0d05, 0x0d0c, // range
+ 0xf0f0ffff, 0x0d0e, 0x0d10, // range
+ 0xf0f0ffff, 0x0d12, 0x0d28, // range
+ 0xf0f0ffff, 0x0d2a, 0x0d39, // range
+ 0xf0f0ffff, 0x0d3e, 0x0d43, // range
+ 0xf0f0ffff, 0x0d46, 0x0d48, // range
+ 0xf0f0ffff, 0x0d4a, 0x0d4d, // range
+ 0x0d57,
+ 0xf0f0ffff, 0x0d60, 0x0d61, // range
+};
+#define ML_LANG_ORTH_SZ 28
diff --git a/crengine/src/locale_data/files/mn_cn_orth.c b/crengine/src/locale_data/files/mn_cn_orth.c
new file mode 100644
index 0000000000..dc5138e574
--- /dev/null
+++ b/crengine/src/locale_data/files/mn_cn_orth.c
@@ -0,0 +1,14 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mn_cn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1820, 0x1842, // range
+ 0xf0f0ffff, 0x1843, 0x185c, // range
+ 0xf0f0ffff, 0x185d, 0x1872, // range
+ 0xf0f0ffff, 0x1873, 0x1877, // range
+ 0xf0f0ffff, 0x1880, 0x18a9, // range
+};
+#define MN_CN_LANG_ORTH_SZ 15
diff --git a/crengine/fc-lang/files/mn_mn_orth.c b/crengine/src/locale_data/files/mn_mn_orth.c
similarity index 50%
rename from crengine/fc-lang/files/mn_mn_orth.c
rename to crengine/src/locale_data/files/mn_mn_orth.c
index e7bc15b140..48cc44049c 100644
--- a/crengine/fc-lang/files/mn_mn_orth.c
+++ b/crengine/src/locale_data/files/mn_mn_orth.c
@@ -2,13 +2,13 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int mn_mn_lang_orth_chars[] = {
+const unsigned int mn_mn_lang_orth_chars[] = {
0x0401,
- 2, 0x0410, 0x044f, // range
+ 0xf0f0ffff, 0x0410, 0x044f, // range
0x0451,
- 2, 0x04ae, 0x04af, // range
- 2, 0x04e8, 0x04e9, // range
+ 0xf0f0ffff, 0x04ae, 0x04af, // range
+ 0xf0f0ffff, 0x04e8, 0x04e9, // range
};
#define MN_MN_LANG_ORTH_SZ 11
diff --git a/crengine/src/locale_data/files/mni_orth.c b/crengine/src/locale_data/files/mni_orth.c
new file mode 100644
index 0000000000..bebb036e8c
--- /dev/null
+++ b/crengine/src/locale_data/files/mni_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mni_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0981, 0x0983, // range
+ 0xf0f0ffff, 0x0985, 0x098c, // range
+ 0xf0f0ffff, 0x098f, 0x0990, // range
+ 0xf0f0ffff, 0x0993, 0x09a8, // range
+ 0xf0f0ffff, 0x09aa, 0x09b0, // range
+ 0x09b2,
+ 0xf0f0ffff, 0x09b6, 0x09b9, // range
+ 0x09bc,
+ 0xf0f0ffff, 0x09be, 0x09c4, // range
+ 0xf0f0ffff, 0x09c7, 0x09c8, // range
+ 0xf0f0ffff, 0x09cb, 0x09cd, // range
+ 0xf0f0ffff, 0x09dc, 0x09dd, // range
+ 0x09df,
+ 0xf0f0ffff, 0x0964, 0x09c4, // range
+ 0x09bd,
+ 0x09ce,
+ 0xf0f0ffff, 0x09e6, 0x09ef, // range
+ 0x09f1,
+};
+#define MNI_LANG_ORTH_SZ 42
diff --git a/crengine/src/locale_data/files/mo_orth.c b/crengine/src/locale_data/files/mo_orth.c
new file mode 100644
index 0000000000..c77dba6e1c
--- /dev/null
+++ b/crengine/src/locale_data/files/mo_orth.c
@@ -0,0 +1,20 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c2,
+ 0x00ce,
+ 0x00e2,
+ 0x00ee,
+ 0xf0f0ffff, 0x0102, 0x0103, // range
+ 0xf0f0ffff, 0x0218, 0x021b, // range
+ 0x0401,
+ 0xf0f0ffff, 0x0410, 0x044f, // range
+ 0x0451,
+};
+#define MO_LANG_ORTH_SZ 21
diff --git a/crengine/src/locale_data/files/mr_orth.c b/crengine/src/locale_data/files/mr_orth.c
new file mode 100644
index 0000000000..37f0393e30
--- /dev/null
+++ b/crengine/src/locale_data/files/mr_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define MR_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/ms_orth.c b/crengine/src/locale_data/files/ms_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ms_orth.c
rename to crengine/src/locale_data/files/ms_orth.c
index 82f2620b86..abe257a5ce 100644
--- a/crengine/fc-lang/files/ms_orth.c
+++ b/crengine/src/locale_data/files/ms_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ms_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ms_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define MS_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/mt_orth.c b/crengine/src/locale_data/files/mt_orth.c
new file mode 100644
index 0000000000..56b3b3c4d4
--- /dev/null
+++ b/crengine/src/locale_data/files/mt_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int mt_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c0,
+ 0x00c8,
+ 0x00cc,
+ 0x00ce,
+ 0x00d2,
+ 0x00d9,
+ 0x00e0,
+ 0x00e8,
+ 0x00ec,
+ 0x00ee,
+ 0x00f2,
+ 0x00f9,
+ 0xf0f0ffff, 0x010a, 0x010b, // range
+ 0xf0f0ffff, 0x0120, 0x0121, // range
+ 0xf0f0ffff, 0x0126, 0x0127, // range
+ 0xf0f0ffff, 0x017b, 0x017c, // range
+};
+#define MT_LANG_ORTH_SZ 30
diff --git a/crengine/src/locale_data/files/my_orth.c b/crengine/src/locale_data/files/my_orth.c
new file mode 100644
index 0000000000..604efc4c60
--- /dev/null
+++ b/crengine/src/locale_data/files/my_orth.c
@@ -0,0 +1,14 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int my_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1000, 0x1020, // range
+ 0x1021,
+ 0xf0f0ffff, 0x1023, 0x1027, // range
+ 0xf0f0ffff, 0x1029, 0x102a, // range
+ 0xf0f0ffff, 0x102c, 0x1032, // range
+};
+#define MY_LANG_ORTH_SZ 13
diff --git a/crengine/fc-lang/files/na_orth.c b/crengine/src/locale_data/files/na_orth.c
similarity index 54%
rename from crengine/fc-lang/files/na_orth.c
rename to crengine/src/locale_data/files/na_orth.c
index d21a808d3b..af9ed01be3 100644
--- a/crengine/fc-lang/files/na_orth.c
+++ b/crengine/src/locale_data/files/na_orth.c
@@ -2,17 +2,17 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int na_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int na_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c3,
0x00d1,
0x00d5,
0x00e3,
0x00f1,
0x00f5,
- 2, 0x0168, 0x0169, // range
+ 0xf0f0ffff, 0x0168, 0x0169, // range
};
#define NA_LANG_ORTH_SZ 15
diff --git a/crengine/fc-lang/files/nb_orth.c b/crengine/src/locale_data/files/nb_orth.c
similarity index 66%
rename from crengine/fc-lang/files/nb_orth.c
rename to crengine/src/locale_data/files/nb_orth.c
index e7b5b29cdd..f56efc3a35 100644
--- a/crengine/fc-lang/files/nb_orth.c
+++ b/crengine/src/locale_data/files/nb_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nb_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int nb_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c5,
0x00c6,
diff --git a/crengine/fc-lang/files/nds_orth.c b/crengine/src/locale_data/files/nds_orth.c
similarity index 59%
rename from crengine/fc-lang/files/nds_orth.c
rename to crengine/src/locale_data/files/nds_orth.c
index aa662db975..074f7777f2 100644
--- a/crengine/fc-lang/files/nds_orth.c
+++ b/crengine/src/locale_data/files/nds_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nds_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int nds_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00d6,
0x00dc,
diff --git a/crengine/src/locale_data/files/ne_orth.c b/crengine/src/locale_data/files/ne_orth.c
new file mode 100644
index 0000000000..138b2fa451
--- /dev/null
+++ b/crengine/src/locale_data/files/ne_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ne_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0901, 0x0903, // range
+ 0xf0f0ffff, 0x0905, 0x090b, // range
+ 0xf0f0ffff, 0x090f, 0x0910, // range
+ 0xf0f0ffff, 0x0913, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0928, // range
+ 0xf0f0ffff, 0x092a, 0x0930, // range
+ 0x0932,
+ 0xf0f0ffff, 0x0935, 0x0939, // range
+ 0xf0f0ffff, 0x093e, 0x0943, // range
+ 0xf0f0ffff, 0x0947, 0x0948, // range
+ 0xf0f0ffff, 0x094b, 0x094d, // range
+ 0x0950,
+ 0xf0f0ffff, 0x0964, 0x0965, // range
+ 0xf0f0ffff, 0x0966, 0x096f, // range
+ 0x0970,
+};
+#define NE_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/ng_orth.c b/crengine/src/locale_data/files/ng_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ng_orth.c
rename to crengine/src/locale_data/files/ng_orth.c
index e7c5a9baf7..2c79c388c6 100644
--- a/crengine/fc-lang/files/ng_orth.c
+++ b/crengine/src/locale_data/files/ng_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ng_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ng_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define NG_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/nl_orth.c b/crengine/src/locale_data/files/nl_orth.c
similarity index 71%
rename from crengine/fc-lang/files/nl_orth.c
rename to crengine/src/locale_data/files/nl_orth.c
index 6e05388971..be35caf65c 100644
--- a/crengine/fc-lang/files/nl_orth.c
+++ b/crengine/src/locale_data/files/nl_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int nl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00c2,
0x00c4,
diff --git a/crengine/src/locale_data/files/nn_orth.c b/crengine/src/locale_data/files/nn_orth.c
new file mode 100644
index 0000000000..af315e3b7d
--- /dev/null
+++ b/crengine/src/locale_data/files/nn_orth.c
@@ -0,0 +1,25 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int nn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c0,
+ 0xf0f0ffff, 0x00c4, 0x00c6, // range
+ 0xf0f0ffff, 0x00c9, 0x00ca, // range
+ 0xf0f0ffff, 0x00d2, 0x00d4, // range
+ 0x00d6,
+ 0x00d8,
+ 0x00dc,
+ 0x00e0,
+ 0xf0f0ffff, 0x00e4, 0x00e6, // range
+ 0xf0f0ffff, 0x00e9, 0x00ea, // range
+ 0xf0f0ffff, 0x00f2, 0x00f4, // range
+ 0x00f6,
+ 0x00f8,
+ 0x00fc,
+};
+#define NN_LANG_ORTH_SZ 32
diff --git a/crengine/fc-lang/files/no_orth.c b/crengine/src/locale_data/files/no_orth.c
similarity index 66%
rename from crengine/fc-lang/files/no_orth.c
rename to crengine/src/locale_data/files/no_orth.c
index 4c3781e809..db25b8d989 100644
--- a/crengine/fc-lang/files/no_orth.c
+++ b/crengine/src/locale_data/files/no_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int no_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int no_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c5,
0x00c6,
diff --git a/crengine/fc-lang/files/nqo_orth.c b/crengine/src/locale_data/files/nqo_orth.c
similarity index 58%
rename from crengine/fc-lang/files/nqo_orth.c
rename to crengine/src/locale_data/files/nqo_orth.c
index da64a00f8e..22b3eb7797 100644
--- a/crengine/fc-lang/files/nqo_orth.c
+++ b/crengine/src/locale_data/files/nqo_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nqo_lang_orth_chars[] = {
- 2, 0x07c0, 0x07fa, // range
+const unsigned int nqo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x07c0, 0x07fa, // range
};
#define NQO_LANG_ORTH_SZ 3
diff --git a/crengine/fc-lang/files/nr_orth.c b/crengine/src/locale_data/files/nr_orth.c
similarity index 52%
rename from crengine/fc-lang/files/nr_orth.c
rename to crengine/src/locale_data/files/nr_orth.c
index b016bde316..2ca0c1e6e8 100644
--- a/crengine/fc-lang/files/nr_orth.c
+++ b/crengine/src/locale_data/files/nr_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int nr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define NR_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/nso_orth.c b/crengine/src/locale_data/files/nso_orth.c
similarity index 52%
rename from crengine/fc-lang/files/nso_orth.c
rename to crengine/src/locale_data/files/nso_orth.c
index 11d7b53894..c9320db225 100644
--- a/crengine/fc-lang/files/nso_orth.c
+++ b/crengine/src/locale_data/files/nso_orth.c
@@ -2,15 +2,15 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int nso_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int nso_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00ca,
0x00ea,
0x00d4,
0x00f4,
- 2, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
};
#define NSO_LANG_ORTH_SZ 13
diff --git a/crengine/src/locale_data/files/nv_orth.c b/crengine/src/locale_data/files/nv_orth.c
new file mode 100644
index 0000000000..ef8c5d2fc9
--- /dev/null
+++ b/crengine/src/locale_data/files/nv_orth.c
@@ -0,0 +1,26 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int nv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0x00c9,
+ 0x00cd,
+ 0x00d3,
+ 0x00e1,
+ 0x00e9,
+ 0x00ed,
+ 0x00f3,
+ 0xf0f0ffff, 0x0104, 0x0105, // range
+ 0xf0f0ffff, 0x0118, 0x0119, // range
+ 0xf0f0ffff, 0x012e, 0x012f, // range
+ 0xf0f0ffff, 0x0141, 0x0142, // range
+ 0xf0f0ffff, 0x01ea, 0x01eb, // range
+ 0x02bc,
+ 0x0301,
+};
+#define NV_LANG_ORTH_SZ 31
diff --git a/crengine/src/locale_data/files/ny_orth.c b/crengine/src/locale_data/files/ny_orth.c
new file mode 100644
index 0000000000..881ce5a261
--- /dev/null
+++ b/crengine/src/locale_data/files/ny_orth.c
@@ -0,0 +1,12 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ny_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0174, 0x0175, // range
+};
+#define NY_LANG_ORTH_SZ 9
diff --git a/crengine/fc-lang/files/oc_orth.c b/crengine/src/locale_data/files/oc_orth.c
similarity index 66%
rename from crengine/fc-lang/files/oc_orth.c
rename to crengine/src/locale_data/files/oc_orth.c
index dc5560a9f4..0af67c051e 100644
--- a/crengine/fc-lang/files/oc_orth.c
+++ b/crengine/src/locale_data/files/oc_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int oc_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int oc_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c1,
0x00c7,
diff --git a/crengine/fc-lang/files/om_orth.c b/crengine/src/locale_data/files/om_orth.c
similarity index 52%
rename from crengine/fc-lang/files/om_orth.c
rename to crengine/src/locale_data/files/om_orth.c
index 27196848c6..18ad2030b3 100644
--- a/crengine/fc-lang/files/om_orth.c
+++ b/crengine/src/locale_data/files/om_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int om_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int om_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define OM_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/or_orth.c b/crengine/src/locale_data/files/or_orth.c
new file mode 100644
index 0000000000..71219932f0
--- /dev/null
+++ b/crengine/src/locale_data/files/or_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int or_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0b01, 0x0b03, // range
+ 0xf0f0ffff, 0x0b05, 0x0b0c, // range
+ 0xf0f0ffff, 0x0b0f, 0x0b10, // range
+ 0xf0f0ffff, 0x0b13, 0x0b28, // range
+ 0xf0f0ffff, 0x0b2a, 0x0b30, // range
+ 0xf0f0ffff, 0x0b32, 0x0b33, // range
+ 0xf0f0ffff, 0x0b36, 0x0b39, // range
+ 0xf0f0ffff, 0x0b3c, 0x0b43, // range
+ 0xf0f0ffff, 0x0b47, 0x0b48, // range
+ 0xf0f0ffff, 0x0b4b, 0x0b4d, // range
+ 0xf0f0ffff, 0x0b56, 0x0b57, // range
+ 0xf0f0ffff, 0x0b5c, 0x0b5d, // range
+ 0xf0f0ffff, 0x0b5f, 0x0b61, // range
+};
+#define OR_LANG_ORTH_SZ 39
diff --git a/crengine/fc-lang/files/os_orth.c b/crengine/src/locale_data/files/os_orth.c
similarity index 87%
rename from crengine/fc-lang/files/os_orth.c
rename to crengine/src/locale_data/files/os_orth.c
index e0b8938e3c..87d43befb0 100644
--- a/crengine/fc-lang/files/os_orth.c
+++ b/crengine/src/locale_data/files/os_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int os_lang_orth_chars[] = {
+const unsigned int os_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/fc-lang/files/ota_orth.c b/crengine/src/locale_data/files/ota_orth.c
similarity index 54%
rename from crengine/fc-lang/files/ota_orth.c
rename to crengine/src/locale_data/files/ota_orth.c
index aca825dfe7..eb6b48652e 100644
--- a/crengine/fc-lang/files/ota_orth.c
+++ b/crengine/src/locale_data/files/ota_orth.c
@@ -2,12 +2,12 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ota_lang_orth_chars[] = {
- 2, 0x0621, 0x0622, // range
- 2, 0x0626, 0x063a, // range
- 2, 0x0641, 0x0648, // range
+const unsigned int ota_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0622, // range
+ 0xf0f0ffff, 0x0626, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0648, // range
0x067e,
0x0686,
0x0698,
diff --git a/crengine/src/locale_data/files/pa_orth.c b/crengine/src/locale_data/files/pa_orth.c
new file mode 100644
index 0000000000..12dcd99d85
--- /dev/null
+++ b/crengine/src/locale_data/files/pa_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int pa_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0a05, 0x0a0a, // range
+ 0xf0f0ffff, 0x0a0f, 0x0a10, // range
+ 0xf0f0ffff, 0x0a13, 0x0a14, // range
+ 0xf0f0ffff, 0x0a15, 0x0a28, // range
+ 0xf0f0ffff, 0x0a2a, 0x0a30, // range
+ 0xf0f0ffff, 0x0a32, 0x0a33, // range
+ 0xf0f0ffff, 0x0a35, 0x0a36, // range
+ 0xf0f0ffff, 0x0a38, 0x0a39, // range
+ 0x0a3c,
+ 0xf0f0ffff, 0x0a3e, 0x0a42, // range
+ 0xf0f0ffff, 0x0a47, 0x0a48, // range
+ 0xf0f0ffff, 0x0a4b, 0x0a4c, // range
+ 0x0a4d,
+ 0xf0f0ffff, 0x0a59, 0x0a5c, // range
+ 0xf0f0ffff, 0x0a70, 0x0a74, // range
+};
+#define PA_LANG_ORTH_SZ 41
diff --git a/crengine/fc-lang/files/pa_pk_orth.c b/crengine/src/locale_data/files/pa_pk_orth.c
similarity index 56%
rename from crengine/fc-lang/files/pa_pk_orth.c
rename to crengine/src/locale_data/files/pa_pk_orth.c
index 51e27bd19d..2544cd93d8 100644
--- a/crengine/fc-lang/files/pa_pk_orth.c
+++ b/crengine/src/locale_data/files/pa_pk_orth.c
@@ -2,14 +2,14 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int pa_pk_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
+const unsigned int pa_pk_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
0x063a,
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0646, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0646, // range
0x0648,
0x0679,
0x067e,
diff --git a/crengine/src/locale_data/files/pap_an_orth.c b/crengine/src/locale_data/files/pap_an_orth.c
new file mode 100644
index 0000000000..87335464b0
--- /dev/null
+++ b/crengine/src/locale_data/files/pap_an_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int pap_an_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0xf0f0ffff, 0x00c8, 0x00c9, // range
+ 0x00cd,
+ 0xf0f0ffff, 0x00d1, 0x00d3, // range
+ 0xf0f0ffff, 0x00d9, 0x00da, // range
+ 0x00dc,
+ 0x00e1,
+ 0xf0f0ffff, 0x00e8, 0x00e9, // range
+ 0x00ed,
+ 0xf0f0ffff, 0x00f1, 0x00f3, // range
+ 0xf0f0ffff, 0x00f9, 0x00fa, // range
+ 0x00fc,
+};
+#define PAP_AN_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/pap_aw_orth.c b/crengine/src/locale_data/files/pap_aw_orth.c
similarity index 54%
rename from crengine/fc-lang/files/pap_aw_orth.c
rename to crengine/src/locale_data/files/pap_aw_orth.c
index b22fc033c8..8f359dbf97 100644
--- a/crengine/fc-lang/files/pap_aw_orth.c
+++ b/crengine/src/locale_data/files/pap_aw_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int pap_aw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int pap_aw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00d1,
0x00f1,
};
diff --git a/crengine/src/locale_data/files/pes_orth.c b/crengine/src/locale_data/files/pes_orth.c
new file mode 100644
index 0000000000..ea06f1d3fa
--- /dev/null
+++ b/crengine/src/locale_data/files/pes_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int pes_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x0629,
+ 0xf0f0ffff, 0x062a, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x064b,
+ 0x0654,
+ 0x067e,
+ 0x0686,
+ 0x0698,
+ 0x06a9,
+ 0x06af,
+ 0x06cc,
+};
+#define PES_LANG_ORTH_SZ 24
diff --git a/crengine/src/locale_data/files/pl_orth.c b/crengine/src/locale_data/files/pl_orth.c
new file mode 100644
index 0000000000..a03d6ffb51
--- /dev/null
+++ b/crengine/src/locale_data/files/pl_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int pl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00d3,
+ 0x00f3,
+ 0xf0f0ffff, 0x0104, 0x0105, // range
+ 0xf0f0ffff, 0x0106, 0x0107, // range
+ 0xf0f0ffff, 0x0118, 0x0119, // range
+ 0xf0f0ffff, 0x0141, 0x0142, // range
+ 0xf0f0ffff, 0x0143, 0x0144, // range
+ 0xf0f0ffff, 0x015a, 0x015b, // range
+ 0xf0f0ffff, 0x0179, 0x017a, // range
+ 0xf0f0ffff, 0x017b, 0x017c, // range
+};
+#define PL_LANG_ORTH_SZ 32
diff --git a/crengine/src/locale_data/files/prs_orth.c b/crengine/src/locale_data/files/prs_orth.c
new file mode 100644
index 0000000000..4aff86e7cf
--- /dev/null
+++ b/crengine/src/locale_data/files/prs_orth.c
@@ -0,0 +1,23 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int prs_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x0629,
+ 0xf0f0ffff, 0x062a, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x064b,
+ 0x0654,
+ 0x067e,
+ 0x0686,
+ 0x0698,
+ 0x06a9,
+ 0x06af,
+ 0x06cc,
+};
+#define PRS_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/ps_af_orth.c b/crengine/src/locale_data/files/ps_af_orth.c
similarity index 53%
rename from crengine/fc-lang/files/ps_af_orth.c
rename to crengine/src/locale_data/files/ps_af_orth.c
index 59ec38e55d..3cf544a3cd 100644
--- a/crengine/fc-lang/files/ps_af_orth.c
+++ b/crengine/src/locale_data/files/ps_af_orth.c
@@ -2,18 +2,18 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ps_af_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
+const unsigned int ps_af_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
0x064a,
0x067c,
0x067e,
0x0681,
- 2, 0x0685, 0x0686, // range
+ 0xf0f0ffff, 0x0685, 0x0686, // range
0x0689,
0x0693,
0x0696,
diff --git a/crengine/fc-lang/files/ps_pk_orth.c b/crengine/src/locale_data/files/ps_pk_orth.c
similarity index 53%
rename from crengine/fc-lang/files/ps_pk_orth.c
rename to crengine/src/locale_data/files/ps_pk_orth.c
index d95977b02b..1504561149 100644
--- a/crengine/fc-lang/files/ps_pk_orth.c
+++ b/crengine/src/locale_data/files/ps_pk_orth.c
@@ -2,18 +2,18 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ps_pk_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x063a, // range
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0648, // range
+const unsigned int ps_pk_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
0x064a,
0x067c,
0x067e,
0x0681,
- 2, 0x0685, 0x0686, // range
+ 0xf0f0ffff, 0x0685, 0x0686, // range
0x0689,
0x0693,
0x0696,
diff --git a/crengine/fc-lang/files/pt_orth.c b/crengine/src/locale_data/files/pt_orth.c
similarity index 71%
rename from crengine/fc-lang/files/pt_orth.c
rename to crengine/src/locale_data/files/pt_orth.c
index 49708311e6..b8de28d022 100644
--- a/crengine/fc-lang/files/pt_orth.c
+++ b/crengine/src/locale_data/files/pt_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int pt_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int pt_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c1,
0x00c2,
diff --git a/crengine/fc-lang/files/qu_orth.c b/crengine/src/locale_data/files/qu_orth.c
similarity index 55%
rename from crengine/fc-lang/files/qu_orth.c
rename to crengine/src/locale_data/files/qu_orth.c
index c26bfb62c2..f60dee734b 100644
--- a/crengine/fc-lang/files/qu_orth.c
+++ b/crengine/src/locale_data/files/qu_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int qu_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int qu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00d1,
0x00f1,
0x02c8,
diff --git a/crengine/fc-lang/files/quz_orth.c b/crengine/src/locale_data/files/quz_orth.c
similarity index 55%
rename from crengine/fc-lang/files/quz_orth.c
rename to crengine/src/locale_data/files/quz_orth.c
index c8a743b5ab..e2266868f2 100644
--- a/crengine/fc-lang/files/quz_orth.c
+++ b/crengine/src/locale_data/files/quz_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int quz_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int quz_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00d1,
0x00f1,
0x02c8,
diff --git a/crengine/fc-lang/files/rm_orth.c b/crengine/src/locale_data/files/rm_orth.c
similarity index 64%
rename from crengine/fc-lang/files/rm_orth.c
rename to crengine/src/locale_data/files/rm_orth.c
index 68b907a60f..a65361f7ac 100644
--- a/crengine/fc-lang/files/rm_orth.c
+++ b/crengine/src/locale_data/files/rm_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int rm_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int rm_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c8,
0x00c9,
diff --git a/crengine/fc-lang/files/rn_orth.c b/crengine/src/locale_data/files/rn_orth.c
similarity index 52%
rename from crengine/fc-lang/files/rn_orth.c
rename to crengine/src/locale_data/files/rn_orth.c
index 38925abb92..4094022ae3 100644
--- a/crengine/fc-lang/files/rn_orth.c
+++ b/crengine/src/locale_data/files/rn_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int rn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int rn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define RN_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/ro_orth.c b/crengine/src/locale_data/files/ro_orth.c
new file mode 100644
index 0000000000..da7b89e2e5
--- /dev/null
+++ b/crengine/src/locale_data/files/ro_orth.c
@@ -0,0 +1,17 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ro_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c2,
+ 0x00ce,
+ 0x00e2,
+ 0x00ee,
+ 0xf0f0ffff, 0x0102, 0x0103, // range
+ 0xf0f0ffff, 0x0218, 0x021b, // range
+};
+#define RO_LANG_ORTH_SZ 16
diff --git a/crengine/fc-lang/files/ru_orth.c b/crengine/src/locale_data/files/ru_orth.c
similarity index 60%
rename from crengine/fc-lang/files/ru_orth.c
rename to crengine/src/locale_data/files/ru_orth.c
index 07bfbda6c4..aff7017872 100644
--- a/crengine/fc-lang/files/ru_orth.c
+++ b/crengine/src/locale_data/files/ru_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ru_lang_orth_chars[] = {
+const unsigned int ru_lang_orth_chars[] = {
0x0401,
- 2, 0x0410, 0x044f, // range
+ 0xf0f0ffff, 0x0410, 0x044f, // range
0x0451,
};
#define RU_LANG_ORTH_SZ 5
diff --git a/crengine/fc-lang/files/rw_orth.c b/crengine/src/locale_data/files/rw_orth.c
similarity index 52%
rename from crengine/fc-lang/files/rw_orth.c
rename to crengine/src/locale_data/files/rw_orth.c
index a3f47644af..3686114d8b 100644
--- a/crengine/fc-lang/files/rw_orth.c
+++ b/crengine/src/locale_data/files/rw_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int rw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int rw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define RW_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/sa_orth.c b/crengine/src/locale_data/files/sa_orth.c
new file mode 100644
index 0000000000..432f1e65b8
--- /dev/null
+++ b/crengine/src/locale_data/files/sa_orth.c
@@ -0,0 +1,13 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sa_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0905, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0939, // range
+ 0xf0f0ffff, 0x093f, 0x094c, // range
+ 0x094d,
+};
+#define SA_LANG_ORTH_SZ 10
diff --git a/crengine/fc-lang/files/sah_orth.c b/crengine/src/locale_data/files/sah_orth.c
similarity index 88%
rename from crengine/fc-lang/files/sah_orth.c
rename to crengine/src/locale_data/files/sah_orth.c
index 98403a34e6..79812fd0a6 100644
--- a/crengine/fc-lang/files/sah_orth.c
+++ b/crengine/src/locale_data/files/sah_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sah_lang_orth_chars[] = {
+const unsigned int sah_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/sat_orth.c b/crengine/src/locale_data/files/sat_orth.c
new file mode 100644
index 0000000000..b81aa1df6b
--- /dev/null
+++ b/crengine/src/locale_data/files/sat_orth.c
@@ -0,0 +1,25 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sat_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0901, 0x0903, // range
+ 0xf0f0ffff, 0x0905, 0x090a, // range
+ 0xf0f0ffff, 0x090f, 0x0910, // range
+ 0xf0f0ffff, 0x0913, 0x0914, // range
+ 0xf0f0ffff, 0x0915, 0x0928, // range
+ 0xf0f0ffff, 0x092a, 0x0930, // range
+ 0xf0f0ffff, 0x0932, 0x0932, // range
+ 0x0935,
+ 0xf0f0ffff, 0x0938, 0x0939, // range
+ 0xf0f0ffff, 0x093c, 0x0942, // range
+ 0xf0f0ffff, 0x0947, 0x0948, // range
+ 0xf0f0ffff, 0x094b, 0x094d, // range
+ 0x0950,
+ 0xf0f0ffff, 0x0964, 0x0965, // range
+ 0xf0f0ffff, 0x0966, 0x096f, // range
+ 0x0970,
+};
+#define SAT_LANG_ORTH_SZ 42
diff --git a/crengine/fc-lang/files/sc_orth.c b/crengine/src/locale_data/files/sc_orth.c
similarity index 61%
rename from crengine/fc-lang/files/sc_orth.c
rename to crengine/src/locale_data/files/sc_orth.c
index ed93c4aeac..2da141b955 100644
--- a/crengine/fc-lang/files/sc_orth.c
+++ b/crengine/src/locale_data/files/sc_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sc_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sc_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c8,
0x00cc,
diff --git a/crengine/fc-lang/files/sco_orth.c b/crengine/src/locale_data/files/sco_orth.c
similarity index 50%
rename from crengine/fc-lang/files/sco_orth.c
rename to crengine/src/locale_data/files/sco_orth.c
index d34964f7bf..46d64458e0 100644
--- a/crengine/fc-lang/files/sco_orth.c
+++ b/crengine/src/locale_data/files/sco_orth.c
@@ -2,13 +2,13 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sco_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sco_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x01b7,
- 2, 0x021c, 0x021d, // range
+ 0xf0f0ffff, 0x021c, 0x021d, // range
0x0292,
};
#define SCO_LANG_ORTH_SZ 11
diff --git a/crengine/src/locale_data/files/sd_orth.c b/crengine/src/locale_data/files/sd_orth.c
new file mode 100644
index 0000000000..66e5b7bd84
--- /dev/null
+++ b/crengine/src/locale_data/files/sd_orth.c
@@ -0,0 +1,31 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sd_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0622, // range
+ 0x0624,
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0xf0f0ffff, 0x062a, 0x063a, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0648, // range
+ 0x064a,
+ 0xf0f0ffff, 0x067a, 0x067b, // range
+ 0xf0f0ffff, 0x067d, 0x0680, // range
+ 0xf0f0ffff, 0x0683, 0x0684, // range
+ 0xf0f0ffff, 0x0686, 0x0687, // range
+ 0x068a,
+ 0xf0f0ffff, 0x068c, 0x068d, // range
+ 0x068f,
+ 0x0699,
+ 0x06a6,
+ 0xf0f0ffff, 0x06a9, 0x06aa, // range
+ 0x06af,
+ 0x06b1,
+ 0x06b3,
+ 0x06bb,
+ 0x06be,
+};
+#define SD_LANG_ORTH_SZ 44
diff --git a/crengine/src/locale_data/files/se_orth.c b/crengine/src/locale_data/files/se_orth.c
new file mode 100644
index 0000000000..eb76818672
--- /dev/null
+++ b/crengine/src/locale_data/files/se_orth.c
@@ -0,0 +1,19 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int se_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0x00e1,
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0166, 0x0167, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define SE_LANG_ORTH_SZ 26
diff --git a/crengine/fc-lang/files/sel_orth.c b/crengine/src/locale_data/files/sel_orth.c
similarity index 87%
rename from crengine/fc-lang/files/sel_orth.c
rename to crengine/src/locale_data/files/sel_orth.c
index 7fc75fab4c..81948e535c 100644
--- a/crengine/fc-lang/files/sel_orth.c
+++ b/crengine/src/locale_data/files/sel_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sel_lang_orth_chars[] = {
+const unsigned int sel_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/sg_orth.c b/crengine/src/locale_data/files/sg_orth.c
new file mode 100644
index 0000000000..e489381583
--- /dev/null
+++ b/crengine/src/locale_data/files/sg_orth.c
@@ -0,0 +1,25 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sg_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c2,
+ 0x00c4,
+ 0xf0f0ffff, 0x00ca, 0x00cb, // range
+ 0xf0f0ffff, 0x00ce, 0x00cf, // range
+ 0x00d4,
+ 0x00d6,
+ 0xf0f0ffff, 0x00db, 0x00dc, // range
+ 0x00e2,
+ 0x00e4,
+ 0xf0f0ffff, 0x00ea, 0x00eb, // range
+ 0xf0f0ffff, 0x00ee, 0x00ef, // range
+ 0x00f4,
+ 0x00f6,
+ 0xf0f0ffff, 0x00fb, 0x00fc, // range
+};
+#define SG_LANG_ORTH_SZ 32
diff --git a/crengine/src/locale_data/files/sh_orth.c b/crengine/src/locale_data/files/sh_orth.c
new file mode 100644
index 0000000000..74ce275c5d
--- /dev/null
+++ b/crengine/src/locale_data/files/sh_orth.c
@@ -0,0 +1,45 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sh_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0410, 0x044f, // range
+ 0x0492,
+ 0x0493,
+ 0x0498,
+ 0x0499,
+ 0x04a0,
+ 0x04a1,
+ 0x04a2,
+ 0x04a3,
+ 0x04aa,
+ 0x04ab,
+ 0x04ae,
+ 0x04af,
+ 0x04ba,
+ 0x04bb,
+ 0x04d8,
+ 0x04d9,
+ 0x04e8,
+ 0x04e9,
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0106, 0x0107, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+ 0x0402,
+ 0xf0f0ffff, 0x0408, 0x040b, // range
+ 0x040f,
+ 0xf0f0ffff, 0x0410, 0x0418, // range
+ 0xf0f0ffff, 0x041a, 0x0428, // range
+ 0xf0f0ffff, 0x0430, 0x0438, // range
+ 0xf0f0ffff, 0x043a, 0x0448, // range
+ 0x0452,
+ 0xf0f0ffff, 0x0458, 0x045b, // range
+ 0x045f,
+};
+#define SH_LANG_ORTH_SZ 64
diff --git a/crengine/src/locale_data/files/shs_orth.c b/crengine/src/locale_data/files/shs_orth.c
new file mode 100644
index 0000000000..c22a078643
--- /dev/null
+++ b/crengine/src/locale_data/files/shs_orth.c
@@ -0,0 +1,29 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int shs_lang_orth_chars[] = {
+ 0x0037,
+ 0x0041,
+ 0x0043,
+ 0x0045,
+ 0xf0f0ffff, 0x0047, 0x0049, // range
+ 0xf0f0ffff, 0x004b, 0x0055, // range
+ 0xf0f0ffff, 0x0057, 0x0059, // range
+ 0x0061,
+ 0x0063,
+ 0x0065,
+ 0xf0f0ffff, 0x0067, 0x0069, // range
+ 0xf0f0ffff, 0x006b, 0x0075, // range
+ 0xf0f0ffff, 0x0077, 0x0079, // range
+ 0x00c1,
+ 0x00c9,
+ 0x00cd,
+ 0x00e1,
+ 0x00e9,
+ 0x00ed,
+ 0x0313,
+};
+#define SHS_LANG_ORTH_SZ 32
diff --git a/crengine/src/locale_data/files/si_orth.c b/crengine/src/locale_data/files/si_orth.c
new file mode 100644
index 0000000000..25c57c14bf
--- /dev/null
+++ b/crengine/src/locale_data/files/si_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int si_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0d82, 0x0d83, // range
+ 0xf0f0ffff, 0x0d85, 0x0d8d, // range
+ 0xf0f0ffff, 0x0d91, 0x0d96, // range
+ 0xf0f0ffff, 0x0d9a, 0x0da5, // range
+ 0xf0f0ffff, 0x0da7, 0x0db1, // range
+ 0xf0f0ffff, 0x0db3, 0x0dbb, // range
+ 0x0dbd,
+ 0xf0f0ffff, 0x0dc0, 0x0dc6, // range
+ 0x0dca,
+ 0xf0f0ffff, 0x0dcf, 0x0dd4, // range
+ 0x0dd6,
+ 0xf0f0ffff, 0x0dd8, 0x0dde, // range
+ 0x0df2,
+};
+#define SI_LANG_ORTH_SZ 31
diff --git a/crengine/src/locale_data/files/sid_orth.c b/crengine/src/locale_data/files/sid_orth.c
new file mode 100644
index 0000000000..bce8ed488c
--- /dev/null
+++ b/crengine/src/locale_data/files/sid_orth.c
@@ -0,0 +1,42 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sid_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1250, 0x1256, // range
+ 0x1258,
+ 0xf0f0ffff, 0x125a, 0x125d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0x12c0,
+ 0xf0f0ffff, 0x12c2, 0x12c5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+ 0xf0f0ffff, 0x1220, 0x1226, // range
+ 0xf0f0ffff, 0x1280, 0x1286, // range
+ 0x1288,
+ 0xf0f0ffff, 0x128a, 0x128d, // range
+ 0xf0f0ffff, 0x1340, 0x1346, // range
+};
+#define SID_LANG_ORTH_SZ 87
diff --git a/crengine/src/locale_data/files/sk_orth.c b/crengine/src/locale_data/files/sk_orth.c
new file mode 100644
index 0000000000..72692ab4f3
--- /dev/null
+++ b/crengine/src/locale_data/files/sk_orth.c
@@ -0,0 +1,36 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sk_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0x00c4,
+ 0x00c9,
+ 0x00cd,
+ 0x00d3,
+ 0x00d4,
+ 0x00da,
+ 0x00dd,
+ 0x00e1,
+ 0x00e4,
+ 0x00e9,
+ 0x00ed,
+ 0x00f3,
+ 0x00f4,
+ 0x00fa,
+ 0x00fd,
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x010e, 0x010f, // range
+ 0xf0f0ffff, 0x0139, 0x013a, // range
+ 0xf0f0ffff, 0x013d, 0x013e, // range
+ 0xf0f0ffff, 0x0147, 0x0148, // range
+ 0xf0f0ffff, 0x0154, 0x0155, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0164, 0x0165, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define SK_LANG_ORTH_SZ 49
diff --git a/crengine/fc-lang/files/sl_orth.c b/crengine/src/locale_data/files/sl_orth.c
similarity index 61%
rename from crengine/fc-lang/files/sl_orth.c
rename to crengine/src/locale_data/files/sl_orth.c
index feeba59212..6c26a70e38 100644
--- a/crengine/fc-lang/files/sl_orth.c
+++ b/crengine/src/locale_data/files/sl_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sl_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x0106,
0x0107,
0x010c,
diff --git a/crengine/fc-lang/files/sm_orth.c b/crengine/src/locale_data/files/sm_orth.c
similarity index 53%
rename from crengine/fc-lang/files/sm_orth.c
rename to crengine/src/locale_data/files/sm_orth.c
index b7683c6e2d..40dc57ae27 100644
--- a/crengine/fc-lang/files/sm_orth.c
+++ b/crengine/src/locale_data/files/sm_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sm_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sm_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x02bb,
};
#define SM_LANG_ORTH_SZ 7
diff --git a/crengine/fc-lang/files/sma_orth.c b/crengine/src/locale_data/files/sma_orth.c
similarity index 60%
rename from crengine/fc-lang/files/sma_orth.c
rename to crengine/src/locale_data/files/sma_orth.c
index 59d55419b5..d6e07528c6 100644
--- a/crengine/fc-lang/files/sma_orth.c
+++ b/crengine/src/locale_data/files/sma_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sma_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sma_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00e4,
0x00c5,
diff --git a/crengine/fc-lang/files/smj_orth.c b/crengine/src/locale_data/files/smj_orth.c
similarity index 60%
rename from crengine/fc-lang/files/smj_orth.c
rename to crengine/src/locale_data/files/smj_orth.c
index 3130ebc2a8..c8fadf0e86 100644
--- a/crengine/fc-lang/files/smj_orth.c
+++ b/crengine/src/locale_data/files/smj_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int smj_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int smj_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c1,
0x00e1,
0x00c4,
diff --git a/crengine/src/locale_data/files/smn_orth.c b/crengine/src/locale_data/files/smn_orth.c
new file mode 100644
index 0000000000..0853fe572c
--- /dev/null
+++ b/crengine/src/locale_data/files/smn_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int smn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c1,
+ 0x00e1,
+ 0x00c2,
+ 0x00e2,
+ 0x00c4,
+ 0x00e4,
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define SMN_LANG_ORTH_SZ 27
diff --git a/crengine/src/locale_data/files/sms_orth.c b/crengine/src/locale_data/files/sms_orth.c
new file mode 100644
index 0000000000..d64d9024ff
--- /dev/null
+++ b/crengine/src/locale_data/files/sms_orth.c
@@ -0,0 +1,30 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sms_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c2,
+ 0x00e2,
+ 0x00c4,
+ 0x00e4,
+ 0x00c5,
+ 0x00e5,
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0x01b7,
+ 0x0292,
+ 0xf0f0ffff, 0x01ee, 0x01ef, // range
+ 0xf0f0ffff, 0x01e6, 0x01e7, // range
+ 0xf0f0ffff, 0x01e4, 0x01e5, // range
+ 0xf0f0ffff, 0x01e8, 0x01e9, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
+ 0x00d5,
+ 0x00f5,
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define SMS_LANG_ORTH_SZ 43
diff --git a/crengine/fc-lang/files/sn_orth.c b/crengine/src/locale_data/files/sn_orth.c
similarity index 52%
rename from crengine/fc-lang/files/sn_orth.c
rename to crengine/src/locale_data/files/sn_orth.c
index eff80807ed..87c4790233 100644
--- a/crengine/fc-lang/files/sn_orth.c
+++ b/crengine/src/locale_data/files/sn_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define SN_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/so_orth.c b/crengine/src/locale_data/files/so_orth.c
similarity index 52%
rename from crengine/fc-lang/files/so_orth.c
rename to crengine/src/locale_data/files/so_orth.c
index 455e616339..e357e00f5a 100644
--- a/crengine/fc-lang/files/so_orth.c
+++ b/crengine/src/locale_data/files/so_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int so_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int so_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define SO_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/sq_orth.c b/crengine/src/locale_data/files/sq_orth.c
similarity index 56%
rename from crengine/fc-lang/files/sq_orth.c
rename to crengine/src/locale_data/files/sq_orth.c
index fbcea1d83b..b672ef27f8 100644
--- a/crengine/fc-lang/files/sq_orth.c
+++ b/crengine/src/locale_data/files/sq_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sq_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sq_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c7,
0x00cb,
0x00e7,
diff --git a/crengine/src/locale_data/files/sr_orth.c b/crengine/src/locale_data/files/sr_orth.c
new file mode 100644
index 0000000000..f58eae1387
--- /dev/null
+++ b/crengine/src/locale_data/files/sr_orth.c
@@ -0,0 +1,19 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int sr_lang_orth_chars[] = {
+ 0x0402,
+ 0xf0f0ffff, 0x0408, 0x040b, // range
+ 0x040f,
+ 0xf0f0ffff, 0x0410, 0x0418, // range
+ 0xf0f0ffff, 0x041a, 0x0428, // range
+ 0xf0f0ffff, 0x0430, 0x0438, // range
+ 0xf0f0ffff, 0x043a, 0x0448, // range
+ 0x0452,
+ 0xf0f0ffff, 0x0458, 0x045b, // range
+ 0x045f,
+};
+#define SR_LANG_ORTH_SZ 22
diff --git a/crengine/fc-lang/files/ss_orth.c b/crengine/src/locale_data/files/ss_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ss_orth.c
rename to crengine/src/locale_data/files/ss_orth.c
index d2f6418b43..5e58fce79d 100644
--- a/crengine/fc-lang/files/ss_orth.c
+++ b/crengine/src/locale_data/files/ss_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ss_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ss_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define SS_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/st_orth.c b/crengine/src/locale_data/files/st_orth.c
similarity index 52%
rename from crengine/fc-lang/files/st_orth.c
rename to crengine/src/locale_data/files/st_orth.c
index 7747e93d72..e6f155946f 100644
--- a/crengine/fc-lang/files/st_orth.c
+++ b/crengine/src/locale_data/files/st_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int st_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int st_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define ST_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/su_orth.c b/crengine/src/locale_data/files/su_orth.c
similarity index 54%
rename from crengine/fc-lang/files/su_orth.c
rename to crengine/src/locale_data/files/su_orth.c
index 96fb47f2de..b5a5bfc1e4 100644
--- a/crengine/fc-lang/files/su_orth.c
+++ b/crengine/src/locale_data/files/su_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int su_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int su_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c9,
0x00e9,
};
diff --git a/crengine/fc-lang/files/sv_orth.c b/crengine/src/locale_data/files/sv_orth.c
similarity index 65%
rename from crengine/fc-lang/files/sv_orth.c
rename to crengine/src/locale_data/files/sv_orth.c
index b58dda57a8..1316a1e332 100644
--- a/crengine/fc-lang/files/sv_orth.c
+++ b/crengine/src/locale_data/files/sv_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sv_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sv_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00c1,
0x00c4,
diff --git a/crengine/fc-lang/files/sw_orth.c b/crengine/src/locale_data/files/sw_orth.c
similarity index 52%
rename from crengine/fc-lang/files/sw_orth.c
rename to crengine/src/locale_data/files/sw_orth.c
index cc5cd3515a..5fdf1e4988 100644
--- a/crengine/fc-lang/files/sw_orth.c
+++ b/crengine/src/locale_data/files/sw_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int sw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int sw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define SW_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/syr_orth.c b/crengine/src/locale_data/files/syr_orth.c
similarity index 52%
rename from crengine/fc-lang/files/syr_orth.c
rename to crengine/src/locale_data/files/syr_orth.c
index 502fd642ad..c5850e6830 100644
--- a/crengine/fc-lang/files/syr_orth.c
+++ b/crengine/src/locale_data/files/syr_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int syr_lang_orth_chars[] = {
- 2, 0x0710, 0x072c, // range
- 2, 0x0730, 0x073f, // range
+const unsigned int syr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0710, 0x072c, // range
+ 0xf0f0ffff, 0x0730, 0x073f, // range
};
#define SYR_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/ta_orth.c b/crengine/src/locale_data/files/ta_orth.c
new file mode 100644
index 0000000000..7f6694dfb2
--- /dev/null
+++ b/crengine/src/locale_data/files/ta_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ta_lang_orth_chars[] = {
+ 0x0b83,
+ 0xf0f0ffff, 0x0b85, 0x0b8a, // range
+ 0xf0f0ffff, 0x0b8e, 0x0b90, // range
+ 0xf0f0ffff, 0x0b92, 0x0b95, // range
+ 0xf0f0ffff, 0x0b99, 0x0b9a, // range
+ 0x0b9c,
+ 0xf0f0ffff, 0x0b9e, 0x0b9f, // range
+ 0xf0f0ffff, 0x0ba3, 0x0ba4, // range
+ 0xf0f0ffff, 0x0ba8, 0x0baa, // range
+ 0xf0f0ffff, 0x0bae, 0x0bb5, // range
+ 0xf0f0ffff, 0x0bb7, 0x0bb9, // range
+ 0xf0f0ffff, 0x0bbe, 0x0bc2, // range
+ 0xf0f0ffff, 0x0bc6, 0x0bc8, // range
+ 0xf0f0ffff, 0x0bca, 0x0bcd, // range
+ 0x0bd7,
+};
+#define TA_LANG_ORTH_SZ 39
diff --git a/crengine/src/locale_data/files/te_orth.c b/crengine/src/locale_data/files/te_orth.c
new file mode 100644
index 0000000000..ca00d3bd0b
--- /dev/null
+++ b/crengine/src/locale_data/files/te_orth.c
@@ -0,0 +1,20 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int te_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0c01, 0x0c03, // range
+ 0xf0f0ffff, 0x0c05, 0x0c0c, // range
+ 0xf0f0ffff, 0x0c0e, 0x0c10, // range
+ 0xf0f0ffff, 0x0c12, 0x0c28, // range
+ 0xf0f0ffff, 0x0c2a, 0x0c33, // range
+ 0xf0f0ffff, 0x0c35, 0x0c39, // range
+ 0xf0f0ffff, 0x0c3e, 0x0c44, // range
+ 0xf0f0ffff, 0x0c46, 0x0c48, // range
+ 0xf0f0ffff, 0x0c4a, 0x0c4d, // range
+ 0xf0f0ffff, 0x0c55, 0x0c56, // range
+ 0xf0f0ffff, 0x0c60, 0x0c61, // range
+};
+#define TE_LANG_ORTH_SZ 33
diff --git a/crengine/fc-lang/files/tg_orth.c b/crengine/src/locale_data/files/tg_orth.c
similarity index 88%
rename from crengine/fc-lang/files/tg_orth.c
rename to crengine/src/locale_data/files/tg_orth.c
index 9e7dcdf32c..740ea44abe 100644
--- a/crengine/fc-lang/files/tg_orth.c
+++ b/crengine/src/locale_data/files/tg_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tg_lang_orth_chars[] = {
+const unsigned int tg_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/fc-lang/files/th_orth.c b/crengine/src/locale_data/files/th_orth.c
similarity index 52%
rename from crengine/fc-lang/files/th_orth.c
rename to crengine/src/locale_data/files/th_orth.c
index 80e10ed13f..ebf1846cf3 100644
--- a/crengine/fc-lang/files/th_orth.c
+++ b/crengine/src/locale_data/files/th_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int th_lang_orth_chars[] = {
- 2, 0x0e01, 0x0e3a, // range
- 2, 0x0e3f, 0x0e4e, // range
+const unsigned int th_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0e01, 0x0e3a, // range
+ 0xf0f0ffff, 0x0e3f, 0x0e4e, // range
};
#define TH_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/ti_er_orth.c b/crengine/src/locale_data/files/ti_er_orth.c
new file mode 100644
index 0000000000..40cc8d3ace
--- /dev/null
+++ b/crengine/src/locale_data/files/ti_er_orth.c
@@ -0,0 +1,37 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ti_er_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1250, 0x1256, // range
+ 0x1258,
+ 0xf0f0ffff, 0x125a, 0x125d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0x12c0,
+ 0xf0f0ffff, 0x12c2, 0x12c5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+};
+#define TI_ER_LANG_ORTH_SZ 74
diff --git a/crengine/src/locale_data/files/ti_et_orth.c b/crengine/src/locale_data/files/ti_et_orth.c
new file mode 100644
index 0000000000..0cc33822f0
--- /dev/null
+++ b/crengine/src/locale_data/files/ti_et_orth.c
@@ -0,0 +1,42 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ti_et_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1250, 0x1256, // range
+ 0x1258,
+ 0xf0f0ffff, 0x125a, 0x125d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0x12c0,
+ 0xf0f0ffff, 0x12c2, 0x12c5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+ 0xf0f0ffff, 0x1220, 0x1226, // range
+ 0xf0f0ffff, 0x1280, 0x1286, // range
+ 0x1288,
+ 0xf0f0ffff, 0x128a, 0x128d, // range
+ 0xf0f0ffff, 0x1340, 0x1346, // range
+};
+#define TI_ET_LANG_ORTH_SZ 87
diff --git a/crengine/src/locale_data/files/tig_orth.c b/crengine/src/locale_data/files/tig_orth.c
new file mode 100644
index 0000000000..3f99c1f50f
--- /dev/null
+++ b/crengine/src/locale_data/files/tig_orth.c
@@ -0,0 +1,33 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int tig_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x1297, // range
+ 0xf0f0ffff, 0x12a0, 0x12a6, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12df, // range
+ 0xf0f0ffff, 0x12e8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+};
+#define TIG_LANG_ORTH_SZ 66
diff --git a/crengine/src/locale_data/files/tk_orth.c b/crengine/src/locale_data/files/tk_orth.c
new file mode 100644
index 0000000000..d7c2b69bc4
--- /dev/null
+++ b/crengine/src/locale_data/files/tk_orth.c
@@ -0,0 +1,22 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int tk_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c4,
+ 0x00c7,
+ 0x00d6,
+ 0xf0f0ffff, 0x00dc, 0x00dd, // range
+ 0x00e4,
+ 0x00e7,
+ 0x00f6,
+ 0xf0f0ffff, 0x00fc, 0x00fd, // range
+ 0xf0f0ffff, 0x0147, 0x0148, // range
+ 0xf0f0ffff, 0x015e, 0x015f, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define TK_LANG_ORTH_SZ 27
diff --git a/crengine/src/locale_data/files/tl_orth.c b/crengine/src/locale_data/files/tl_orth.c
new file mode 100644
index 0000000000..f8f484bba2
--- /dev/null
+++ b/crengine/src/locale_data/files/tl_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int tl_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c0, 0x00c2, // range
+ 0xf0f0ffff, 0x00c8, 0x00ca, // range
+ 0xf0f0ffff, 0x00cc, 0x00ce, // range
+ 0xf0f0ffff, 0x00d1, 0x00d4, // range
+ 0xf0f0ffff, 0x00d9, 0x00db, // range
+ 0xf0f0ffff, 0x00e0, 0x00e2, // range
+ 0xf0f0ffff, 0x00e8, 0x00ea, // range
+ 0xf0f0ffff, 0x00ec, 0x00ee, // range
+ 0xf0f0ffff, 0x00f1, 0x00f4, // range
+ 0xf0f0ffff, 0x00f9, 0x00fb, // range
+};
+#define TL_LANG_ORTH_SZ 36
diff --git a/crengine/fc-lang/files/tn_orth.c b/crengine/src/locale_data/files/tn_orth.c
similarity index 52%
rename from crengine/fc-lang/files/tn_orth.c
rename to crengine/src/locale_data/files/tn_orth.c
index 96d5fcae93..34f3c01559 100644
--- a/crengine/fc-lang/files/tn_orth.c
+++ b/crengine/src/locale_data/files/tn_orth.c
@@ -2,15 +2,15 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tn_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int tn_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00ca,
0x00ea,
0x00d4,
0x00f4,
- 2, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
};
#define TN_LANG_ORTH_SZ 13
diff --git a/crengine/fc-lang/files/to_orth.c b/crengine/src/locale_data/files/to_orth.c
similarity index 53%
rename from crengine/fc-lang/files/to_orth.c
rename to crengine/src/locale_data/files/to_orth.c
index 88cb7bf836..72ade70fab 100644
--- a/crengine/fc-lang/files/to_orth.c
+++ b/crengine/src/locale_data/files/to_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int to_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int to_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x02bb,
};
#define TO_LANG_ORTH_SZ 7
diff --git a/crengine/fc-lang/files/tr_orth.c b/crengine/src/locale_data/files/tr_orth.c
similarity index 66%
rename from crengine/fc-lang/files/tr_orth.c
rename to crengine/src/locale_data/files/tr_orth.c
index 40330f86a7..e19bbb3984 100644
--- a/crengine/fc-lang/files/tr_orth.c
+++ b/crengine/src/locale_data/files/tr_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tr_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int tr_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00c7,
0x00ce,
diff --git a/crengine/fc-lang/files/ts_orth.c b/crengine/src/locale_data/files/ts_orth.c
similarity index 52%
rename from crengine/fc-lang/files/ts_orth.c
rename to crengine/src/locale_data/files/ts_orth.c
index 2e7e23f008..bab0105b67 100644
--- a/crengine/fc-lang/files/ts_orth.c
+++ b/crengine/src/locale_data/files/ts_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ts_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int ts_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define TS_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/tt_orth.c b/crengine/src/locale_data/files/tt_orth.c
similarity index 88%
rename from crengine/fc-lang/files/tt_orth.c
rename to crengine/src/locale_data/files/tt_orth.c
index 9f00e32b39..b9ba2566a6 100644
--- a/crengine/fc-lang/files/tt_orth.c
+++ b/crengine/src/locale_data/files/tt_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tt_lang_orth_chars[] = {
+const unsigned int tt_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/fc-lang/files/tw_orth.c b/crengine/src/locale_data/files/tw_orth.c
similarity index 67%
rename from crengine/fc-lang/files/tw_orth.c
rename to crengine/src/locale_data/files/tw_orth.c
index 86b162e3f9..316bac18e8 100644
--- a/crengine/fc-lang/files/tw_orth.c
+++ b/crengine/src/locale_data/files/tw_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tw_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int tw_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c3,
0x00e3,
0x00d1,
diff --git a/crengine/src/locale_data/files/ty_orth.c b/crengine/src/locale_data/files/ty_orth.c
new file mode 100644
index 0000000000..80e4b6d4c2
--- /dev/null
+++ b/crengine/src/locale_data/files/ty_orth.c
@@ -0,0 +1,19 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ty_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00cf,
+ 0x00ef,
+ 0xf0f0ffff, 0x0100, 0x0101, // range
+ 0xf0f0ffff, 0x0112, 0x0113, // range
+ 0xf0f0ffff, 0x012a, 0x012b, // range
+ 0xf0f0ffff, 0x014c, 0x014d, // range
+ 0xf0f0ffff, 0x016a, 0x016b, // range
+ 0x02bc,
+};
+#define TY_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/tyv_orth.c b/crengine/src/locale_data/files/tyv_orth.c
similarity index 87%
rename from crengine/fc-lang/files/tyv_orth.c
rename to crengine/src/locale_data/files/tyv_orth.c
index f4d836b3de..6d7ae43ebb 100644
--- a/crengine/fc-lang/files/tyv_orth.c
+++ b/crengine/src/locale_data/files/tyv_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int tyv_lang_orth_chars[] = {
+const unsigned int tyv_lang_orth_chars[] = {
0x0401,
0x0410,
0x0411,
diff --git a/crengine/src/locale_data/files/ug_orth.c b/crengine/src/locale_data/files/ug_orth.c
new file mode 100644
index 0000000000..c5b7c67a70
--- /dev/null
+++ b/crengine/src/locale_data/files/ug_orth.c
@@ -0,0 +1,27 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ug_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0626, 0x0628, // range
+ 0x062a,
+ 0x062c,
+ 0xf0f0ffff, 0x062e, 0x062f, // range
+ 0xf0f0ffff, 0x0631, 0x0634, // range
+ 0x063a,
+ 0xf0f0ffff, 0x0641, 0x0646, // range
+ 0xf0f0ffff, 0x0648, 0x064a, // range
+ 0x067e,
+ 0x0686,
+ 0x0698,
+ 0x06ad,
+ 0x06af,
+ 0x06be,
+ 0xf0f0ffff, 0x06c6, 0x06c8, // range
+ 0x06cb,
+ 0x06d0,
+ 0x06d5,
+};
+#define UG_LANG_ORTH_SZ 30
diff --git a/crengine/fc-lang/files/uk_orth.c b/crengine/src/locale_data/files/uk_orth.c
similarity index 65%
rename from crengine/fc-lang/files/uk_orth.c
rename to crengine/src/locale_data/files/uk_orth.c
index cbfd240cbf..623a1d4322 100644
--- a/crengine/fc-lang/files/uk_orth.c
+++ b/crengine/src/locale_data/files/uk_orth.c
@@ -2,13 +2,13 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int uk_lang_orth_chars[] = {
+const unsigned int uk_lang_orth_chars[] = {
0x0404,
0x0406,
0x0407,
- 2, 0x0410, 0x044f, // range
+ 0xf0f0ffff, 0x0410, 0x044f, // range
0x0454,
0x0456,
0x0457,
diff --git a/crengine/src/locale_data/files/und_zmth_orth.c b/crengine/src/locale_data/files/und_zmth_orth.c
new file mode 100644
index 0000000000..b8e915b2f3
--- /dev/null
+++ b/crengine/src/locale_data/files/und_zmth_orth.c
@@ -0,0 +1,124 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int und_zmth_lang_orth_chars[] = {
+ 0x0020,
+ 0x0021,
+ 0x0021,
+ 0xf0f0ffff, 0x0023, 0x0026, // range
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0xf0f0ffff, 0x0030, 0x0039, // range
+ 0xf0f0ffff, 0x003a, 0x003b, // range
+ 0xf0f0ffff, 0x003c, 0x003e, // range
+ 0x003f,
+ 0x0040,
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x00a1,
+ 0xf0f0ffff, 0x00a2, 0x00a7, // range
+ 0x00ac,
+ 0x00b0,
+ 0x00b1,
+ 0xf0f0ffff, 0x00b5, 0x00b6, // range
+ 0x00b7,
+ 0x00bf,
+ 0x00d7,
+ 0x00f7,
+ 0x0131,
+ 0x0308,
+ 0x030a,
+ 0x030c,
+ 0x0338,
+ 0xf0f0ffff, 0x0391, 0x03a1, // range
+ 0xf0f0ffff, 0x03a3, 0x03a4, // range
+ 0xf0f0ffff, 0x03a6, 0x03a9, // range
+ 0xf0f0ffff, 0x03b1, 0x03c1, // range
+ 0xf0f0ffff, 0x03c3, 0x03c9, // range
+ 0xf0f0ffff, 0x03d5, 0x03d6, // range
+ 0xf0f0ffff, 0x03f0, 0x03f1, // range
+ 0x2016,
+ 0x2020,
+ 0x2020,
+ 0x2021,
+ 0x2021,
+ 0x2022,
+ 0x2026,
+ 0x2044,
+ 0x2057,
+ 0x20e1,
+ 0x2102,
+ 0xf0f0ffff, 0x210e, 0x210f, // range
+ 0xf0f0ffff, 0x2110, 0x2113, // range
+ 0x2115,
+ 0xf0f0ffff, 0x2118, 0x211d, // range
+ 0x2124,
+ 0xf0f0ffff, 0x2200, 0x2201, // range
+ 0x2202,
+ 0xf0f0ffff, 0x2203, 0x2204, // range
+ 0x2205,
+ 0xf0f0ffff, 0x2206, 0x2207, // range
+ 0xf0f0ffff, 0x2208, 0x220d, // range
+ 0xf0f0ffff, 0x220f, 0x2211, // range
+ 0xf0f0ffff, 0x2212, 0x2213, // range
+ 0xf0f0ffff, 0x2214, 0x2219, // range
+ 0x221d,
+ 0xf0f0ffff, 0x221e, 0x2222, // range
+ 0xf0f0ffff, 0x2223, 0x2226, // range
+ 0xf0f0ffff, 0x2227, 0x222a, // range
+ 0xf0f0ffff, 0x2234, 0x2235, // range
+ 0xf0f0ffff, 0x2236, 0x2237, // range
+ 0x2238,
+ 0xf0f0ffff, 0x2239, 0x223d, // range
+ 0x223e,
+ 0x223f,
+ 0x2240,
+ 0xf0f0ffff, 0x228c, 0x228e, // range
+ 0xf0f0ffff, 0x228f, 0x2292, // range
+ 0xf0f0ffff, 0x2293, 0x22a1, // range
+ 0xf0f0ffff, 0x22a2, 0x22a3, // range
+ 0xf0f0ffff, 0x22a4, 0x22a5, // range
+ 0xf0f0ffff, 0x22c0, 0x22c3, // range
+ 0x22c8,
+ 0x22cd,
+ 0xf0f0ffff, 0x22ce, 0x22cf, // range
+ 0x2308,
+ 0x2309,
+ 0x230a,
+ 0x230b,
+ 0xf0f0ffff, 0x2322, 0x2323, // range
+ 0xf0f0ffff, 0x25a0, 0x25a1, // range
+ 0x27e6,
+ 0x27e7,
+ 0x27e8,
+ 0x27e9,
+ 0xf0f0ffff, 0x1d400, 0x1d454, // range
+ 0xf0f0ffff, 0x1d456, 0x1d49c, // range
+ 0xf0f0ffff, 0x1d49e, 0x1d49f, // range
+ 0x1d4a2,
+ 0xf0f0ffff, 0x1d4a5, 0x1d4a6, // range
+ 0xf0f0ffff, 0x1d4a9, 0x1d4ac, // range
+ 0xf0f0ffff, 0x1d53b, 0x1d53e, // range
+ 0xf0f0ffff, 0x1d540, 0x1d544, // range
+ 0x1d546,
+ 0xf0f0ffff, 0x1d54a, 0x1d550, // range
+ 0xf0f0ffff, 0x1d6a4, 0x1d6a5, // range
+};
+#define UND_ZMTH_LANG_ORTH_SZ 213
diff --git a/crengine/src/locale_data/files/und_zsye_orth.c b/crengine/src/locale_data/files/und_zsye_orth.c
new file mode 100644
index 0000000000..6a678d38e9
--- /dev/null
+++ b/crengine/src/locale_data/files/und_zsye_orth.c
@@ -0,0 +1,78 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int und_zsye_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x231a, 0x231b, // range
+ 0xf0f0ffff, 0x23e9, 0x23ec, // range
+ 0x23f0,
+ 0x23f3,
+ 0xf0f0ffff, 0x25fd, 0x25fe, // range
+ 0xf0f0ffff, 0x2614, 0x2615, // range
+ 0xf0f0ffff, 0x2648, 0x2653, // range
+ 0x267f,
+ 0x2693,
+ 0x26a1,
+ 0xf0f0ffff, 0x26aa, 0x26ab, // range
+ 0xf0f0ffff, 0x26bd, 0x26be, // range
+ 0xf0f0ffff, 0x26c4, 0x26c5, // range
+ 0x26ce,
+ 0x26d4,
+ 0x26ea,
+ 0xf0f0ffff, 0x26f2, 0x26f3, // range
+ 0x26f5,
+ 0x26fa,
+ 0x26fd,
+ 0x2705,
+ 0xf0f0ffff, 0x270a, 0x270b, // range
+ 0x2728,
+ 0x274c,
+ 0x274e,
+ 0xf0f0ffff, 0x2753, 0x2755, // range
+ 0x2757,
+ 0xf0f0ffff, 0x2795, 0x2797, // range
+ 0x27b0,
+ 0x27bf,
+ 0xf0f0ffff, 0x2b1b, 0x2b1c, // range
+ 0x2b50,
+ 0x2b55,
+ 0x1f004,
+ 0x1f0cf,
+ 0x1f18e,
+ 0xf0f0ffff, 0x1f191, 0x1f19a, // range
+ 0xf0f0ffff, 0x1f1e6, 0x1f1ff, // range
+ 0x1f201,
+ 0x1f21a,
+ 0x1f22f,
+ 0xf0f0ffff, 0x1f232, 0x1f236, // range
+ 0xf0f0ffff, 0x1f238, 0x1f23a, // range
+ 0xf0f0ffff, 0x1f250, 0x1f251, // range
+ 0xf0f0ffff, 0x1f300, 0x1f320, // range
+ 0xf0f0ffff, 0x1f330, 0x1f335, // range
+ 0xf0f0ffff, 0x1f337, 0x1f37c, // range
+ 0xf0f0ffff, 0x1f380, 0x1f393, // range
+ 0xf0f0ffff, 0x1f3a0, 0x1f3c4, // range
+ 0xf0f0ffff, 0x1f3c6, 0x1f3ca, // range
+ 0xf0f0ffff, 0x1f3e0, 0x1f3f0, // range
+ 0x1f440,
+ 0xf0f0ffff, 0x1f442, 0x1f4f7, // range
+ 0xf0f0ffff, 0x1f4f9, 0x1f4fc, // range
+ 0xf0f0ffff, 0x1f500, 0x1f53d, // range
+ 0xf0f0ffff, 0x1f550, 0x1f567, // range
+ 0xf0f0ffff, 0x1f5fb, 0x1f5ff, // range
+ 0xf0f0ffff, 0x1f601, 0x1f610, // range
+ 0xf0f0ffff, 0x1f612, 0x1f614, // range
+ 0x1f616,
+ 0x1f618,
+ 0x1f61a,
+ 0xf0f0ffff, 0x1f61c, 0x1f61e, // range
+ 0xf0f0ffff, 0x1f620, 0x1f625, // range
+ 0xf0f0ffff, 0x1f628, 0x1f62b, // range
+ 0x1f62d,
+ 0xf0f0ffff, 0x1f630, 0x1f633, // range
+ 0xf0f0ffff, 0x1f635, 0x1f640, // range
+ 0xf0f0ffff, 0x1f645, 0x1f64f, // range
+};
+#define UND_ZSYE_LANG_ORTH_SZ 145
diff --git a/crengine/fc-lang/files/ur_orth.c b/crengine/src/locale_data/files/ur_orth.c
similarity index 56%
rename from crengine/fc-lang/files/ur_orth.c
rename to crengine/src/locale_data/files/ur_orth.c
index 8debe91ec8..3044d49bef 100644
--- a/crengine/fc-lang/files/ur_orth.c
+++ b/crengine/src/locale_data/files/ur_orth.c
@@ -2,14 +2,14 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int ur_lang_orth_chars[] = {
- 2, 0x0621, 0x0624, // range
- 2, 0x0626, 0x0628, // range
+const unsigned int ur_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0621, 0x0624, // range
+ 0xf0f0ffff, 0x0626, 0x0628, // range
0x063a,
- 2, 0x0641, 0x0642, // range
- 2, 0x0644, 0x0646, // range
+ 0xf0f0ffff, 0x0641, 0x0642, // range
+ 0xf0f0ffff, 0x0644, 0x0646, // range
0x0648,
0x0679,
0x067e,
diff --git a/crengine/fc-lang/files/uz_orth.c b/crengine/src/locale_data/files/uz_orth.c
similarity index 52%
rename from crengine/fc-lang/files/uz_orth.c
rename to crengine/src/locale_data/files/uz_orth.c
index 4cbf40c5f8..4a44ff770c 100644
--- a/crengine/fc-lang/files/uz_orth.c
+++ b/crengine/src/locale_data/files/uz_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int uz_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int uz_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define UZ_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/files/ve_orth.c b/crengine/src/locale_data/files/ve_orth.c
new file mode 100644
index 0000000000..303c1376f9
--- /dev/null
+++ b/crengine/src/locale_data/files/ve_orth.c
@@ -0,0 +1,16 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int ve_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x1e12, 0x1e13, // range
+ 0xf0f0ffff, 0x1e3c, 0x1e3d, // range
+ 0xf0f0ffff, 0x1e44, 0x1e45, // range
+ 0xf0f0ffff, 0x1e4a, 0x1e4b, // range
+ 0xf0f0ffff, 0x1e70, 0x1e71, // range
+};
+#define VE_LANG_ORTH_SZ 21
diff --git a/crengine/src/locale_data/files/vi_orth.c b/crengine/src/locale_data/files/vi_orth.c
new file mode 100644
index 0000000000..9d959be84a
--- /dev/null
+++ b/crengine/src/locale_data/files/vi_orth.c
@@ -0,0 +1,35 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int vi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x00c0, 0x00c3, // range
+ 0xf0f0ffff, 0x00c8, 0x00ca, // range
+ 0xf0f0ffff, 0x00cc, 0x00cd, // range
+ 0xf0f0ffff, 0x00d2, 0x00d5, // range
+ 0xf0f0ffff, 0x00d9, 0x00da, // range
+ 0x00dd,
+ 0xf0f0ffff, 0x00e0, 0x00e3, // range
+ 0xf0f0ffff, 0x00e8, 0x00ea, // range
+ 0xf0f0ffff, 0x00ec, 0x00ed, // range
+ 0xf0f0ffff, 0x00f2, 0x00f5, // range
+ 0xf0f0ffff, 0x00f9, 0x00fa, // range
+ 0x00fd,
+ 0xf0f0ffff, 0x0102, 0x0103, // range
+ 0xf0f0ffff, 0x0110, 0x0111, // range
+ 0xf0f0ffff, 0x0128, 0x0129, // range
+ 0xf0f0ffff, 0x0168, 0x0169, // range
+ 0xf0f0ffff, 0x01a0, 0x01a1, // range
+ 0xf0f0ffff, 0x01af, 0x01b0, // range
+ 0xf0f0ffff, 0x0300, 0x0303, // range
+ 0x0306,
+ 0x0309,
+ 0x031b,
+ 0x0323,
+ 0xf0f0ffff, 0x1ea0, 0x1ef9, // range
+};
+#define VI_LANG_ORTH_SZ 66
diff --git a/crengine/src/locale_data/files/vo_orth.c b/crengine/src/locale_data/files/vo_orth.c
new file mode 100644
index 0000000000..d34aa3094e
--- /dev/null
+++ b/crengine/src/locale_data/files/vo_orth.c
@@ -0,0 +1,21 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int vo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x0050, // range
+ 0xf0f0ffff, 0x0052, 0x0056, // range
+ 0xf0f0ffff, 0x0058, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x0070, // range
+ 0xf0f0ffff, 0x0072, 0x0076, // range
+ 0xf0f0ffff, 0x0078, 0x007a, // range
+ 0x00c4,
+ 0x00d6,
+ 0x00dc,
+ 0x00e4,
+ 0x00f6,
+ 0x00fc,
+};
+#define VO_LANG_ORTH_SZ 24
diff --git a/crengine/fc-lang/files/vot_orth.c b/crengine/src/locale_data/files/vot_orth.c
similarity index 50%
rename from crengine/fc-lang/files/vot_orth.c
rename to crengine/src/locale_data/files/vot_orth.c
index 5dc476bb4b..df5c4b6411 100644
--- a/crengine/fc-lang/files/vot_orth.c
+++ b/crengine/src/locale_data/files/vot_orth.c
@@ -2,18 +2,18 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int vot_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int vot_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00d6,
0x00dc,
0x00e4,
0x00f6,
0x00fc,
- 2, 0x0160, 0x0161, // range
- 2, 0x017d, 0x017e, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
};
#define VOT_LANG_ORTH_SZ 18
diff --git a/crengine/fc-lang/files/wa_orth.c b/crengine/src/locale_data/files/wa_orth.c
similarity index 66%
rename from crengine/fc-lang/files/wa_orth.c
rename to crengine/src/locale_data/files/wa_orth.c
index 5868889c28..c3f3acc338 100644
--- a/crengine/fc-lang/files/wa_orth.c
+++ b/crengine/src/locale_data/files/wa_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int wa_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int wa_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c2,
0x00c5,
0x00c7,
diff --git a/crengine/src/locale_data/files/wal_orth.c b/crengine/src/locale_data/files/wal_orth.c
new file mode 100644
index 0000000000..be9d4b61a3
--- /dev/null
+++ b/crengine/src/locale_data/files/wal_orth.c
@@ -0,0 +1,42 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int wal_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x1200, 0x1206, // range
+ 0xf0f0ffff, 0x1208, 0x1216, // range
+ 0xf0f0ffff, 0x1218, 0x121f, // range
+ 0xf0f0ffff, 0x1228, 0x1230, // range
+ 0xf0f0ffff, 0x1238, 0x1246, // range
+ 0x1248,
+ 0xf0f0ffff, 0x124a, 0x124d, // range
+ 0xf0f0ffff, 0x1250, 0x1256, // range
+ 0x1258,
+ 0xf0f0ffff, 0x125a, 0x125d, // range
+ 0xf0f0ffff, 0x1260, 0x126e, // range
+ 0xf0f0ffff, 0x1270, 0x127f, // range
+ 0xf0f0ffff, 0x1290, 0x12a7, // range
+ 0xf0f0ffff, 0x12a8, 0x12ae, // range
+ 0x12b0,
+ 0xf0f0ffff, 0x12b2, 0x12b5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0x12c0,
+ 0xf0f0ffff, 0x12c2, 0x12c5, // range
+ 0xf0f0ffff, 0x12c8, 0x12ce, // range
+ 0xf0f0ffff, 0x12d0, 0x12d6, // range
+ 0xf0f0ffff, 0x12d8, 0x12ee, // range
+ 0xf0f0ffff, 0x12f0, 0x12f7, // range
+ 0xf0f0ffff, 0x1300, 0x130e, // range
+ 0x1310,
+ 0xf0f0ffff, 0x1312, 0x1315, // range
+ 0xf0f0ffff, 0x1320, 0x133f, // range
+ 0xf0f0ffff, 0x1348, 0x1356, // range
+ 0xf0f0ffff, 0x1220, 0x1226, // range
+ 0xf0f0ffff, 0x1280, 0x1286, // range
+ 0x1288,
+ 0xf0f0ffff, 0x128a, 0x128d, // range
+ 0xf0f0ffff, 0x1340, 0x1346, // range
+};
+#define WAL_LANG_ORTH_SZ 87
diff --git a/crengine/src/locale_data/files/wen_orth.c b/crengine/src/locale_data/files/wen_orth.c
new file mode 100644
index 0000000000..711558249f
--- /dev/null
+++ b/crengine/src/locale_data/files/wen_orth.c
@@ -0,0 +1,24 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int wen_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0xf0f0ffff, 0x0106, 0x0107, // range
+ 0xf0f0ffff, 0x010c, 0x010d, // range
+ 0xf0f0ffff, 0x011a, 0x011b, // range
+ 0xf0f0ffff, 0x0141, 0x0142, // range
+ 0xf0f0ffff, 0x0143, 0x0144, // range
+ 0x00d3,
+ 0x00f3,
+ 0xf0f0ffff, 0x0154, 0x0155, // range
+ 0xf0f0ffff, 0x0158, 0x0159, // range
+ 0xf0f0ffff, 0x015a, 0x015b, // range
+ 0xf0f0ffff, 0x0160, 0x0161, // range
+ 0xf0f0ffff, 0x0179, 0x017a, // range
+ 0xf0f0ffff, 0x017d, 0x017e, // range
+};
+#define WEN_LANG_ORTH_SZ 41
diff --git a/crengine/fc-lang/files/wo_orth.c b/crengine/src/locale_data/files/wo_orth.c
similarity index 58%
rename from crengine/fc-lang/files/wo_orth.c
rename to crengine/src/locale_data/files/wo_orth.c
index bc76469396..c529301690 100644
--- a/crengine/fc-lang/files/wo_orth.c
+++ b/crengine/src/locale_data/files/wo_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int wo_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int wo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c0,
0x00e0,
0x00c3,
@@ -17,7 +17,7 @@ unsigned int wo_lang_orth_chars[] = {
0x00eb,
0x00d1,
0x00f1,
- 2, 0x014a, 0x014b, // range
+ 0xf0f0ffff, 0x014a, 0x014b, // range
0x00d3,
0x00f3,
};
diff --git a/crengine/fc-lang/files/xh_orth.c b/crengine/src/locale_data/files/xh_orth.c
similarity index 52%
rename from crengine/fc-lang/files/xh_orth.c
rename to crengine/src/locale_data/files/xh_orth.c
index 09d32ce35b..a60a8cedc4 100644
--- a/crengine/fc-lang/files/xh_orth.c
+++ b/crengine/src/locale_data/files/xh_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int xh_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int xh_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define XH_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/yap_orth.c b/crengine/src/locale_data/files/yap_orth.c
similarity index 58%
rename from crengine/fc-lang/files/yap_orth.c
rename to crengine/src/locale_data/files/yap_orth.c
index 0b66868a1d..d4c0671863 100644
--- a/crengine/fc-lang/files/yap_orth.c
+++ b/crengine/src/locale_data/files/yap_orth.c
@@ -2,11 +2,11 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int yap_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int yap_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
0x00c4,
0x00e4,
0x00cb,
diff --git a/crengine/fc-lang/files/yi_orth.c b/crengine/src/locale_data/files/yi_orth.c
similarity index 58%
rename from crengine/fc-lang/files/yi_orth.c
rename to crengine/src/locale_data/files/yi_orth.c
index e3b6517ca0..068985ab0e 100644
--- a/crengine/fc-lang/files/yi_orth.c
+++ b/crengine/src/locale_data/files/yi_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int yi_lang_orth_chars[] = {
- 2, 0x05d0, 0x05ea, // range
+const unsigned int yi_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x05d0, 0x05ea, // range
};
#define YI_LANG_ORTH_SZ 3
diff --git a/crengine/src/locale_data/files/yo_orth.c b/crengine/src/locale_data/files/yo_orth.c
new file mode 100644
index 0000000000..3771ecc986
--- /dev/null
+++ b/crengine/src/locale_data/files/yo_orth.c
@@ -0,0 +1,64 @@
+
+// This file is autogenerated from fc-lang database.
+// https://www.freedesktop.org/wiki/Software/fontconfig/
+// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
+// by convert utility from https://github.com/virxkane/freetype_textdraw
+
+const unsigned int yo_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0xf0f0ffff, 0x011a, 0x011b, // range
+ 0xf0f0ffff, 0x0128, 0x0129, // range
+ 0xf0f0ffff, 0x0143, 0x0144, // range
+ 0xf0f0ffff, 0x0168, 0x0169, // range
+ 0xf0f0ffff, 0x01cd, 0x01ce, // range
+ 0xf0f0ffff, 0x01cf, 0x01d0, // range
+ 0xf0f0ffff, 0x01d1, 0x01d2, // range
+ 0xf0f0ffff, 0x01d3, 0x01d4, // range
+ 0xf0f0ffff, 0x01f8, 0x01f9, // range
+ 0x0300,
+ 0x0301,
+ 0x0302,
+ 0x0303,
+ 0x030c,
+ 0xf0f0ffff, 0x1e3e, 0x1e3f, // range
+ 0xf0f0ffff, 0x1e62, 0x1e63, // range
+ 0xf0f0ffff, 0x1eb8, 0x1eb9, // range
+ 0xf0f0ffff, 0x1ebc, 0x1ebd, // range
+ 0xf0f0ffff, 0x1ecc, 0x1ecd, // range
+};
+#define YO_LANG_ORTH_SZ 87
diff --git a/crengine/fc-lang/files/za_orth.c b/crengine/src/locale_data/files/za_orth.c
similarity index 52%
rename from crengine/fc-lang/files/za_orth.c
rename to crengine/src/locale_data/files/za_orth.c
index e029e97b57..880230872c 100644
--- a/crengine/fc-lang/files/za_orth.c
+++ b/crengine/src/locale_data/files/za_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int za_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int za_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define ZA_LANG_ORTH_SZ 6
diff --git a/crengine/fc-lang/files/zh_cn_orth.c b/crengine/src/locale_data/files/zh_cn_orth.c
similarity index 99%
rename from crengine/fc-lang/files/zh_cn_orth.c
rename to crengine/src/locale_data/files/zh_cn_orth.c
index c48286352f..cbfb9b112f 100644
--- a/crengine/fc-lang/files/zh_cn_orth.c
+++ b/crengine/src/locale_data/files/zh_cn_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zh_cn_lang_orth_chars[] = {
+const unsigned int zh_cn_lang_orth_chars[] = {
0x02c7,
0x02c9,
0x4e00,
diff --git a/crengine/fc-lang/files/zh_hk_orth.c b/crengine/src/locale_data/files/zh_hk_orth.c
similarity index 98%
rename from crengine/fc-lang/files/zh_hk_orth.c
rename to crengine/src/locale_data/files/zh_hk_orth.c
index 0f1167a0ec..1a07336e3a 100644
--- a/crengine/fc-lang/files/zh_hk_orth.c
+++ b/crengine/src/locale_data/files/zh_hk_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zh_hk_lang_orth_chars[] = {
+const unsigned int zh_hk_lang_orth_chars[] = {
0x3007,
0x344c,
0x3464,
diff --git a/crengine/fc-lang/files/zh_mo_orth.c b/crengine/src/locale_data/files/zh_mo_orth.c
similarity index 98%
rename from crengine/fc-lang/files/zh_mo_orth.c
rename to crengine/src/locale_data/files/zh_mo_orth.c
index f0b22cee0b..26f3e55062 100644
--- a/crengine/fc-lang/files/zh_mo_orth.c
+++ b/crengine/src/locale_data/files/zh_mo_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zh_mo_lang_orth_chars[] = {
+const unsigned int zh_mo_lang_orth_chars[] = {
0x3007,
0x344c,
0x3464,
diff --git a/crengine/fc-lang/files/zh_sg_orth.c b/crengine/src/locale_data/files/zh_sg_orth.c
similarity index 99%
rename from crengine/fc-lang/files/zh_sg_orth.c
rename to crengine/src/locale_data/files/zh_sg_orth.c
index f8d02a0f0d..a19b586205 100644
--- a/crengine/fc-lang/files/zh_sg_orth.c
+++ b/crengine/src/locale_data/files/zh_sg_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zh_sg_lang_orth_chars[] = {
+const unsigned int zh_sg_lang_orth_chars[] = {
0x02c7,
0x02c9,
0x4e00,
diff --git a/crengine/fc-lang/files/zh_tw_orth.c b/crengine/src/locale_data/files/zh_tw_orth.c
similarity index 99%
rename from crengine/fc-lang/files/zh_tw_orth.c
rename to crengine/src/locale_data/files/zh_tw_orth.c
index 5ad7bc6d8d..5446f9fae5 100644
--- a/crengine/fc-lang/files/zh_tw_orth.c
+++ b/crengine/src/locale_data/files/zh_tw_orth.c
@@ -2,9 +2,9 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zh_tw_lang_orth_chars[] = {
+const unsigned int zh_tw_lang_orth_chars[] = {
0x4e00,
0x4e01,
0x4e03,
diff --git a/crengine/fc-lang/files/zu_orth.c b/crengine/src/locale_data/files/zu_orth.c
similarity index 52%
rename from crengine/fc-lang/files/zu_orth.c
rename to crengine/src/locale_data/files/zu_orth.c
index dbb76c8a03..eafd2a88c1 100644
--- a/crengine/fc-lang/files/zu_orth.c
+++ b/crengine/src/locale_data/files/zu_orth.c
@@ -2,10 +2,10 @@
// This file is autogenerated from fc-lang database.
// https://www.freedesktop.org/wiki/Software/fontconfig/
// https://gitlab.freedesktop.org/fontconfig/fontconfig/tree/master/fc-lang
-// by fc-lang_conv at https://github.com/virxkane/freetype_textdraw
+// by convert utility from https://github.com/virxkane/freetype_textdraw
-unsigned int zu_lang_orth_chars[] = {
- 2, 0x0041, 0x005a, // range
- 2, 0x0061, 0x007a, // range
+const unsigned int zu_lang_orth_chars[] = {
+ 0xf0f0ffff, 0x0041, 0x005a, // range
+ 0xf0f0ffff, 0x0061, 0x007a, // range
};
#define ZU_LANG_ORTH_SZ 6
diff --git a/crengine/src/locale_data/iso-15924_data.c b/crengine/src/locale_data/iso-15924_data.c
new file mode 100644
index 0000000000..f1eb45c667
--- /dev/null
+++ b/crengine/src/locale_data/iso-15924_data.c
@@ -0,0 +1,224 @@
+// ISO 15924 Codes for the representation of names of scripts.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://unicode.org/iso15924/
+// file: iso15924-codes.html
+// url: https://unicode.org/iso15924/iso15924-codes.html
+
+#include "iso-15924_data.h"
+
+#include
+
+const struct iso15924_rec iso15924_data[] = {
+ {"Adlm", "Adlam", "Adlam", 166},
+ {"Afak", "Afaka", NULL, 439},
+ {"Aghb", "Caucasian Albanian", "Caucasian_Albanian", 239},
+ {"Ahom", "Ahom, Tai Ahom", "Ahom", 338},
+ {"Arab", "Arabic", "Arabic", 160},
+ {"Aran", "Arabic (Nastaliq variant)", NULL, 161},
+ {"Armi", "Imperial Aramaic", "Imperial_Aramaic", 124},
+ {"Armn", "Armenian", "Armenian", 230},
+ {"Avst", "Avestan", "Avestan", 134},
+ {"Bali", "Balinese", "Balinese", 360},
+ {"Bamu", "Bamum", "Bamum", 435},
+ {"Bass", "Bassa Vah", "Bassa_Vah", 259},
+ {"Batk", "Batak", "Batak", 365},
+ {"Beng", "Bengali (Bangla)", "Bengali", 325},
+ {"Bhks", "Bhaiksuki", "Bhaiksuki", 334},
+ {"Blis", "Blissymbols", NULL, 550},
+ {"Bopo", "Bopomofo", "Bopomofo", 285},
+ {"Brah", "Brahmi", "Brahmi", 300},
+ {"Brai", "Braille", "Braille", 570},
+ {"Bugi", "Buginese", "Buginese", 367},
+ {"Buhd", "Buhid", "Buhid", 372},
+ {"Cakm", "Chakma", "Chakma", 349},
+ {"Cans", "Unified Canadian Aboriginal Syllabics", "Canadian_Aboriginal", 440},
+ {"Cari", "Carian", "Carian", 201},
+ {"Cham", "Cham", "Cham", 358},
+ {"Cher", "Cherokee", "Cherokee", 445},
+ {"Chrs", "Chorasmian", "Chorasmian", 109},
+ {"Cirt", "Cirth", NULL, 291},
+ {"Copt", "Coptic", "Coptic", 204},
+ {"Cpmn", "Cypro-Minoan", NULL, 402},
+ {"Cprt", "Cypriot syllabary", "Cypriot", 403},
+ {"Cyrl", "Cyrillic", "Cyrillic", 220},
+ {"Cyrs", "Cyrillic (Old Church Slavonic variant)", NULL, 221},
+ {"Deva", "Devanagari (Nagari)", "Devanagari", 315},
+ {"Diak", "Dives Akuru", "Dives_Akuru", 342},
+ {"Dogr", "Dogra", "Dogra", 328},
+ {"Dsrt", "Deseret (Mormon)", "Deseret", 250},
+ {"Dupl", "Duployan shorthand, Duployan stenography", "Duployan", 755},
+ {"Egyd", "Egyptian demotic", NULL, 70},
+ {"Egyh", "Egyptian hieratic", NULL, 60},
+ {"Egyp", "Egyptian hieroglyphs", "Egyptian_Hieroglyphs", 50},
+ {"Elba", "Elbasan", "Elbasan", 226},
+ {"Elym", "Elymaic", "Elymaic", 128},
+ {"Ethi", "Ethiopic (Geʻez)", "Ethiopic", 430},
+ {"Geok", "Khutsuri (Asomtavruli and Nuskhuri)", "Georgian", 241},
+ {"Geor", "Georgian (Mkhedruli and Mtavruli)", "Georgian", 240},
+ {"Glag", "Glagolitic", "Glagolitic", 225},
+ {"Gong", "Gunjala Gondi", "Gunjala_Gondi", 312},
+ {"Gonm", "Masaram Gondi", "Masaram_Gondi", 313},
+ {"Goth", "Gothic", "Gothic", 206},
+ {"Gran", "Grantha", "Grantha", 343},
+ {"Grek", "Greek", "Greek", 200},
+ {"Gujr", "Gujarati", "Gujarati", 320},
+ {"Guru", "Gurmukhi", "Gurmukhi", 310},
+ {"Hanb", "Han with Bopomofo (alias for Han + Bopomofo)", NULL, 503},
+ {"Hang", "Hangul (Hangŭl, Hangeul)", "Hangul", 286},
+ {"Hani", "Han (Hanzi, Kanji, Hanja)", "Han", 500},
+ {"Hano", "Hanunoo (Hanunóo)", "Hanunoo", 371},
+ {"Hans", "Han (Simplified variant)", NULL, 501},
+ {"Hant", "Han (Traditional variant)", NULL, 502},
+ {"Hatr", "Hatran", "Hatran", 127},
+ {"Hebr", "Hebrew", "Hebrew", 125},
+ {"Hira", "Hiragana", "Hiragana", 410},
+ {"Hluw", "Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)", "Anatolian_Hieroglyphs", 80},
+ {"Hmng", "Pahawh Hmong", "Pahawh_Hmong", 450},
+ {"Hmnp", "Nyiakeng Puachue Hmong", "Nyiakeng_Puachue_Hmong", 451},
+ {"Hrkt", "Japanese syllabaries (alias for Hiragana + Katakana)", "Katakana_Or_Hiragana", 412},
+ {"Hung", "Old Hungarian (Hungarian Runic)", "Old_Hungarian", 176},
+ {"Inds", "Indus (Harappan)", NULL, 610},
+ {"Ital", "Old Italic (Etruscan, Oscan, etc.)", "Old_Italic", 210},
+ {"Jamo", "Jamo (alias for Jamo subset of Hangul)", NULL, 284},
+ {"Java", "Javanese", "Javanese", 361},
+ {"Jpan", "Japanese (alias for Han + Hiragana + Katakana)", NULL, 413},
+ {"Jurc", "Jurchen", NULL, 510},
+ {"Kali", "Kayah Li", "Kayah_Li", 357},
+ {"Kana", "Katakana", "Katakana", 411},
+ {"Khar", "Kharoshthi", "Kharoshthi", 305},
+ {"Khmr", "Khmer", "Khmer", 355},
+ {"Khoj", "Khojki", "Khojki", 322},
+ {"Kitl", "Khitan large script", NULL, 505},
+ {"Kits", "Khitan small script", "Khitan_Small_Script", 288},
+ {"Knda", "Kannada", "Kannada", 345},
+ {"Kore", "Korean (alias for Hangul + Han)", NULL, 287},
+ {"Kpel", "Kpelle", NULL, 436},
+ {"Kthi", "Kaithi", "Kaithi", 317},
+ {"Lana", "Tai Tham (Lanna)", "Tai_Tham", 351},
+ {"Laoo", "Lao", "Lao", 356},
+ {"Latf", "Latin (Fraktur variant)", NULL, 217},
+ {"Latg", "Latin (Gaelic variant)", NULL, 216},
+ {"Latn", "Latin", "Latin", 215},
+ {"Leke", "Leke", NULL, 364},
+ {"Lepc", "Lepcha (Róng)", "Lepcha", 335},
+ {"Limb", "Limbu", "Limbu", 336},
+ {"Lina", "Linear A", "Linear_A", 400},
+ {"Linb", "Linear B", "Linear_B", 401},
+ {"Lisu", "Lisu (Fraser)", "Lisu", 399},
+ {"Loma", "Loma", NULL, 437},
+ {"Lyci", "Lycian", "Lycian", 202},
+ {"Lydi", "Lydian", "Lydian", 116},
+ {"Mahj", "Mahajani", "Mahajani", 314},
+ {"Maka", "Makasar", "Makasar", 366},
+ {"Mand", "Mandaic, Mandaean", "Mandaic", 140},
+ {"Mani", "Manichaean", "Manichaean", 139},
+ {"Marc", "Marchen", "Marchen", 332},
+ {"Maya", "Mayan hieroglyphs", NULL, 90},
+ {"Medf", "Medefaidrin (Oberi Okaime, Oberi Ɔkaimɛ)", "Medefaidrin", 265},
+ {"Mend", "Mende Kikakui", "Mende_Kikakui", 438},
+ {"Merc", "Meroitic Cursive", "Meroitic_Cursive", 101},
+ {"Mero", "Meroitic Hieroglyphs", "Meroitic_Hieroglyphs", 100},
+ {"Mlym", "Malayalam", "Malayalam", 347},
+ {"Modi", "Modi, Moḍī", "Modi", 324},
+ {"Mong", "Mongolian", "Mongolian", 145},
+ {"Moon", "Moon (Moon code, Moon script, Moon type)", NULL, 218},
+ {"Mroo", "Mro, Mru", "Mro", 264},
+ {"Mtei", "Meitei Mayek (Meithei, Meetei)", "Meetei_Mayek", 337},
+ {"Mult", "Multani", "Multani", 323},
+ {"Mymr", "Myanmar (Burmese)", "Myanmar", 350},
+ {"Nand", "Nandinagari", "Nandinagari", 311},
+ {"Narb", "Old North Arabian (Ancient North Arabian)", "Old_North_Arabian", 106},
+ {"Nbat", "Nabataean", "Nabataean", 159},
+ {"Newa", "Newa, Newar, Newari, Nepāla lipi", "Newa", 333},
+ {"Nkdb", "Naxi Dongba (na²¹ɕi³³ to³³ba²¹, Nakhi Tomba)", NULL, 85},
+ {"Nkgb", "Naxi Geba (na²¹ɕi³³ gʌ²¹ba²¹, 'Na-'Khi ²Ggŏ-¹baw, Nakhi Geba)", NULL, 420},
+ {"Nkoo", "N’Ko", "Nko", 165},
+ {"Nshu", "Nüshu", "Nushu", 499},
+ {"Ogam", "Ogham", "Ogham", 212},
+ {"Olck", "Ol Chiki (Ol Cemet’, Ol, Santali)", "Ol_Chiki", 261},
+ {"Orkh", "Old Turkic, Orkhon Runic", "Old_Turkic", 175},
+ {"Orya", "Oriya (Odia)", "Oriya", 327},
+ {"Osge", "Osage", "Osage", 219},
+ {"Osma", "Osmanya", "Osmanya", 260},
+ {"Ougr", "Old Uyghur", NULL, 143},
+ {"Palm", "Palmyrene", "Palmyrene", 126},
+ {"Pauc", "Pau Cin Hau", "Pau_Cin_Hau", 263},
+ {"Pcun", "Proto-Cuneiform", NULL, 15},
+ {"Pelm", "Proto-Elamite", NULL, 16},
+ {"Perm", "Old Permic", "Old_Permic", 227},
+ {"Phag", "Phags-pa", "Phags_Pa", 331},
+ {"Phli", "Inscriptional Pahlavi", "Inscriptional_Pahlavi", 131},
+ {"Phlp", "Psalter Pahlavi", "Psalter_Pahlavi", 132},
+ {"Phlv", "Book Pahlavi", NULL, 133},
+ {"Phnx", "Phoenician", "Phoenician", 115},
+ {"Plrd", "Miao (Pollard)", "Miao", 282},
+ {"Piqd", "Klingon (KLI pIqaD)", NULL, 293},
+ {"Prti", "Inscriptional Parthian", "Inscriptional_Parthian", 130},
+ {"Psin", "Proto-Sinaitic", NULL, 103},
+ {"Qaaa", "Reserved for private use (start)", NULL, 900},
+ {"Qabx", "Reserved for private use (end)", NULL, 949},
+ {"Ranj", "Ranjana", NULL, 303},
+ {"Rjng", "Rejang (Redjang, Kaganga)", "Rejang", 363},
+ {"Rohg", "Hanifi Rohingya", "Hanifi_Rohingya", 167},
+ {"Roro", "Rongorongo", NULL, 620},
+ {"Runr", "Runic", "Runic", 211},
+ {"Samr", "Samaritan", "Samaritan", 123},
+ {"Sara", "Sarati", NULL, 292},
+ {"Sarb", "Old South Arabian", "Old_South_Arabian", 105},
+ {"Saur", "Saurashtra", "Saurashtra", 344},
+ {"Sgnw", "SignWriting", "SignWriting", 95},
+ {"Shaw", "Shavian (Shaw)", "Shavian", 281},
+ {"Shrd", "Sharada, Śāradā", "Sharada", 319},
+ {"Shui", "Shuishu", NULL, 530},
+ {"Sidd", "Siddham, Siddhaṃ, Siddhamātṛkā", "Siddham", 302},
+ {"Sind", "Khudawadi, Sindhi", "Khudawadi", 318},
+ {"Sinh", "Sinhala", "Sinhala", 348},
+ {"Sogd", "Sogdian", "Sogdian", 141},
+ {"Sogo", "Old Sogdian", "Old_Sogdian", 142},
+ {"Sora", "Sora Sompeng", "Sora_Sompeng", 398},
+ {"Soyo", "Soyombo", "Soyombo", 329},
+ {"Sund", "Sundanese", "Sundanese", 362},
+ {"Sylo", "Syloti Nagri", "Syloti_Nagri", 316},
+ {"Syrc", "Syriac", "Syriac", 135},
+ {"Syre", "Syriac (Estrangelo variant)", NULL, 138},
+ {"Syrj", "Syriac (Western variant)", NULL, 137},
+ {"Syrn", "Syriac (Eastern variant)", NULL, 136},
+ {"Tagb", "Tagbanwa", "Tagbanwa", 373},
+ {"Takr", "Takri, Ṭākrī, Ṭāṅkrī", "Takri", 321},
+ {"Tale", "Tai Le", "Tai_Le", 353},
+ {"Talu", "New Tai Lue", "New_Tai_Lue", 354},
+ {"Taml", "Tamil", "Tamil", 346},
+ {"Tang", "Tangut", "Tangut", 520},
+ {"Tavt", "Tai Viet", "Tai_Viet", 359},
+ {"Telu", "Telugu", "Telugu", 340},
+ {"Teng", "Tengwar", NULL, 290},
+ {"Tfng", "Tifinagh (Berber)", "Tifinagh", 120},
+ {"Tglg", "Tagalog (Baybayin, Alibata)", "Tagalog", 370},
+ {"Thaa", "Thaana", "Thaana", 170},
+ {"Thai", "Thai", "Thai", 352},
+ {"Tibt", "Tibetan", "Tibetan", 330},
+ {"Tirh", "Tirhuta", "Tirhuta", 326},
+ {"Tnsa", "Tangsa", NULL, 275},
+ {"Toto", "Toto", NULL, 294},
+ {"Ugar", "Ugaritic", "Ugaritic", 40},
+ {"Vaii", "Vai", "Vai", 470},
+ {"Visp", "Visible Speech", NULL, 280},
+ {"Vith", "Vithkuqi", NULL, 228},
+ {"Wara", "Warang Citi (Varang Kshiti)", "Warang_Citi", 262},
+ {"Wcho", "Wancho", "Wancho", 283},
+ {"Wole", "Woleai", NULL, 480},
+ {"Xpeo", "Old Persian", "Old_Persian", 30},
+ {"Xsux", "Cuneiform, Sumero-Akkadian", "Cuneiform", 20},
+ {"Yezi", "Yezidi", "Yezidi", 192},
+ {"Yiii", "Yi", "Yi", 460},
+ {"Zanb", "Zanabazar Square (Zanabazarin Dörböljin Useg, Xewtee Dörböljin Bicig, Horizontal Square Script)", "Zanabazar_Square", 339},
+ {"Zinh", "Code for inherited script", "Inherited", 994},
+ {"Zmth", "Mathematical notation", NULL, 995},
+ {"Zsye", "Symbols (Emoji variant)", NULL, 993},
+ {"Zsym", "Symbols", NULL, 996},
+ {"Zxxx", "Code for unwritten documents", NULL, 997},
+ {"Zyyy", "Code for undetermined script", "Common", 998},
+ {"Zzzz", "Code for uncoded script", "Unknown", 999},
+};
+
diff --git a/crengine/src/locale_data/iso-15924_data.h b/crengine/src/locale_data/iso-15924_data.h
new file mode 100644
index 0000000000..71d52707ee
--- /dev/null
+++ b/crengine/src/locale_data/iso-15924_data.h
@@ -0,0 +1,42 @@
+// ISO 15924 Codes for the representation of names of scripts.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://unicode.org/iso15924/
+// file: iso15924-codes.html
+// url: https://unicode.org/iso15924/iso15924-codes.html
+
+#ifndef ISO15924_DATA_H
+#define ISO15924_DATA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ISO15924_DATA_SZ 210
+
+struct iso15924_rec {
+ /**
+ * Code.
+ */
+ const char* code;
+ /**
+ * English name.
+ */
+ const char* name;
+ /**
+ * Alias.
+ */
+ const char* alias;
+ /**
+ * Numeric value.
+ */
+ unsigned int num;
+};
+
+extern const struct iso15924_rec iso15924_data[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ISO15924_DATA_H
diff --git a/crengine/src/locale_data/iso-3166-1_data.c b/crengine/src/locale_data/iso-3166-1_data.c
new file mode 100644
index 0000000000..1f0c55459b
--- /dev/null
+++ b/crengine/src/locale_data/iso-3166-1_data.c
@@ -0,0 +1,263 @@
+// ISO 3166-1 Country Codes.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://www.iso.org/iso-3166-country-codes.html
+
+#include "iso-3166-1_data.h"
+
+#include
+
+const struct iso3166_1_rec iso3166_1_data[] = {
+ {"AFG", "AF", "Afghanistan", 4},
+ {"ALB", "AL", "Albania", 8},
+ {"DZA", "DZ", "Algeria", 12},
+ {"ASM", "AS", "American Samoa", 16},
+ {"AND", "AD", "Andorra", 20},
+ {"AGO", "AO", "Angola", 24},
+ {"AIA", "AI", "Anguilla", 660},
+ {"ATA", "AQ", "Antarctica", 10},
+ {"ATG", "AG", "Antigua and Barbuda", 28},
+ {"ARG", "AR", "Argentina", 32},
+ {"ARM", "AM", "Armenia", 51},
+ {"ABW", "AW", "Aruba", 533},
+ {"AUS", "AU", "Australia", 36},
+ {"AUT", "AT", "Austria", 40},
+ {"AZE", "AZ", "Azerbaijan", 31},
+ {"BHS", "BS", "Bahamas (the)", 44},
+ {"BHR", "BH", "Bahrain", 48},
+ {"BGD", "BD", "Bangladesh", 50},
+ {"BRB", "BB", "Barbados", 52},
+ {"BLR", "BY", "Belarus", 112},
+ {"BEL", "BE", "Belgium", 56},
+ {"BLZ", "BZ", "Belize", 84},
+ {"BEN", "BJ", "Benin", 204},
+ {"BMU", "BM", "Bermuda", 60},
+ {"BTN", "BT", "Bhutan", 64},
+ {"BOL", "BO", "Bolivia (Plurinational State of)", 68},
+ {"BES", "BQ", "Bonaire, Sint Eustatius and Saba", 535},
+ {"BIH", "BA", "Bosnia and Herzegovina", 70},
+ {"BWA", "BW", "Botswana", 72},
+ {"BVT", "BV", "Bouvet Island", 74},
+ {"BRA", "BR", "Brazil", 76},
+ {"IOT", "IO", "British Indian Ocean Territory (the)", 86},
+ {"BRN", "BN", "Brunei Darussalam", 96},
+ {"BGR", "BG", "Bulgaria", 100},
+ {"BFA", "BF", "Burkina Faso", 854},
+ {"BDI", "BI", "Burundi", 108},
+ {"CPV", "CV", "Cabo Verde", 132},
+ {"KHM", "KH", "Cambodia", 116},
+ {"CMR", "CM", "Cameroon", 120},
+ {"CAN", "CA", "Canada", 124},
+ {"CYM", "KY", "Cayman Islands (the)", 136},
+ {"CAF", "CF", "Central African Republic (the)", 140},
+ {"TCD", "TD", "Chad", 148},
+ {"CHL", "CL", "Chile", 152},
+ {"CHN", "CN", "China", 156},
+ {"CXR", "CX", "Christmas Island", 162},
+ {"CCK", "CC", "Cocos (Keeling) Islands (the)", 166},
+ {"COL", "CO", "Colombia", 170},
+ {"COM", "KM", "Comoros (the)", 174},
+ {"COD", "CD", "Congo (the Democratic Republic of the)", 180},
+ {"COG", "CG", "Congo (the)", 178},
+ {"COK", "CK", "Cook Islands (the)", 184},
+ {"CRI", "CR", "Costa Rica", 188},
+ {"HRV", "HR", "Croatia", 191},
+ {"CUB", "CU", "Cuba", 192},
+ {"CUW", "CW", "Curaçao", 531},
+ {"CYP", "CY", "Cyprus", 196},
+ {"CZE", "CZ", "Czechia", 203},
+ {"CIV", "CI", "Côte d'Ivoire", 384},
+ {"DNK", "DK", "Denmark", 208},
+ {"DJI", "DJ", "Djibouti", 262},
+ {"DMA", "DM", "Dominica", 212},
+ {"DOM", "DO", "Dominican Republic (the)", 214},
+ {"ECU", "EC", "Ecuador", 218},
+ {"EGY", "EG", "Egypt", 818},
+ {"SLV", "SV", "El Salvador", 222},
+ {"GNQ", "GQ", "Equatorial Guinea", 226},
+ {"ERI", "ER", "Eritrea", 232},
+ {"EST", "EE", "Estonia", 233},
+ {"SWZ", "SZ", "Eswatini", 748},
+ {"ETH", "ET", "Ethiopia", 231},
+ {"FLK", "FK", "Falkland Islands (the) [Malvinas]", 238},
+ {"FRO", "FO", "Faroe Islands (the)", 234},
+ {"FJI", "FJ", "Fiji", 242},
+ {"FIN", "FI", "Finland", 246},
+ {"FRA", "FR", "France", 250},
+ {"GUF", "GF", "French Guiana", 254},
+ {"PYF", "PF", "French Polynesia", 258},
+ {"ATF", "TF", "French Southern Territories (the)", 260},
+ {"GAB", "GA", "Gabon", 266},
+ {"GMB", "GM", "Gambia (the)", 270},
+ {"GEO", "GE", "Georgia", 268},
+ {"DEU", "DE", "Germany", 276},
+ {"GHA", "GH", "Ghana", 288},
+ {"GIB", "GI", "Gibraltar", 292},
+ {"GRC", "GR", "Greece", 300},
+ {"GRL", "GL", "Greenland", 304},
+ {"GRD", "GD", "Grenada", 308},
+ {"GLP", "GP", "Guadeloupe", 312},
+ {"GUM", "GU", "Guam", 316},
+ {"GTM", "GT", "Guatemala", 320},
+ {"GGY", "GG", "Guernsey", 831},
+ {"GIN", "GN", "Guinea", 324},
+ {"GNB", "GW", "Guinea-Bissau", 624},
+ {"GUY", "GY", "Guyana", 328},
+ {"HTI", "HT", "Haiti", 332},
+ {"HMD", "HM", "Heard Island and McDonald Islands", 334},
+ {"VAT", "VA", "Holy See (the)", 336},
+ {"HND", "HN", "Honduras", 340},
+ {"HKG", "HK", "Hong Kong", 344},
+ {"HUN", "HU", "Hungary", 348},
+ {"ISL", "IS", "Iceland", 352},
+ {"IND", "IN", "India", 356},
+ {"IDN", "ID", "Indonesia", 360},
+ {"IRN", "IR", "Iran (Islamic Republic of)", 364},
+ {"IRQ", "IQ", "Iraq", 368},
+ {"IRL", "IE", "Ireland", 372},
+ {"IMN", "IM", "Isle of Man", 833},
+ {"ISR", "IL", "Israel", 376},
+ {"ITA", "IT", "Italy", 380},
+ {"JAM", "JM", "Jamaica", 388},
+ {"JPN", "JP", "Japan", 392},
+ {"JEY", "JE", "Jersey", 832},
+ {"JOR", "JO", "Jordan", 400},
+ {"KAZ", "KZ", "Kazakhstan", 398},
+ {"KEN", "KE", "Kenya", 404},
+ {"KIR", "KI", "Kiribati", 296},
+ {"PRK", "KP", "Korea (the Democratic People's Republic of)", 408},
+ {"KOR", "KR", "Korea (the Republic of)", 410},
+ {"KWT", "KW", "Kuwait", 414},
+ {"KGZ", "KG", "Kyrgyzstan", 417},
+ {"LAO", "LA", "Lao People's Democratic Republic (the)", 418},
+ {"LVA", "LV", "Latvia", 428},
+ {"LBN", "LB", "Lebanon", 422},
+ {"LSO", "LS", "Lesotho", 426},
+ {"LBR", "LR", "Liberia", 430},
+ {"LBY", "LY", "Libya", 434},
+ {"LIE", "LI", "Liechtenstein", 438},
+ {"LTU", "LT", "Lithuania", 440},
+ {"LUX", "LU", "Luxembourg", 442},
+ {"MAC", "MO", "Macao", 446},
+ {"MDG", "MG", "Madagascar", 450},
+ {"MWI", "MW", "Malawi", 454},
+ {"MYS", "MY", "Malaysia", 458},
+ {"MDV", "MV", "Maldives", 462},
+ {"MLI", "ML", "Mali", 466},
+ {"MLT", "MT", "Malta", 470},
+ {"MHL", "MH", "Marshall Islands (the)", 584},
+ {"MTQ", "MQ", "Martinique", 474},
+ {"MRT", "MR", "Mauritania", 478},
+ {"MUS", "MU", "Mauritius", 480},
+ {"MYT", "YT", "Mayotte", 175},
+ {"MEX", "MX", "Mexico", 484},
+ {"FSM", "FM", "Micronesia (Federated States of)", 583},
+ {"MDA", "MD", "Moldova (the Republic of)", 498},
+ {"MCO", "MC", "Monaco", 492},
+ {"MNG", "MN", "Mongolia", 496},
+ {"MNE", "ME", "Montenegro", 499},
+ {"MSR", "MS", "Montserrat", 500},
+ {"MAR", "MA", "Morocco", 504},
+ {"MOZ", "MZ", "Mozambique", 508},
+ {"MMR", "MM", "Myanmar", 104},
+ {"NAM", "NA", "Namibia", 516},
+ {"NRU", "NR", "Nauru", 520},
+ {"NPL", "NP", "Nepal", 524},
+ {"NLD", "NL", "Netherlands (the)", 528},
+ {"NCL", "NC", "New Caledonia", 540},
+ {"NZL", "NZ", "New Zealand", 554},
+ {"NIC", "NI", "Nicaragua", 558},
+ {"NER", "NE", "Niger (the)", 562},
+ {"NGA", "NG", "Nigeria", 566},
+ {"NIU", "NU", "Niue", 570},
+ {"NFK", "NF", "Norfolk Island", 574},
+ {"MKD", "MK", "North Macedonia", 807},
+ {"MNP", "MP", "Northern Mariana Islands (the)", 580},
+ {"NOR", "NO", "Norway", 578},
+ {"OMN", "OM", "Oman", 512},
+ {"PAK", "PK", "Pakistan", 586},
+ {"PLW", "PW", "Palau", 585},
+ {"PSE", "PS", "Palestine, State of", 275},
+ {"PAN", "PA", "Panama", 591},
+ {"PNG", "PG", "Papua New Guinea", 598},
+ {"PRY", "PY", "Paraguay", 600},
+ {"PER", "PE", "Peru", 604},
+ {"PHL", "PH", "Philippines (the)", 608},
+ {"PCN", "PN", "Pitcairn", 612},
+ {"POL", "PL", "Poland", 616},
+ {"PRT", "PT", "Portugal", 620},
+ {"PRI", "PR", "Puerto Rico", 630},
+ {"QAT", "QA", "Qatar", 634},
+ {"ROU", "RO", "Romania", 642},
+ {"RUS", "RU", "Russian Federation (the)", 643},
+ {"RWA", "RW", "Rwanda", 646},
+ {"REU", "RE", "Réunion", 638},
+ {"BLM", "BL", "Saint Barthélemy", 652},
+ {"SHN", "SH", "Saint Helena, Ascension and Tristan da Cunha", 654},
+ {"KNA", "KN", "Saint Kitts and Nevis", 659},
+ {"LCA", "LC", "Saint Lucia", 662},
+ {"MAF", "MF", "Saint Martin (French part)", 663},
+ {"SPM", "PM", "Saint Pierre and Miquelon", 666},
+ {"VCT", "VC", "Saint Vincent and the Grenadines", 670},
+ {"WSM", "WS", "Samoa", 882},
+ {"SMR", "SM", "San Marino", 674},
+ {"STP", "ST", "Sao Tome and Principe", 678},
+ {"SAU", "SA", "Saudi Arabia", 682},
+ {"SEN", "SN", "Senegal", 686},
+ {"SRB", "RS", "Serbia", 688},
+ {"SYC", "SC", "Seychelles", 690},
+ {"SLE", "SL", "Sierra Leone", 694},
+ {"SGP", "SG", "Singapore", 702},
+ {"SXM", "SX", "Sint Maarten (Dutch part)", 534},
+ {"SVK", "SK", "Slovakia", 703},
+ {"SVN", "SI", "Slovenia", 705},
+ {"SLB", "SB", "Solomon Islands", 90},
+ {"SOM", "SO", "Somalia", 706},
+ {"ZAF", "ZA", "South Africa", 710},
+ {"SGS", "GS", "South Georgia and the South Sandwich Islands", 239},
+ {"SSD", "SS", "South Sudan", 728},
+ {"ESP", "ES", "Spain", 724},
+ {"LKA", "LK", "Sri Lanka", 144},
+ {"SDN", "SD", "Sudan (the)", 729},
+ {"SUR", "SR", "Suriname", 740},
+ {"SJM", "SJ", "Svalbard and Jan Mayen", 744},
+ {"SWE", "SE", "Sweden", 752},
+ {"CHE", "CH", "Switzerland", 756},
+ {"SYR", "SY", "Syrian Arab Republic (the)", 760},
+ {"TWN", "TW", "Taiwan (Province of China)", 158},
+ {"TJK", "TJ", "Tajikistan", 762},
+ {"TZA", "TZ", "Tanzania, the United Republic of", 834},
+ {"THA", "TH", "Thailand", 764},
+ {"TLS", "TL", "Timor-Leste", 626},
+ {"TGO", "TG", "Togo", 768},
+ {"TKL", "TK", "Tokelau", 772},
+ {"TON", "TO", "Tonga", 776},
+ {"TTO", "TT", "Trinidad and Tobago", 780},
+ {"TUN", "TN", "Tunisia", 788},
+ {"TUR", "TR", "Turkey", 792},
+ {"TKM", "TM", "Turkmenistan", 795},
+ {"TCA", "TC", "Turks and Caicos Islands (the)", 796},
+ {"TUV", "TV", "Tuvalu", 798},
+ {"UGA", "UG", "Uganda", 800},
+ {"UKR", "UA", "Ukraine", 804},
+ {"ARE", "AE", "United Arab Emirates (the)", 784},
+ {"GBR", "GB", "United Kingdom of Great Britain and Northern Ireland (the)", 826},
+ {"UMI", "UM", "United States Minor Outlying Islands (the)", 581},
+ {"USA", "US", "United States of America (the)", 840},
+ {"URY", "UY", "Uruguay", 858},
+ {"UZB", "UZ", "Uzbekistan", 860},
+ {"VUT", "VU", "Vanuatu", 548},
+ {"VEN", "VE", "Venezuela (Bolivarian Republic of)", 862},
+ {"VNM", "VN", "Viet Nam", 704},
+ {"VGB", "VG", "Virgin Islands (British)", 92},
+ {"VIR", "VI", "Virgin Islands (U.S.)", 850},
+ {"WLF", "WF", "Wallis and Futuna", 876},
+ {"ESH", "EH", "Western Sahara*", 732},
+ {"YEM", "YE", "Yemen", 887},
+ {"ZMB", "ZM", "Zambia", 894},
+ {"ZWE", "ZW", "Zimbabwe", 716},
+ {"ALA", "AX", "Åland Islands", 248},
+ {"ANT", "AN", "Netherlands Antilles", 530},
+ {"CSG", "CS", "Serbia and Montenegro", 891},
+};
+
diff --git a/crengine/src/locale_data/iso-3166-1_data.h b/crengine/src/locale_data/iso-3166-1_data.h
new file mode 100644
index 0000000000..197b3bc6cf
--- /dev/null
+++ b/crengine/src/locale_data/iso-3166-1_data.h
@@ -0,0 +1,40 @@
+// ISO 3166-1 Country Codes.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://www.iso.org/iso-3166-country-codes.html
+
+#ifndef ISO3166_1_DATA_H
+#define ISO3166_1_DATA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ISO3166_1_DATA_SZ 251
+
+struct iso3166_1_rec {
+ /**
+ * Alpha-3 code.
+ */
+ const char* alpha3;
+ /**
+ * Alpha-2 code.
+ */
+ const char* alpha2;
+ /**
+ * English short name.
+ */
+ const char* name;
+ /**
+ * Numeric value.
+ */
+ unsigned int num;
+};
+
+extern const struct iso3166_1_rec iso3166_1_data[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ISO3166_1_DATA_H
diff --git a/crengine/src/locale_data/iso-639-2_data.c b/crengine/src/locale_data/iso-639-2_data.c
new file mode 100644
index 0000000000..b1abc445fc
--- /dev/null
+++ b/crengine/src/locale_data/iso-639-2_data.c
@@ -0,0 +1,499 @@
+// ISO-639-2 Language registry.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
+// file: ISO-639-2_utf-8.txt
+// url: https://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
+
+#include "iso-639-2_data.h"
+
+#include
+
+const struct iso639_2_rec iso639_2_data[] = {
+ {"abk", NULL, "ab", "Abkhazian"},
+ {"ace", NULL, NULL, "Achinese"},
+ {"ach", NULL, NULL, "Acoli"},
+ {"ada", NULL, NULL, "Adangme"},
+ {"ady", NULL, NULL, "Adyghe; Adygei"},
+ {"afa", NULL, NULL, "Afro-Asiatic languages"},
+ {"afh", NULL, NULL, "Afrihili"},
+ {"afr", NULL, "af", "Afrikaans"},
+ {"ain", NULL, NULL, "Ainu"},
+ {"aka", NULL, "ak", "Akan"},
+ {"akk", NULL, NULL, "Akkadian"},
+ {"alb", "sqi", "sq", "Albanian"},
+ {"ale", NULL, NULL, "Aleut"},
+ {"alg", NULL, NULL, "Algonquian languages"},
+ {"alt", NULL, NULL, "Southern Altai"},
+ {"amh", NULL, "am", "Amharic"},
+ {"ang", NULL, NULL, "English, Old (ca.450-1100)"},
+ {"anp", NULL, NULL, "Angika"},
+ {"apa", NULL, NULL, "Apache languages"},
+ {"ara", NULL, "ar", "Arabic"},
+ {"arc", NULL, NULL, "Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)"},
+ {"arg", NULL, "an", "Aragonese"},
+ {"arm", "hye", "hy", "Armenian"},
+ {"arn", NULL, NULL, "Mapudungun; Mapuche"},
+ {"arp", NULL, NULL, "Arapaho"},
+ {"art", NULL, NULL, "Artificial languages"},
+ {"arw", NULL, NULL, "Arawak"},
+ {"asm", NULL, "as", "Assamese"},
+ {"ast", NULL, NULL, "Asturian; Bable; Leonese; Asturleonese"},
+ {"ath", NULL, NULL, "Athapascan languages"},
+ {"aus", NULL, NULL, "Australian languages"},
+ {"ava", NULL, "av", "Avaric"},
+ {"ave", NULL, "ae", "Avestan"},
+ {"awa", NULL, NULL, "Awadhi"},
+ {"aym", NULL, "ay", "Aymara"},
+ {"aze", NULL, "az", "Azerbaijani"},
+ {"bad", NULL, NULL, "Banda languages"},
+ {"bai", NULL, NULL, "Bamileke languages"},
+ {"bak", NULL, "ba", "Bashkir"},
+ {"bal", NULL, NULL, "Baluchi"},
+ {"bam", NULL, "bm", "Bambara"},
+ {"ban", NULL, NULL, "Balinese"},
+ {"baq", "eus", "eu", "Basque"},
+ {"bas", NULL, NULL, "Basa"},
+ {"bat", NULL, NULL, "Baltic languages"},
+ {"bej", NULL, NULL, "Beja; Bedawiyet"},
+ {"bel", NULL, "be", "Belarusian"},
+ {"bem", NULL, NULL, "Bemba"},
+ {"ben", NULL, "bn", "Bengali"},
+ {"ber", NULL, NULL, "Berber languages"},
+ {"bho", NULL, NULL, "Bhojpuri"},
+ {"bih", NULL, "bh", "Bihari languages"},
+ {"bik", NULL, NULL, "Bikol"},
+ {"bin", NULL, NULL, "Bini; Edo"},
+ {"bis", NULL, "bi", "Bislama"},
+ {"bla", NULL, NULL, "Siksika"},
+ {"bnt", NULL, NULL, "Bantu languages"},
+ {"bos", NULL, "bs", "Bosnian"},
+ {"bra", NULL, NULL, "Braj"},
+ {"bre", NULL, "br", "Breton"},
+ {"btk", NULL, NULL, "Batak languages"},
+ {"bua", NULL, NULL, "Buriat"},
+ {"bug", NULL, NULL, "Buginese"},
+ {"bul", NULL, "bg", "Bulgarian"},
+ {"bur", "mya", "my", "Burmese"},
+ {"byn", NULL, NULL, "Blin; Bilin"},
+ {"cad", NULL, NULL, "Caddo"},
+ {"cai", NULL, NULL, "Central American Indian languages"},
+ {"car", NULL, NULL, "Galibi Carib"},
+ {"cat", NULL, "ca", "Catalan; Valencian"},
+ {"cau", NULL, NULL, "Caucasian languages"},
+ {"ceb", NULL, NULL, "Cebuano"},
+ {"cel", NULL, NULL, "Celtic languages"},
+ {"cha", NULL, "ch", "Chamorro"},
+ {"chb", NULL, NULL, "Chibcha"},
+ {"che", NULL, "ce", "Chechen"},
+ {"chg", NULL, NULL, "Chagatai"},
+ {"chi", "zho", "zh", "Chinese"},
+ {"chk", NULL, NULL, "Chuukese"},
+ {"chm", NULL, NULL, "Mari"},
+ {"chn", NULL, NULL, "Chinook jargon"},
+ {"cho", NULL, NULL, "Choctaw"},
+ {"chp", NULL, NULL, "Chipewyan; Dene Suline"},
+ {"chr", NULL, NULL, "Cherokee"},
+ {"chu", NULL, "cu", "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic"},
+ {"chv", NULL, "cv", "Chuvash"},
+ {"chy", NULL, NULL, "Cheyenne"},
+ {"cmc", NULL, NULL, "Chamic languages"},
+ {"cnr", NULL, NULL, "Montenegrin"},
+ {"cop", NULL, NULL, "Coptic"},
+ {"cor", NULL, "kw", "Cornish"},
+ {"cos", NULL, "co", "Corsican"},
+ {"cpe", NULL, NULL, "Creoles and pidgins, English based"},
+ {"cpf", NULL, NULL, "Creoles and pidgins, French-based"},
+ {"cpp", NULL, NULL, "Creoles and pidgins, Portuguese-based"},
+ {"cre", NULL, "cr", "Cree"},
+ {"crh", NULL, NULL, "Crimean Tatar; Crimean Turkish"},
+ {"crp", NULL, NULL, "Creoles and pidgins"},
+ {"csb", NULL, NULL, "Kashubian"},
+ {"cus", NULL, NULL, "Cushitic languages"},
+ {"cze", "ces", "cs", "Czech"},
+ {"dak", NULL, NULL, "Dakota"},
+ {"dan", NULL, "da", "Danish"},
+ {"dar", NULL, NULL, "Dargwa"},
+ {"day", NULL, NULL, "Land Dayak languages"},
+ {"del", NULL, NULL, "Delaware"},
+ {"den", NULL, NULL, "Slave (Athapascan)"},
+ {"dgr", NULL, NULL, "Dogrib"},
+ {"din", NULL, NULL, "Dinka"},
+ {"div", NULL, "dv", "Divehi; Dhivehi; Maldivian"},
+ {"doi", NULL, NULL, "Dogri"},
+ {"dra", NULL, NULL, "Dravidian languages"},
+ {"dsb", NULL, NULL, "Lower Sorbian"},
+ {"dua", NULL, NULL, "Duala"},
+ {"dum", NULL, NULL, "Dutch, Middle (ca.1050-1350)"},
+ {"dut", "nld", "nl", "Dutch; Flemish"},
+ {"dyu", NULL, NULL, "Dyula"},
+ {"dzo", NULL, "dz", "Dzongkha"},
+ {"efi", NULL, NULL, "Efik"},
+ {"egy", NULL, NULL, "Egyptian (Ancient)"},
+ {"eka", NULL, NULL, "Ekajuk"},
+ {"elx", NULL, NULL, "Elamite"},
+ {"eng", NULL, "en", "English"},
+ {"enm", NULL, NULL, "English, Middle (1100-1500)"},
+ {"epo", NULL, "eo", "Esperanto"},
+ {"est", NULL, "et", "Estonian"},
+ {"ewe", NULL, "ee", "Ewe"},
+ {"ewo", NULL, NULL, "Ewondo"},
+ {"fan", NULL, NULL, "Fang"},
+ {"fao", NULL, "fo", "Faroese"},
+ {"fat", NULL, NULL, "Fanti"},
+ {"fij", NULL, "fj", "Fijian"},
+ {"fil", NULL, NULL, "Filipino; Pilipino"},
+ {"fin", NULL, "fi", "Finnish"},
+ {"fiu", NULL, NULL, "Finno-Ugrian languages"},
+ {"fon", NULL, NULL, "Fon"},
+ {"fre", "fra", "fr", "French"},
+ {"frm", NULL, NULL, "French, Middle (ca.1400-1600)"},
+ {"fro", NULL, NULL, "French, Old (842-ca.1400)"},
+ {"frr", NULL, NULL, "Northern Frisian"},
+ {"frs", NULL, NULL, "Eastern Frisian"},
+ {"fry", NULL, "fy", "Western Frisian"},
+ {"ful", NULL, "ff", "Fulah"},
+ {"fur", NULL, NULL, "Friulian"},
+ {"gaa", NULL, NULL, "Ga"},
+ {"gay", NULL, NULL, "Gayo"},
+ {"gba", NULL, NULL, "Gbaya"},
+ {"gem", NULL, NULL, "Germanic languages"},
+ {"geo", "kat", "ka", "Georgian"},
+ {"ger", "deu", "de", "German"},
+ {"gez", NULL, NULL, "Geez"},
+ {"gil", NULL, NULL, "Gilbertese"},
+ {"gla", NULL, "gd", "Gaelic; Scottish Gaelic"},
+ {"gle", NULL, "ga", "Irish"},
+ {"glg", NULL, "gl", "Galician"},
+ {"glv", NULL, "gv", "Manx"},
+ {"gmh", NULL, NULL, "German, Middle High (ca.1050-1500)"},
+ {"goh", NULL, NULL, "German, Old High (ca.750-1050)"},
+ {"gon", NULL, NULL, "Gondi"},
+ {"gor", NULL, NULL, "Gorontalo"},
+ {"got", NULL, NULL, "Gothic"},
+ {"grb", NULL, NULL, "Grebo"},
+ {"grc", NULL, NULL, "Greek, Ancient (to 1453)"},
+ {"gre", "ell", "el", "Greek, Modern (1453-)"},
+ {"grn", NULL, "gn", "Guarani"},
+ {"gsw", NULL, NULL, "Swiss German; Alemannic; Alsatian"},
+ {"guj", NULL, "gu", "Gujarati"},
+ {"gwi", NULL, NULL, "Gwich'in"},
+ {"hai", NULL, NULL, "Haida"},
+ {"hat", NULL, "ht", "Haitian; Haitian Creole"},
+ {"hau", NULL, "ha", "Hausa"},
+ {"haw", NULL, NULL, "Hawaiian"},
+ {"heb", NULL, "he", "Hebrew"},
+ {"her", NULL, "hz", "Herero"},
+ {"hil", NULL, NULL, "Hiligaynon"},
+ {"him", NULL, NULL, "Himachali languages; Western Pahari languages"},
+ {"hin", NULL, "hi", "Hindi"},
+ {"hit", NULL, NULL, "Hittite"},
+ {"hmn", NULL, NULL, "Hmong; Mong"},
+ {"hmo", NULL, "ho", "Hiri Motu"},
+ {"hrv", NULL, "hr", "Croatian"},
+ {"hsb", NULL, NULL, "Upper Sorbian"},
+ {"hun", NULL, "hu", "Hungarian"},
+ {"hup", NULL, NULL, "Hupa"},
+ {"iba", NULL, NULL, "Iban"},
+ {"ibo", NULL, "ig", "Igbo"},
+ {"ice", "isl", "is", "Icelandic"},
+ {"ido", NULL, "io", "Ido"},
+ {"iii", NULL, "ii", "Sichuan Yi; Nuosu"},
+ {"ijo", NULL, NULL, "Ijo languages"},
+ {"iku", NULL, "iu", "Inuktitut"},
+ {"ile", NULL, "ie", "Interlingue; Occidental"},
+ {"ilo", NULL, NULL, "Iloko"},
+ {"ina", NULL, "ia", "Interlingua (International Auxiliary Language Association)"},
+ {"inc", NULL, NULL, "Indic languages"},
+ {"ind", NULL, "id", "Indonesian"},
+ {"ine", NULL, NULL, "Indo-European languages"},
+ {"inh", NULL, NULL, "Ingush"},
+ {"ipk", NULL, "ik", "Inupiaq"},
+ {"ira", NULL, NULL, "Iranian languages"},
+ {"iro", NULL, NULL, "Iroquoian languages"},
+ {"ita", NULL, "it", "Italian"},
+ {"jav", NULL, "jv", "Javanese"},
+ {"jbo", NULL, NULL, "Lojban"},
+ {"jpn", NULL, "ja", "Japanese"},
+ {"jpr", NULL, NULL, "Judeo-Persian"},
+ {"jrb", NULL, NULL, "Judeo-Arabic"},
+ {"kaa", NULL, NULL, "Kara-Kalpak"},
+ {"kab", NULL, NULL, "Kabyle"},
+ {"kac", NULL, NULL, "Kachin; Jingpho"},
+ {"kal", NULL, "kl", "Kalaallisut; Greenlandic"},
+ {"kam", NULL, NULL, "Kamba"},
+ {"kan", NULL, "kn", "Kannada"},
+ {"kar", NULL, NULL, "Karen languages"},
+ {"kas", NULL, "ks", "Kashmiri"},
+ {"kau", NULL, "kr", "Kanuri"},
+ {"kaw", NULL, NULL, "Kawi"},
+ {"kaz", NULL, "kk", "Kazakh"},
+ {"kbd", NULL, NULL, "Kabardian"},
+ {"kha", NULL, NULL, "Khasi"},
+ {"khi", NULL, NULL, "Khoisan languages"},
+ {"khm", NULL, "km", "Central Khmer"},
+ {"kho", NULL, NULL, "Khotanese; Sakan"},
+ {"kik", NULL, "ki", "Kikuyu; Gikuyu"},
+ {"kin", NULL, "rw", "Kinyarwanda"},
+ {"kir", NULL, "ky", "Kirghiz; Kyrgyz"},
+ {"kmb", NULL, NULL, "Kimbundu"},
+ {"kok", NULL, NULL, "Konkani"},
+ {"kom", NULL, "kv", "Komi"},
+ {"kon", NULL, "kg", "Kongo"},
+ {"kor", NULL, "ko", "Korean"},
+ {"kos", NULL, NULL, "Kosraean"},
+ {"kpe", NULL, NULL, "Kpelle"},
+ {"krc", NULL, NULL, "Karachay-Balkar"},
+ {"krl", NULL, NULL, "Karelian"},
+ {"kro", NULL, NULL, "Kru languages"},
+ {"kru", NULL, NULL, "Kurukh"},
+ {"kua", NULL, "kj", "Kuanyama; Kwanyama"},
+ {"kum", NULL, NULL, "Kumyk"},
+ {"kur", NULL, "ku", "Kurdish"},
+ {"kut", NULL, NULL, "Kutenai"},
+ {"lad", NULL, NULL, "Ladino"},
+ {"lah", NULL, NULL, "Lahnda"},
+ {"lam", NULL, NULL, "Lamba"},
+ {"lao", NULL, "lo", "Lao"},
+ {"lat", NULL, "la", "Latin"},
+ {"lav", NULL, "lv", "Latvian"},
+ {"lez", NULL, NULL, "Lezghian"},
+ {"lim", NULL, "li", "Limburgan; Limburger; Limburgish"},
+ {"lin", NULL, "ln", "Lingala"},
+ {"lit", NULL, "lt", "Lithuanian"},
+ {"lol", NULL, NULL, "Mongo"},
+ {"loz", NULL, NULL, "Lozi"},
+ {"ltz", NULL, "lb", "Luxembourgish; Letzeburgesch"},
+ {"lua", NULL, NULL, "Luba-Lulua"},
+ {"lub", NULL, "lu", "Luba-Katanga"},
+ {"lug", NULL, "lg", "Ganda"},
+ {"lui", NULL, NULL, "Luiseno"},
+ {"lun", NULL, NULL, "Lunda"},
+ {"luo", NULL, NULL, "Luo (Kenya and Tanzania)"},
+ {"lus", NULL, NULL, "Lushai"},
+ {"mac", "mkd", "mk", "Macedonian"},
+ {"mad", NULL, NULL, "Madurese"},
+ {"mag", NULL, NULL, "Magahi"},
+ {"mah", NULL, "mh", "Marshallese"},
+ {"mai", NULL, NULL, "Maithili"},
+ {"mak", NULL, NULL, "Makasar"},
+ {"mal", NULL, "ml", "Malayalam"},
+ {"man", NULL, NULL, "Mandingo"},
+ {"mao", "mri", "mi", "Maori"},
+ {"map", NULL, NULL, "Austronesian languages"},
+ {"mar", NULL, "mr", "Marathi"},
+ {"mas", NULL, NULL, "Masai"},
+ {"may", "msa", "ms", "Malay"},
+ {"mdf", NULL, NULL, "Moksha"},
+ {"mdr", NULL, NULL, "Mandar"},
+ {"men", NULL, NULL, "Mende"},
+ {"mga", NULL, NULL, "Irish, Middle (900-1200)"},
+ {"mic", NULL, NULL, "Mi'kmaq; Micmac"},
+ {"min", NULL, NULL, "Minangkabau"},
+ {"mis", NULL, NULL, "Uncoded languages"},
+ {"mkh", NULL, NULL, "Mon-Khmer languages"},
+ {"mlg", NULL, "mg", "Malagasy"},
+ {"mlt", NULL, "mt", "Maltese"},
+ {"mnc", NULL, NULL, "Manchu"},
+ {"mni", NULL, NULL, "Manipuri"},
+ {"mno", NULL, NULL, "Manobo languages"},
+ {"moh", NULL, NULL, "Mohawk"},
+ {"mon", NULL, "mn", "Mongolian"},
+ {"mos", NULL, NULL, "Mossi"},
+ {"mul", NULL, NULL, "Multiple languages"},
+ {"mun", NULL, NULL, "Munda languages"},
+ {"mus", NULL, NULL, "Creek"},
+ {"mwl", NULL, NULL, "Mirandese"},
+ {"mwr", NULL, NULL, "Marwari"},
+ {"myn", NULL, NULL, "Mayan languages"},
+ {"myv", NULL, NULL, "Erzya"},
+ {"nah", NULL, NULL, "Nahuatl languages"},
+ {"nai", NULL, NULL, "North American Indian languages"},
+ {"nap", NULL, NULL, "Neapolitan"},
+ {"nau", NULL, "na", "Nauru"},
+ {"nav", NULL, "nv", "Navajo; Navaho"},
+ {"nbl", NULL, "nr", "Ndebele, South; South Ndebele"},
+ {"nde", NULL, "nd", "Ndebele, North; North Ndebele"},
+ {"ndo", NULL, "ng", "Ndonga"},
+ {"nds", NULL, NULL, "Low German; Low Saxon; German, Low; Saxon, Low"},
+ {"nep", NULL, "ne", "Nepali"},
+ {"new", NULL, NULL, "Nepal Bhasa; Newari"},
+ {"nia", NULL, NULL, "Nias"},
+ {"nic", NULL, NULL, "Niger-Kordofanian languages"},
+ {"niu", NULL, NULL, "Niuean"},
+ {"nno", NULL, "nn", "Norwegian Nynorsk; Nynorsk, Norwegian"},
+ {"nob", NULL, "nb", "Bokmål, Norwegian; Norwegian Bokmål"},
+ {"nog", NULL, NULL, "Nogai"},
+ {"non", NULL, NULL, "Norse, Old"},
+ {"nor", NULL, "no", "Norwegian"},
+ {"nqo", NULL, NULL, "N'Ko"},
+ {"nso", NULL, NULL, "Pedi; Sepedi; Northern Sotho"},
+ {"nub", NULL, NULL, "Nubian languages"},
+ {"nwc", NULL, NULL, "Classical Newari; Old Newari; Classical Nepal Bhasa"},
+ {"nya", NULL, "ny", "Chichewa; Chewa; Nyanja"},
+ {"nym", NULL, NULL, "Nyamwezi"},
+ {"nyn", NULL, NULL, "Nyankole"},
+ {"nyo", NULL, NULL, "Nyoro"},
+ {"nzi", NULL, NULL, "Nzima"},
+ {"oci", NULL, "oc", "Occitan (post 1500)"},
+ {"oji", NULL, "oj", "Ojibwa"},
+ {"ori", NULL, "or", "Oriya"},
+ {"orm", NULL, "om", "Oromo"},
+ {"osa", NULL, NULL, "Osage"},
+ {"oss", NULL, "os", "Ossetian; Ossetic"},
+ {"ota", NULL, NULL, "Turkish, Ottoman (1500-1928)"},
+ {"oto", NULL, NULL, "Otomian languages"},
+ {"paa", NULL, NULL, "Papuan languages"},
+ {"pag", NULL, NULL, "Pangasinan"},
+ {"pal", NULL, NULL, "Pahlavi"},
+ {"pam", NULL, NULL, "Pampanga; Kapampangan"},
+ {"pan", NULL, "pa", "Panjabi; Punjabi"},
+ {"pap", NULL, NULL, "Papiamento"},
+ {"pau", NULL, NULL, "Palauan"},
+ {"peo", NULL, NULL, "Persian, Old (ca.600-400 B.C.)"},
+ {"per", "fas", "fa", "Persian"},
+ {"phi", NULL, NULL, "Philippine languages"},
+ {"phn", NULL, NULL, "Phoenician"},
+ {"pli", NULL, "pi", "Pali"},
+ {"pol", NULL, "pl", "Polish"},
+ {"pon", NULL, NULL, "Pohnpeian"},
+ {"por", NULL, "pt", "Portuguese"},
+ {"pra", NULL, NULL, "Prakrit languages"},
+ {"pro", NULL, NULL, "Provençal, Old (to 1500); Occitan, Old (to 1500)"},
+ {"pus", NULL, "ps", "Pushto; Pashto"},
+ {"que", NULL, "qu", "Quechua"},
+ {"raj", NULL, NULL, "Rajasthani"},
+ {"rap", NULL, NULL, "Rapanui"},
+ {"rar", NULL, NULL, "Rarotongan; Cook Islands Maori"},
+ {"roa", NULL, NULL, "Romance languages"},
+ {"roh", NULL, "rm", "Romansh"},
+ {"rom", NULL, NULL, "Romany"},
+ {"rum", "ron", "ro", "Romanian; Moldavian; Moldovan"},
+ {"run", NULL, "rn", "Rundi"},
+ {"rup", NULL, NULL, "Aromanian; Arumanian; Macedo-Romanian"},
+ {"rus", NULL, "ru", "Russian"},
+ {"sad", NULL, NULL, "Sandawe"},
+ {"sag", NULL, "sg", "Sango"},
+ {"sah", NULL, NULL, "Yakut"},
+ {"sai", NULL, NULL, "South American Indian languages"},
+ {"sal", NULL, NULL, "Salishan languages"},
+ {"sam", NULL, NULL, "Samaritan Aramaic"},
+ {"san", NULL, "sa", "Sanskrit"},
+ {"sas", NULL, NULL, "Sasak"},
+ {"sat", NULL, NULL, "Santali"},
+ {"scn", NULL, NULL, "Sicilian"},
+ {"sco", NULL, NULL, "Scots"},
+ {"sel", NULL, NULL, "Selkup"},
+ {"sem", NULL, NULL, "Semitic languages"},
+ {"sga", NULL, NULL, "Irish, Old (to 900)"},
+ {"sgn", NULL, NULL, "Sign Languages"},
+ {"shn", NULL, NULL, "Shan"},
+ {"sid", NULL, NULL, "Sidamo"},
+ {"sin", NULL, "si", "Sinhala; Sinhalese"},
+ {"sio", NULL, NULL, "Siouan languages"},
+ {"sit", NULL, NULL, "Sino-Tibetan languages"},
+ {"sla", NULL, NULL, "Slavic languages"},
+ {"slo", "slk", "sk", "Slovak"},
+ {"slv", NULL, "sl", "Slovenian"},
+ {"sma", NULL, NULL, "Southern Sami"},
+ {"sme", NULL, "se", "Northern Sami"},
+ {"smi", NULL, NULL, "Sami languages"},
+ {"smj", NULL, NULL, "Lule Sami"},
+ {"smn", NULL, NULL, "Inari Sami"},
+ {"smo", NULL, "sm", "Samoan"},
+ {"sms", NULL, NULL, "Skolt Sami"},
+ {"sna", NULL, "sn", "Shona"},
+ {"snd", NULL, "sd", "Sindhi"},
+ {"snk", NULL, NULL, "Soninke"},
+ {"sog", NULL, NULL, "Sogdian"},
+ {"som", NULL, "so", "Somali"},
+ {"son", NULL, NULL, "Songhai languages"},
+ {"sot", NULL, "st", "Sotho, Southern"},
+ {"spa", NULL, "es", "Spanish; Castilian"},
+ {"srd", NULL, "sc", "Sardinian"},
+ {"srn", NULL, NULL, "Sranan Tongo"},
+ {"srp", NULL, "sr", "Serbian"},
+ {"srr", NULL, NULL, "Serer"},
+ {"ssa", NULL, NULL, "Nilo-Saharan languages"},
+ {"ssw", NULL, "ss", "Swati"},
+ {"suk", NULL, NULL, "Sukuma"},
+ {"sun", NULL, "su", "Sundanese"},
+ {"sus", NULL, NULL, "Susu"},
+ {"sux", NULL, NULL, "Sumerian"},
+ {"swa", NULL, "sw", "Swahili"},
+ {"swe", NULL, "sv", "Swedish"},
+ {"syc", NULL, NULL, "Classical Syriac"},
+ {"syr", NULL, NULL, "Syriac"},
+ {"tah", NULL, "ty", "Tahitian"},
+ {"tai", NULL, NULL, "Tai languages"},
+ {"tam", NULL, "ta", "Tamil"},
+ {"tat", NULL, "tt", "Tatar"},
+ {"tel", NULL, "te", "Telugu"},
+ {"tem", NULL, NULL, "Timne"},
+ {"ter", NULL, NULL, "Tereno"},
+ {"tet", NULL, NULL, "Tetum"},
+ {"tgk", NULL, "tg", "Tajik"},
+ {"tgl", NULL, "tl", "Tagalog"},
+ {"tha", NULL, "th", "Thai"},
+ {"tib", "bod", "bo", "Tibetan"},
+ {"tig", NULL, NULL, "Tigre"},
+ {"tir", NULL, "ti", "Tigrinya"},
+ {"tiv", NULL, NULL, "Tiv"},
+ {"tkl", NULL, NULL, "Tokelau"},
+ {"tlh", NULL, NULL, "Klingon; tlhIngan-Hol"},
+ {"tli", NULL, NULL, "Tlingit"},
+ {"tmh", NULL, NULL, "Tamashek"},
+ {"tog", NULL, NULL, "Tonga (Nyasa)"},
+ {"ton", NULL, "to", "Tonga (Tonga Islands)"},
+ {"tpi", NULL, NULL, "Tok Pisin"},
+ {"tsi", NULL, NULL, "Tsimshian"},
+ {"tsn", NULL, "tn", "Tswana"},
+ {"tso", NULL, "ts", "Tsonga"},
+ {"tuk", NULL, "tk", "Turkmen"},
+ {"tum", NULL, NULL, "Tumbuka"},
+ {"tup", NULL, NULL, "Tupi languages"},
+ {"tur", NULL, "tr", "Turkish"},
+ {"tut", NULL, NULL, "Altaic languages"},
+ {"tvl", NULL, NULL, "Tuvalu"},
+ {"twi", NULL, "tw", "Twi"},
+ {"tyv", NULL, NULL, "Tuvinian"},
+ {"udm", NULL, NULL, "Udmurt"},
+ {"uga", NULL, NULL, "Ugaritic"},
+ {"uig", NULL, "ug", "Uighur; Uyghur"},
+ {"ukr", NULL, "uk", "Ukrainian"},
+ {"umb", NULL, NULL, "Umbundu"},
+ {"und", NULL, NULL, "Undetermined"},
+ {"urd", NULL, "ur", "Urdu"},
+ {"uzb", NULL, "uz", "Uzbek"},
+ {"vai", NULL, NULL, "Vai"},
+ {"ven", NULL, "ve", "Venda"},
+ {"vie", NULL, "vi", "Vietnamese"},
+ {"vol", NULL, "vo", "Volapük"},
+ {"vot", NULL, NULL, "Votic"},
+ {"wak", NULL, NULL, "Wakashan languages"},
+ {"wal", NULL, NULL, "Wolaitta; Wolaytta"},
+ {"war", NULL, NULL, "Waray"},
+ {"was", NULL, NULL, "Washo"},
+ {"wel", "cym", "cy", "Welsh"},
+ {"wen", NULL, NULL, "Sorbian languages"},
+ {"wln", NULL, "wa", "Walloon"},
+ {"wol", NULL, "wo", "Wolof"},
+ {"xal", NULL, NULL, "Kalmyk; Oirat"},
+ {"xho", NULL, "xh", "Xhosa"},
+ {"yao", NULL, NULL, "Yao"},
+ {"yap", NULL, NULL, "Yapese"},
+ {"yid", NULL, "yi", "Yiddish"},
+ {"yor", NULL, "yo", "Yoruba"},
+ {"ypk", NULL, NULL, "Yupik languages"},
+ {"zap", NULL, NULL, "Zapotec"},
+ {"zbl", NULL, NULL, "Blissymbols; Blissymbolics; Bliss"},
+ {"zen", NULL, NULL, "Zenaga"},
+ {"zgh", NULL, NULL, "Standard Moroccan Tamazight"},
+ {"zha", NULL, "za", "Zhuang; Chuang"},
+ {"znd", NULL, NULL, "Zande languages"},
+ {"zul", NULL, "zu", "Zulu"},
+ {"zun", NULL, NULL, "Zuni"},
+ {"zxx", NULL, NULL, "No linguistic content; Not applicable"},
+ {"zza", NULL, NULL, "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki"},
+};
+
diff --git a/crengine/src/locale_data/iso-639-2_data.h b/crengine/src/locale_data/iso-639-2_data.h
new file mode 100644
index 0000000000..e507940d81
--- /dev/null
+++ b/crengine/src/locale_data/iso-639-2_data.h
@@ -0,0 +1,45 @@
+// ISO-639-2 Language registry.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from: https://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
+// file: ISO-639-2_utf-8.txt
+// url: https://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
+
+#ifndef ISO639_2_DATA_H
+#define ISO639_2_DATA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ISO639_2_DATA_SZ 485
+#define ISO639_2_UND_INDEX 452
+
+struct iso639_2_rec {
+ /**
+ * The three-letter 639-2 identifier. This is bibliographic application code.
+ * alpha-3 language code.
+ */
+ const char* id;
+ /**
+ * Equivalent 639-2 identifier of the terminology application code set, if there is one.
+ */
+ const char* part2t;
+ /**
+ * Equivalent 639-1 identifier, if there is one.
+ * alpha-2 language code.
+ */
+ const char* part1;
+ /**
+ * Reference language name.
+ */
+ const char* ref_name;
+};
+
+extern const struct iso639_2_rec iso639_2_data[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ISO639_2_DATA_H
diff --git a/crengine/src/locale_data/iso-639-3_data.c b/crengine/src/locale_data/iso-639-3_data.c
new file mode 100644
index 0000000000..d7a21f7814
--- /dev/null
+++ b/crengine/src/locale_data/iso-639-3_data.c
@@ -0,0 +1,7907 @@
+// ISO-639-3 Language registry.
+// License: Public Domain.
+// This file is autogenerated.
+// Based on data from https://iso639-3.sil.org/code_tables/download_tables
+// file: iso-639-3.tab
+// url: https://iso639-3.sil.org/sites/iso639-3/files/downloads/iso-639-3.tab
+
+#include "iso-639-3_data.h"
+
+#include
+
+const struct iso639_3_rec iso639_3_data[] = {
+ {"aaa", NULL, NULL, NULL, "Ghotuo"},
+ {"aab", NULL, NULL, NULL, "Alumu-Tesu"},
+ {"aac", NULL, NULL, NULL, "Ari"},
+ {"aad", NULL, NULL, NULL, "Amal"},
+ {"aae", NULL, NULL, NULL, "Arbëreshë Albanian"},
+ {"aaf", NULL, NULL, NULL, "Aranadan"},
+ {"aag", NULL, NULL, NULL, "Ambrak"},
+ {"aah", NULL, NULL, NULL, "Abu' Arapesh"},
+ {"aai", NULL, NULL, NULL, "Arifama-Miniafia"},
+ {"aak", NULL, NULL, NULL, "Ankave"},
+ {"aal", NULL, NULL, NULL, "Afade"},
+ {"aan", NULL, NULL, NULL, "Anambé"},
+ {"aao", NULL, NULL, NULL, "Algerian Saharan Arabic"},
+ {"aap", NULL, NULL, NULL, "Pará Arára"},
+ {"aaq", NULL, NULL, NULL, "Eastern Abnaki"},
+ {"aar", "aar", "aar", "aa", "Afar"},
+ {"aas", NULL, NULL, NULL, "Aasáx"},
+ {"aat", NULL, NULL, NULL, "Arvanitika Albanian"},
+ {"aau", NULL, NULL, NULL, "Abau"},
+ {"aaw", NULL, NULL, NULL, "Solong"},
+ {"aax", NULL, NULL, NULL, "Mandobo Atas"},
+ {"aaz", NULL, NULL, NULL, "Amarasi"},
+ {"aba", NULL, NULL, NULL, "Abé"},
+ {"abb", NULL, NULL, NULL, "Bankon"},
+ {"abc", NULL, NULL, NULL, "Ambala Ayta"},
+ {"abd", NULL, NULL, NULL, "Manide"},
+ {"abe", NULL, NULL, NULL, "Western Abnaki"},
+ {"abf", NULL, NULL, NULL, "Abai Sungai"},
+ {"abg", NULL, NULL, NULL, "Abaga"},
+ {"abh", NULL, NULL, NULL, "Tajiki Arabic"},
+ {"abi", NULL, NULL, NULL, "Abidji"},
+ {"abj", NULL, NULL, NULL, "Aka-Bea"},
+ {"abk", "abk", "abk", "ab", "Abkhazian"},
+ {"abl", NULL, NULL, NULL, "Lampung Nyo"},
+ {"abm", NULL, NULL, NULL, "Abanyom"},
+ {"abn", NULL, NULL, NULL, "Abua"},
+ {"abo", NULL, NULL, NULL, "Abon"},
+ {"abp", NULL, NULL, NULL, "Abellen Ayta"},
+ {"abq", NULL, NULL, NULL, "Abaza"},
+ {"abr", NULL, NULL, NULL, "Abron"},
+ {"abs", NULL, NULL, NULL, "Ambonese Malay"},
+ {"abt", NULL, NULL, NULL, "Ambulas"},
+ {"abu", NULL, NULL, NULL, "Abure"},
+ {"abv", NULL, NULL, NULL, "Baharna Arabic"},
+ {"abw", NULL, NULL, NULL, "Pal"},
+ {"abx", NULL, NULL, NULL, "Inabaknon"},
+ {"aby", NULL, NULL, NULL, "Aneme Wake"},
+ {"abz", NULL, NULL, NULL, "Abui"},
+ {"aca", NULL, NULL, NULL, "Achagua"},
+ {"acb", NULL, NULL, NULL, "Áncá"},
+ {"acd", NULL, NULL, NULL, "Gikyode"},
+ {"ace", "ace", "ace", NULL, "Achinese"},
+ {"acf", NULL, NULL, NULL, "Saint Lucian Creole French"},
+ {"ach", "ach", "ach", NULL, "Acoli"},
+ {"aci", NULL, NULL, NULL, "Aka-Cari"},
+ {"ack", NULL, NULL, NULL, "Aka-Kora"},
+ {"acl", NULL, NULL, NULL, "Akar-Bale"},
+ {"acm", NULL, NULL, NULL, "Mesopotamian Arabic"},
+ {"acn", NULL, NULL, NULL, "Achang"},
+ {"acp", NULL, NULL, NULL, "Eastern Acipa"},
+ {"acq", NULL, NULL, NULL, "Ta'izzi-Adeni Arabic"},
+ {"acr", NULL, NULL, NULL, "Achi"},
+ {"acs", NULL, NULL, NULL, "Acroá"},
+ {"act", NULL, NULL, NULL, "Achterhoeks"},
+ {"acu", NULL, NULL, NULL, "Achuar-Shiwiar"},
+ {"acv", NULL, NULL, NULL, "Achumawi"},
+ {"acw", NULL, NULL, NULL, "Hijazi Arabic"},
+ {"acx", NULL, NULL, NULL, "Omani Arabic"},
+ {"acy", NULL, NULL, NULL, "Cypriot Arabic"},
+ {"acz", NULL, NULL, NULL, "Acheron"},
+ {"ada", "ada", "ada", NULL, "Adangme"},
+ {"adb", NULL, NULL, NULL, "Atauran"},
+ {"add", NULL, NULL, NULL, "Lidzonka"},
+ {"ade", NULL, NULL, NULL, "Adele"},
+ {"adf", NULL, NULL, NULL, "Dhofari Arabic"},
+ {"adg", NULL, NULL, NULL, "Andegerebinha"},
+ {"adh", NULL, NULL, NULL, "Adhola"},
+ {"adi", NULL, NULL, NULL, "Adi"},
+ {"adj", NULL, NULL, NULL, "Adioukrou"},
+ {"adl", NULL, NULL, NULL, "Galo"},
+ {"adn", NULL, NULL, NULL, "Adang"},
+ {"ado", NULL, NULL, NULL, "Abu"},
+ {"adq", NULL, NULL, NULL, "Adangbe"},
+ {"adr", NULL, NULL, NULL, "Adonara"},
+ {"ads", NULL, NULL, NULL, "Adamorobe Sign Language"},
+ {"adt", NULL, NULL, NULL, "Adnyamathanha"},
+ {"adu", NULL, NULL, NULL, "Aduge"},
+ {"adw", NULL, NULL, NULL, "Amundava"},
+ {"adx", NULL, NULL, NULL, "Amdo Tibetan"},
+ {"ady", "ady", "ady", NULL, "Adyghe"},
+ {"adz", NULL, NULL, NULL, "Adzera"},
+ {"aea", NULL, NULL, NULL, "Areba"},
+ {"aeb", NULL, NULL, NULL, "Tunisian Arabic"},
+ {"aec", NULL, NULL, NULL, "Saidi Arabic"},
+ {"aed", NULL, NULL, NULL, "Argentine Sign Language"},
+ {"aee", NULL, NULL, NULL, "Northeast Pashai"},
+ {"aek", NULL, NULL, NULL, "Haeke"},
+ {"ael", NULL, NULL, NULL, "Ambele"},
+ {"aem", NULL, NULL, NULL, "Arem"},
+ {"aen", NULL, NULL, NULL, "Armenian Sign Language"},
+ {"aeq", NULL, NULL, NULL, "Aer"},
+ {"aer", NULL, NULL, NULL, "Eastern Arrernte"},
+ {"aes", NULL, NULL, NULL, "Alsea"},
+ {"aeu", NULL, NULL, NULL, "Akeu"},
+ {"aew", NULL, NULL, NULL, "Ambakich"},
+ {"aey", NULL, NULL, NULL, "Amele"},
+ {"aez", NULL, NULL, NULL, "Aeka"},
+ {"afb", NULL, NULL, NULL, "Gulf Arabic"},
+ {"afd", NULL, NULL, NULL, "Andai"},
+ {"afe", NULL, NULL, NULL, "Putukwam"},
+ {"afg", NULL, NULL, NULL, "Afghan Sign Language"},
+ {"afh", "afh", "afh", NULL, "Afrihili"},
+ {"afi", NULL, NULL, NULL, "Akrukay"},
+ {"afk", NULL, NULL, NULL, "Nanubae"},
+ {"afn", NULL, NULL, NULL, "Defaka"},
+ {"afo", NULL, NULL, NULL, "Eloyi"},
+ {"afp", NULL, NULL, NULL, "Tapei"},
+ {"afr", "afr", "afr", "af", "Afrikaans"},
+ {"afs", NULL, NULL, NULL, "Afro-Seminole Creole"},
+ {"aft", NULL, NULL, NULL, "Afitti"},
+ {"afu", NULL, NULL, NULL, "Awutu"},
+ {"afz", NULL, NULL, NULL, "Obokuitai"},
+ {"aga", NULL, NULL, NULL, "Aguano"},
+ {"agb", NULL, NULL, NULL, "Legbo"},
+ {"agc", NULL, NULL, NULL, "Agatu"},
+ {"agd", NULL, NULL, NULL, "Agarabi"},
+ {"age", NULL, NULL, NULL, "Angal"},
+ {"agf", NULL, NULL, NULL, "Arguni"},
+ {"agg", NULL, NULL, NULL, "Angor"},
+ {"agh", NULL, NULL, NULL, "Ngelima"},
+ {"agi", NULL, NULL, NULL, "Agariya"},
+ {"agj", NULL, NULL, NULL, "Argobba"},
+ {"agk", NULL, NULL, NULL, "Isarog Agta"},
+ {"agl", NULL, NULL, NULL, "Fembe"},
+ {"agm", NULL, NULL, NULL, "Angaataha"},
+ {"agn", NULL, NULL, NULL, "Agutaynen"},
+ {"ago", NULL, NULL, NULL, "Tainae"},
+ {"agq", NULL, NULL, NULL, "Aghem"},
+ {"agr", NULL, NULL, NULL, "Aguaruna"},
+ {"ags", NULL, NULL, NULL, "Esimbi"},
+ {"agt", NULL, NULL, NULL, "Central Cagayan Agta"},
+ {"agu", NULL, NULL, NULL, "Aguacateco"},
+ {"agv", NULL, NULL, NULL, "Remontado Dumagat"},
+ {"agw", NULL, NULL, NULL, "Kahua"},
+ {"agx", NULL, NULL, NULL, "Aghul"},
+ {"agy", NULL, NULL, NULL, "Southern Alta"},
+ {"agz", NULL, NULL, NULL, "Mt. Iriga Agta"},
+ {"aha", NULL, NULL, NULL, "Ahanta"},
+ {"ahb", NULL, NULL, NULL, "Axamb"},
+ {"ahg", NULL, NULL, NULL, "Qimant"},
+ {"ahh", NULL, NULL, NULL, "Aghu"},
+ {"ahi", NULL, NULL, NULL, "Tiagbamrin Aizi"},
+ {"ahk", NULL, NULL, NULL, "Akha"},
+ {"ahl", NULL, NULL, NULL, "Igo"},
+ {"ahm", NULL, NULL, NULL, "Mobumrin Aizi"},
+ {"ahn", NULL, NULL, NULL, "Àhàn"},
+ {"aho", NULL, NULL, NULL, "Ahom"},
+ {"ahp", NULL, NULL, NULL, "Aproumu Aizi"},
+ {"ahr", NULL, NULL, NULL, "Ahirani"},
+ {"ahs", NULL, NULL, NULL, "Ashe"},
+ {"aht", NULL, NULL, NULL, "Ahtena"},
+ {"aia", NULL, NULL, NULL, "Arosi"},
+ {"aib", NULL, NULL, NULL, "Ainu (China)"},
+ {"aic", NULL, NULL, NULL, "Ainbai"},
+ {"aid", NULL, NULL, NULL, "Alngith"},
+ {"aie", NULL, NULL, NULL, "Amara"},
+ {"aif", NULL, NULL, NULL, "Agi"},
+ {"aig", NULL, NULL, NULL, "Antigua and Barbuda Creole English"},
+ {"aih", NULL, NULL, NULL, "Ai-Cham"},
+ {"aii", NULL, NULL, NULL, "Assyrian Neo-Aramaic"},
+ {"aij", NULL, NULL, NULL, "Lishanid Noshan"},
+ {"aik", NULL, NULL, NULL, "Ake"},
+ {"ail", NULL, NULL, NULL, "Aimele"},
+ {"aim", NULL, NULL, NULL, "Aimol"},
+ {"ain", "ain", "ain", NULL, "Ainu (Japan)"},
+ {"aio", NULL, NULL, NULL, "Aiton"},
+ {"aip", NULL, NULL, NULL, "Burumakok"},
+ {"aiq", NULL, NULL, NULL, "Aimaq"},
+ {"air", NULL, NULL, NULL, "Airoran"},
+ {"ait", NULL, NULL, NULL, "Arikem"},
+ {"aiw", NULL, NULL, NULL, "Aari"},
+ {"aix", NULL, NULL, NULL, "Aighon"},
+ {"aiy", NULL, NULL, NULL, "Ali"},
+ {"aja", NULL, NULL, NULL, "Aja (South Sudan)"},
+ {"ajg", NULL, NULL, NULL, "Aja (Benin)"},
+ {"aji", NULL, NULL, NULL, "Ajië"},
+ {"ajn", NULL, NULL, NULL, "Andajin"},
+ {"ajp", NULL, NULL, NULL, "South Levantine Arabic"},
+ {"ajt", NULL, NULL, NULL, "Judeo-Tunisian Arabic"},
+ {"aju", NULL, NULL, NULL, "Judeo-Moroccan Arabic"},
+ {"ajw", NULL, NULL, NULL, "Ajawa"},
+ {"ajz", NULL, NULL, NULL, "Amri Karbi"},
+ {"aka", "aka", "aka", "ak", "Akan"},
+ {"akb", NULL, NULL, NULL, "Batak Angkola"},
+ {"akc", NULL, NULL, NULL, "Mpur"},
+ {"akd", NULL, NULL, NULL, "Ukpet-Ehom"},
+ {"ake", NULL, NULL, NULL, "Akawaio"},
+ {"akf", NULL, NULL, NULL, "Akpa"},
+ {"akg", NULL, NULL, NULL, "Anakalangu"},
+ {"akh", NULL, NULL, NULL, "Angal Heneng"},
+ {"aki", NULL, NULL, NULL, "Aiome"},
+ {"akj", NULL, NULL, NULL, "Aka-Jeru"},
+ {"akk", "akk", "akk", NULL, "Akkadian"},
+ {"akl", NULL, NULL, NULL, "Aklanon"},
+ {"akm", NULL, NULL, NULL, "Aka-Bo"},
+ {"ako", NULL, NULL, NULL, "Akurio"},
+ {"akp", NULL, NULL, NULL, "Siwu"},
+ {"akq", NULL, NULL, NULL, "Ak"},
+ {"akr", NULL, NULL, NULL, "Araki"},
+ {"aks", NULL, NULL, NULL, "Akaselem"},
+ {"akt", NULL, NULL, NULL, "Akolet"},
+ {"aku", NULL, NULL, NULL, "Akum"},
+ {"akv", NULL, NULL, NULL, "Akhvakh"},
+ {"akw", NULL, NULL, NULL, "Akwa"},
+ {"akx", NULL, NULL, NULL, "Aka-Kede"},
+ {"aky", NULL, NULL, NULL, "Aka-Kol"},
+ {"akz", NULL, NULL, NULL, "Alabama"},
+ {"ala", NULL, NULL, NULL, "Alago"},
+ {"alc", NULL, NULL, NULL, "Qawasqar"},
+ {"ald", NULL, NULL, NULL, "Alladian"},
+ {"ale", "ale", "ale", NULL, "Aleut"},
+ {"alf", NULL, NULL, NULL, "Alege"},
+ {"alh", NULL, NULL, NULL, "Alawa"},
+ {"ali", NULL, NULL, NULL, "Amaimon"},
+ {"alj", NULL, NULL, NULL, "Alangan"},
+ {"alk", NULL, NULL, NULL, "Alak"},
+ {"all", NULL, NULL, NULL, "Allar"},
+ {"alm", NULL, NULL, NULL, "Amblong"},
+ {"aln", NULL, NULL, NULL, "Gheg Albanian"},
+ {"alo", NULL, NULL, NULL, "Larike-Wakasihu"},
+ {"alp", NULL, NULL, NULL, "Alune"},
+ {"alq", NULL, NULL, NULL, "Algonquin"},
+ {"alr", NULL, NULL, NULL, "Alutor"},
+ {"als", NULL, NULL, NULL, "Tosk Albanian"},
+ {"alt", "alt", "alt", NULL, "Southern Altai"},
+ {"alu", NULL, NULL, NULL, "'Are'are"},
+ {"alw", NULL, NULL, NULL, "Alaba-K’abeena"},
+ {"alx", NULL, NULL, NULL, "Amol"},
+ {"aly", NULL, NULL, NULL, "Alyawarr"},
+ {"alz", NULL, NULL, NULL, "Alur"},
+ {"ama", NULL, NULL, NULL, "Amanayé"},
+ {"amb", NULL, NULL, NULL, "Ambo"},
+ {"amc", NULL, NULL, NULL, "Amahuaca"},
+ {"ame", NULL, NULL, NULL, "Yanesha'"},
+ {"amf", NULL, NULL, NULL, "Hamer-Banna"},
+ {"amg", NULL, NULL, NULL, "Amurdak"},
+ {"amh", "amh", "amh", "am", "Amharic"},
+ {"ami", NULL, NULL, NULL, "Amis"},
+ {"amj", NULL, NULL, NULL, "Amdang"},
+ {"amk", NULL, NULL, NULL, "Ambai"},
+ {"aml", NULL, NULL, NULL, "War-Jaintia"},
+ {"amm", NULL, NULL, NULL, "Ama (Papua New Guinea)"},
+ {"amn", NULL, NULL, NULL, "Amanab"},
+ {"amo", NULL, NULL, NULL, "Amo"},
+ {"amp", NULL, NULL, NULL, "Alamblak"},
+ {"amq", NULL, NULL, NULL, "Amahai"},
+ {"amr", NULL, NULL, NULL, "Amarakaeri"},
+ {"ams", NULL, NULL, NULL, "Southern Amami-Oshima"},
+ {"amt", NULL, NULL, NULL, "Amto"},
+ {"amu", NULL, NULL, NULL, "Guerrero Amuzgo"},
+ {"amv", NULL, NULL, NULL, "Ambelau"},
+ {"amw", NULL, NULL, NULL, "Western Neo-Aramaic"},
+ {"amx", NULL, NULL, NULL, "Anmatyerre"},
+ {"amy", NULL, NULL, NULL, "Ami"},
+ {"amz", NULL, NULL, NULL, "Atampaya"},
+ {"ana", NULL, NULL, NULL, "Andaqui"},
+ {"anb", NULL, NULL, NULL, "Andoa"},
+ {"anc", NULL, NULL, NULL, "Ngas"},
+ {"and", NULL, NULL, NULL, "Ansus"},
+ {"ane", NULL, NULL, NULL, "Xârâcùù"},
+ {"anf", NULL, NULL, NULL, "Animere"},
+ {"ang", "ang", "ang", NULL, "Old English (ca. 450-1100)"},
+ {"anh", NULL, NULL, NULL, "Nend"},
+ {"ani", NULL, NULL, NULL, "Andi"},
+ {"anj", NULL, NULL, NULL, "Anor"},
+ {"ank", NULL, NULL, NULL, "Goemai"},
+ {"anl", NULL, NULL, NULL, "Anu-Hkongso Chin"},
+ {"anm", NULL, NULL, NULL, "Anal"},
+ {"ann", NULL, NULL, NULL, "Obolo"},
+ {"ano", NULL, NULL, NULL, "Andoque"},
+ {"anp", "anp", "anp", NULL, "Angika"},
+ {"anq", NULL, NULL, NULL, "Jarawa (India)"},
+ {"anr", NULL, NULL, NULL, "Andh"},
+ {"ans", NULL, NULL, NULL, "Anserma"},
+ {"ant", NULL, NULL, NULL, "Antakarinya"},
+ {"anu", NULL, NULL, NULL, "Anuak"},
+ {"anv", NULL, NULL, NULL, "Denya"},
+ {"anw", NULL, NULL, NULL, "Anaang"},
+ {"anx", NULL, NULL, NULL, "Andra-Hus"},
+ {"any", NULL, NULL, NULL, "Anyin"},
+ {"anz", NULL, NULL, NULL, "Anem"},
+ {"aoa", NULL, NULL, NULL, "Angolar"},
+ {"aob", NULL, NULL, NULL, "Abom"},
+ {"aoc", NULL, NULL, NULL, "Pemon"},
+ {"aod", NULL, NULL, NULL, "Andarum"},
+ {"aoe", NULL, NULL, NULL, "Angal Enen"},
+ {"aof", NULL, NULL, NULL, "Bragat"},
+ {"aog", NULL, NULL, NULL, "Angoram"},
+ {"aoi", NULL, NULL, NULL, "Anindilyakwa"},
+ {"aoj", NULL, NULL, NULL, "Mufian"},
+ {"aok", NULL, NULL, NULL, "Arhö"},
+ {"aol", NULL, NULL, NULL, "Alor"},
+ {"aom", NULL, NULL, NULL, "Ömie"},
+ {"aon", NULL, NULL, NULL, "Bumbita Arapesh"},
+ {"aor", NULL, NULL, NULL, "Aore"},
+ {"aos", NULL, NULL, NULL, "Taikat"},
+ {"aot", NULL, NULL, NULL, "Atong (India)"},
+ {"aou", NULL, NULL, NULL, "A'ou"},
+ {"aox", NULL, NULL, NULL, "Atorada"},
+ {"aoz", NULL, NULL, NULL, "Uab Meto"},
+ {"apb", NULL, NULL, NULL, "Sa'a"},
+ {"apc", NULL, NULL, NULL, "North Levantine Arabic"},
+ {"apd", NULL, NULL, NULL, "Sudanese Arabic"},
+ {"ape", NULL, NULL, NULL, "Bukiyip"},
+ {"apf", NULL, NULL, NULL, "Pahanan Agta"},
+ {"apg", NULL, NULL, NULL, "Ampanang"},
+ {"aph", NULL, NULL, NULL, "Athpariya"},
+ {"api", NULL, NULL, NULL, "Apiaká"},
+ {"apj", NULL, NULL, NULL, "Jicarilla Apache"},
+ {"apk", NULL, NULL, NULL, "Kiowa Apache"},
+ {"apl", NULL, NULL, NULL, "Lipan Apache"},
+ {"apm", NULL, NULL, NULL, "Mescalero-Chiricahua Apache"},
+ {"apn", NULL, NULL, NULL, "Apinayé"},
+ {"apo", NULL, NULL, NULL, "Ambul"},
+ {"app", NULL, NULL, NULL, "Apma"},
+ {"apq", NULL, NULL, NULL, "A-Pucikwar"},
+ {"apr", NULL, NULL, NULL, "Arop-Lokep"},
+ {"aps", NULL, NULL, NULL, "Arop-Sissano"},
+ {"apt", NULL, NULL, NULL, "Apatani"},
+ {"apu", NULL, NULL, NULL, "Apurinã"},
+ {"apv", NULL, NULL, NULL, "Alapmunte"},
+ {"apw", NULL, NULL, NULL, "Western Apache"},
+ {"apx", NULL, NULL, NULL, "Aputai"},
+ {"apy", NULL, NULL, NULL, "Apalaí"},
+ {"apz", NULL, NULL, NULL, "Safeyoka"},
+ {"aqc", NULL, NULL, NULL, "Archi"},
+ {"aqd", NULL, NULL, NULL, "Ampari Dogon"},
+ {"aqg", NULL, NULL, NULL, "Arigidi"},
+ {"aqk", NULL, NULL, NULL, "Aninka"},
+ {"aqm", NULL, NULL, NULL, "Atohwaim"},
+ {"aqn", NULL, NULL, NULL, "Northern Alta"},
+ {"aqp", NULL, NULL, NULL, "Atakapa"},
+ {"aqr", NULL, NULL, NULL, "Arhâ"},
+ {"aqt", NULL, NULL, NULL, "Angaité"},
+ {"aqz", NULL, NULL, NULL, "Akuntsu"},
+ {"ara", "ara", "ara", "ar", "Arabic"},
+ {"arb", NULL, NULL, NULL, "Standard Arabic"},
+ {"arc", "arc", "arc", NULL, "Official Aramaic (700-300 BCE)"},
+ {"ard", NULL, NULL, NULL, "Arabana"},
+ {"are", NULL, NULL, NULL, "Western Arrarnta"},
+ {"arg", "arg", "arg", "an", "Aragonese"},
+ {"arh", NULL, NULL, NULL, "Arhuaco"},
+ {"ari", NULL, NULL, NULL, "Arikara"},
+ {"arj", NULL, NULL, NULL, "Arapaso"},
+ {"ark", NULL, NULL, NULL, "Arikapú"},
+ {"arl", NULL, NULL, NULL, "Arabela"},
+ {"arn", "arn", "arn", NULL, "Mapudungun"},
+ {"aro", NULL, NULL, NULL, "Araona"},
+ {"arp", "arp", "arp", NULL, "Arapaho"},
+ {"arq", NULL, NULL, NULL, "Algerian Arabic"},
+ {"arr", NULL, NULL, NULL, "Karo (Brazil)"},
+ {"ars", NULL, NULL, NULL, "Najdi Arabic"},
+ {"aru", NULL, NULL, NULL, "Aruá (Amazonas State)"},
+ {"arv", NULL, NULL, NULL, "Arbore"},
+ {"arw", "arw", "arw", NULL, "Arawak"},
+ {"arx", NULL, NULL, NULL, "Aruá (Rodonia State)"},
+ {"ary", NULL, NULL, NULL, "Moroccan Arabic"},
+ {"arz", NULL, NULL, NULL, "Egyptian Arabic"},
+ {"asa", NULL, NULL, NULL, "Asu (Tanzania)"},
+ {"asb", NULL, NULL, NULL, "Assiniboine"},
+ {"asc", NULL, NULL, NULL, "Casuarina Coast Asmat"},
+ {"ase", NULL, NULL, NULL, "American Sign Language"},
+ {"asf", NULL, NULL, NULL, "Auslan"},
+ {"asg", NULL, NULL, NULL, "Cishingini"},
+ {"ash", NULL, NULL, NULL, "Abishira"},
+ {"asi", NULL, NULL, NULL, "Buruwai"},
+ {"asj", NULL, NULL, NULL, "Sari"},
+ {"ask", NULL, NULL, NULL, "Ashkun"},
+ {"asl", NULL, NULL, NULL, "Asilulu"},
+ {"asm", "asm", "asm", "as", "Assamese"},
+ {"asn", NULL, NULL, NULL, "Xingú Asuriní"},
+ {"aso", NULL, NULL, NULL, "Dano"},
+ {"asp", NULL, NULL, NULL, "Algerian Sign Language"},
+ {"asq", NULL, NULL, NULL, "Austrian Sign Language"},
+ {"asr", NULL, NULL, NULL, "Asuri"},
+ {"ass", NULL, NULL, NULL, "Ipulo"},
+ {"ast", "ast", "ast", NULL, "Asturian"},
+ {"asu", NULL, NULL, NULL, "Tocantins Asurini"},
+ {"asv", NULL, NULL, NULL, "Asoa"},
+ {"asw", NULL, NULL, NULL, "Australian Aborigines Sign Language"},
+ {"asx", NULL, NULL, NULL, "Muratayak"},
+ {"asy", NULL, NULL, NULL, "Yaosakor Asmat"},
+ {"asz", NULL, NULL, NULL, "As"},
+ {"ata", NULL, NULL, NULL, "Pele-Ata"},
+ {"atb", NULL, NULL, NULL, "Zaiwa"},
+ {"atc", NULL, NULL, NULL, "Atsahuaca"},
+ {"atd", NULL, NULL, NULL, "Ata Manobo"},
+ {"ate", NULL, NULL, NULL, "Atemble"},
+ {"atg", NULL, NULL, NULL, "Ivbie North-Okpela-Arhe"},
+ {"ati", NULL, NULL, NULL, "Attié"},
+ {"atj", NULL, NULL, NULL, "Atikamekw"},
+ {"atk", NULL, NULL, NULL, "Ati"},
+ {"atl", NULL, NULL, NULL, "Mt. Iraya Agta"},
+ {"atm", NULL, NULL, NULL, "Ata"},
+ {"atn", NULL, NULL, NULL, "Ashtiani"},
+ {"ato", NULL, NULL, NULL, "Atong (Cameroon)"},
+ {"atp", NULL, NULL, NULL, "Pudtol Atta"},
+ {"atq", NULL, NULL, NULL, "Aralle-Tabulahan"},
+ {"atr", NULL, NULL, NULL, "Waimiri-Atroari"},
+ {"ats", NULL, NULL, NULL, "Gros Ventre"},
+ {"att", NULL, NULL, NULL, "Pamplona Atta"},
+ {"atu", NULL, NULL, NULL, "Reel"},
+ {"atv", NULL, NULL, NULL, "Northern Altai"},
+ {"atw", NULL, NULL, NULL, "Atsugewi"},
+ {"atx", NULL, NULL, NULL, "Arutani"},
+ {"aty", NULL, NULL, NULL, "Aneityum"},
+ {"atz", NULL, NULL, NULL, "Arta"},
+ {"aua", NULL, NULL, NULL, "Asumboa"},
+ {"aub", NULL, NULL, NULL, "Alugu"},
+ {"auc", NULL, NULL, NULL, "Waorani"},
+ {"aud", NULL, NULL, NULL, "Anuta"},
+ {"aug", NULL, NULL, NULL, "Aguna"},
+ {"auh", NULL, NULL, NULL, "Aushi"},
+ {"aui", NULL, NULL, NULL, "Anuki"},
+ {"auj", NULL, NULL, NULL, "Awjilah"},
+ {"auk", NULL, NULL, NULL, "Heyo"},
+ {"aul", NULL, NULL, NULL, "Aulua"},
+ {"aum", NULL, NULL, NULL, "Asu (Nigeria)"},
+ {"aun", NULL, NULL, NULL, "Molmo One"},
+ {"auo", NULL, NULL, NULL, "Auyokawa"},
+ {"aup", NULL, NULL, NULL, "Makayam"},
+ {"auq", NULL, NULL, NULL, "Anus"},
+ {"aur", NULL, NULL, NULL, "Aruek"},
+ {"aut", NULL, NULL, NULL, "Austral"},
+ {"auu", NULL, NULL, NULL, "Auye"},
+ {"auw", NULL, NULL, NULL, "Awyi"},
+ {"aux", NULL, NULL, NULL, "Aurá"},
+ {"auy", NULL, NULL, NULL, "Awiyaana"},
+ {"auz", NULL, NULL, NULL, "Uzbeki Arabic"},
+ {"ava", "ava", "ava", "av", "Avaric"},
+ {"avb", NULL, NULL, NULL, "Avau"},
+ {"avd", NULL, NULL, NULL, "Alviri-Vidari"},
+ {"ave", "ave", "ave", "ae", "Avestan"},
+ {"avi", NULL, NULL, NULL, "Avikam"},
+ {"avk", NULL, NULL, NULL, "Kotava"},
+ {"avl", NULL, NULL, NULL, "Eastern Egyptian Bedawi Arabic"},
+ {"avm", NULL, NULL, NULL, "Angkamuthi"},
+ {"avn", NULL, NULL, NULL, "Avatime"},
+ {"avo", NULL, NULL, NULL, "Agavotaguerra"},
+ {"avs", NULL, NULL, NULL, "Aushiri"},
+ {"avt", NULL, NULL, NULL, "Au"},
+ {"avu", NULL, NULL, NULL, "Avokaya"},
+ {"avv", NULL, NULL, NULL, "Avá-Canoeiro"},
+ {"awa", "awa", "awa", NULL, "Awadhi"},
+ {"awb", NULL, NULL, NULL, "Awa (Papua New Guinea)"},
+ {"awc", NULL, NULL, NULL, "Cicipu"},
+ {"awe", NULL, NULL, NULL, "Awetí"},
+ {"awg", NULL, NULL, NULL, "Anguthimri"},
+ {"awh", NULL, NULL, NULL, "Awbono"},
+ {"awi", NULL, NULL, NULL, "Aekyom"},
+ {"awk", NULL, NULL, NULL, "Awabakal"},
+ {"awm", NULL, NULL, NULL, "Arawum"},
+ {"awn", NULL, NULL, NULL, "Awngi"},
+ {"awo", NULL, NULL, NULL, "Awak"},
+ {"awr", NULL, NULL, NULL, "Awera"},
+ {"aws", NULL, NULL, NULL, "South Awyu"},
+ {"awt", NULL, NULL, NULL, "Araweté"},
+ {"awu", NULL, NULL, NULL, "Central Awyu"},
+ {"awv", NULL, NULL, NULL, "Jair Awyu"},
+ {"aww", NULL, NULL, NULL, "Awun"},
+ {"awx", NULL, NULL, NULL, "Awara"},
+ {"awy", NULL, NULL, NULL, "Edera Awyu"},
+ {"axb", NULL, NULL, NULL, "Abipon"},
+ {"axe", NULL, NULL, NULL, "Ayerrerenge"},
+ {"axg", NULL, NULL, NULL, "Mato Grosso Arára"},
+ {"axk", NULL, NULL, NULL, "Yaka (Central African Republic)"},
+ {"axl", NULL, NULL, NULL, "Lower Southern Aranda"},
+ {"axm", NULL, NULL, NULL, "Middle Armenian"},
+ {"axx", NULL, NULL, NULL, "Xârâgurè"},
+ {"aya", NULL, NULL, NULL, "Awar"},
+ {"ayb", NULL, NULL, NULL, "Ayizo Gbe"},
+ {"ayc", NULL, NULL, NULL, "Southern Aymara"},
+ {"ayd", NULL, NULL, NULL, "Ayabadhu"},
+ {"aye", NULL, NULL, NULL, "Ayere"},
+ {"ayg", NULL, NULL, NULL, "Ginyanga"},
+ {"ayh", NULL, NULL, NULL, "Hadrami Arabic"},
+ {"ayi", NULL, NULL, NULL, "Leyigha"},
+ {"ayk", NULL, NULL, NULL, "Akuku"},
+ {"ayl", NULL, NULL, NULL, "Libyan Arabic"},
+ {"aym", "aym", "aym", "ay", "Aymara"},
+ {"ayn", NULL, NULL, NULL, "Sanaani Arabic"},
+ {"ayo", NULL, NULL, NULL, "Ayoreo"},
+ {"ayp", NULL, NULL, NULL, "North Mesopotamian Arabic"},
+ {"ayq", NULL, NULL, NULL, "Ayi (Papua New Guinea)"},
+ {"ayr", NULL, NULL, NULL, "Central Aymara"},
+ {"ays", NULL, NULL, NULL, "Sorsogon Ayta"},
+ {"ayt", NULL, NULL, NULL, "Magbukun Ayta"},
+ {"ayu", NULL, NULL, NULL, "Ayu"},
+ {"ayz", NULL, NULL, NULL, "Mai Brat"},
+ {"aza", NULL, NULL, NULL, "Azha"},
+ {"azb", NULL, NULL, NULL, "South Azerbaijani"},
+ {"azd", NULL, NULL, NULL, "Eastern Durango Nahuatl"},
+ {"aze", "aze", "aze", "az", "Azerbaijani"},
+ {"azg", NULL, NULL, NULL, "San Pedro Amuzgos Amuzgo"},
+ {"azj", NULL, NULL, NULL, "North Azerbaijani"},
+ {"azm", NULL, NULL, NULL, "Ipalapa Amuzgo"},
+ {"azn", NULL, NULL, NULL, "Western Durango Nahuatl"},
+ {"azo", NULL, NULL, NULL, "Awing"},
+ {"azt", NULL, NULL, NULL, "Faire Atta"},
+ {"azz", NULL, NULL, NULL, "Highland Puebla Nahuatl"},
+ {"baa", NULL, NULL, NULL, "Babatana"},
+ {"bab", NULL, NULL, NULL, "Bainouk-Gunyuño"},
+ {"bac", NULL, NULL, NULL, "Badui"},
+ {"bae", NULL, NULL, NULL, "Baré"},
+ {"baf", NULL, NULL, NULL, "Nubaca"},
+ {"bag", NULL, NULL, NULL, "Tuki"},
+ {"bah", NULL, NULL, NULL, "Bahamas Creole English"},
+ {"baj", NULL, NULL, NULL, "Barakai"},
+ {"bak", "bak", "bak", "ba", "Bashkir"},
+ {"bal", "bal", "bal", NULL, "Baluchi"},
+ {"bam", "bam", "bam", "bm", "Bambara"},
+ {"ban", "ban", "ban", NULL, "Balinese"},
+ {"bao", NULL, NULL, NULL, "Waimaha"},
+ {"bap", NULL, NULL, NULL, "Bantawa"},
+ {"bar", NULL, NULL, NULL, "Bavarian"},
+ {"bas", "bas", "bas", NULL, "Basa (Cameroon)"},
+ {"bau", NULL, NULL, NULL, "Bada (Nigeria)"},
+ {"bav", NULL, NULL, NULL, "Vengo"},
+ {"baw", NULL, NULL, NULL, "Bambili-Bambui"},
+ {"bax", NULL, NULL, NULL, "Bamun"},
+ {"bay", NULL, NULL, NULL, "Batuley"},
+ {"bba", NULL, NULL, NULL, "Baatonum"},
+ {"bbb", NULL, NULL, NULL, "Barai"},
+ {"bbc", NULL, NULL, NULL, "Batak Toba"},
+ {"bbd", NULL, NULL, NULL, "Bau"},
+ {"bbe", NULL, NULL, NULL, "Bangba"},
+ {"bbf", NULL, NULL, NULL, "Baibai"},
+ {"bbg", NULL, NULL, NULL, "Barama"},
+ {"bbh", NULL, NULL, NULL, "Bugan"},
+ {"bbi", NULL, NULL, NULL, "Barombi"},
+ {"bbj", NULL, NULL, NULL, "Ghomálá'"},
+ {"bbk", NULL, NULL, NULL, "Babanki"},
+ {"bbl", NULL, NULL, NULL, "Bats"},
+ {"bbm", NULL, NULL, NULL, "Babango"},
+ {"bbn", NULL, NULL, NULL, "Uneapa"},
+ {"bbo", NULL, NULL, NULL, "Northern Bobo Madaré"},
+ {"bbp", NULL, NULL, NULL, "West Central Banda"},
+ {"bbq", NULL, NULL, NULL, "Bamali"},
+ {"bbr", NULL, NULL, NULL, "Girawa"},
+ {"bbs", NULL, NULL, NULL, "Bakpinka"},
+ {"bbt", NULL, NULL, NULL, "Mburku"},
+ {"bbu", NULL, NULL, NULL, "Kulung (Nigeria)"},
+ {"bbv", NULL, NULL, NULL, "Karnai"},
+ {"bbw", NULL, NULL, NULL, "Baba"},
+ {"bbx", NULL, NULL, NULL, "Bubia"},
+ {"bby", NULL, NULL, NULL, "Befang"},
+ {"bca", NULL, NULL, NULL, "Central Bai"},
+ {"bcb", NULL, NULL, NULL, "Bainouk-Samik"},
+ {"bcc", NULL, NULL, NULL, "Southern Balochi"},
+ {"bcd", NULL, NULL, NULL, "North Babar"},
+ {"bce", NULL, NULL, NULL, "Bamenyam"},
+ {"bcf", NULL, NULL, NULL, "Bamu"},
+ {"bcg", NULL, NULL, NULL, "Baga Pokur"},
+ {"bch", NULL, NULL, NULL, "Bariai"},
+ {"bci", NULL, NULL, NULL, "Baoulé"},
+ {"bcj", NULL, NULL, NULL, "Bardi"},
+ {"bck", NULL, NULL, NULL, "Bunuba"},
+ {"bcl", NULL, NULL, NULL, "Central Bikol"},
+ {"bcm", NULL, NULL, NULL, "Bannoni"},
+ {"bcn", NULL, NULL, NULL, "Bali (Nigeria)"},
+ {"bco", NULL, NULL, NULL, "Kaluli"},
+ {"bcp", NULL, NULL, NULL, "Bali (Democratic Republic of Congo)"},
+ {"bcq", NULL, NULL, NULL, "Bench"},
+ {"bcr", NULL, NULL, NULL, "Babine"},
+ {"bcs", NULL, NULL, NULL, "Kohumono"},
+ {"bct", NULL, NULL, NULL, "Bendi"},
+ {"bcu", NULL, NULL, NULL, "Awad Bing"},
+ {"bcv", NULL, NULL, NULL, "Shoo-Minda-Nye"},
+ {"bcw", NULL, NULL, NULL, "Bana"},
+ {"bcy", NULL, NULL, NULL, "Bacama"},
+ {"bcz", NULL, NULL, NULL, "Bainouk-Gunyaamolo"},
+ {"bda", NULL, NULL, NULL, "Bayot"},
+ {"bdb", NULL, NULL, NULL, "Basap"},
+ {"bdc", NULL, NULL, NULL, "Emberá-Baudó"},
+ {"bdd", NULL, NULL, NULL, "Bunama"},
+ {"bde", NULL, NULL, NULL, "Bade"},
+ {"bdf", NULL, NULL, NULL, "Biage"},
+ {"bdg", NULL, NULL, NULL, "Bonggi"},
+ {"bdh", NULL, NULL, NULL, "Baka (South Sudan)"},
+ {"bdi", NULL, NULL, NULL, "Burun"},
+ {"bdj", NULL, NULL, NULL, "Bai (South Sudan)"},
+ {"bdk", NULL, NULL, NULL, "Budukh"},
+ {"bdl", NULL, NULL, NULL, "Indonesian Bajau"},
+ {"bdm", NULL, NULL, NULL, "Buduma"},
+ {"bdn", NULL, NULL, NULL, "Baldemu"},
+ {"bdo", NULL, NULL, NULL, "Morom"},
+ {"bdp", NULL, NULL, NULL, "Bende"},
+ {"bdq", NULL, NULL, NULL, "Bahnar"},
+ {"bdr", NULL, NULL, NULL, "West Coast Bajau"},
+ {"bds", NULL, NULL, NULL, "Burunge"},
+ {"bdt", NULL, NULL, NULL, "Bokoto"},
+ {"bdu", NULL, NULL, NULL, "Oroko"},
+ {"bdv", NULL, NULL, NULL, "Bodo Parja"},
+ {"bdw", NULL, NULL, NULL, "Baham"},
+ {"bdx", NULL, NULL, NULL, "Budong-Budong"},
+ {"bdy", NULL, NULL, NULL, "Bandjalang"},
+ {"bdz", NULL, NULL, NULL, "Badeshi"},
+ {"bea", NULL, NULL, NULL, "Beaver"},
+ {"beb", NULL, NULL, NULL, "Bebele"},
+ {"bec", NULL, NULL, NULL, "Iceve-Maci"},
+ {"bed", NULL, NULL, NULL, "Bedoanas"},
+ {"bee", NULL, NULL, NULL, "Byangsi"},
+ {"bef", NULL, NULL, NULL, "Benabena"},
+ {"beg", NULL, NULL, NULL, "Belait"},
+ {"beh", NULL, NULL, NULL, "Biali"},
+ {"bei", NULL, NULL, NULL, "Bekati'"},
+ {"bej", "bej", "bej", NULL, "Beja"},
+ {"bek", NULL, NULL, NULL, "Bebeli"},
+ {"bel", "bel", "bel", "be", "Belarusian"},
+ {"bem", "bem", "bem", NULL, "Bemba (Zambia)"},
+ {"ben", "ben", "ben", "bn", "Bengali"},
+ {"beo", NULL, NULL, NULL, "Beami"},
+ {"bep", NULL, NULL, NULL, "Besoa"},
+ {"beq", NULL, NULL, NULL, "Beembe"},
+ {"bes", NULL, NULL, NULL, "Besme"},
+ {"bet", NULL, NULL, NULL, "Guiberoua Béte"},
+ {"beu", NULL, NULL, NULL, "Blagar"},
+ {"bev", NULL, NULL, NULL, "Daloa Bété"},
+ {"bew", NULL, NULL, NULL, "Betawi"},
+ {"bex", NULL, NULL, NULL, "Jur Modo"},
+ {"bey", NULL, NULL, NULL, "Beli (Papua New Guinea)"},
+ {"bez", NULL, NULL, NULL, "Bena (Tanzania)"},
+ {"bfa", NULL, NULL, NULL, "Bari"},
+ {"bfb", NULL, NULL, NULL, "Pauri Bareli"},
+ {"bfc", NULL, NULL, NULL, "Panyi Bai"},
+ {"bfd", NULL, NULL, NULL, "Bafut"},
+ {"bfe", NULL, NULL, NULL, "Betaf"},
+ {"bff", NULL, NULL, NULL, "Bofi"},
+ {"bfg", NULL, NULL, NULL, "Busang Kayan"},
+ {"bfh", NULL, NULL, NULL, "Blafe"},
+ {"bfi", NULL, NULL, NULL, "British Sign Language"},
+ {"bfj", NULL, NULL, NULL, "Bafanji"},
+ {"bfk", NULL, NULL, NULL, "Ban Khor Sign Language"},
+ {"bfl", NULL, NULL, NULL, "Banda-Ndélé"},
+ {"bfm", NULL, NULL, NULL, "Mmen"},
+ {"bfn", NULL, NULL, NULL, "Bunak"},
+ {"bfo", NULL, NULL, NULL, "Malba Birifor"},
+ {"bfp", NULL, NULL, NULL, "Beba"},
+ {"bfq", NULL, NULL, NULL, "Badaga"},
+ {"bfr", NULL, NULL, NULL, "Bazigar"},
+ {"bfs", NULL, NULL, NULL, "Southern Bai"},
+ {"bft", NULL, NULL, NULL, "Balti"},
+ {"bfu", NULL, NULL, NULL, "Gahri"},
+ {"bfw", NULL, NULL, NULL, "Bondo"},
+ {"bfx", NULL, NULL, NULL, "Bantayanon"},
+ {"bfy", NULL, NULL, NULL, "Bagheli"},
+ {"bfz", NULL, NULL, NULL, "Mahasu Pahari"},
+ {"bga", NULL, NULL, NULL, "Gwamhi-Wuri"},
+ {"bgb", NULL, NULL, NULL, "Bobongko"},
+ {"bgc", NULL, NULL, NULL, "Haryanvi"},
+ {"bgd", NULL, NULL, NULL, "Rathwi Bareli"},
+ {"bge", NULL, NULL, NULL, "Bauria"},
+ {"bgf", NULL, NULL, NULL, "Bangandu"},
+ {"bgg", NULL, NULL, NULL, "Bugun"},
+ {"bgi", NULL, NULL, NULL, "Giangan"},
+ {"bgj", NULL, NULL, NULL, "Bangolan"},
+ {"bgk", NULL, NULL, NULL, "Bit"},
+ {"bgl", NULL, NULL, NULL, "Bo (Laos)"},
+ {"bgn", NULL, NULL, NULL, "Western Balochi"},
+ {"bgo", NULL, NULL, NULL, "Baga Koga"},
+ {"bgp", NULL, NULL, NULL, "Eastern Balochi"},
+ {"bgq", NULL, NULL, NULL, "Bagri"},
+ {"bgr", NULL, NULL, NULL, "Bawm Chin"},
+ {"bgs", NULL, NULL, NULL, "Tagabawa"},
+ {"bgt", NULL, NULL, NULL, "Bughotu"},
+ {"bgu", NULL, NULL, NULL, "Mbongno"},
+ {"bgv", NULL, NULL, NULL, "Warkay-Bipim"},
+ {"bgw", NULL, NULL, NULL, "Bhatri"},
+ {"bgx", NULL, NULL, NULL, "Balkan Gagauz Turkish"},
+ {"bgy", NULL, NULL, NULL, "Benggoi"},
+ {"bgz", NULL, NULL, NULL, "Banggai"},
+ {"bha", NULL, NULL, NULL, "Bharia"},
+ {"bhb", NULL, NULL, NULL, "Bhili"},
+ {"bhc", NULL, NULL, NULL, "Biga"},
+ {"bhd", NULL, NULL, NULL, "Bhadrawahi"},
+ {"bhe", NULL, NULL, NULL, "Bhaya"},
+ {"bhf", NULL, NULL, NULL, "Odiai"},
+ {"bhg", NULL, NULL, NULL, "Binandere"},
+ {"bhh", NULL, NULL, NULL, "Bukharic"},
+ {"bhi", NULL, NULL, NULL, "Bhilali"},
+ {"bhj", NULL, NULL, NULL, "Bahing"},
+ {"bhl", NULL, NULL, NULL, "Bimin"},
+ {"bhm", NULL, NULL, NULL, "Bathari"},
+ {"bhn", NULL, NULL, NULL, "Bohtan Neo-Aramaic"},
+ {"bho", "bho", "bho", NULL, "Bhojpuri"},
+ {"bhp", NULL, NULL, NULL, "Bima"},
+ {"bhq", NULL, NULL, NULL, "Tukang Besi South"},
+ {"bhr", NULL, NULL, NULL, "Bara Malagasy"},
+ {"bhs", NULL, NULL, NULL, "Buwal"},
+ {"bht", NULL, NULL, NULL, "Bhattiyali"},
+ {"bhu", NULL, NULL, NULL, "Bhunjia"},
+ {"bhv", NULL, NULL, NULL, "Bahau"},
+ {"bhw", NULL, NULL, NULL, "Biak"},
+ {"bhx", NULL, NULL, NULL, "Bhalay"},
+ {"bhy", NULL, NULL, NULL, "Bhele"},
+ {"bhz", NULL, NULL, NULL, "Bada (Indonesia)"},
+ {"bia", NULL, NULL, NULL, "Badimaya"},
+ {"bib", NULL, NULL, NULL, "Bissa"},
+ {"bid", NULL, NULL, NULL, "Bidiyo"},
+ {"bie", NULL, NULL, NULL, "Bepour"},
+ {"bif", NULL, NULL, NULL, "Biafada"},
+ {"big", NULL, NULL, NULL, "Biangai"},
+ {"bik", "bik", "bik", NULL, "Bikol"},
+ {"bil", NULL, NULL, NULL, "Bile"},
+ {"bim", NULL, NULL, NULL, "Bimoba"},
+ {"bin", "bin", "bin", NULL, "Bini"},
+ {"bio", NULL, NULL, NULL, "Nai"},
+ {"bip", NULL, NULL, NULL, "Bila"},
+ {"biq", NULL, NULL, NULL, "Bipi"},
+ {"bir", NULL, NULL, NULL, "Bisorio"},
+ {"bis", "bis", "bis", "bi", "Bislama"},
+ {"bit", NULL, NULL, NULL, "Berinomo"},
+ {"biu", NULL, NULL, NULL, "Biete"},
+ {"biv", NULL, NULL, NULL, "Southern Birifor"},
+ {"biw", NULL, NULL, NULL, "Kol (Cameroon)"},
+ {"bix", NULL, NULL, NULL, "Bijori"},
+ {"biy", NULL, NULL, NULL, "Birhor"},
+ {"biz", NULL, NULL, NULL, "Baloi"},
+ {"bja", NULL, NULL, NULL, "Budza"},
+ {"bjb", NULL, NULL, NULL, "Banggarla"},
+ {"bjc", NULL, NULL, NULL, "Bariji"},
+ {"bje", NULL, NULL, NULL, "Biao-Jiao Mien"},
+ {"bjf", NULL, NULL, NULL, "Barzani Jewish Neo-Aramaic"},
+ {"bjg", NULL, NULL, NULL, "Bidyogo"},
+ {"bjh", NULL, NULL, NULL, "Bahinemo"},
+ {"bji", NULL, NULL, NULL, "Burji"},
+ {"bjj", NULL, NULL, NULL, "Kanauji"},
+ {"bjk", NULL, NULL, NULL, "Barok"},
+ {"bjl", NULL, NULL, NULL, "Bulu (Papua New Guinea)"},
+ {"bjm", NULL, NULL, NULL, "Bajelani"},
+ {"bjn", NULL, NULL, NULL, "Banjar"},
+ {"bjo", NULL, NULL, NULL, "Mid-Southern Banda"},
+ {"bjp", NULL, NULL, NULL, "Fanamaket"},
+ {"bjr", NULL, NULL, NULL, "Binumarien"},
+ {"bjs", NULL, NULL, NULL, "Bajan"},
+ {"bjt", NULL, NULL, NULL, "Balanta-Ganja"},
+ {"bju", NULL, NULL, NULL, "Busuu"},
+ {"bjv", NULL, NULL, NULL, "Bedjond"},
+ {"bjw", NULL, NULL, NULL, "Bakwé"},
+ {"bjx", NULL, NULL, NULL, "Banao Itneg"},
+ {"bjy", NULL, NULL, NULL, "Bayali"},
+ {"bjz", NULL, NULL, NULL, "Baruga"},
+ {"bka", NULL, NULL, NULL, "Kyak"},
+ {"bkc", NULL, NULL, NULL, "Baka (Cameroon)"},
+ {"bkd", NULL, NULL, NULL, "Binukid"},
+ {"bkf", NULL, NULL, NULL, "Beeke"},
+ {"bkg", NULL, NULL, NULL, "Buraka"},
+ {"bkh", NULL, NULL, NULL, "Bakoko"},
+ {"bki", NULL, NULL, NULL, "Baki"},
+ {"bkj", NULL, NULL, NULL, "Pande"},
+ {"bkk", NULL, NULL, NULL, "Brokskat"},
+ {"bkl", NULL, NULL, NULL, "Berik"},
+ {"bkm", NULL, NULL, NULL, "Kom (Cameroon)"},
+ {"bkn", NULL, NULL, NULL, "Bukitan"},
+ {"bko", NULL, NULL, NULL, "Kwa'"},
+ {"bkp", NULL, NULL, NULL, "Boko (Democratic Republic of Congo)"},
+ {"bkq", NULL, NULL, NULL, "Bakairí"},
+ {"bkr", NULL, NULL, NULL, "Bakumpai"},
+ {"bks", NULL, NULL, NULL, "Northern Sorsoganon"},
+ {"bkt", NULL, NULL, NULL, "Boloki"},
+ {"bku", NULL, NULL, NULL, "Buhid"},
+ {"bkv", NULL, NULL, NULL, "Bekwarra"},
+ {"bkw", NULL, NULL, NULL, "Bekwel"},
+ {"bkx", NULL, NULL, NULL, "Baikeno"},
+ {"bky", NULL, NULL, NULL, "Bokyi"},
+ {"bkz", NULL, NULL, NULL, "Bungku"},
+ {"bla", "bla", "bla", NULL, "Siksika"},
+ {"blb", NULL, NULL, NULL, "Bilua"},
+ {"blc", NULL, NULL, NULL, "Bella Coola"},
+ {"bld", NULL, NULL, NULL, "Bolango"},
+ {"ble", NULL, NULL, NULL, "Balanta-Kentohe"},
+ {"blf", NULL, NULL, NULL, "Buol"},
+ {"blh", NULL, NULL, NULL, "Kuwaa"},
+ {"bli", NULL, NULL, NULL, "Bolia"},
+ {"blj", NULL, NULL, NULL, "Bolongan"},
+ {"blk", NULL, NULL, NULL, "Pa'o Karen"},
+ {"bll", NULL, NULL, NULL, "Biloxi"},
+ {"blm", NULL, NULL, NULL, "Beli (South Sudan)"},
+ {"bln", NULL, NULL, NULL, "Southern Catanduanes Bikol"},
+ {"blo", NULL, NULL, NULL, "Anii"},
+ {"blp", NULL, NULL, NULL, "Blablanga"},
+ {"blq", NULL, NULL, NULL, "Baluan-Pam"},
+ {"blr", NULL, NULL, NULL, "Blang"},
+ {"bls", NULL, NULL, NULL, "Balaesang"},
+ {"blt", NULL, NULL, NULL, "Tai Dam"},
+ {"blv", NULL, NULL, NULL, "Kibala"},
+ {"blw", NULL, NULL, NULL, "Balangao"},
+ {"blx", NULL, NULL, NULL, "Mag-Indi Ayta"},
+ {"bly", NULL, NULL, NULL, "Notre"},
+ {"blz", NULL, NULL, NULL, "Balantak"},
+ {"bma", NULL, NULL, NULL, "Lame"},
+ {"bmb", NULL, NULL, NULL, "Bembe"},
+ {"bmc", NULL, NULL, NULL, "Biem"},
+ {"bmd", NULL, NULL, NULL, "Baga Manduri"},
+ {"bme", NULL, NULL, NULL, "Limassa"},
+ {"bmf", NULL, NULL, NULL, "Bom-Kim"},
+ {"bmg", NULL, NULL, NULL, "Bamwe"},
+ {"bmh", NULL, NULL, NULL, "Kein"},
+ {"bmi", NULL, NULL, NULL, "Bagirmi"},
+ {"bmj", NULL, NULL, NULL, "Bote-Majhi"},
+ {"bmk", NULL, NULL, NULL, "Ghayavi"},
+ {"bml", NULL, NULL, NULL, "Bomboli"},
+ {"bmm", NULL, NULL, NULL, "Northern Betsimisaraka Malagasy"},
+ {"bmn", NULL, NULL, NULL, "Bina (Papua New Guinea)"},
+ {"bmo", NULL, NULL, NULL, "Bambalang"},
+ {"bmp", NULL, NULL, NULL, "Bulgebi"},
+ {"bmq", NULL, NULL, NULL, "Bomu"},
+ {"bmr", NULL, NULL, NULL, "Muinane"},
+ {"bms", NULL, NULL, NULL, "Bilma Kanuri"},
+ {"bmt", NULL, NULL, NULL, "Biao Mon"},
+ {"bmu", NULL, NULL, NULL, "Somba-Siawari"},
+ {"bmv", NULL, NULL, NULL, "Bum"},
+ {"bmw", NULL, NULL, NULL, "Bomwali"},
+ {"bmx", NULL, NULL, NULL, "Baimak"},
+ {"bmz", NULL, NULL, NULL, "Baramu"},
+ {"bna", NULL, NULL, NULL, "Bonerate"},
+ {"bnb", NULL, NULL, NULL, "Bookan"},
+ {"bnc", NULL, NULL, NULL, "Bontok"},
+ {"bnd", NULL, NULL, NULL, "Banda (Indonesia)"},
+ {"bne", NULL, NULL, NULL, "Bintauna"},
+ {"bnf", NULL, NULL, NULL, "Masiwang"},
+ {"bng", NULL, NULL, NULL, "Benga"},
+ {"bni", NULL, NULL, NULL, "Bangi"},
+ {"bnj", NULL, NULL, NULL, "Eastern Tawbuid"},
+ {"bnk", NULL, NULL, NULL, "Bierebo"},
+ {"bnl", NULL, NULL, NULL, "Boon"},
+ {"bnm", NULL, NULL, NULL, "Batanga"},
+ {"bnn", NULL, NULL, NULL, "Bunun"},
+ {"bno", NULL, NULL, NULL, "Bantoanon"},
+ {"bnp", NULL, NULL, NULL, "Bola"},
+ {"bnq", NULL, NULL, NULL, "Bantik"},
+ {"bnr", NULL, NULL, NULL, "Butmas-Tur"},
+ {"bns", NULL, NULL, NULL, "Bundeli"},
+ {"bnu", NULL, NULL, NULL, "Bentong"},
+ {"bnv", NULL, NULL, NULL, "Bonerif"},
+ {"bnw", NULL, NULL, NULL, "Bisis"},
+ {"bnx", NULL, NULL, NULL, "Bangubangu"},
+ {"bny", NULL, NULL, NULL, "Bintulu"},
+ {"bnz", NULL, NULL, NULL, "Beezen"},
+ {"boa", NULL, NULL, NULL, "Bora"},
+ {"bob", NULL, NULL, NULL, "Aweer"},
+ {"bod", "tib", "bod", "bo", "Tibetan"},
+ {"boe", NULL, NULL, NULL, "Mundabli"},
+ {"bof", NULL, NULL, NULL, "Bolon"},
+ {"bog", NULL, NULL, NULL, "Bamako Sign Language"},
+ {"boh", NULL, NULL, NULL, "Boma"},
+ {"boi", NULL, NULL, NULL, "Barbareño"},
+ {"boj", NULL, NULL, NULL, "Anjam"},
+ {"bok", NULL, NULL, NULL, "Bonjo"},
+ {"bol", NULL, NULL, NULL, "Bole"},
+ {"bom", NULL, NULL, NULL, "Berom"},
+ {"bon", NULL, NULL, NULL, "Bine"},
+ {"boo", NULL, NULL, NULL, "Tiemacèwè Bozo"},
+ {"bop", NULL, NULL, NULL, "Bonkiman"},
+ {"boq", NULL, NULL, NULL, "Bogaya"},
+ {"bor", NULL, NULL, NULL, "Borôro"},
+ {"bos", "bos", "bos", "bs", "Bosnian"},
+ {"bot", NULL, NULL, NULL, "Bongo"},
+ {"bou", NULL, NULL, NULL, "Bondei"},
+ {"bov", NULL, NULL, NULL, "Tuwuli"},
+ {"bow", NULL, NULL, NULL, "Rema"},
+ {"box", NULL, NULL, NULL, "Buamu"},
+ {"boy", NULL, NULL, NULL, "Bodo (Central African Republic)"},
+ {"boz", NULL, NULL, NULL, "Tiéyaxo Bozo"},
+ {"bpa", NULL, NULL, NULL, "Daakaka"},
+ {"bpd", NULL, NULL, NULL, "Banda-Banda"},
+ {"bpe", NULL, NULL, NULL, "Bauni"},
+ {"bpg", NULL, NULL, NULL, "Bonggo"},
+ {"bph", NULL, NULL, NULL, "Botlikh"},
+ {"bpi", NULL, NULL, NULL, "Bagupi"},
+ {"bpj", NULL, NULL, NULL, "Binji"},
+ {"bpk", NULL, NULL, NULL, "Orowe"},
+ {"bpl", NULL, NULL, NULL, "Broome Pearling Lugger Pidgin"},
+ {"bpm", NULL, NULL, NULL, "Biyom"},
+ {"bpn", NULL, NULL, NULL, "Dzao Min"},
+ {"bpo", NULL, NULL, NULL, "Anasi"},
+ {"bpp", NULL, NULL, NULL, "Kaure"},
+ {"bpq", NULL, NULL, NULL, "Banda Malay"},
+ {"bpr", NULL, NULL, NULL, "Koronadal Blaan"},
+ {"bps", NULL, NULL, NULL, "Sarangani Blaan"},
+ {"bpt", NULL, NULL, NULL, "Barrow Point"},
+ {"bpu", NULL, NULL, NULL, "Bongu"},
+ {"bpv", NULL, NULL, NULL, "Bian Marind"},
+ {"bpw", NULL, NULL, NULL, "Bo (Papua New Guinea)"},
+ {"bpx", NULL, NULL, NULL, "Palya Bareli"},
+ {"bpy", NULL, NULL, NULL, "Bishnupriya"},
+ {"bpz", NULL, NULL, NULL, "Bilba"},
+ {"bqa", NULL, NULL, NULL, "Tchumbuli"},
+ {"bqb", NULL, NULL, NULL, "Bagusa"},
+ {"bqc", NULL, NULL, NULL, "Boko (Benin)"},
+ {"bqd", NULL, NULL, NULL, "Bung"},
+ {"bqf", NULL, NULL, NULL, "Baga Kaloum"},
+ {"bqg", NULL, NULL, NULL, "Bago-Kusuntu"},
+ {"bqh", NULL, NULL, NULL, "Baima"},
+ {"bqi", NULL, NULL, NULL, "Bakhtiari"},
+ {"bqj", NULL, NULL, NULL, "Bandial"},
+ {"bqk", NULL, NULL, NULL, "Banda-Mbrès"},
+ {"bql", NULL, NULL, NULL, "Bilakura"},
+ {"bqm", NULL, NULL, NULL, "Wumboko"},
+ {"bqn", NULL, NULL, NULL, "Bulgarian Sign Language"},
+ {"bqo", NULL, NULL, NULL, "Balo"},
+ {"bqp", NULL, NULL, NULL, "Busa"},
+ {"bqq", NULL, NULL, NULL, "Biritai"},
+ {"bqr", NULL, NULL, NULL, "Burusu"},
+ {"bqs", NULL, NULL, NULL, "Bosngun"},
+ {"bqt", NULL, NULL, NULL, "Bamukumbit"},
+ {"bqu", NULL, NULL, NULL, "Boguru"},
+ {"bqv", NULL, NULL, NULL, "Koro Wachi"},
+ {"bqw", NULL, NULL, NULL, "Buru (Nigeria)"},
+ {"bqx", NULL, NULL, NULL, "Baangi"},
+ {"bqy", NULL, NULL, NULL, "Bengkala Sign Language"},
+ {"bqz", NULL, NULL, NULL, "Bakaka"},
+ {"bra", "bra", "bra", NULL, "Braj"},
+ {"brb", NULL, NULL, NULL, "Lave"},
+ {"brc", NULL, NULL, NULL, "Berbice Creole Dutch"},
+ {"brd", NULL, NULL, NULL, "Baraamu"},
+ {"bre", "bre", "bre", "br", "Breton"},
+ {"brf", NULL, NULL, NULL, "Bira"},
+ {"brg", NULL, NULL, NULL, "Baure"},
+ {"brh", NULL, NULL, NULL, "Brahui"},
+ {"bri", NULL, NULL, NULL, "Mokpwe"},
+ {"brj", NULL, NULL, NULL, "Bieria"},
+ {"brk", NULL, NULL, NULL, "Birked"},
+ {"brl", NULL, NULL, NULL, "Birwa"},
+ {"brm", NULL, NULL, NULL, "Barambu"},
+ {"brn", NULL, NULL, NULL, "Boruca"},
+ {"bro", NULL, NULL, NULL, "Brokkat"},
+ {"brp", NULL, NULL, NULL, "Barapasi"},
+ {"brq", NULL, NULL, NULL, "Breri"},
+ {"brr", NULL, NULL, NULL, "Birao"},
+ {"brs", NULL, NULL, NULL, "Baras"},
+ {"brt", NULL, NULL, NULL, "Bitare"},
+ {"bru", NULL, NULL, NULL, "Eastern Bru"},
+ {"brv", NULL, NULL, NULL, "Western Bru"},
+ {"brw", NULL, NULL, NULL, "Bellari"},
+ {"brx", NULL, NULL, NULL, "Bodo (India)"},
+ {"bry", NULL, NULL, NULL, "Burui"},
+ {"brz", NULL, NULL, NULL, "Bilbil"},
+ {"bsa", NULL, NULL, NULL, "Abinomn"},
+ {"bsb", NULL, NULL, NULL, "Brunei Bisaya"},
+ {"bsc", NULL, NULL, NULL, "Bassari"},
+ {"bse", NULL, NULL, NULL, "Wushi"},
+ {"bsf", NULL, NULL, NULL, "Bauchi"},
+ {"bsg", NULL, NULL, NULL, "Bashkardi"},
+ {"bsh", NULL, NULL, NULL, "Kati"},
+ {"bsi", NULL, NULL, NULL, "Bassossi"},
+ {"bsj", NULL, NULL, NULL, "Bangwinji"},
+ {"bsk", NULL, NULL, NULL, "Burushaski"},
+ {"bsl", NULL, NULL, NULL, "Basa-Gumna"},
+ {"bsm", NULL, NULL, NULL, "Busami"},
+ {"bsn", NULL, NULL, NULL, "Barasana-Eduria"},
+ {"bso", NULL, NULL, NULL, "Buso"},
+ {"bsp", NULL, NULL, NULL, "Baga Sitemu"},
+ {"bsq", NULL, NULL, NULL, "Bassa"},
+ {"bsr", NULL, NULL, NULL, "Bassa-Kontagora"},
+ {"bss", NULL, NULL, NULL, "Akoose"},
+ {"bst", NULL, NULL, NULL, "Basketo"},
+ {"bsu", NULL, NULL, NULL, "Bahonsuai"},
+ {"bsv", NULL, NULL, NULL, "Baga Sobané"},
+ {"bsw", NULL, NULL, NULL, "Baiso"},
+ {"bsx", NULL, NULL, NULL, "Yangkam"},
+ {"bsy", NULL, NULL, NULL, "Sabah Bisaya"},
+ {"bta", NULL, NULL, NULL, "Bata"},
+ {"btc", NULL, NULL, NULL, "Bati (Cameroon)"},
+ {"btd", NULL, NULL, NULL, "Batak Dairi"},
+ {"bte", NULL, NULL, NULL, "Gamo-Ningi"},
+ {"btf", NULL, NULL, NULL, "Birgit"},
+ {"btg", NULL, NULL, NULL, "Gagnoa Bété"},
+ {"bth", NULL, NULL, NULL, "Biatah Bidayuh"},
+ {"bti", NULL, NULL, NULL, "Burate"},
+ {"btj", NULL, NULL, NULL, "Bacanese Malay"},
+ {"btm", NULL, NULL, NULL, "Batak Mandailing"},
+ {"btn", NULL, NULL, NULL, "Ratagnon"},
+ {"bto", NULL, NULL, NULL, "Rinconada Bikol"},
+ {"btp", NULL, NULL, NULL, "Budibud"},
+ {"btq", NULL, NULL, NULL, "Batek"},
+ {"btr", NULL, NULL, NULL, "Baetora"},
+ {"bts", NULL, NULL, NULL, "Batak Simalungun"},
+ {"btt", NULL, NULL, NULL, "Bete-Bendi"},
+ {"btu", NULL, NULL, NULL, "Batu"},
+ {"btv", NULL, NULL, NULL, "Bateri"},
+ {"btw", NULL, NULL, NULL, "Butuanon"},
+ {"btx", NULL, NULL, NULL, "Batak Karo"},
+ {"bty", NULL, NULL, NULL, "Bobot"},
+ {"btz", NULL, NULL, NULL, "Batak Alas-Kluet"},
+ {"bua", "bua", "bua", NULL, "Buriat"},
+ {"bub", NULL, NULL, NULL, "Bua"},
+ {"buc", NULL, NULL, NULL, "Bushi"},
+ {"bud", NULL, NULL, NULL, "Ntcham"},
+ {"bue", NULL, NULL, NULL, "Beothuk"},
+ {"buf", NULL, NULL, NULL, "Bushoong"},
+ {"bug", "bug", "bug", NULL, "Buginese"},
+ {"buh", NULL, NULL, NULL, "Younuo Bunu"},
+ {"bui", NULL, NULL, NULL, "Bongili"},
+ {"buj", NULL, NULL, NULL, "Basa-Gurmana"},
+ {"buk", NULL, NULL, NULL, "Bugawac"},
+ {"bul", "bul", "bul", "bg", "Bulgarian"},
+ {"bum", NULL, NULL, NULL, "Bulu (Cameroon)"},
+ {"bun", NULL, NULL, NULL, "Sherbro"},
+ {"buo", NULL, NULL, NULL, "Terei"},
+ {"bup", NULL, NULL, NULL, "Busoa"},
+ {"buq", NULL, NULL, NULL, "Brem"},
+ {"bus", NULL, NULL, NULL, "Bokobaru"},
+ {"but", NULL, NULL, NULL, "Bungain"},
+ {"buu", NULL, NULL, NULL, "Budu"},
+ {"buv", NULL, NULL, NULL, "Bun"},
+ {"buw", NULL, NULL, NULL, "Bubi"},
+ {"bux", NULL, NULL, NULL, "Boghom"},
+ {"buy", NULL, NULL, NULL, "Bullom So"},
+ {"buz", NULL, NULL, NULL, "Bukwen"},
+ {"bva", NULL, NULL, NULL, "Barein"},
+ {"bvb", NULL, NULL, NULL, "Bube"},
+ {"bvc", NULL, NULL, NULL, "Baelelea"},
+ {"bvd", NULL, NULL, NULL, "Baeggu"},
+ {"bve", NULL, NULL, NULL, "Berau Malay"},
+ {"bvf", NULL, NULL, NULL, "Boor"},
+ {"bvg", NULL, NULL, NULL, "Bonkeng"},
+ {"bvh", NULL, NULL, NULL, "Bure"},
+ {"bvi", NULL, NULL, NULL, "Belanda Viri"},
+ {"bvj", NULL, NULL, NULL, "Baan"},
+ {"bvk", NULL, NULL, NULL, "Bukat"},
+ {"bvl", NULL, NULL, NULL, "Bolivian Sign Language"},
+ {"bvm", NULL, NULL, NULL, "Bamunka"},
+ {"bvn", NULL, NULL, NULL, "Buna"},
+ {"bvo", NULL, NULL, NULL, "Bolgo"},
+ {"bvp", NULL, NULL, NULL, "Bumang"},
+ {"bvq", NULL, NULL, NULL, "Birri"},
+ {"bvr", NULL, NULL, NULL, "Burarra"},
+ {"bvt", NULL, NULL, NULL, "Bati (Indonesia)"},
+ {"bvu", NULL, NULL, NULL, "Bukit Malay"},
+ {"bvv", NULL, NULL, NULL, "Baniva"},
+ {"bvw", NULL, NULL, NULL, "Boga"},
+ {"bvx", NULL, NULL, NULL, "Dibole"},
+ {"bvy", NULL, NULL, NULL, "Baybayanon"},
+ {"bvz", NULL, NULL, NULL, "Bauzi"},
+ {"bwa", NULL, NULL, NULL, "Bwatoo"},
+ {"bwb", NULL, NULL, NULL, "Namosi-Naitasiri-Serua"},
+ {"bwc", NULL, NULL, NULL, "Bwile"},
+ {"bwd", NULL, NULL, NULL, "Bwaidoka"},
+ {"bwe", NULL, NULL, NULL, "Bwe Karen"},
+ {"bwf", NULL, NULL, NULL, "Boselewa"},
+ {"bwg", NULL, NULL, NULL, "Barwe"},
+ {"bwh", NULL, NULL, NULL, "Bishuo"},
+ {"bwi", NULL, NULL, NULL, "Baniwa"},
+ {"bwj", NULL, NULL, NULL, "Láá Láá Bwamu"},
+ {"bwk", NULL, NULL, NULL, "Bauwaki"},
+ {"bwl", NULL, NULL, NULL, "Bwela"},
+ {"bwm", NULL, NULL, NULL, "Biwat"},
+ {"bwn", NULL, NULL, NULL, "Wunai Bunu"},
+ {"bwo", NULL, NULL, NULL, "Boro (Ethiopia)"},
+ {"bwp", NULL, NULL, NULL, "Mandobo Bawah"},
+ {"bwq", NULL, NULL, NULL, "Southern Bobo Madaré"},
+ {"bwr", NULL, NULL, NULL, "Bura-Pabir"},
+ {"bws", NULL, NULL, NULL, "Bomboma"},
+ {"bwt", NULL, NULL, NULL, "Bafaw-Balong"},
+ {"bwu", NULL, NULL, NULL, "Buli (Ghana)"},
+ {"bww", NULL, NULL, NULL, "Bwa"},
+ {"bwx", NULL, NULL, NULL, "Bu-Nao Bunu"},
+ {"bwy", NULL, NULL, NULL, "Cwi Bwamu"},
+ {"bwz", NULL, NULL, NULL, "Bwisi"},
+ {"bxa", NULL, NULL, NULL, "Tairaha"},
+ {"bxb", NULL, NULL, NULL, "Belanda Bor"},
+ {"bxc", NULL, NULL, NULL, "Molengue"},
+ {"bxd", NULL, NULL, NULL, "Pela"},
+ {"bxe", NULL, NULL, NULL, "Birale"},
+ {"bxf", NULL, NULL, NULL, "Bilur"},
+ {"bxg", NULL, NULL, NULL, "Bangala"},
+ {"bxh", NULL, NULL, NULL, "Buhutu"},
+ {"bxi", NULL, NULL, NULL, "Pirlatapa"},
+ {"bxj", NULL, NULL, NULL, "Bayungu"},
+ {"bxk", NULL, NULL, NULL, "Bukusu"},
+ {"bxl", NULL, NULL, NULL, "Jalkunan"},
+ {"bxm", NULL, NULL, NULL, "Mongolia Buriat"},
+ {"bxn", NULL, NULL, NULL, "Burduna"},
+ {"bxo", NULL, NULL, NULL, "Barikanchi"},
+ {"bxp", NULL, NULL, NULL, "Bebil"},
+ {"bxq", NULL, NULL, NULL, "Beele"},
+ {"bxr", NULL, NULL, NULL, "Russia Buriat"},
+ {"bxs", NULL, NULL, NULL, "Busam"},
+ {"bxu", NULL, NULL, NULL, "China Buriat"},
+ {"bxv", NULL, NULL, NULL, "Berakou"},
+ {"bxw", NULL, NULL, NULL, "Bankagooma"},
+ {"bxz", NULL, NULL, NULL, "Binahari"},
+ {"bya", NULL, NULL, NULL, "Batak"},
+ {"byb", NULL, NULL, NULL, "Bikya"},
+ {"byc", NULL, NULL, NULL, "Ubaghara"},
+ {"byd", NULL, NULL, NULL, "Benyadu'"},
+ {"bye", NULL, NULL, NULL, "Pouye"},
+ {"byf", NULL, NULL, NULL, "Bete"},
+ {"byg", NULL, NULL, NULL, "Baygo"},
+ {"byh", NULL, NULL, NULL, "Bhujel"},
+ {"byi", NULL, NULL, NULL, "Buyu"},
+ {"byj", NULL, NULL, NULL, "Bina (Nigeria)"},
+ {"byk", NULL, NULL, NULL, "Biao"},
+ {"byl", NULL, NULL, NULL, "Bayono"},
+ {"bym", NULL, NULL, NULL, "Bidjara"},
+ {"byn", "byn", "byn", NULL, "Bilin"},
+ {"byo", NULL, NULL, NULL, "Biyo"},
+ {"byp", NULL, NULL, NULL, "Bumaji"},
+ {"byq", NULL, NULL, NULL, "Basay"},
+ {"byr", NULL, NULL, NULL, "Baruya"},
+ {"bys", NULL, NULL, NULL, "Burak"},
+ {"byt", NULL, NULL, NULL, "Berti"},
+ {"byv", NULL, NULL, NULL, "Medumba"},
+ {"byw", NULL, NULL, NULL, "Belhariya"},
+ {"byx", NULL, NULL, NULL, "Qaqet"},
+ {"byz", NULL, NULL, NULL, "Banaro"},
+ {"bza", NULL, NULL, NULL, "Bandi"},
+ {"bzb", NULL, NULL, NULL, "Andio"},
+ {"bzc", NULL, NULL, NULL, "Southern Betsimisaraka Malagasy"},
+ {"bzd", NULL, NULL, NULL, "Bribri"},
+ {"bze", NULL, NULL, NULL, "Jenaama Bozo"},
+ {"bzf", NULL, NULL, NULL, "Boikin"},
+ {"bzg", NULL, NULL, NULL, "Babuza"},
+ {"bzh", NULL, NULL, NULL, "Mapos Buang"},
+ {"bzi", NULL, NULL, NULL, "Bisu"},
+ {"bzj", NULL, NULL, NULL, "Belize Kriol English"},
+ {"bzk", NULL, NULL, NULL, "Nicaragua Creole English"},
+ {"bzl", NULL, NULL, NULL, "Boano (Sulawesi)"},
+ {"bzm", NULL, NULL, NULL, "Bolondo"},
+ {"bzn", NULL, NULL, NULL, "Boano (Maluku)"},
+ {"bzo", NULL, NULL, NULL, "Bozaba"},
+ {"bzp", NULL, NULL, NULL, "Kemberano"},
+ {"bzq", NULL, NULL, NULL, "Buli (Indonesia)"},
+ {"bzr", NULL, NULL, NULL, "Biri"},
+ {"bzs", NULL, NULL, NULL, "Brazilian Sign Language"},
+ {"bzt", NULL, NULL, NULL, "Brithenig"},
+ {"bzu", NULL, NULL, NULL, "Burmeso"},
+ {"bzv", NULL, NULL, NULL, "Naami"},
+ {"bzw", NULL, NULL, NULL, "Basa (Nigeria)"},
+ {"bzx", NULL, NULL, NULL, "Kɛlɛngaxo Bozo"},
+ {"bzy", NULL, NULL, NULL, "Obanliku"},
+ {"bzz", NULL, NULL, NULL, "Evant"},
+ {"caa", NULL, NULL, NULL, "Chortí"},
+ {"cab", NULL, NULL, NULL, "Garifuna"},
+ {"cac", NULL, NULL, NULL, "Chuj"},
+ {"cad", "cad", "cad", NULL, "Caddo"},
+ {"cae", NULL, NULL, NULL, "Lehar"},
+ {"caf", NULL, NULL, NULL, "Southern Carrier"},
+ {"cag", NULL, NULL, NULL, "Nivaclé"},
+ {"cah", NULL, NULL, NULL, "Cahuarano"},
+ {"caj", NULL, NULL, NULL, "Chané"},
+ {"cak", NULL, NULL, NULL, "Kaqchikel"},
+ {"cal", NULL, NULL, NULL, "Carolinian"},
+ {"cam", NULL, NULL, NULL, "Cemuhî"},
+ {"can", NULL, NULL, NULL, "Chambri"},
+ {"cao", NULL, NULL, NULL, "Chácobo"},
+ {"cap", NULL, NULL, NULL, "Chipaya"},
+ {"caq", NULL, NULL, NULL, "Car Nicobarese"},
+ {"car", "car", "car", NULL, "Galibi Carib"},
+ {"cas", NULL, NULL, NULL, "Tsimané"},
+ {"cat", "cat", "cat", "ca", "Catalan"},
+ {"cav", NULL, NULL, NULL, "Cavineña"},
+ {"caw", NULL, NULL, NULL, "Callawalla"},
+ {"cax", NULL, NULL, NULL, "Chiquitano"},
+ {"cay", NULL, NULL, NULL, "Cayuga"},
+ {"caz", NULL, NULL, NULL, "Canichana"},
+ {"cbb", NULL, NULL, NULL, "Cabiyarí"},
+ {"cbc", NULL, NULL, NULL, "Carapana"},
+ {"cbd", NULL, NULL, NULL, "Carijona"},
+ {"cbg", NULL, NULL, NULL, "Chimila"},
+ {"cbi", NULL, NULL, NULL, "Chachi"},
+ {"cbj", NULL, NULL, NULL, "Ede Cabe"},
+ {"cbk", NULL, NULL, NULL, "Chavacano"},
+ {"cbl", NULL, NULL, NULL, "Bualkhaw Chin"},
+ {"cbn", NULL, NULL, NULL, "Nyahkur"},
+ {"cbo", NULL, NULL, NULL, "Izora"},
+ {"cbq", NULL, NULL, NULL, "Tsucuba"},
+ {"cbr", NULL, NULL, NULL, "Cashibo-Cacataibo"},
+ {"cbs", NULL, NULL, NULL, "Cashinahua"},
+ {"cbt", NULL, NULL, NULL, "Chayahuita"},
+ {"cbu", NULL, NULL, NULL, "Candoshi-Shapra"},
+ {"cbv", NULL, NULL, NULL, "Cacua"},
+ {"cbw", NULL, NULL, NULL, "Kinabalian"},
+ {"cby", NULL, NULL, NULL, "Carabayo"},
+ {"ccc", NULL, NULL, NULL, "Chamicuro"},
+ {"ccd", NULL, NULL, NULL, "Cafundo Creole"},
+ {"cce", NULL, NULL, NULL, "Chopi"},
+ {"ccg", NULL, NULL, NULL, "Samba Daka"},
+ {"cch", NULL, NULL, NULL, "Atsam"},
+ {"ccj", NULL, NULL, NULL, "Kasanga"},
+ {"ccl", NULL, NULL, NULL, "Cutchi-Swahili"},
+ {"ccm", NULL, NULL, NULL, "Malaccan Creole Malay"},
+ {"cco", NULL, NULL, NULL, "Comaltepec Chinantec"},
+ {"ccp", NULL, NULL, NULL, "Chakma"},
+ {"ccr", NULL, NULL, NULL, "Cacaopera"},
+ {"cda", NULL, NULL, NULL, "Choni"},
+ {"cde", NULL, NULL, NULL, "Chenchu"},
+ {"cdf", NULL, NULL, NULL, "Chiru"},
+ {"cdh", NULL, NULL, NULL, "Chambeali"},
+ {"cdi", NULL, NULL, NULL, "Chodri"},
+ {"cdj", NULL, NULL, NULL, "Churahi"},
+ {"cdm", NULL, NULL, NULL, "Chepang"},
+ {"cdn", NULL, NULL, NULL, "Chaudangsi"},
+ {"cdo", NULL, NULL, NULL, "Min Dong Chinese"},
+ {"cdr", NULL, NULL, NULL, "Cinda-Regi-Tiyal"},
+ {"cds", NULL, NULL, NULL, "Chadian Sign Language"},
+ {"cdy", NULL, NULL, NULL, "Chadong"},
+ {"cdz", NULL, NULL, NULL, "Koda"},
+ {"cea", NULL, NULL, NULL, "Lower Chehalis"},
+ {"ceb", "ceb", "ceb", NULL, "Cebuano"},
+ {"ceg", NULL, NULL, NULL, "Chamacoco"},
+ {"cek", NULL, NULL, NULL, "Eastern Khumi Chin"},
+ {"cen", NULL, NULL, NULL, "Cen"},
+ {"ces", "cze", "ces", "cs", "Czech"},
+ {"cet", NULL, NULL, NULL, "Centúúm"},
+ {"cey", NULL, NULL, NULL, "Ekai Chin"},
+ {"cfa", NULL, NULL, NULL, "Dijim-Bwilim"},
+ {"cfd", NULL, NULL, NULL, "Cara"},
+ {"cfg", NULL, NULL, NULL, "Como Karim"},
+ {"cfm", NULL, NULL, NULL, "Falam Chin"},
+ {"cga", NULL, NULL, NULL, "Changriwa"},
+ {"cgc", NULL, NULL, NULL, "Kagayanen"},
+ {"cgg", NULL, NULL, NULL, "Chiga"},
+ {"cgk", NULL, NULL, NULL, "Chocangacakha"},
+ {"cha", "cha", "cha", "ch", "Chamorro"},
+ {"chb", "chb", "chb", NULL, "Chibcha"},
+ {"chc", NULL, NULL, NULL, "Catawba"},
+ {"chd", NULL, NULL, NULL, "Highland Oaxaca Chontal"},
+ {"che", "che", "che", "ce", "Chechen"},
+ {"chf", NULL, NULL, NULL, "Tabasco Chontal"},
+ {"chg", "chg", "chg", NULL, "Chagatai"},
+ {"chh", NULL, NULL, NULL, "Chinook"},
+ {"chj", NULL, NULL, NULL, "Ojitlán Chinantec"},
+ {"chk", "chk", "chk", NULL, "Chuukese"},
+ {"chl", NULL, NULL, NULL, "Cahuilla"},
+ {"chm", "chm", "chm", NULL, "Mari (Russia)"},
+ {"chn", "chn", "chn", NULL, "Chinook jargon"},
+ {"cho", "cho", "cho", NULL, "Choctaw"},
+ {"chp", "chp", "chp", NULL, "Chipewyan"},
+ {"chq", NULL, NULL, NULL, "Quiotepec Chinantec"},
+ {"chr", "chr", "chr", NULL, "Cherokee"},
+ {"cht", NULL, NULL, NULL, "Cholón"},
+ {"chu", "chu", "chu", "cu", "Church Slavic"},
+ {"chv", "chv", "chv", "cv", "Chuvash"},
+ {"chw", NULL, NULL, NULL, "Chuwabu"},
+ {"chx", NULL, NULL, NULL, "Chantyal"},
+ {"chy", "chy", "chy", NULL, "Cheyenne"},
+ {"chz", NULL, NULL, NULL, "Ozumacín Chinantec"},
+ {"cia", NULL, NULL, NULL, "Cia-Cia"},
+ {"cib", NULL, NULL, NULL, "Ci Gbe"},
+ {"cic", NULL, NULL, NULL, "Chickasaw"},
+ {"cid", NULL, NULL, NULL, "Chimariko"},
+ {"cie", NULL, NULL, NULL, "Cineni"},
+ {"cih", NULL, NULL, NULL, "Chinali"},
+ {"cik", NULL, NULL, NULL, "Chitkuli Kinnauri"},
+ {"cim", NULL, NULL, NULL, "Cimbrian"},
+ {"cin", NULL, NULL, NULL, "Cinta Larga"},
+ {"cip", NULL, NULL, NULL, "Chiapanec"},
+ {"cir", NULL, NULL, NULL, "Tiri"},
+ {"ciw", NULL, NULL, NULL, "Chippewa"},
+ {"ciy", NULL, NULL, NULL, "Chaima"},
+ {"cja", NULL, NULL, NULL, "Western Cham"},
+ {"cje", NULL, NULL, NULL, "Chru"},
+ {"cjh", NULL, NULL, NULL, "Upper Chehalis"},
+ {"cji", NULL, NULL, NULL, "Chamalal"},
+ {"cjk", NULL, NULL, NULL, "Chokwe"},
+ {"cjm", NULL, NULL, NULL, "Eastern Cham"},
+ {"cjn", NULL, NULL, NULL, "Chenapian"},
+ {"cjo", NULL, NULL, NULL, "Ashéninka Pajonal"},
+ {"cjp", NULL, NULL, NULL, "Cabécar"},
+ {"cjs", NULL, NULL, NULL, "Shor"},
+ {"cjv", NULL, NULL, NULL, "Chuave"},
+ {"cjy", NULL, NULL, NULL, "Jinyu Chinese"},
+ {"ckb", NULL, NULL, NULL, "Central Kurdish"},
+ {"ckh", NULL, NULL, NULL, "Chak"},
+ {"ckl", NULL, NULL, NULL, "Cibak"},
+ {"ckm", NULL, NULL, NULL, "Chakavian"},
+ {"ckn", NULL, NULL, NULL, "Kaang Chin"},
+ {"cko", NULL, NULL, NULL, "Anufo"},
+ {"ckq", NULL, NULL, NULL, "Kajakse"},
+ {"ckr", NULL, NULL, NULL, "Kairak"},
+ {"cks", NULL, NULL, NULL, "Tayo"},
+ {"ckt", NULL, NULL, NULL, "Chukot"},
+ {"cku", NULL, NULL, NULL, "Koasati"},
+ {"ckv", NULL, NULL, NULL, "Kavalan"},
+ {"ckx", NULL, NULL, NULL, "Caka"},
+ {"cky", NULL, NULL, NULL, "Cakfem-Mushere"},
+ {"ckz", NULL, NULL, NULL, "Cakchiquel-Quiché Mixed Language"},
+ {"cla", NULL, NULL, NULL, "Ron"},
+ {"clc", NULL, NULL, NULL, "Chilcotin"},
+ {"cld", NULL, NULL, NULL, "Chaldean Neo-Aramaic"},
+ {"cle", NULL, NULL, NULL, "Lealao Chinantec"},
+ {"clh", NULL, NULL, NULL, "Chilisso"},
+ {"cli", NULL, NULL, NULL, "Chakali"},
+ {"clj", NULL, NULL, NULL, "Laitu Chin"},
+ {"clk", NULL, NULL, NULL, "Idu-Mishmi"},
+ {"cll", NULL, NULL, NULL, "Chala"},
+ {"clm", NULL, NULL, NULL, "Clallam"},
+ {"clo", NULL, NULL, NULL, "Lowland Oaxaca Chontal"},
+ {"clt", NULL, NULL, NULL, "Lautu Chin"},
+ {"clu", NULL, NULL, NULL, "Caluyanun"},
+ {"clw", NULL, NULL, NULL, "Chulym"},
+ {"cly", NULL, NULL, NULL, "Eastern Highland Chatino"},
+ {"cma", NULL, NULL, NULL, "Maa"},
+ {"cme", NULL, NULL, NULL, "Cerma"},
+ {"cmg", NULL, NULL, NULL, "Classical Mongolian"},
+ {"cmi", NULL, NULL, NULL, "Emberá-Chamí"},
+ {"cml", NULL, NULL, NULL, "Campalagian"},
+ {"cmm", NULL, NULL, NULL, "Michigamea"},
+ {"cmn", NULL, NULL, NULL, "Mandarin Chinese"},
+ {"cmo", NULL, NULL, NULL, "Central Mnong"},
+ {"cmr", NULL, NULL, NULL, "Mro-Khimi Chin"},
+ {"cms", NULL, NULL, NULL, "Messapic"},
+ {"cmt", NULL, NULL, NULL, "Camtho"},
+ {"cna", NULL, NULL, NULL, "Changthang"},
+ {"cnb", NULL, NULL, NULL, "Chinbon Chin"},
+ {"cnc", NULL, NULL, NULL, "Côông"},
+ {"cng", NULL, NULL, NULL, "Northern Qiang"},
+ {"cnh", NULL, NULL, NULL, "Hakha Chin"},
+ {"cni", NULL, NULL, NULL, "Asháninka"},
+ {"cnk", NULL, NULL, NULL, "Khumi Chin"},
+ {"cnl", NULL, NULL, NULL, "Lalana Chinantec"},
+ {"cno", NULL, NULL, NULL, "Con"},
+ {"cnp", NULL, NULL, NULL, "Northern Ping Chinese"},
+ {"cnr", "cnr", "cnr", NULL, "Montenegrin"},
+ {"cns", NULL, NULL, NULL, "Central Asmat"},
+ {"cnt", NULL, NULL, NULL, "Tepetotutla Chinantec"},
+ {"cnu", NULL, NULL, NULL, "Chenoua"},
+ {"cnw", NULL, NULL, NULL, "Ngawn Chin"},
+ {"cnx", NULL, NULL, NULL, "Middle Cornish"},
+ {"coa", NULL, NULL, NULL, "Cocos Islands Malay"},
+ {"cob", NULL, NULL, NULL, "Chicomuceltec"},
+ {"coc", NULL, NULL, NULL, "Cocopa"},
+ {"cod", NULL, NULL, NULL, "Cocama-Cocamilla"},
+ {"coe", NULL, NULL, NULL, "Koreguaje"},
+ {"cof", NULL, NULL, NULL, "Colorado"},
+ {"cog", NULL, NULL, NULL, "Chong"},
+ {"coh", NULL, NULL, NULL, "Chonyi-Dzihana-Kauma"},
+ {"coj", NULL, NULL, NULL, "Cochimi"},
+ {"cok", NULL, NULL, NULL, "Santa Teresa Cora"},
+ {"col", NULL, NULL, NULL, "Columbia-Wenatchi"},
+ {"com", NULL, NULL, NULL, "Comanche"},
+ {"con", NULL, NULL, NULL, "Cofán"},
+ {"coo", NULL, NULL, NULL, "Comox"},
+ {"cop", "cop", "cop", NULL, "Coptic"},
+ {"coq", NULL, NULL, NULL, "Coquille"},
+ {"cor", "cor", "cor", "kw", "Cornish"},
+ {"cos", "cos", "cos", "co", "Corsican"},
+ {"cot", NULL, NULL, NULL, "Caquinte"},
+ {"cou", NULL, NULL, NULL, "Wamey"},
+ {"cov", NULL, NULL, NULL, "Cao Miao"},
+ {"cow", NULL, NULL, NULL, "Cowlitz"},
+ {"cox", NULL, NULL, NULL, "Nanti"},
+ {"coz", NULL, NULL, NULL, "Chochotec"},
+ {"cpa", NULL, NULL, NULL, "Palantla Chinantec"},
+ {"cpb", NULL, NULL, NULL, "Ucayali-Yurúa Ashéninka"},
+ {"cpc", NULL, NULL, NULL, "Ajyíninka Apurucayali"},
+ {"cpg", NULL, NULL, NULL, "Cappadocian Greek"},
+ {"cpi", NULL, NULL, NULL, "Chinese Pidgin English"},
+ {"cpn", NULL, NULL, NULL, "Cherepon"},
+ {"cpo", NULL, NULL, NULL, "Kpeego"},
+ {"cps", NULL, NULL, NULL, "Capiznon"},
+ {"cpu", NULL, NULL, NULL, "Pichis Ashéninka"},
+ {"cpx", NULL, NULL, NULL, "Pu-Xian Chinese"},
+ {"cpy", NULL, NULL, NULL, "South Ucayali Ashéninka"},
+ {"cqd", NULL, NULL, NULL, "Chuanqiandian Cluster Miao"},
+ {"cra", NULL, NULL, NULL, "Chara"},
+ {"crb", NULL, NULL, NULL, "Island Carib"},
+ {"crc", NULL, NULL, NULL, "Lonwolwol"},
+ {"crd", NULL, NULL, NULL, "Coeur d'Alene"},
+ {"cre", "cre", "cre", "cr", "Cree"},
+ {"crf", NULL, NULL, NULL, "Caramanta"},
+ {"crg", NULL, NULL, NULL, "Michif"},
+ {"crh", "crh", "crh", NULL, "Crimean Tatar"},
+ {"cri", NULL, NULL, NULL, "Sãotomense"},
+ {"crj", NULL, NULL, NULL, "Southern East Cree"},
+ {"crk", NULL, NULL, NULL, "Plains Cree"},
+ {"crl", NULL, NULL, NULL, "Northern East Cree"},
+ {"crm", NULL, NULL, NULL, "Moose Cree"},
+ {"crn", NULL, NULL, NULL, "El Nayar Cora"},
+ {"cro", NULL, NULL, NULL, "Crow"},
+ {"crq", NULL, NULL, NULL, "Iyo'wujwa Chorote"},
+ {"crr", NULL, NULL, NULL, "Carolina Algonquian"},
+ {"crs", NULL, NULL, NULL, "Seselwa Creole French"},
+ {"crt", NULL, NULL, NULL, "Iyojwa'ja Chorote"},
+ {"crv", NULL, NULL, NULL, "Chaura"},
+ {"crw", NULL, NULL, NULL, "Chrau"},
+ {"crx", NULL, NULL, NULL, "Carrier"},
+ {"cry", NULL, NULL, NULL, "Cori"},
+ {"crz", NULL, NULL, NULL, "Cruzeño"},
+ {"csa", NULL, NULL, NULL, "Chiltepec Chinantec"},
+ {"csb", "csb", "csb", NULL, "Kashubian"},
+ {"csc", NULL, NULL, NULL, "Catalan Sign Language"},
+ {"csd", NULL, NULL, NULL, "Chiangmai Sign Language"},
+ {"cse", NULL, NULL, NULL, "Czech Sign Language"},
+ {"csf", NULL, NULL, NULL, "Cuba Sign Language"},
+ {"csg", NULL, NULL, NULL, "Chilean Sign Language"},
+ {"csh", NULL, NULL, NULL, "Asho Chin"},
+ {"csi", NULL, NULL, NULL, "Coast Miwok"},
+ {"csj", NULL, NULL, NULL, "Songlai Chin"},
+ {"csk", NULL, NULL, NULL, "Jola-Kasa"},
+ {"csl", NULL, NULL, NULL, "Chinese Sign Language"},
+ {"csm", NULL, NULL, NULL, "Central Sierra Miwok"},
+ {"csn", NULL, NULL, NULL, "Colombian Sign Language"},
+ {"cso", NULL, NULL, NULL, "Sochiapam Chinantec"},
+ {"csp", NULL, NULL, NULL, "Southern Ping Chinese"},
+ {"csq", NULL, NULL, NULL, "Croatia Sign Language"},
+ {"csr", NULL, NULL, NULL, "Costa Rican Sign Language"},
+ {"css", NULL, NULL, NULL, "Southern Ohlone"},
+ {"cst", NULL, NULL, NULL, "Northern Ohlone"},
+ {"csv", NULL, NULL, NULL, "Sumtu Chin"},
+ {"csw", NULL, NULL, NULL, "Swampy Cree"},
+ {"csx", NULL, NULL, NULL, "Cambodian Sign Language"},
+ {"csy", NULL, NULL, NULL, "Siyin Chin"},
+ {"csz", NULL, NULL, NULL, "Coos"},
+ {"cta", NULL, NULL, NULL, "Tataltepec Chatino"},
+ {"ctc", NULL, NULL, NULL, "Chetco"},
+ {"ctd", NULL, NULL, NULL, "Tedim Chin"},
+ {"cte", NULL, NULL, NULL, "Tepinapa Chinantec"},
+ {"ctg", NULL, NULL, NULL, "Chittagonian"},
+ {"cth", NULL, NULL, NULL, "Thaiphum Chin"},
+ {"ctl", NULL, NULL, NULL, "Tlacoatzintepec Chinantec"},
+ {"ctm", NULL, NULL, NULL, "Chitimacha"},
+ {"ctn", NULL, NULL, NULL, "Chhintange"},
+ {"cto", NULL, NULL, NULL, "Emberá-Catío"},
+ {"ctp", NULL, NULL, NULL, "Western Highland Chatino"},
+ {"cts", NULL, NULL, NULL, "Northern Catanduanes Bikol"},
+ {"ctt", NULL, NULL, NULL, "Wayanad Chetti"},
+ {"ctu", NULL, NULL, NULL, "Chol"},
+ {"cty", NULL, NULL, NULL, "Moundadan Chetty"},
+ {"ctz", NULL, NULL, NULL, "Zacatepec Chatino"},
+ {"cua", NULL, NULL, NULL, "Cua"},
+ {"cub", NULL, NULL, NULL, "Cubeo"},
+ {"cuc", NULL, NULL, NULL, "Usila Chinantec"},
+ {"cug", NULL, NULL, NULL, "Chungmboko"},
+ {"cuh", NULL, NULL, NULL, "Chuka"},
+ {"cui", NULL, NULL, NULL, "Cuiba"},
+ {"cuj", NULL, NULL, NULL, "Mashco Piro"},
+ {"cuk", NULL, NULL, NULL, "San Blas Kuna"},
+ {"cul", NULL, NULL, NULL, "Culina"},
+ {"cuo", NULL, NULL, NULL, "Cumanagoto"},
+ {"cup", NULL, NULL, NULL, "Cupeño"},
+ {"cuq", NULL, NULL, NULL, "Cun"},
+ {"cur", NULL, NULL, NULL, "Chhulung"},
+ {"cut", NULL, NULL, NULL, "Teutila Cuicatec"},
+ {"cuu", NULL, NULL, NULL, "Tai Ya"},
+ {"cuv", NULL, NULL, NULL, "Cuvok"},
+ {"cuw", NULL, NULL, NULL, "Chukwa"},
+ {"cux", NULL, NULL, NULL, "Tepeuxila Cuicatec"},
+ {"cuy", NULL, NULL, NULL, "Cuitlatec"},
+ {"cvg", NULL, NULL, NULL, "Chug"},
+ {"cvn", NULL, NULL, NULL, "Valle Nacional Chinantec"},
+ {"cwa", NULL, NULL, NULL, "Kabwa"},
+ {"cwb", NULL, NULL, NULL, "Maindo"},
+ {"cwd", NULL, NULL, NULL, "Woods Cree"},
+ {"cwe", NULL, NULL, NULL, "Kwere"},
+ {"cwg", NULL, NULL, NULL, "Chewong"},
+ {"cwt", NULL, NULL, NULL, "Kuwaataay"},
+ {"cya", NULL, NULL, NULL, "Nopala Chatino"},
+ {"cyb", NULL, NULL, NULL, "Cayubaba"},
+ {"cym", "wel", "cym", "cy", "Welsh"},
+ {"cyo", NULL, NULL, NULL, "Cuyonon"},
+ {"czh", NULL, NULL, NULL, "Huizhou Chinese"},
+ {"czk", NULL, NULL, NULL, "Knaanic"},
+ {"czn", NULL, NULL, NULL, "Zenzontepec Chatino"},
+ {"czo", NULL, NULL, NULL, "Min Zhong Chinese"},
+ {"czt", NULL, NULL, NULL, "Zotung Chin"},
+ {"daa", NULL, NULL, NULL, "Dangaléat"},
+ {"dac", NULL, NULL, NULL, "Dambi"},
+ {"dad", NULL, NULL, NULL, "Marik"},
+ {"dae", NULL, NULL, NULL, "Duupa"},
+ {"dag", NULL, NULL, NULL, "Dagbani"},
+ {"dah", NULL, NULL, NULL, "Gwahatike"},
+ {"dai", NULL, NULL, NULL, "Day"},
+ {"daj", NULL, NULL, NULL, "Dar Fur Daju"},
+ {"dak", "dak", "dak", NULL, "Dakota"},
+ {"dal", NULL, NULL, NULL, "Dahalo"},
+ {"dam", NULL, NULL, NULL, "Damakawa"},
+ {"dan", "dan", "dan", "da", "Danish"},
+ {"dao", NULL, NULL, NULL, "Daai Chin"},
+ {"daq", NULL, NULL, NULL, "Dandami Maria"},
+ {"dar", "dar", "dar", NULL, "Dargwa"},
+ {"das", NULL, NULL, NULL, "Daho-Doo"},
+ {"dau", NULL, NULL, NULL, "Dar Sila Daju"},
+ {"dav", NULL, NULL, NULL, "Taita"},
+ {"daw", NULL, NULL, NULL, "Davawenyo"},
+ {"dax", NULL, NULL, NULL, "Dayi"},
+ {"daz", NULL, NULL, NULL, "Dao"},
+ {"dba", NULL, NULL, NULL, "Bangime"},
+ {"dbb", NULL, NULL, NULL, "Deno"},
+ {"dbd", NULL, NULL, NULL, "Dadiya"},
+ {"dbe", NULL, NULL, NULL, "Dabe"},
+ {"dbf", NULL, NULL, NULL, "Edopi"},
+ {"dbg", NULL, NULL, NULL, "Dogul Dom Dogon"},
+ {"dbi", NULL, NULL, NULL, "Doka"},
+ {"dbj", NULL, NULL, NULL, "Ida'an"},
+ {"dbl", NULL, NULL, NULL, "Dyirbal"},
+ {"dbm", NULL, NULL, NULL, "Duguri"},
+ {"dbn", NULL, NULL, NULL, "Duriankere"},
+ {"dbo", NULL, NULL, NULL, "Dulbu"},
+ {"dbp", NULL, NULL, NULL, "Duwai"},
+ {"dbq", NULL, NULL, NULL, "Daba"},
+ {"dbr", NULL, NULL, NULL, "Dabarre"},
+ {"dbt", NULL, NULL, NULL, "Ben Tey Dogon"},
+ {"dbu", NULL, NULL, NULL, "Bondum Dom Dogon"},
+ {"dbv", NULL, NULL, NULL, "Dungu"},
+ {"dbw", NULL, NULL, NULL, "Bankan Tey Dogon"},
+ {"dby", NULL, NULL, NULL, "Dibiyaso"},
+ {"dcc", NULL, NULL, NULL, "Deccan"},
+ {"dcr", NULL, NULL, NULL, "Negerhollands"},
+ {"dda", NULL, NULL, NULL, "Dadi Dadi"},
+ {"ddd", NULL, NULL, NULL, "Dongotono"},
+ {"dde", NULL, NULL, NULL, "Doondo"},
+ {"ddg", NULL, NULL, NULL, "Fataluku"},
+ {"ddi", NULL, NULL, NULL, "West Goodenough"},
+ {"ddj", NULL, NULL, NULL, "Jaru"},
+ {"ddn", NULL, NULL, NULL, "Dendi (Benin)"},
+ {"ddo", NULL, NULL, NULL, "Dido"},
+ {"ddr", NULL, NULL, NULL, "Dhudhuroa"},
+ {"dds", NULL, NULL, NULL, "Donno So Dogon"},
+ {"ddw", NULL, NULL, NULL, "Dawera-Daweloor"},
+ {"dec", NULL, NULL, NULL, "Dagik"},
+ {"ded", NULL, NULL, NULL, "Dedua"},
+ {"dee", NULL, NULL, NULL, "Dewoin"},
+ {"def", NULL, NULL, NULL, "Dezfuli"},
+ {"deg", NULL, NULL, NULL, "Degema"},
+ {"deh", NULL, NULL, NULL, "Dehwari"},
+ {"dei", NULL, NULL, NULL, "Demisa"},
+ {"dek", NULL, NULL, NULL, "Dek"},
+ {"del", "del", "del", NULL, "Delaware"},
+ {"dem", NULL, NULL, NULL, "Dem"},
+ {"den", "den", "den", NULL, "Slave (Athapascan)"},
+ {"dep", NULL, NULL, NULL, "Pidgin Delaware"},
+ {"deq", NULL, NULL, NULL, "Dendi (Central African Republic)"},
+ {"der", NULL, NULL, NULL, "Deori"},
+ {"des", NULL, NULL, NULL, "Desano"},
+ {"deu", "ger", "deu", "de", "German"},
+ {"dev", NULL, NULL, NULL, "Domung"},
+ {"dez", NULL, NULL, NULL, "Dengese"},
+ {"dga", NULL, NULL, NULL, "Southern Dagaare"},
+ {"dgb", NULL, NULL, NULL, "Bunoge Dogon"},
+ {"dgc", NULL, NULL, NULL, "Casiguran Dumagat Agta"},
+ {"dgd", NULL, NULL, NULL, "Dagaari Dioula"},
+ {"dge", NULL, NULL, NULL, "Degenan"},
+ {"dgg", NULL, NULL, NULL, "Doga"},
+ {"dgh", NULL, NULL, NULL, "Dghwede"},
+ {"dgi", NULL, NULL, NULL, "Northern Dagara"},
+ {"dgk", NULL, NULL, NULL, "Dagba"},
+ {"dgl", NULL, NULL, NULL, "Andaandi"},
+ {"dgn", NULL, NULL, NULL, "Dagoman"},
+ {"dgo", NULL, NULL, NULL, "Dogri (individual language)"},
+ {"dgr", "dgr", "dgr", NULL, "Dogrib"},
+ {"dgs", NULL, NULL, NULL, "Dogoso"},
+ {"dgt", NULL, NULL, NULL, "Ndra'ngith"},
+ {"dgw", NULL, NULL, NULL, "Daungwurrung"},
+ {"dgx", NULL, NULL, NULL, "Doghoro"},
+ {"dgz", NULL, NULL, NULL, "Daga"},
+ {"dhd", NULL, NULL, NULL, "Dhundari"},
+ {"dhg", NULL, NULL, NULL, "Dhangu-Djangu"},
+ {"dhi", NULL, NULL, NULL, "Dhimal"},
+ {"dhl", NULL, NULL, NULL, "Dhalandji"},
+ {"dhm", NULL, NULL, NULL, "Zemba"},
+ {"dhn", NULL, NULL, NULL, "Dhanki"},
+ {"dho", NULL, NULL, NULL, "Dhodia"},
+ {"dhr", NULL, NULL, NULL, "Dhargari"},
+ {"dhs", NULL, NULL, NULL, "Dhaiso"},
+ {"dhu", NULL, NULL, NULL, "Dhurga"},
+ {"dhv", NULL, NULL, NULL, "Dehu"},
+ {"dhw", NULL, NULL, NULL, "Dhanwar (Nepal)"},
+ {"dhx", NULL, NULL, NULL, "Dhungaloo"},
+ {"dia", NULL, NULL, NULL, "Dia"},
+ {"dib", NULL, NULL, NULL, "South Central Dinka"},
+ {"dic", NULL, NULL, NULL, "Lakota Dida"},
+ {"did", NULL, NULL, NULL, "Didinga"},
+ {"dif", NULL, NULL, NULL, "Dieri"},
+ {"dig", NULL, NULL, NULL, "Digo"},
+ {"dih", NULL, NULL, NULL, "Kumiai"},
+ {"dii", NULL, NULL, NULL, "Dimbong"},
+ {"dij", NULL, NULL, NULL, "Dai"},
+ {"dik", NULL, NULL, NULL, "Southwestern Dinka"},
+ {"dil", NULL, NULL, NULL, "Dilling"},
+ {"dim", NULL, NULL, NULL, "Dime"},
+ {"din", "din", "din", NULL, "Dinka"},
+ {"dio", NULL, NULL, NULL, "Dibo"},
+ {"dip", NULL, NULL, NULL, "Northeastern Dinka"},
+ {"diq", NULL, NULL, NULL, "Dimli (individual language)"},
+ {"dir", NULL, NULL, NULL, "Dirim"},
+ {"dis", NULL, NULL, NULL, "Dimasa"},
+ {"diu", NULL, NULL, NULL, "Diriku"},
+ {"div", "div", "div", "dv", "Dhivehi"},
+ {"diw", NULL, NULL, NULL, "Northwestern Dinka"},
+ {"dix", NULL, NULL, NULL, "Dixon Reef"},
+ {"diy", NULL, NULL, NULL, "Diuwe"},
+ {"diz", NULL, NULL, NULL, "Ding"},
+ {"dja", NULL, NULL, NULL, "Djadjawurrung"},
+ {"djb", NULL, NULL, NULL, "Djinba"},
+ {"djc", NULL, NULL, NULL, "Dar Daju Daju"},
+ {"djd", NULL, NULL, NULL, "Djamindjung"},
+ {"dje", NULL, NULL, NULL, "Zarma"},
+ {"djf", NULL, NULL, NULL, "Djangun"},
+ {"dji", NULL, NULL, NULL, "Djinang"},
+ {"djj", NULL, NULL, NULL, "Djeebbana"},
+ {"djk", NULL, NULL, NULL, "Eastern Maroon Creole"},
+ {"djm", NULL, NULL, NULL, "Jamsay Dogon"},
+ {"djn", NULL, NULL, NULL, "Jawoyn"},
+ {"djo", NULL, NULL, NULL, "Jangkang"},
+ {"djr", NULL, NULL, NULL, "Djambarrpuyngu"},
+ {"dju", NULL, NULL, NULL, "Kapriman"},
+ {"djw", NULL, NULL, NULL, "Djawi"},
+ {"dka", NULL, NULL, NULL, "Dakpakha"},
+ {"dkg", NULL, NULL, NULL, "Kadung"},
+ {"dkk", NULL, NULL, NULL, "Dakka"},
+ {"dkr", NULL, NULL, NULL, "Kuijau"},
+ {"dks", NULL, NULL, NULL, "Southeastern Dinka"},
+ {"dkx", NULL, NULL, NULL, "Mazagway"},
+ {"dlg", NULL, NULL, NULL, "Dolgan"},
+ {"dlk", NULL, NULL, NULL, "Dahalik"},
+ {"dlm", NULL, NULL, NULL, "Dalmatian"},
+ {"dln", NULL, NULL, NULL, "Darlong"},
+ {"dma", NULL, NULL, NULL, "Duma"},
+ {"dmb", NULL, NULL, NULL, "Mombo Dogon"},
+ {"dmc", NULL, NULL, NULL, "Gavak"},
+ {"dmd", NULL, NULL, NULL, "Madhi Madhi"},
+ {"dme", NULL, NULL, NULL, "Dugwor"},
+ {"dmf", NULL, NULL, NULL, "Medefaidrin"},
+ {"dmg", NULL, NULL, NULL, "Upper Kinabatangan"},
+ {"dmk", NULL, NULL, NULL, "Domaaki"},
+ {"dml", NULL, NULL, NULL, "Dameli"},
+ {"dmm", NULL, NULL, NULL, "Dama"},
+ {"dmo", NULL, NULL, NULL, "Kemedzung"},
+ {"dmr", NULL, NULL, NULL, "East Damar"},
+ {"dms", NULL, NULL, NULL, "Dampelas"},
+ {"dmu", NULL, NULL, NULL, "Dubu"},
+ {"dmv", NULL, NULL, NULL, "Dumpas"},
+ {"dmw", NULL, NULL, NULL, "Mudburra"},
+ {"dmx", NULL, NULL, NULL, "Dema"},
+ {"dmy", NULL, NULL, NULL, "Demta"},
+ {"dna", NULL, NULL, NULL, "Upper Grand Valley Dani"},
+ {"dnd", NULL, NULL, NULL, "Daonda"},
+ {"dne", NULL, NULL, NULL, "Ndendeule"},
+ {"dng", NULL, NULL, NULL, "Dungan"},
+ {"dni", NULL, NULL, NULL, "Lower Grand Valley Dani"},
+ {"dnj", NULL, NULL, NULL, "Dan"},
+ {"dnk", NULL, NULL, NULL, "Dengka"},
+ {"dnn", NULL, NULL, NULL, "Dzùùngoo"},
+ {"dno", NULL, NULL, NULL, "Ndrulo"},
+ {"dnr", NULL, NULL, NULL, "Danaru"},
+ {"dnt", NULL, NULL, NULL, "Mid Grand Valley Dani"},
+ {"dnu", NULL, NULL, NULL, "Danau"},
+ {"dnv", NULL, NULL, NULL, "Danu"},
+ {"dnw", NULL, NULL, NULL, "Western Dani"},
+ {"dny", NULL, NULL, NULL, "Dení"},
+ {"doa", NULL, NULL, NULL, "Dom"},
+ {"dob", NULL, NULL, NULL, "Dobu"},
+ {"doc", NULL, NULL, NULL, "Northern Dong"},
+ {"doe", NULL, NULL, NULL, "Doe"},
+ {"dof", NULL, NULL, NULL, "Domu"},
+ {"doh", NULL, NULL, NULL, "Dong"},
+ {"doi", "doi", "doi", NULL, "Dogri (macrolanguage)"},
+ {"dok", NULL, NULL, NULL, "Dondo"},
+ {"dol", NULL, NULL, NULL, "Doso"},
+ {"don", NULL, NULL, NULL, "Toura (Papua New Guinea)"},
+ {"doo", NULL, NULL, NULL, "Dongo"},
+ {"dop", NULL, NULL, NULL, "Lukpa"},
+ {"doq", NULL, NULL, NULL, "Dominican Sign Language"},
+ {"dor", NULL, NULL, NULL, "Dori'o"},
+ {"dos", NULL, NULL, NULL, "Dogosé"},
+ {"dot", NULL, NULL, NULL, "Dass"},
+ {"dov", NULL, NULL, NULL, "Dombe"},
+ {"dow", NULL, NULL, NULL, "Doyayo"},
+ {"dox", NULL, NULL, NULL, "Bussa"},
+ {"doy", NULL, NULL, NULL, "Dompo"},
+ {"doz", NULL, NULL, NULL, "Dorze"},
+ {"dpp", NULL, NULL, NULL, "Papar"},
+ {"drb", NULL, NULL, NULL, "Dair"},
+ {"drc", NULL, NULL, NULL, "Minderico"},
+ {"drd", NULL, NULL, NULL, "Darmiya"},
+ {"dre", NULL, NULL, NULL, "Dolpo"},
+ {"drg", NULL, NULL, NULL, "Rungus"},
+ {"dri", NULL, NULL, NULL, "C'Lela"},
+ {"drl", NULL, NULL, NULL, "Paakantyi"},
+ {"drn", NULL, NULL, NULL, "West Damar"},
+ {"dro", NULL, NULL, NULL, "Daro-Matu Melanau"},
+ {"drq", NULL, NULL, NULL, "Dura"},
+ {"drs", NULL, NULL, NULL, "Gedeo"},
+ {"drt", NULL, NULL, NULL, "Drents"},
+ {"dru", NULL, NULL, NULL, "Rukai"},
+ {"dry", NULL, NULL, NULL, "Darai"},
+ {"dsb", "dsb", "dsb", NULL, "Lower Sorbian"},
+ {"dse", NULL, NULL, NULL, "Dutch Sign Language"},
+ {"dsh", NULL, NULL, NULL, "Daasanach"},
+ {"dsi", NULL, NULL, NULL, "Disa"},
+ {"dsl", NULL, NULL, NULL, "Danish Sign Language"},
+ {"dsn", NULL, NULL, NULL, "Dusner"},
+ {"dso", NULL, NULL, NULL, "Desiya"},
+ {"dsq", NULL, NULL, NULL, "Tadaksahak"},
+ {"dta", NULL, NULL, NULL, "Daur"},
+ {"dtb", NULL, NULL, NULL, "Labuk-Kinabatangan Kadazan"},
+ {"dtd", NULL, NULL, NULL, "Ditidaht"},
+ {"dth", NULL, NULL, NULL, "Adithinngithigh"},
+ {"dti", NULL, NULL, NULL, "Ana Tinga Dogon"},
+ {"dtk", NULL, NULL, NULL, "Tene Kan Dogon"},
+ {"dtm", NULL, NULL, NULL, "Tomo Kan Dogon"},
+ {"dtn", NULL, NULL, NULL, "Daatsʼíin"},
+ {"dto", NULL, NULL, NULL, "Tommo So Dogon"},
+ {"dtp", NULL, NULL, NULL, "Kadazan Dusun"},
+ {"dtr", NULL, NULL, NULL, "Lotud"},
+ {"dts", NULL, NULL, NULL, "Toro So Dogon"},
+ {"dtt", NULL, NULL, NULL, "Toro Tegu Dogon"},
+ {"dtu", NULL, NULL, NULL, "Tebul Ure Dogon"},
+ {"dty", NULL, NULL, NULL, "Dotyali"},
+ {"dua", "dua", "dua", NULL, "Duala"},
+ {"dub", NULL, NULL, NULL, "Dubli"},
+ {"duc", NULL, NULL, NULL, "Duna"},
+ {"due", NULL, NULL, NULL, "Umiray Dumaget Agta"},
+ {"duf", NULL, NULL, NULL, "Dumbea"},
+ {"dug", NULL, NULL, NULL, "Duruma"},
+ {"duh", NULL, NULL, NULL, "Dungra Bhil"},
+ {"dui", NULL, NULL, NULL, "Dumun"},
+ {"duk", NULL, NULL, NULL, "Uyajitaya"},
+ {"dul", NULL, NULL, NULL, "Alabat Island Agta"},
+ {"dum", "dum", "dum", NULL, "Middle Dutch (ca. 1050-1350)"},
+ {"dun", NULL, NULL, NULL, "Dusun Deyah"},
+ {"duo", NULL, NULL, NULL, "Dupaninan Agta"},
+ {"dup", NULL, NULL, NULL, "Duano"},
+ {"duq", NULL, NULL, NULL, "Dusun Malang"},
+ {"dur", NULL, NULL, NULL, "Dii"},
+ {"dus", NULL, NULL, NULL, "Dumi"},
+ {"duu", NULL, NULL, NULL, "Drung"},
+ {"duv", NULL, NULL, NULL, "Duvle"},
+ {"duw", NULL, NULL, NULL, "Dusun Witu"},
+ {"dux", NULL, NULL, NULL, "Duungooma"},
+ {"duy", NULL, NULL, NULL, "Dicamay Agta"},
+ {"duz", NULL, NULL, NULL, "Duli-Gey"},
+ {"dva", NULL, NULL, NULL, "Duau"},
+ {"dwa", NULL, NULL, NULL, "Diri"},
+ {"dwk", NULL, NULL, NULL, "Dawik Kui"},
+ {"dwr", NULL, NULL, NULL, "Dawro"},
+ {"dws", NULL, NULL, NULL, "Dutton World Speedwords"},
+ {"dwu", NULL, NULL, NULL, "Dhuwal"},
+ {"dww", NULL, NULL, NULL, "Dawawa"},
+ {"dwy", NULL, NULL, NULL, "Dhuwaya"},
+ {"dwz", NULL, NULL, NULL, "Dewas Rai"},
+ {"dya", NULL, NULL, NULL, "Dyan"},
+ {"dyb", NULL, NULL, NULL, "Dyaberdyaber"},
+ {"dyd", NULL, NULL, NULL, "Dyugun"},
+ {"dyg", NULL, NULL, NULL, "Villa Viciosa Agta"},
+ {"dyi", NULL, NULL, NULL, "Djimini Senoufo"},
+ {"dym", NULL, NULL, NULL, "Yanda Dom Dogon"},
+ {"dyn", NULL, NULL, NULL, "Dyangadi"},
+ {"dyo", NULL, NULL, NULL, "Jola-Fonyi"},
+ {"dyu", "dyu", "dyu", NULL, "Dyula"},
+ {"dyy", NULL, NULL, NULL, "Djabugay"},
+ {"dza", NULL, NULL, NULL, "Tunzu"},
+ {"dze", NULL, NULL, NULL, "Djiwarli"},
+ {"dzg", NULL, NULL, NULL, "Dazaga"},
+ {"dzl", NULL, NULL, NULL, "Dzalakha"},
+ {"dzn", NULL, NULL, NULL, "Dzando"},
+ {"dzo", "dzo", "dzo", "dz", "Dzongkha"},
+ {"eaa", NULL, NULL, NULL, "Karenggapa"},
+ {"ebc", NULL, NULL, NULL, "Beginci"},
+ {"ebg", NULL, NULL, NULL, "Ebughu"},
+ {"ebk", NULL, NULL, NULL, "Eastern Bontok"},
+ {"ebo", NULL, NULL, NULL, "Teke-Ebo"},
+ {"ebr", NULL, NULL, NULL, "Ebrié"},
+ {"ebu", NULL, NULL, NULL, "Embu"},
+ {"ecr", NULL, NULL, NULL, "Eteocretan"},
+ {"ecs", NULL, NULL, NULL, "Ecuadorian Sign Language"},
+ {"ecy", NULL, NULL, NULL, "Eteocypriot"},
+ {"eee", NULL, NULL, NULL, "E"},
+ {"efa", NULL, NULL, NULL, "Efai"},
+ {"efe", NULL, NULL, NULL, "Efe"},
+ {"efi", "efi", "efi", NULL, "Efik"},
+ {"ega", NULL, NULL, NULL, "Ega"},
+ {"egl", NULL, NULL, NULL, "Emilian"},
+ {"ego", NULL, NULL, NULL, "Eggon"},
+ {"egy", "egy", "egy", NULL, "Egyptian (Ancient)"},
+ {"ehs", NULL, NULL, NULL, "Miyakubo Sign Language"},
+ {"ehu", NULL, NULL, NULL, "Ehueun"},
+ {"eip", NULL, NULL, NULL, "Eipomek"},
+ {"eit", NULL, NULL, NULL, "Eitiep"},
+ {"eiv", NULL, NULL, NULL, "Askopan"},
+ {"eja", NULL, NULL, NULL, "Ejamat"},
+ {"eka", "eka", "eka", NULL, "Ekajuk"},
+ {"eke", NULL, NULL, NULL, "Ekit"},
+ {"ekg", NULL, NULL, NULL, "Ekari"},
+ {"eki", NULL, NULL, NULL, "Eki"},
+ {"ekk", NULL, NULL, NULL, "Standard Estonian"},
+ {"ekl", NULL, NULL, NULL, "Kol (Bangladesh)"},
+ {"ekm", NULL, NULL, NULL, "Elip"},
+ {"eko", NULL, NULL, NULL, "Koti"},
+ {"ekp", NULL, NULL, NULL, "Ekpeye"},
+ {"ekr", NULL, NULL, NULL, "Yace"},
+ {"eky", NULL, NULL, NULL, "Eastern Kayah"},
+ {"ele", NULL, NULL, NULL, "Elepi"},
+ {"elh", NULL, NULL, NULL, "El Hugeirat"},
+ {"eli", NULL, NULL, NULL, "Nding"},
+ {"elk", NULL, NULL, NULL, "Elkei"},
+ {"ell", "gre", "ell", "el", "Modern Greek (1453-)"},
+ {"elm", NULL, NULL, NULL, "Eleme"},
+ {"elo", NULL, NULL, NULL, "El Molo"},
+ {"elu", NULL, NULL, NULL, "Elu"},
+ {"elx", "elx", "elx", NULL, "Elamite"},
+ {"ema", NULL, NULL, NULL, "Emai-Iuleha-Ora"},
+ {"emb", NULL, NULL, NULL, "Embaloh"},
+ {"eme", NULL, NULL, NULL, "Emerillon"},
+ {"emg", NULL, NULL, NULL, "Eastern Meohang"},
+ {"emi", NULL, NULL, NULL, "Mussau-Emira"},
+ {"emk", NULL, NULL, NULL, "Eastern Maninkakan"},
+ {"emm", NULL, NULL, NULL, "Mamulique"},
+ {"emn", NULL, NULL, NULL, "Eman"},
+ {"emp", NULL, NULL, NULL, "Northern Emberá"},
+ {"emq", NULL, NULL, NULL, "Eastern Minyag"},
+ {"ems", NULL, NULL, NULL, "Pacific Gulf Yupik"},
+ {"emu", NULL, NULL, NULL, "Eastern Muria"},
+ {"emw", NULL, NULL, NULL, "Emplawas"},
+ {"emx", NULL, NULL, NULL, "Erromintxela"},
+ {"emy", NULL, NULL, NULL, "Epigraphic Mayan"},
+ {"emz", NULL, NULL, NULL, "Mbessa"},
+ {"ena", NULL, NULL, NULL, "Apali"},
+ {"enb", NULL, NULL, NULL, "Markweeta"},
+ {"enc", NULL, NULL, NULL, "En"},
+ {"end", NULL, NULL, NULL, "Ende"},
+ {"enf", NULL, NULL, NULL, "Forest Enets"},
+ {"eng", "eng", "eng", "en", "English"},
+ {"enh", NULL, NULL, NULL, "Tundra Enets"},
+ {"enl", NULL, NULL, NULL, "Enlhet"},
+ {"enm", "enm", "enm", NULL, "Middle English (1100-1500)"},
+ {"enn", NULL, NULL, NULL, "Engenni"},
+ {"eno", NULL, NULL, NULL, "Enggano"},
+ {"enq", NULL, NULL, NULL, "Enga"},
+ {"enr", NULL, NULL, NULL, "Emumu"},
+ {"enu", NULL, NULL, NULL, "Enu"},
+ {"env", NULL, NULL, NULL, "Enwan (Edu State)"},
+ {"enw", NULL, NULL, NULL, "Enwan (Akwa Ibom State)"},
+ {"enx", NULL, NULL, NULL, "Enxet"},
+ {"eot", NULL, NULL, NULL, "Beti (Côte d'Ivoire)"},
+ {"epi", NULL, NULL, NULL, "Epie"},
+ {"epo", "epo", "epo", "eo", "Esperanto"},
+ {"era", NULL, NULL, NULL, "Eravallan"},
+ {"erg", NULL, NULL, NULL, "Sie"},
+ {"erh", NULL, NULL, NULL, "Eruwa"},
+ {"eri", NULL, NULL, NULL, "Ogea"},
+ {"erk", NULL, NULL, NULL, "South Efate"},
+ {"ero", NULL, NULL, NULL, "Horpa"},
+ {"err", NULL, NULL, NULL, "Erre"},
+ {"ers", NULL, NULL, NULL, "Ersu"},
+ {"ert", NULL, NULL, NULL, "Eritai"},
+ {"erw", NULL, NULL, NULL, "Erokwanas"},
+ {"ese", NULL, NULL, NULL, "Ese Ejja"},
+ {"esg", NULL, NULL, NULL, "Aheri Gondi"},
+ {"esh", NULL, NULL, NULL, "Eshtehardi"},
+ {"esi", NULL, NULL, NULL, "North Alaskan Inupiatun"},
+ {"esk", NULL, NULL, NULL, "Northwest Alaska Inupiatun"},
+ {"esl", NULL, NULL, NULL, "Egypt Sign Language"},
+ {"esm", NULL, NULL, NULL, "Esuma"},
+ {"esn", NULL, NULL, NULL, "Salvadoran Sign Language"},
+ {"eso", NULL, NULL, NULL, "Estonian Sign Language"},
+ {"esq", NULL, NULL, NULL, "Esselen"},
+ {"ess", NULL, NULL, NULL, "Central Siberian Yupik"},
+ {"est", "est", "est", "et", "Estonian"},
+ {"esu", NULL, NULL, NULL, "Central Yupik"},
+ {"esy", NULL, NULL, NULL, "Eskayan"},
+ {"etb", NULL, NULL, NULL, "Etebi"},
+ {"etc", NULL, NULL, NULL, "Etchemin"},
+ {"eth", NULL, NULL, NULL, "Ethiopian Sign Language"},
+ {"etn", NULL, NULL, NULL, "Eton (Vanuatu)"},
+ {"eto", NULL, NULL, NULL, "Eton (Cameroon)"},
+ {"etr", NULL, NULL, NULL, "Edolo"},
+ {"ets", NULL, NULL, NULL, "Yekhee"},
+ {"ett", NULL, NULL, NULL, "Etruscan"},
+ {"etu", NULL, NULL, NULL, "Ejagham"},
+ {"etx", NULL, NULL, NULL, "Eten"},
+ {"etz", NULL, NULL, NULL, "Semimi"},
+ {"eus", "baq", "eus", "eu", "Basque"},
+ {"eve", NULL, NULL, NULL, "Even"},
+ {"evh", NULL, NULL, NULL, "Uvbie"},
+ {"evn", NULL, NULL, NULL, "Evenki"},
+ {"ewe", "ewe", "ewe", "ee", "Ewe"},
+ {"ewo", "ewo", "ewo", NULL, "Ewondo"},
+ {"ext", NULL, NULL, NULL, "Extremaduran"},
+ {"eya", NULL, NULL, NULL, "Eyak"},
+ {"eyo", NULL, NULL, NULL, "Keiyo"},
+ {"eza", NULL, NULL, NULL, "Ezaa"},
+ {"eze", NULL, NULL, NULL, "Uzekwe"},
+ {"faa", NULL, NULL, NULL, "Fasu"},
+ {"fab", NULL, NULL, NULL, "Fa d'Ambu"},
+ {"fad", NULL, NULL, NULL, "Wagi"},
+ {"faf", NULL, NULL, NULL, "Fagani"},
+ {"fag", NULL, NULL, NULL, "Finongan"},
+ {"fah", NULL, NULL, NULL, "Baissa Fali"},
+ {"fai", NULL, NULL, NULL, "Faiwol"},
+ {"faj", NULL, NULL, NULL, "Faita"},
+ {"fak", NULL, NULL, NULL, "Fang (Cameroon)"},
+ {"fal", NULL, NULL, NULL, "South Fali"},
+ {"fam", NULL, NULL, NULL, "Fam"},
+ {"fan", "fan", "fan", NULL, "Fang (Equatorial Guinea)"},
+ {"fao", "fao", "fao", "fo", "Faroese"},
+ {"fap", NULL, NULL, NULL, "Paloor"},
+ {"far", NULL, NULL, NULL, "Fataleka"},
+ {"fas", "per", "fas", "fa", "Persian"},
+ {"fat", "fat", "fat", NULL, "Fanti"},
+ {"fau", NULL, NULL, NULL, "Fayu"},
+ {"fax", NULL, NULL, NULL, "Fala"},
+ {"fay", NULL, NULL, NULL, "Southwestern Fars"},
+ {"faz", NULL, NULL, NULL, "Northwestern Fars"},
+ {"fbl", NULL, NULL, NULL, "West Albay Bikol"},
+ {"fcs", NULL, NULL, NULL, "Quebec Sign Language"},
+ {"fer", NULL, NULL, NULL, "Feroge"},
+ {"ffi", NULL, NULL, NULL, "Foia Foia"},
+ {"ffm", NULL, NULL, NULL, "Maasina Fulfulde"},
+ {"fgr", NULL, NULL, NULL, "Fongoro"},
+ {"fia", NULL, NULL, NULL, "Nobiin"},
+ {"fie", NULL, NULL, NULL, "Fyer"},
+ {"fif", NULL, NULL, NULL, "Faifi"},
+ {"fij", "fij", "fij", "fj", "Fijian"},
+ {"fil", "fil", "fil", NULL, "Filipino"},
+ {"fin", "fin", "fin", "fi", "Finnish"},
+ {"fip", NULL, NULL, NULL, "Fipa"},
+ {"fir", NULL, NULL, NULL, "Firan"},
+ {"fit", NULL, NULL, NULL, "Tornedalen Finnish"},
+ {"fiw", NULL, NULL, NULL, "Fiwaga"},
+ {"fkk", NULL, NULL, NULL, "Kirya-Konzəl"},
+ {"fkv", NULL, NULL, NULL, "Kven Finnish"},
+ {"fla", NULL, NULL, NULL, "Kalispel-Pend d'Oreille"},
+ {"flh", NULL, NULL, NULL, "Foau"},
+ {"fli", NULL, NULL, NULL, "Fali"},
+ {"fll", NULL, NULL, NULL, "North Fali"},
+ {"fln", NULL, NULL, NULL, "Flinders Island"},
+ {"flr", NULL, NULL, NULL, "Fuliiru"},
+ {"fly", NULL, NULL, NULL, "Flaaitaal"},
+ {"fmp", NULL, NULL, NULL, "Fe'fe'"},
+ {"fmu", NULL, NULL, NULL, "Far Western Muria"},
+ {"fnb", NULL, NULL, NULL, "Fanbak"},
+ {"fng", NULL, NULL, NULL, "Fanagalo"},
+ {"fni", NULL, NULL, NULL, "Fania"},
+ {"fod", NULL, NULL, NULL, "Foodo"},
+ {"foi", NULL, NULL, NULL, "Foi"},
+ {"fom", NULL, NULL, NULL, "Foma"},
+ {"fon", "fon", "fon", NULL, "Fon"},
+ {"for", NULL, NULL, NULL, "Fore"},
+ {"fos", NULL, NULL, NULL, "Siraya"},
+ {"fpe", NULL, NULL, NULL, "Fernando Po Creole English"},
+ {"fqs", NULL, NULL, NULL, "Fas"},
+ {"fra", "fre", "fra", "fr", "French"},
+ {"frc", NULL, NULL, NULL, "Cajun French"},
+ {"frd", NULL, NULL, NULL, "Fordata"},
+ {"frk", NULL, NULL, NULL, "Frankish"},
+ {"frm", "frm", "frm", NULL, "Middle French (ca. 1400-1600)"},
+ {"fro", "fro", "fro", NULL, "Old French (842-ca. 1400)"},
+ {"frp", NULL, NULL, NULL, "Arpitan"},
+ {"frq", NULL, NULL, NULL, "Forak"},
+ {"frr", "frr", "frr", NULL, "Northern Frisian"},
+ {"frs", "frs", "frs", NULL, "Eastern Frisian"},
+ {"frt", NULL, NULL, NULL, "Fortsenal"},
+ {"fry", "fry", "fry", "fy", "Western Frisian"},
+ {"fse", NULL, NULL, NULL, "Finnish Sign Language"},
+ {"fsl", NULL, NULL, NULL, "French Sign Language"},
+ {"fss", NULL, NULL, NULL, "Finland-Swedish Sign Language"},
+ {"fub", NULL, NULL, NULL, "Adamawa Fulfulde"},
+ {"fuc", NULL, NULL, NULL, "Pulaar"},
+ {"fud", NULL, NULL, NULL, "East Futuna"},
+ {"fue", NULL, NULL, NULL, "Borgu Fulfulde"},
+ {"fuf", NULL, NULL, NULL, "Pular"},
+ {"fuh", NULL, NULL, NULL, "Western Niger Fulfulde"},
+ {"fui", NULL, NULL, NULL, "Bagirmi Fulfulde"},
+ {"fuj", NULL, NULL, NULL, "Ko"},
+ {"ful", "ful", "ful", "ff", "Fulah"},
+ {"fum", NULL, NULL, NULL, "Fum"},
+ {"fun", NULL, NULL, NULL, "Fulniô"},
+ {"fuq", NULL, NULL, NULL, "Central-Eastern Niger Fulfulde"},
+ {"fur", "fur", "fur", NULL, "Friulian"},
+ {"fut", NULL, NULL, NULL, "Futuna-Aniwa"},
+ {"fuu", NULL, NULL, NULL, "Furu"},
+ {"fuv", NULL, NULL, NULL, "Nigerian Fulfulde"},
+ {"fuy", NULL, NULL, NULL, "Fuyug"},
+ {"fvr", NULL, NULL, NULL, "Fur"},
+ {"fwa", NULL, NULL, NULL, "Fwâi"},
+ {"fwe", NULL, NULL, NULL, "Fwe"},
+ {"gaa", "gaa", "gaa", NULL, "Ga"},
+ {"gab", NULL, NULL, NULL, "Gabri"},
+ {"gac", NULL, NULL, NULL, "Mixed Great Andamanese"},
+ {"gad", NULL, NULL, NULL, "Gaddang"},
+ {"gae", NULL, NULL, NULL, "Guarequena"},
+ {"gaf", NULL, NULL, NULL, "Gende"},
+ {"gag", NULL, NULL, NULL, "Gagauz"},
+ {"gah", NULL, NULL, NULL, "Alekano"},
+ {"gai", NULL, NULL, NULL, "Borei"},
+ {"gaj", NULL, NULL, NULL, "Gadsup"},
+ {"gak", NULL, NULL, NULL, "Gamkonora"},
+ {"gal", NULL, NULL, NULL, "Galolen"},
+ {"gam", NULL, NULL, NULL, "Kandawo"},
+ {"gan", NULL, NULL, NULL, "Gan Chinese"},
+ {"gao", NULL, NULL, NULL, "Gants"},
+ {"gap", NULL, NULL, NULL, "Gal"},
+ {"gaq", NULL, NULL, NULL, "Gata'"},
+ {"gar", NULL, NULL, NULL, "Galeya"},
+ {"gas", NULL, NULL, NULL, "Adiwasi Garasia"},
+ {"gat", NULL, NULL, NULL, "Kenati"},
+ {"gau", NULL, NULL, NULL, "Mudhili Gadaba"},
+ {"gaw", NULL, NULL, NULL, "Nobonob"},
+ {"gax", NULL, NULL, NULL, "Borana-Arsi-Guji Oromo"},
+ {"gay", "gay", "gay", NULL, "Gayo"},
+ {"gaz", NULL, NULL, NULL, "West Central Oromo"},
+ {"gba", "gba", "gba", NULL, "Gbaya (Central African Republic)"},
+ {"gbb", NULL, NULL, NULL, "Kaytetye"},
+ {"gbd", NULL, NULL, NULL, "Karajarri"},
+ {"gbe", NULL, NULL, NULL, "Niksek"},
+ {"gbf", NULL, NULL, NULL, "Gaikundi"},
+ {"gbg", NULL, NULL, NULL, "Gbanziri"},
+ {"gbh", NULL, NULL, NULL, "Defi Gbe"},
+ {"gbi", NULL, NULL, NULL, "Galela"},
+ {"gbj", NULL, NULL, NULL, "Bodo Gadaba"},
+ {"gbk", NULL, NULL, NULL, "Gaddi"},
+ {"gbl", NULL, NULL, NULL, "Gamit"},
+ {"gbm", NULL, NULL, NULL, "Garhwali"},
+ {"gbn", NULL, NULL, NULL, "Mo'da"},
+ {"gbo", NULL, NULL, NULL, "Northern Grebo"},
+ {"gbp", NULL, NULL, NULL, "Gbaya-Bossangoa"},
+ {"gbq", NULL, NULL, NULL, "Gbaya-Bozoum"},
+ {"gbr", NULL, NULL, NULL, "Gbagyi"},
+ {"gbs", NULL, NULL, NULL, "Gbesi Gbe"},
+ {"gbu", NULL, NULL, NULL, "Gagadu"},
+ {"gbv", NULL, NULL, NULL, "Gbanu"},
+ {"gbw", NULL, NULL, NULL, "Gabi-Gabi"},
+ {"gbx", NULL, NULL, NULL, "Eastern Xwla Gbe"},
+ {"gby", NULL, NULL, NULL, "Gbari"},
+ {"gbz", NULL, NULL, NULL, "Zoroastrian Dari"},
+ {"gcc", NULL, NULL, NULL, "Mali"},
+ {"gcd", NULL, NULL, NULL, "Ganggalida"},
+ {"gce", NULL, NULL, NULL, "Galice"},
+ {"gcf", NULL, NULL, NULL, "Guadeloupean Creole French"},
+ {"gcl", NULL, NULL, NULL, "Grenadian Creole English"},
+ {"gcn", NULL, NULL, NULL, "Gaina"},
+ {"gcr", NULL, NULL, NULL, "Guianese Creole French"},
+ {"gct", NULL, NULL, NULL, "Colonia Tovar German"},
+ {"gda", NULL, NULL, NULL, "Gade Lohar"},
+ {"gdb", NULL, NULL, NULL, "Pottangi Ollar Gadaba"},
+ {"gdc", NULL, NULL, NULL, "Gugu Badhun"},
+ {"gdd", NULL, NULL, NULL, "Gedaged"},
+ {"gde", NULL, NULL, NULL, "Gude"},
+ {"gdf", NULL, NULL, NULL, "Guduf-Gava"},
+ {"gdg", NULL, NULL, NULL, "Ga'dang"},
+ {"gdh", NULL, NULL, NULL, "Gadjerawang"},
+ {"gdi", NULL, NULL, NULL, "Gundi"},
+ {"gdj", NULL, NULL, NULL, "Gurdjar"},
+ {"gdk", NULL, NULL, NULL, "Gadang"},
+ {"gdl", NULL, NULL, NULL, "Dirasha"},
+ {"gdm", NULL, NULL, NULL, "Laal"},
+ {"gdn", NULL, NULL, NULL, "Umanakaina"},
+ {"gdo", NULL, NULL, NULL, "Ghodoberi"},
+ {"gdq", NULL, NULL, NULL, "Mehri"},
+ {"gdr", NULL, NULL, NULL, "Wipi"},
+ {"gds", NULL, NULL, NULL, "Ghandruk Sign Language"},
+ {"gdt", NULL, NULL, NULL, "Kungardutyi"},
+ {"gdu", NULL, NULL, NULL, "Gudu"},
+ {"gdx", NULL, NULL, NULL, "Godwari"},
+ {"gea", NULL, NULL, NULL, "Geruma"},
+ {"geb", NULL, NULL, NULL, "Kire"},
+ {"gec", NULL, NULL, NULL, "Gboloo Grebo"},
+ {"ged", NULL, NULL, NULL, "Gade"},
+ {"gef", NULL, NULL, NULL, "Gerai"},
+ {"geg", NULL, NULL, NULL, "Gengle"},
+ {"geh", NULL, NULL, NULL, "Hutterite German"},
+ {"gei", NULL, NULL, NULL, "Gebe"},
+ {"gej", NULL, NULL, NULL, "Gen"},
+ {"gek", NULL, NULL, NULL, "Ywom"},
+ {"gel", NULL, NULL, NULL, "ut-Ma'in"},
+ {"geq", NULL, NULL, NULL, "Geme"},
+ {"ges", NULL, NULL, NULL, "Geser-Gorom"},
+ {"gev", NULL, NULL, NULL, "Eviya"},
+ {"gew", NULL, NULL, NULL, "Gera"},
+ {"gex", NULL, NULL, NULL, "Garre"},
+ {"gey", NULL, NULL, NULL, "Enya"},
+ {"gez", "gez", "gez", NULL, "Geez"},
+ {"gfk", NULL, NULL, NULL, "Patpatar"},
+ {"gft", NULL, NULL, NULL, "Gafat"},
+ {"gga", NULL, NULL, NULL, "Gao"},
+ {"ggb", NULL, NULL, NULL, "Gbii"},
+ {"ggd", NULL, NULL, NULL, "Gugadj"},
+ {"gge", NULL, NULL, NULL, "Gurr-goni"},
+ {"ggg", NULL, NULL, NULL, "Gurgula"},
+ {"ggk", NULL, NULL, NULL, "Kungarakany"},
+ {"ggl", NULL, NULL, NULL, "Ganglau"},
+ {"ggt", NULL, NULL, NULL, "Gitua"},
+ {"ggu", NULL, NULL, NULL, "Gagu"},
+ {"ggw", NULL, NULL, NULL, "Gogodala"},
+ {"gha", NULL, NULL, NULL, "Ghadamès"},
+ {"ghc", NULL, NULL, NULL, "Hiberno-Scottish Gaelic"},
+ {"ghe", NULL, NULL, NULL, "Southern Ghale"},
+ {"ghh", NULL, NULL, NULL, "Northern Ghale"},
+ {"ghk", NULL, NULL, NULL, "Geko Karen"},
+ {"ghl", NULL, NULL, NULL, "Ghulfan"},
+ {"ghn", NULL, NULL, NULL, "Ghanongga"},
+ {"gho", NULL, NULL, NULL, "Ghomara"},
+ {"ghr", NULL, NULL, NULL, "Ghera"},
+ {"ghs", NULL, NULL, NULL, "Guhu-Samane"},
+ {"ght", NULL, NULL, NULL, "Kuke"},
+ {"gia", NULL, NULL, NULL, "Kija"},
+ {"gib", NULL, NULL, NULL, "Gibanawa"},
+ {"gic", NULL, NULL, NULL, "Gail"},
+ {"gid", NULL, NULL, NULL, "Gidar"},
+ {"gie", NULL, NULL, NULL, "Gaɓogbo"},
+ {"gig", NULL, NULL, NULL, "Goaria"},
+ {"gih", NULL, NULL, NULL, "Githabul"},
+ {"gii", NULL, NULL, NULL, "Girirra"},
+ {"gil", "gil", "gil", NULL, "Gilbertese"},
+ {"gim", NULL, NULL, NULL, "Gimi (Eastern Highlands)"},
+ {"gin", NULL, NULL, NULL, "Hinukh"},
+ {"gip", NULL, NULL, NULL, "Gimi (West New Britain)"},
+ {"giq", NULL, NULL, NULL, "Green Gelao"},
+ {"gir", NULL, NULL, NULL, "Red Gelao"},
+ {"gis", NULL, NULL, NULL, "North Giziga"},
+ {"git", NULL, NULL, NULL, "Gitxsan"},
+ {"giu", NULL, NULL, NULL, "Mulao"},
+ {"giw", NULL, NULL, NULL, "White Gelao"},
+ {"gix", NULL, NULL, NULL, "Gilima"},
+ {"giy", NULL, NULL, NULL, "Giyug"},
+ {"giz", NULL, NULL, NULL, "South Giziga"},
+ {"gjk", NULL, NULL, NULL, "Kachi Koli"},
+ {"gjm", NULL, NULL, NULL, "Gunditjmara"},
+ {"gjn", NULL, NULL, NULL, "Gonja"},
+ {"gjr", NULL, NULL, NULL, "Gurindji Kriol"},
+ {"gju", NULL, NULL, NULL, "Gujari"},
+ {"gka", NULL, NULL, NULL, "Guya"},
+ {"gkd", NULL, NULL, NULL, "Magɨ (Madang Province)"},
+ {"gke", NULL, NULL, NULL, "Ndai"},
+ {"gkn", NULL, NULL, NULL, "Gokana"},
+ {"gko", NULL, NULL, NULL, "Kok-Nar"},
+ {"gkp", NULL, NULL, NULL, "Guinea Kpelle"},
+ {"gku", NULL, NULL, NULL, "ǂUngkue"},
+ {"gla", "gla", "gla", "gd", "Scottish Gaelic"},
+ {"glb", NULL, NULL, NULL, "Belning"},
+ {"glc", NULL, NULL, NULL, "Bon Gula"},
+ {"gld", NULL, NULL, NULL, "Nanai"},
+ {"gle", "gle", "gle", "ga", "Irish"},
+ {"glg", "glg", "glg", "gl", "Galician"},
+ {"glh", NULL, NULL, NULL, "Northwest Pashai"},
+ {"glj", NULL, NULL, NULL, "Gula Iro"},
+ {"glk", NULL, NULL, NULL, "Gilaki"},
+ {"gll", NULL, NULL, NULL, "Garlali"},
+ {"glo", NULL, NULL, NULL, "Galambu"},
+ {"glr", NULL, NULL, NULL, "Glaro-Twabo"},
+ {"glu", NULL, NULL, NULL, "Gula (Chad)"},
+ {"glv", "glv", "glv", "gv", "Manx"},
+ {"glw", NULL, NULL, NULL, "Glavda"},
+ {"gly", NULL, NULL, NULL, "Gule"},
+ {"gma", NULL, NULL, NULL, "Gambera"},
+ {"gmb", NULL, NULL, NULL, "Gula'alaa"},
+ {"gmd", NULL, NULL, NULL, "Mághdì"},
+ {"gmg", NULL, NULL, NULL, "Magɨyi"},
+ {"gmh", "gmh", "gmh", NULL, "Middle High German (ca. 1050-1500)"},
+ {"gml", NULL, NULL, NULL, "Middle Low German"},
+ {"gmm", NULL, NULL, NULL, "Gbaya-Mbodomo"},
+ {"gmn", NULL, NULL, NULL, "Gimnime"},
+ {"gmr", NULL, NULL, NULL, "Mirning"},
+ {"gmu", NULL, NULL, NULL, "Gumalu"},
+ {"gmv", NULL, NULL, NULL, "Gamo"},
+ {"gmx", NULL, NULL, NULL, "Magoma"},
+ {"gmy", NULL, NULL, NULL, "Mycenaean Greek"},
+ {"gmz", NULL, NULL, NULL, "Mgbolizhia"},
+ {"gna", NULL, NULL, NULL, "Kaansa"},
+ {"gnb", NULL, NULL, NULL, "Gangte"},
+ {"gnc", NULL, NULL, NULL, "Guanche"},
+ {"gnd", NULL, NULL, NULL, "Zulgo-Gemzek"},
+ {"gne", NULL, NULL, NULL, "Ganang"},
+ {"gng", NULL, NULL, NULL, "Ngangam"},
+ {"gnh", NULL, NULL, NULL, "Lere"},
+ {"gni", NULL, NULL, NULL, "Gooniyandi"},
+ {"gnj", NULL, NULL, NULL, "Ngen"},
+ {"gnk", NULL, NULL, NULL, "ǁGana"},
+ {"gnl", NULL, NULL, NULL, "Gangulu"},
+ {"gnm", NULL, NULL, NULL, "Ginuman"},
+ {"gnn", NULL, NULL, NULL, "Gumatj"},
+ {"gno", NULL, NULL, NULL, "Northern Gondi"},
+ {"gnq", NULL, NULL, NULL, "Gana"},
+ {"gnr", NULL, NULL, NULL, "Gureng Gureng"},
+ {"gnt", NULL, NULL, NULL, "Guntai"},
+ {"gnu", NULL, NULL, NULL, "Gnau"},
+ {"gnw", NULL, NULL, NULL, "Western Bolivian Guaraní"},
+ {"gnz", NULL, NULL, NULL, "Ganzi"},
+ {"goa", NULL, NULL, NULL, "Guro"},
+ {"gob", NULL, NULL, NULL, "Playero"},
+ {"goc", NULL, NULL, NULL, "Gorakor"},
+ {"god", NULL, NULL, NULL, "Godié"},
+ {"goe", NULL, NULL, NULL, "Gongduk"},
+ {"gof", NULL, NULL, NULL, "Gofa"},
+ {"gog", NULL, NULL, NULL, "Gogo"},
+ {"goh", "goh", "goh", NULL, "Old High German (ca. 750-1050)"},
+ {"goi", NULL, NULL, NULL, "Gobasi"},
+ {"goj", NULL, NULL, NULL, "Gowlan"},
+ {"gok", NULL, NULL, NULL, "Gowli"},
+ {"gol", NULL, NULL, NULL, "Gola"},
+ {"gom", NULL, NULL, NULL, "Goan Konkani"},
+ {"gon", "gon", "gon", NULL, "Gondi"},
+ {"goo", NULL, NULL, NULL, "Gone Dau"},
+ {"gop", NULL, NULL, NULL, "Yeretuar"},
+ {"goq", NULL, NULL, NULL, "Gorap"},
+ {"gor", "gor", "gor", NULL, "Gorontalo"},
+ {"gos", NULL, NULL, NULL, "Gronings"},
+ {"got", "got", "got", NULL, "Gothic"},
+ {"gou", NULL, NULL, NULL, "Gavar"},
+ {"gow", NULL, NULL, NULL, "Gorowa"},
+ {"gox", NULL, NULL, NULL, "Gobu"},
+ {"goy", NULL, NULL, NULL, "Goundo"},
+ {"goz", NULL, NULL, NULL, "Gozarkhani"},
+ {"gpa", NULL, NULL, NULL, "Gupa-Abawa"},
+ {"gpe", NULL, NULL, NULL, "Ghanaian Pidgin English"},
+ {"gpn", NULL, NULL, NULL, "Taiap"},
+ {"gqa", NULL, NULL, NULL, "Ga'anda"},
+ {"gqi", NULL, NULL, NULL, "Guiqiong"},
+ {"gqn", NULL, NULL, NULL, "Guana (Brazil)"},
+ {"gqr", NULL, NULL, NULL, "Gor"},
+ {"gqu", NULL, NULL, NULL, "Qau"},
+ {"gra", NULL, NULL, NULL, "Rajput Garasia"},
+ {"grb", "grb", "grb", NULL, "Grebo"},
+ {"grc", "grc", "grc", NULL, "Ancient Greek (to 1453)"},
+ {"grd", NULL, NULL, NULL, "Guruntum-Mbaaru"},
+ {"grg", NULL, NULL, NULL, "Madi"},
+ {"grh", NULL, NULL, NULL, "Gbiri-Niragu"},
+ {"gri", NULL, NULL, NULL, "Ghari"},
+ {"grj", NULL, NULL, NULL, "Southern Grebo"},
+ {"grm", NULL, NULL, NULL, "Kota Marudu Talantang"},
+ {"grn", "grn", "grn", "gn", "Guarani"},
+ {"gro", NULL, NULL, NULL, "Groma"},
+ {"grq", NULL, NULL, NULL, "Gorovu"},
+ {"grr", NULL, NULL, NULL, "Taznatit"},
+ {"grs", NULL, NULL, NULL, "Gresi"},
+ {"grt", NULL, NULL, NULL, "Garo"},
+ {"gru", NULL, NULL, NULL, "Kistane"},
+ {"grv", NULL, NULL, NULL, "Central Grebo"},
+ {"grw", NULL, NULL, NULL, "Gweda"},
+ {"grx", NULL, NULL, NULL, "Guriaso"},
+ {"gry", NULL, NULL, NULL, "Barclayville Grebo"},
+ {"grz", NULL, NULL, NULL, "Guramalum"},
+ {"gse", NULL, NULL, NULL, "Ghanaian Sign Language"},
+ {"gsg", NULL, NULL, NULL, "German Sign Language"},
+ {"gsl", NULL, NULL, NULL, "Gusilay"},
+ {"gsm", NULL, NULL, NULL, "Guatemalan Sign Language"},
+ {"gsn", NULL, NULL, NULL, "Nema"},
+ {"gso", NULL, NULL, NULL, "Southwest Gbaya"},
+ {"gsp", NULL, NULL, NULL, "Wasembo"},
+ {"gss", NULL, NULL, NULL, "Greek Sign Language"},
+ {"gsw", "gsw", "gsw", NULL, "Swiss German"},
+ {"gta", NULL, NULL, NULL, "Guató"},
+ {"gtu", NULL, NULL, NULL, "Aghu-Tharnggala"},
+ {"gua", NULL, NULL, NULL, "Shiki"},
+ {"gub", NULL, NULL, NULL, "Guajajára"},
+ {"guc", NULL, NULL, NULL, "Wayuu"},
+ {"gud", NULL, NULL, NULL, "Yocoboué Dida"},
+ {"gue", NULL, NULL, NULL, "Gurindji"},
+ {"guf", NULL, NULL, NULL, "Gupapuyngu"},
+ {"gug", NULL, NULL, NULL, "Paraguayan Guaraní"},
+ {"guh", NULL, NULL, NULL, "Guahibo"},
+ {"gui", NULL, NULL, NULL, "Eastern Bolivian Guaraní"},
+ {"guj", "guj", "guj", "gu", "Gujarati"},
+ {"guk", NULL, NULL, NULL, "Gumuz"},
+ {"gul", NULL, NULL, NULL, "Sea Island Creole English"},
+ {"gum", NULL, NULL, NULL, "Guambiano"},
+ {"gun", NULL, NULL, NULL, "Mbyá Guaraní"},
+ {"guo", NULL, NULL, NULL, "Guayabero"},
+ {"gup", NULL, NULL, NULL, "Gunwinggu"},
+ {"guq", NULL, NULL, NULL, "Aché"},
+ {"gur", NULL, NULL, NULL, "Farefare"},
+ {"gus", NULL, NULL, NULL, "Guinean Sign Language"},
+ {"gut", NULL, NULL, NULL, "Maléku Jaíka"},
+ {"guu", NULL, NULL, NULL, "Yanomamö"},
+ {"guw", NULL, NULL, NULL, "Gun"},
+ {"gux", NULL, NULL, NULL, "Gourmanchéma"},
+ {"guz", NULL, NULL, NULL, "Gusii"},
+ {"gva", NULL, NULL, NULL, "Guana (Paraguay)"},
+ {"gvc", NULL, NULL, NULL, "Guanano"},
+ {"gve", NULL, NULL, NULL, "Duwet"},
+ {"gvf", NULL, NULL, NULL, "Golin"},
+ {"gvj", NULL, NULL, NULL, "Guajá"},
+ {"gvl", NULL, NULL, NULL, "Gulay"},
+ {"gvm", NULL, NULL, NULL, "Gurmana"},
+ {"gvn", NULL, NULL, NULL, "Kuku-Yalanji"},
+ {"gvo", NULL, NULL, NULL, "Gavião Do Jiparaná"},
+ {"gvp", NULL, NULL, NULL, "Pará Gavião"},
+ {"gvr", NULL, NULL, NULL, "Gurung"},
+ {"gvs", NULL, NULL, NULL, "Gumawana"},
+ {"gvy", NULL, NULL, NULL, "Guyani"},
+ {"gwa", NULL, NULL, NULL, "Mbato"},
+ {"gwb", NULL, NULL, NULL, "Gwa"},
+ {"gwc", NULL, NULL, NULL, "Gawri"},
+ {"gwd", NULL, NULL, NULL, "Gawwada"},
+ {"gwe", NULL, NULL, NULL, "Gweno"},
+ {"gwf", NULL, NULL, NULL, "Gowro"},
+ {"gwg", NULL, NULL, NULL, "Moo"},
+ {"gwi", "gwi", "gwi", NULL, "Gwichʼin"},
+ {"gwj", NULL, NULL, NULL, "ǀGwi"},
+ {"gwm", NULL, NULL, NULL, "Awngthim"},
+ {"gwn", NULL, NULL, NULL, "Gwandara"},
+ {"gwr", NULL, NULL, NULL, "Gwere"},
+ {"gwt", NULL, NULL, NULL, "Gawar-Bati"},
+ {"gwu", NULL, NULL, NULL, "Guwamu"},
+ {"gww", NULL, NULL, NULL, "Kwini"},
+ {"gwx", NULL, NULL, NULL, "Gua"},
+ {"gxx", NULL, NULL, NULL, "Wè Southern"},
+ {"gya", NULL, NULL, NULL, "Northwest Gbaya"},
+ {"gyb", NULL, NULL, NULL, "Garus"},
+ {"gyd", NULL, NULL, NULL, "Kayardild"},
+ {"gye", NULL, NULL, NULL, "Gyem"},
+ {"gyf", NULL, NULL, NULL, "Gungabula"},
+ {"gyg", NULL, NULL, NULL, "Gbayi"},
+ {"gyi", NULL, NULL, NULL, "Gyele"},
+ {"gyl", NULL, NULL, NULL, "Gayil"},
+ {"gym", NULL, NULL, NULL, "Ngäbere"},
+ {"gyn", NULL, NULL, NULL, "Guyanese Creole English"},
+ {"gyo", NULL, NULL, NULL, "Gyalsumdo"},
+ {"gyr", NULL, NULL, NULL, "Guarayu"},
+ {"gyy", NULL, NULL, NULL, "Gunya"},
+ {"gyz", NULL, NULL, NULL, "Geji"},
+ {"gza", NULL, NULL, NULL, "Ganza"},
+ {"gzi", NULL, NULL, NULL, "Gazi"},
+ {"gzn", NULL, NULL, NULL, "Gane"},
+ {"haa", NULL, NULL, NULL, "Han"},
+ {"hab", NULL, NULL, NULL, "Hanoi Sign Language"},
+ {"hac", NULL, NULL, NULL, "Gurani"},
+ {"had", NULL, NULL, NULL, "Hatam"},
+ {"hae", NULL, NULL, NULL, "Eastern Oromo"},
+ {"haf", NULL, NULL, NULL, "Haiphong Sign Language"},
+ {"hag", NULL, NULL, NULL, "Hanga"},
+ {"hah", NULL, NULL, NULL, "Hahon"},
+ {"hai", "hai", "hai", NULL, "Haida"},
+ {"haj", NULL, NULL, NULL, "Hajong"},
+ {"hak", NULL, NULL, NULL, "Hakka Chinese"},
+ {"hal", NULL, NULL, NULL, "Halang"},
+ {"ham", NULL, NULL, NULL, "Hewa"},
+ {"han", NULL, NULL, NULL, "Hangaza"},
+ {"hao", NULL, NULL, NULL, "Hakö"},
+ {"hap", NULL, NULL, NULL, "Hupla"},
+ {"haq", NULL, NULL, NULL, "Ha"},
+ {"har", NULL, NULL, NULL, "Harari"},
+ {"has", NULL, NULL, NULL, "Haisla"},
+ {"hat", "hat", "hat", "ht", "Haitian"},
+ {"hau", "hau", "hau", "ha", "Hausa"},
+ {"hav", NULL, NULL, NULL, "Havu"},
+ {"haw", "haw", "haw", NULL, "Hawaiian"},
+ {"hax", NULL, NULL, NULL, "Southern Haida"},
+ {"hay", NULL, NULL, NULL, "Haya"},
+ {"haz", NULL, NULL, NULL, "Hazaragi"},
+ {"hba", NULL, NULL, NULL, "Hamba"},
+ {"hbb", NULL, NULL, NULL, "Huba"},
+ {"hbn", NULL, NULL, NULL, "Heiban"},
+ {"hbo", NULL, NULL, NULL, "Ancient Hebrew"},
+ {"hbs", NULL, NULL, "sh", "Serbo-Croatian"},
+ {"hbu", NULL, NULL, NULL, "Habu"},
+ {"hca", NULL, NULL, NULL, "Andaman Creole Hindi"},
+ {"hch", NULL, NULL, NULL, "Huichol"},
+ {"hdn", NULL, NULL, NULL, "Northern Haida"},
+ {"hds", NULL, NULL, NULL, "Honduras Sign Language"},
+ {"hdy", NULL, NULL, NULL, "Hadiyya"},
+ {"hea", NULL, NULL, NULL, "Northern Qiandong Miao"},
+ {"heb", "heb", "heb", "he", "Hebrew"},
+ {"hed", NULL, NULL, NULL, "Herdé"},
+ {"heg", NULL, NULL, NULL, "Helong"},
+ {"heh", NULL, NULL, NULL, "Hehe"},
+ {"hei", NULL, NULL, NULL, "Heiltsuk"},
+ {"hem", NULL, NULL, NULL, "Hemba"},
+ {"her", "her", "her", "hz", "Herero"},
+ {"hgm", NULL, NULL, NULL, "Haiǁom"},
+ {"hgw", NULL, NULL, NULL, "Haigwai"},
+ {"hhi", NULL, NULL, NULL, "Hoia Hoia"},
+ {"hhr", NULL, NULL, NULL, "Kerak"},
+ {"hhy", NULL, NULL, NULL, "Hoyahoya"},
+ {"hia", NULL, NULL, NULL, "Lamang"},
+ {"hib", NULL, NULL, NULL, "Hibito"},
+ {"hid", NULL, NULL, NULL, "Hidatsa"},
+ {"hif", NULL, NULL, NULL, "Fiji Hindi"},
+ {"hig", NULL, NULL, NULL, "Kamwe"},
+ {"hih", NULL, NULL, NULL, "Pamosu"},
+ {"hii", NULL, NULL, NULL, "Hinduri"},
+ {"hij", NULL, NULL, NULL, "Hijuk"},
+ {"hik", NULL, NULL, NULL, "Seit-Kaitetu"},
+ {"hil", "hil", "hil", NULL, "Hiligaynon"},
+ {"hin", "hin", "hin", "hi", "Hindi"},
+ {"hio", NULL, NULL, NULL, "Tsoa"},
+ {"hir", NULL, NULL, NULL, "Himarimã"},
+ {"hit", "hit", "hit", NULL, "Hittite"},
+ {"hiw", NULL, NULL, NULL, "Hiw"},
+ {"hix", NULL, NULL, NULL, "Hixkaryána"},
+ {"hji", NULL, NULL, NULL, "Haji"},
+ {"hka", NULL, NULL, NULL, "Kahe"},
+ {"hke", NULL, NULL, NULL, "Hunde"},
+ {"hkh", NULL, NULL, NULL, "Khah"},
+ {"hkk", NULL, NULL, NULL, "Hunjara-Kaina Ke"},
+ {"hkn", NULL, NULL, NULL, "Mel-Khaonh"},
+ {"hks", NULL, NULL, NULL, "Hong Kong Sign Language"},
+ {"hla", NULL, NULL, NULL, "Halia"},
+ {"hlb", NULL, NULL, NULL, "Halbi"},
+ {"hld", NULL, NULL, NULL, "Halang Doan"},
+ {"hle", NULL, NULL, NULL, "Hlersu"},
+ {"hlt", NULL, NULL, NULL, "Matu Chin"},
+ {"hlu", NULL, NULL, NULL, "Hieroglyphic Luwian"},
+ {"hma", NULL, NULL, NULL, "Southern Mashan Hmong"},
+ {"hmb", NULL, NULL, NULL, "Humburi Senni Songhay"},
+ {"hmc", NULL, NULL, NULL, "Central Huishui Hmong"},
+ {"hmd", NULL, NULL, NULL, "Large Flowery Miao"},
+ {"hme", NULL, NULL, NULL, "Eastern Huishui Hmong"},
+ {"hmf", NULL, NULL, NULL, "Hmong Don"},
+ {"hmg", NULL, NULL, NULL, "Southwestern Guiyang Hmong"},
+ {"hmh", NULL, NULL, NULL, "Southwestern Huishui Hmong"},
+ {"hmi", NULL, NULL, NULL, "Northern Huishui Hmong"},
+ {"hmj", NULL, NULL, NULL, "Ge"},
+ {"hmk", NULL, NULL, NULL, "Maek"},
+ {"hml", NULL, NULL, NULL, "Luopohe Hmong"},
+ {"hmm", NULL, NULL, NULL, "Central Mashan Hmong"},
+ {"hmn", "hmn", "hmn", NULL, "Hmong"},
+ {"hmo", "hmo", "hmo", "ho", "Hiri Motu"},
+ {"hmp", NULL, NULL, NULL, "Northern Mashan Hmong"},
+ {"hmq", NULL, NULL, NULL, "Eastern Qiandong Miao"},
+ {"hmr", NULL, NULL, NULL, "Hmar"},
+ {"hms", NULL, NULL, NULL, "Southern Qiandong Miao"},
+ {"hmt", NULL, NULL, NULL, "Hamtai"},
+ {"hmu", NULL, NULL, NULL, "Hamap"},
+ {"hmv", NULL, NULL, NULL, "Hmong Dô"},
+ {"hmw", NULL, NULL, NULL, "Western Mashan Hmong"},
+ {"hmy", NULL, NULL, NULL, "Southern Guiyang Hmong"},
+ {"hmz", NULL, NULL, NULL, "Hmong Shua"},
+ {"hna", NULL, NULL, NULL, "Mina (Cameroon)"},
+ {"hnd", NULL, NULL, NULL, "Southern Hindko"},
+ {"hne", NULL, NULL, NULL, "Chhattisgarhi"},
+ {"hng", NULL, NULL, NULL, "Hungu"},
+ {"hnh", NULL, NULL, NULL, "ǁAni"},
+ {"hni", NULL, NULL, NULL, "Hani"},
+ {"hnj", NULL, NULL, NULL, "Hmong Njua"},
+ {"hnn", NULL, NULL, NULL, "Hanunoo"},
+ {"hno", NULL, NULL, NULL, "Northern Hindko"},
+ {"hns", NULL, NULL, NULL, "Caribbean Hindustani"},
+ {"hnu", NULL, NULL, NULL, "Hung"},
+ {"hoa", NULL, NULL, NULL, "Hoava"},
+ {"hob", NULL, NULL, NULL, "Mari (Madang Province)"},
+ {"hoc", NULL, NULL, NULL, "Ho"},
+ {"hod", NULL, NULL, NULL, "Holma"},
+ {"hoe", NULL, NULL, NULL, "Horom"},
+ {"hoh", NULL, NULL, NULL, "Hobyót"},
+ {"hoi", NULL, NULL, NULL, "Holikachuk"},
+ {"hoj", NULL, NULL, NULL, "Hadothi"},
+ {"hol", NULL, NULL, NULL, "Holu"},
+ {"hom", NULL, NULL, NULL, "Homa"},
+ {"hoo", NULL, NULL, NULL, "Holoholo"},
+ {"hop", NULL, NULL, NULL, "Hopi"},
+ {"hor", NULL, NULL, NULL, "Horo"},
+ {"hos", NULL, NULL, NULL, "Ho Chi Minh City Sign Language"},
+ {"hot", NULL, NULL, NULL, "Hote"},
+ {"hov", NULL, NULL, NULL, "Hovongan"},
+ {"how", NULL, NULL, NULL, "Honi"},
+ {"hoy", NULL, NULL, NULL, "Holiya"},
+ {"hoz", NULL, NULL, NULL, "Hozo"},
+ {"hpo", NULL, NULL, NULL, "Hpon"},
+ {"hps", NULL, NULL, NULL, "Hawai'i Sign Language (HSL)"},
+ {"hra", NULL, NULL, NULL, "Hrangkhol"},
+ {"hrc", NULL, NULL, NULL, "Niwer Mil"},
+ {"hre", NULL, NULL, NULL, "Hre"},
+ {"hrk", NULL, NULL, NULL, "Haruku"},
+ {"hrm", NULL, NULL, NULL, "Horned Miao"},
+ {"hro", NULL, NULL, NULL, "Haroi"},
+ {"hrp", NULL, NULL, NULL, "Nhirrpi"},
+ {"hrt", NULL, NULL, NULL, "Hértevin"},
+ {"hru", NULL, NULL, NULL, "Hruso"},
+ {"hrv", "hrv", "hrv", "hr", "Croatian"},
+ {"hrw", NULL, NULL, NULL, "Warwar Feni"},
+ {"hrx", NULL, NULL, NULL, "Hunsrik"},
+ {"hrz", NULL, NULL, NULL, "Harzani"},
+ {"hsb", "hsb", "hsb", NULL, "Upper Sorbian"},
+ {"hsh", NULL, NULL, NULL, "Hungarian Sign Language"},
+ {"hsl", NULL, NULL, NULL, "Hausa Sign Language"},
+ {"hsn", NULL, NULL, NULL, "Xiang Chinese"},
+ {"hss", NULL, NULL, NULL, "Harsusi"},
+ {"hti", NULL, NULL, NULL, "Hoti"},
+ {"hto", NULL, NULL, NULL, "Minica Huitoto"},
+ {"hts", NULL, NULL, NULL, "Hadza"},
+ {"htu", NULL, NULL, NULL, "Hitu"},
+ {"htx", NULL, NULL, NULL, "Middle Hittite"},
+ {"hub", NULL, NULL, NULL, "Huambisa"},
+ {"huc", NULL, NULL, NULL, "ǂHua"},
+ {"hud", NULL, NULL, NULL, "Huaulu"},
+ {"hue", NULL, NULL, NULL, "San Francisco Del Mar Huave"},
+ {"huf", NULL, NULL, NULL, "Humene"},
+ {"hug", NULL, NULL, NULL, "Huachipaeri"},
+ {"huh", NULL, NULL, NULL, "Huilliche"},
+ {"hui", NULL, NULL, NULL, "Huli"},
+ {"huj", NULL, NULL, NULL, "Northern Guiyang Hmong"},
+ {"huk", NULL, NULL, NULL, "Hulung"},
+ {"hul", NULL, NULL, NULL, "Hula"},
+ {"hum", NULL, NULL, NULL, "Hungana"},
+ {"hun", "hun", "hun", "hu", "Hungarian"},
+ {"huo", NULL, NULL, NULL, "Hu"},
+ {"hup", "hup", "hup", NULL, "Hupa"},
+ {"huq", NULL, NULL, NULL, "Tsat"},
+ {"hur", NULL, NULL, NULL, "Halkomelem"},
+ {"hus", NULL, NULL, NULL, "Huastec"},
+ {"hut", NULL, NULL, NULL, "Humla"},
+ {"huu", NULL, NULL, NULL, "Murui Huitoto"},
+ {"huv", NULL, NULL, NULL, "San Mateo Del Mar Huave"},
+ {"huw", NULL, NULL, NULL, "Hukumina"},
+ {"hux", NULL, NULL, NULL, "Nüpode Huitoto"},
+ {"huy", NULL, NULL, NULL, "Hulaulá"},
+ {"huz", NULL, NULL, NULL, "Hunzib"},
+ {"hvc", NULL, NULL, NULL, "Haitian Vodoun Culture Language"},
+ {"hve", NULL, NULL, NULL, "San Dionisio Del Mar Huave"},
+ {"hvk", NULL, NULL, NULL, "Haveke"},
+ {"hvn", NULL, NULL, NULL, "Sabu"},
+ {"hvv", NULL, NULL, NULL, "Santa María Del Mar Huave"},
+ {"hwa", NULL, NULL, NULL, "Wané"},
+ {"hwc", NULL, NULL, NULL, "Hawai'i Creole English"},
+ {"hwo", NULL, NULL, NULL, "Hwana"},
+ {"hya", NULL, NULL, NULL, "Hya"},
+ {"hye", "arm", "hye", "hy", "Armenian"},
+ {"hyw", NULL, NULL, NULL, "Western Armenian"},
+ {"iai", NULL, NULL, NULL, "Iaai"},
+ {"ian", NULL, NULL, NULL, "Iatmul"},
+ {"iar", NULL, NULL, NULL, "Purari"},
+ {"iba", "iba", "iba", NULL, "Iban"},
+ {"ibb", NULL, NULL, NULL, "Ibibio"},
+ {"ibd", NULL, NULL, NULL, "Iwaidja"},
+ {"ibe", NULL, NULL, NULL, "Akpes"},
+ {"ibg", NULL, NULL, NULL, "Ibanag"},
+ {"ibh", NULL, NULL, NULL, "Bih"},
+ {"ibl", NULL, NULL, NULL, "Ibaloi"},
+ {"ibm", NULL, NULL, NULL, "Agoi"},
+ {"ibn", NULL, NULL, NULL, "Ibino"},
+ {"ibo", "ibo", "ibo", "ig", "Igbo"},
+ {"ibr", NULL, NULL, NULL, "Ibuoro"},
+ {"ibu", NULL, NULL, NULL, "Ibu"},
+ {"iby", NULL, NULL, NULL, "Ibani"},
+ {"ica", NULL, NULL, NULL, "Ede Ica"},
+ {"ich", NULL, NULL, NULL, "Etkywan"},
+ {"icl", NULL, NULL, NULL, "Icelandic Sign Language"},
+ {"icr", NULL, NULL, NULL, "Islander Creole English"},
+ {"ida", NULL, NULL, NULL, "Idakho-Isukha-Tiriki"},
+ {"idb", NULL, NULL, NULL, "Indo-Portuguese"},
+ {"idc", NULL, NULL, NULL, "Idon"},
+ {"idd", NULL, NULL, NULL, "Ede Idaca"},
+ {"ide", NULL, NULL, NULL, "Idere"},
+ {"idi", NULL, NULL, NULL, "Idi"},
+ {"ido", "ido", "ido", "io", "Ido"},
+ {"idr", NULL, NULL, NULL, "Indri"},
+ {"ids", NULL, NULL, NULL, "Idesa"},
+ {"idt", NULL, NULL, NULL, "Idaté"},
+ {"idu", NULL, NULL, NULL, "Idoma"},
+ {"ifa", NULL, NULL, NULL, "Amganad Ifugao"},
+ {"ifb", NULL, NULL, NULL, "Batad Ifugao"},
+ {"ife", NULL, NULL, NULL, "Ifè"},
+ {"iff", NULL, NULL, NULL, "Ifo"},
+ {"ifk", NULL, NULL, NULL, "Tuwali Ifugao"},
+ {"ifm", NULL, NULL, NULL, "Teke-Fuumu"},
+ {"ifu", NULL, NULL, NULL, "Mayoyao Ifugao"},
+ {"ify", NULL, NULL, NULL, "Keley-I Kallahan"},
+ {"igb", NULL, NULL, NULL, "Ebira"},
+ {"ige", NULL, NULL, NULL, "Igede"},
+ {"igg", NULL, NULL, NULL, "Igana"},
+ {"igl", NULL, NULL, NULL, "Igala"},
+ {"igm", NULL, NULL, NULL, "Kanggape"},
+ {"ign", NULL, NULL, NULL, "Ignaciano"},
+ {"igo", NULL, NULL, NULL, "Isebe"},
+ {"igs", NULL, NULL, NULL, "Interglossa"},
+ {"igw", NULL, NULL, NULL, "Igwe"},
+ {"ihb", NULL, NULL, NULL, "Iha Based Pidgin"},
+ {"ihi", NULL, NULL, NULL, "Ihievbe"},
+ {"ihp", NULL, NULL, NULL, "Iha"},
+ {"ihw", NULL, NULL, NULL, "Bidhawal"},
+ {"iii", "iii", "iii", "ii", "Sichuan Yi"},
+ {"iin", NULL, NULL, NULL, "Thiin"},
+ {"ijc", NULL, NULL, NULL, "Izon"},
+ {"ije", NULL, NULL, NULL, "Biseni"},
+ {"ijj", NULL, NULL, NULL, "Ede Ije"},
+ {"ijn", NULL, NULL, NULL, "Kalabari"},
+ {"ijs", NULL, NULL, NULL, "Southeast Ijo"},
+ {"ike", NULL, NULL, NULL, "Eastern Canadian Inuktitut"},
+ {"iki", NULL, NULL, NULL, "Iko"},
+ {"ikk", NULL, NULL, NULL, "Ika"},
+ {"ikl", NULL, NULL, NULL, "Ikulu"},
+ {"iko", NULL, NULL, NULL, "Olulumo-Ikom"},
+ {"ikp", NULL, NULL, NULL, "Ikpeshi"},
+ {"ikr", NULL, NULL, NULL, "Ikaranggal"},
+ {"iks", NULL, NULL, NULL, "Inuit Sign Language"},
+ {"ikt", NULL, NULL, NULL, "Inuinnaqtun"},
+ {"iku", "iku", "iku", "iu", "Inuktitut"},
+ {"ikv", NULL, NULL, NULL, "Iku-Gora-Ankwa"},
+ {"ikw", NULL, NULL, NULL, "Ikwere"},
+ {"ikx", NULL, NULL, NULL, "Ik"},
+ {"ikz", NULL, NULL, NULL, "Ikizu"},
+ {"ila", NULL, NULL, NULL, "Ile Ape"},
+ {"ilb", NULL, NULL, NULL, "Ila"},
+ {"ile", "ile", "ile", "ie", "Interlingue"},
+ {"ilg", NULL, NULL, NULL, "Garig-Ilgar"},
+ {"ili", NULL, NULL, NULL, "Ili Turki"},
+ {"ilk", NULL, NULL, NULL, "Ilongot"},
+ {"ilm", NULL, NULL, NULL, "Iranun (Malaysia)"},
+ {"ilo", "ilo", "ilo", NULL, "Iloko"},
+ {"ilp", NULL, NULL, NULL, "Iranun (Philippines)"},
+ {"ils", NULL, NULL, NULL, "International Sign"},
+ {"ilu", NULL, NULL, NULL, "Ili'uun"},
+ {"ilv", NULL, NULL, NULL, "Ilue"},
+ {"ima", NULL, NULL, NULL, "Mala Malasar"},
+ {"imi", NULL, NULL, NULL, "Anamgura"},
+ {"iml", NULL, NULL, NULL, "Miluk"},
+ {"imn", NULL, NULL, NULL, "Imonda"},
+ {"imo", NULL, NULL, NULL, "Imbongu"},
+ {"imr", NULL, NULL, NULL, "Imroing"},
+ {"ims", NULL, NULL, NULL, "Marsian"},
+ {"imy", NULL, NULL, NULL, "Milyan"},
+ {"ina", "ina", "ina", "ia", "Interlingua (International Auxiliary Language Association)"},
+ {"inb", NULL, NULL, NULL, "Inga"},
+ {"ind", "ind", "ind", "id", "Indonesian"},
+ {"ing", NULL, NULL, NULL, "Degexit'an"},
+ {"inh", "inh", "inh", NULL, "Ingush"},
+ {"inj", NULL, NULL, NULL, "Jungle Inga"},
+ {"inl", NULL, NULL, NULL, "Indonesian Sign Language"},
+ {"inm", NULL, NULL, NULL, "Minaean"},
+ {"inn", NULL, NULL, NULL, "Isinai"},
+ {"ino", NULL, NULL, NULL, "Inoke-Yate"},
+ {"inp", NULL, NULL, NULL, "Iñapari"},
+ {"ins", NULL, NULL, NULL, "Indian Sign Language"},
+ {"int", NULL, NULL, NULL, "Intha"},
+ {"inz", NULL, NULL, NULL, "Ineseño"},
+ {"ior", NULL, NULL, NULL, "Inor"},
+ {"iou", NULL, NULL, NULL, "Tuma-Irumu"},
+ {"iow", NULL, NULL, NULL, "Iowa-Oto"},
+ {"ipi", NULL, NULL, NULL, "Ipili"},
+ {"ipk", "ipk", "ipk", "ik", "Inupiaq"},
+ {"ipo", NULL, NULL, NULL, "Ipiko"},
+ {"iqu", NULL, NULL, NULL, "Iquito"},
+ {"iqw", NULL, NULL, NULL, "Ikwo"},
+ {"ire", NULL, NULL, NULL, "Iresim"},
+ {"irh", NULL, NULL, NULL, "Irarutu"},
+ {"iri", NULL, NULL, NULL, "Rigwe"},
+ {"irk", NULL, NULL, NULL, "Iraqw"},
+ {"irn", NULL, NULL, NULL, "Irántxe"},
+ {"irr", NULL, NULL, NULL, "Ir"},
+ {"iru", NULL, NULL, NULL, "Irula"},
+ {"irx", NULL, NULL, NULL, "Kamberau"},
+ {"iry", NULL, NULL, NULL, "Iraya"},
+ {"isa", NULL, NULL, NULL, "Isabi"},
+ {"isc", NULL, NULL, NULL, "Isconahua"},
+ {"isd", NULL, NULL, NULL, "Isnag"},
+ {"ise", NULL, NULL, NULL, "Italian Sign Language"},
+ {"isg", NULL, NULL, NULL, "Irish Sign Language"},
+ {"ish", NULL, NULL, NULL, "Esan"},
+ {"isi", NULL, NULL, NULL, "Nkem-Nkum"},
+ {"isk", NULL, NULL, NULL, "Ishkashimi"},
+ {"isl", "ice", "isl", "is", "Icelandic"},
+ {"ism", NULL, NULL, NULL, "Masimasi"},
+ {"isn", NULL, NULL, NULL, "Isanzu"},
+ {"iso", NULL, NULL, NULL, "Isoko"},
+ {"isr", NULL, NULL, NULL, "Israeli Sign Language"},
+ {"ist", NULL, NULL, NULL, "Istriot"},
+ {"isu", NULL, NULL, NULL, "Isu (Menchum Division)"},
+ {"ita", "ita", "ita", "it", "Italian"},
+ {"itb", NULL, NULL, NULL, "Binongan Itneg"},
+ {"itd", NULL, NULL, NULL, "Southern Tidung"},
+ {"ite", NULL, NULL, NULL, "Itene"},
+ {"iti", NULL, NULL, NULL, "Inlaod Itneg"},
+ {"itk", NULL, NULL, NULL, "Judeo-Italian"},
+ {"itl", NULL, NULL, NULL, "Itelmen"},
+ {"itm", NULL, NULL, NULL, "Itu Mbon Uzo"},
+ {"ito", NULL, NULL, NULL, "Itonama"},
+ {"itr", NULL, NULL, NULL, "Iteri"},
+ {"its", NULL, NULL, NULL, "Isekiri"},
+ {"itt", NULL, NULL, NULL, "Maeng Itneg"},
+ {"itv", NULL, NULL, NULL, "Itawit"},
+ {"itw", NULL, NULL, NULL, "Ito"},
+ {"itx", NULL, NULL, NULL, "Itik"},
+ {"ity", NULL, NULL, NULL, "Moyadan Itneg"},
+ {"itz", NULL, NULL, NULL, "Itzá"},
+ {"ium", NULL, NULL, NULL, "Iu Mien"},
+ {"ivb", NULL, NULL, NULL, "Ibatan"},
+ {"ivv", NULL, NULL, NULL, "Ivatan"},
+ {"iwk", NULL, NULL, NULL, "I-Wak"},
+ {"iwm", NULL, NULL, NULL, "Iwam"},
+ {"iwo", NULL, NULL, NULL, "Iwur"},
+ {"iws", NULL, NULL, NULL, "Sepik Iwam"},
+ {"ixc", NULL, NULL, NULL, "Ixcatec"},
+ {"ixl", NULL, NULL, NULL, "Ixil"},
+ {"iya", NULL, NULL, NULL, "Iyayu"},
+ {"iyo", NULL, NULL, NULL, "Mesaka"},
+ {"iyx", NULL, NULL, NULL, "Yaka (Congo)"},
+ {"izh", NULL, NULL, NULL, "Ingrian"},
+ {"izr", NULL, NULL, NULL, "Izere"},
+ {"izz", NULL, NULL, NULL, "Izii"},
+ {"jaa", NULL, NULL, NULL, "Jamamadí"},
+ {"jab", NULL, NULL, NULL, "Hyam"},
+ {"jac", NULL, NULL, NULL, "Popti'"},
+ {"jad", NULL, NULL, NULL, "Jahanka"},
+ {"jae", NULL, NULL, NULL, "Yabem"},
+ {"jaf", NULL, NULL, NULL, "Jara"},
+ {"jah", NULL, NULL, NULL, "Jah Hut"},
+ {"jaj", NULL, NULL, NULL, "Zazao"},
+ {"jak", NULL, NULL, NULL, "Jakun"},
+ {"jal", NULL, NULL, NULL, "Yalahatan"},
+ {"jam", NULL, NULL, NULL, "Jamaican Creole English"},
+ {"jan", NULL, NULL, NULL, "Jandai"},
+ {"jao", NULL, NULL, NULL, "Yanyuwa"},
+ {"jaq", NULL, NULL, NULL, "Yaqay"},
+ {"jas", NULL, NULL, NULL, "New Caledonian Javanese"},
+ {"jat", NULL, NULL, NULL, "Jakati"},
+ {"jau", NULL, NULL, NULL, "Yaur"},
+ {"jav", "jav", "jav", "jv", "Javanese"},
+ {"jax", NULL, NULL, NULL, "Jambi Malay"},
+ {"jay", NULL, NULL, NULL, "Yan-nhangu"},
+ {"jaz", NULL, NULL, NULL, "Jawe"},
+ {"jbe", NULL, NULL, NULL, "Judeo-Berber"},
+ {"jbi", NULL, NULL, NULL, "Badjiri"},
+ {"jbj", NULL, NULL, NULL, "Arandai"},
+ {"jbk", NULL, NULL, NULL, "Barikewa"},
+ {"jbm", NULL, NULL, NULL, "Bijim"},
+ {"jbn", NULL, NULL, NULL, "Nafusi"},
+ {"jbo", "jbo", "jbo", NULL, "Lojban"},
+ {"jbr", NULL, NULL, NULL, "Jofotek-Bromnya"},
+ {"jbt", NULL, NULL, NULL, "Jabutí"},
+ {"jbu", NULL, NULL, NULL, "Jukun Takum"},
+ {"jbw", NULL, NULL, NULL, "Yawijibaya"},
+ {"jcs", NULL, NULL, NULL, "Jamaican Country Sign Language"},
+ {"jct", NULL, NULL, NULL, "Krymchak"},
+ {"jda", NULL, NULL, NULL, "Jad"},
+ {"jdg", NULL, NULL, NULL, "Jadgali"},
+ {"jdt", NULL, NULL, NULL, "Judeo-Tat"},
+ {"jeb", NULL, NULL, NULL, "Jebero"},
+ {"jee", NULL, NULL, NULL, "Jerung"},
+ {"jeh", NULL, NULL, NULL, "Jeh"},
+ {"jei", NULL, NULL, NULL, "Yei"},
+ {"jek", NULL, NULL, NULL, "Jeri Kuo"},
+ {"jel", NULL, NULL, NULL, "Yelmek"},
+ {"jen", NULL, NULL, NULL, "Dza"},
+ {"jer", NULL, NULL, NULL, "Jere"},
+ {"jet", NULL, NULL, NULL, "Manem"},
+ {"jeu", NULL, NULL, NULL, "Jonkor Bourmataguil"},
+ {"jgb", NULL, NULL, NULL, "Ngbee"},
+ {"jge", NULL, NULL, NULL, "Judeo-Georgian"},
+ {"jgk", NULL, NULL, NULL, "Gwak"},
+ {"jgo", NULL, NULL, NULL, "Ngomba"},
+ {"jhi", NULL, NULL, NULL, "Jehai"},
+ {"jhs", NULL, NULL, NULL, "Jhankot Sign Language"},
+ {"jia", NULL, NULL, NULL, "Jina"},
+ {"jib", NULL, NULL, NULL, "Jibu"},
+ {"jic", NULL, NULL, NULL, "Tol"},
+ {"jid", NULL, NULL, NULL, "Bu (Kaduna State)"},
+ {"jie", NULL, NULL, NULL, "Jilbe"},
+ {"jig", NULL, NULL, NULL, "Jingulu"},
+ {"jih", NULL, NULL, NULL, "sTodsde"},
+ {"jii", NULL, NULL, NULL, "Jiiddu"},
+ {"jil", NULL, NULL, NULL, "Jilim"},
+ {"jim", NULL, NULL, NULL, "Jimi (Cameroon)"},
+ {"jio", NULL, NULL, NULL, "Jiamao"},
+ {"jiq", NULL, NULL, NULL, "Guanyinqiao"},
+ {"jit", NULL, NULL, NULL, "Jita"},
+ {"jiu", NULL, NULL, NULL, "Youle Jinuo"},
+ {"jiv", NULL, NULL, NULL, "Shuar"},
+ {"jiy", NULL, NULL, NULL, "Buyuan Jinuo"},
+ {"jje", NULL, NULL, NULL, "Jejueo"},
+ {"jjr", NULL, NULL, NULL, "Bankal"},
+ {"jka", NULL, NULL, NULL, "Kaera"},
+ {"jkm", NULL, NULL, NULL, "Mobwa Karen"},
+ {"jko", NULL, NULL, NULL, "Kubo"},
+ {"jkp", NULL, NULL, NULL, "Paku Karen"},
+ {"jkr", NULL, NULL, NULL, "Koro (India)"},
+ {"jks", NULL, NULL, NULL, "Amami Koniya Sign Language"},
+ {"jku", NULL, NULL, NULL, "Labir"},
+ {"jle", NULL, NULL, NULL, "Ngile"},
+ {"jls", NULL, NULL, NULL, "Jamaican Sign Language"},
+ {"jma", NULL, NULL, NULL, "Dima"},
+ {"jmb", NULL, NULL, NULL, "Zumbun"},
+ {"jmc", NULL, NULL, NULL, "Machame"},
+ {"jmd", NULL, NULL, NULL, "Yamdena"},
+ {"jmi", NULL, NULL, NULL, "Jimi (Nigeria)"},
+ {"jml", NULL, NULL, NULL, "Jumli"},
+ {"jmn", NULL, NULL, NULL, "Makuri Naga"},
+ {"jmr", NULL, NULL, NULL, "Kamara"},
+ {"jms", NULL, NULL, NULL, "Mashi (Nigeria)"},
+ {"jmw", NULL, NULL, NULL, "Mouwase"},
+ {"jmx", NULL, NULL, NULL, "Western Juxtlahuaca Mixtec"},
+ {"jna", NULL, NULL, NULL, "Jangshung"},
+ {"jnd", NULL, NULL, NULL, "Jandavra"},
+ {"jng", NULL, NULL, NULL, "Yangman"},
+ {"jni", NULL, NULL, NULL, "Janji"},
+ {"jnj", NULL, NULL, NULL, "Yemsa"},
+ {"jnl", NULL, NULL, NULL, "Rawat"},
+ {"jns", NULL, NULL, NULL, "Jaunsari"},
+ {"job", NULL, NULL, NULL, "Joba"},
+ {"jod", NULL, NULL, NULL, "Wojenaka"},
+ {"jog", NULL, NULL, NULL, "Jogi"},
+ {"jor", NULL, NULL, NULL, "Jorá"},
+ {"jos", NULL, NULL, NULL, "Jordanian Sign Language"},
+ {"jow", NULL, NULL, NULL, "Jowulu"},
+ {"jpa", NULL, NULL, NULL, "Jewish Palestinian Aramaic"},
+ {"jpn", "jpn", "jpn", "ja", "Japanese"},
+ {"jpr", "jpr", "jpr", NULL, "Judeo-Persian"},
+ {"jqr", NULL, NULL, NULL, "Jaqaru"},
+ {"jra", NULL, NULL, NULL, "Jarai"},
+ {"jrb", "jrb", "jrb", NULL, "Judeo-Arabic"},
+ {"jrr", NULL, NULL, NULL, "Jiru"},
+ {"jrt", NULL, NULL, NULL, "Jakattoe"},
+ {"jru", NULL, NULL, NULL, "Japrería"},
+ {"jsl", NULL, NULL, NULL, "Japanese Sign Language"},
+ {"jua", NULL, NULL, NULL, "Júma"},
+ {"jub", NULL, NULL, NULL, "Wannu"},
+ {"juc", NULL, NULL, NULL, "Jurchen"},
+ {"jud", NULL, NULL, NULL, "Worodougou"},
+ {"juh", NULL, NULL, NULL, "Hõne"},
+ {"jui", NULL, NULL, NULL, "Ngadjuri"},
+ {"juk", NULL, NULL, NULL, "Wapan"},
+ {"jul", NULL, NULL, NULL, "Jirel"},
+ {"jum", NULL, NULL, NULL, "Jumjum"},
+ {"jun", NULL, NULL, NULL, "Juang"},
+ {"juo", NULL, NULL, NULL, "Jiba"},
+ {"jup", NULL, NULL, NULL, "Hupdë"},
+ {"jur", NULL, NULL, NULL, "Jurúna"},
+ {"jus", NULL, NULL, NULL, "Jumla Sign Language"},
+ {"jut", NULL, NULL, NULL, "Jutish"},
+ {"juu", NULL, NULL, NULL, "Ju"},
+ {"juw", NULL, NULL, NULL, "Wãpha"},
+ {"juy", NULL, NULL, NULL, "Juray"},
+ {"jvd", NULL, NULL, NULL, "Javindo"},
+ {"jvn", NULL, NULL, NULL, "Caribbean Javanese"},
+ {"jwi", NULL, NULL, NULL, "Jwira-Pepesa"},
+ {"jya", NULL, NULL, NULL, "Jiarong"},
+ {"jye", NULL, NULL, NULL, "Judeo-Yemeni Arabic"},
+ {"jyy", NULL, NULL, NULL, "Jaya"},
+ {"kaa", "kaa", "kaa", NULL, "Kara-Kalpak"},
+ {"kab", "kab", "kab", NULL, "Kabyle"},
+ {"kac", "kac", "kac", NULL, "Kachin"},
+ {"kad", NULL, NULL, NULL, "Adara"},
+ {"kae", NULL, NULL, NULL, "Ketangalan"},
+ {"kaf", NULL, NULL, NULL, "Katso"},
+ {"kag", NULL, NULL, NULL, "Kajaman"},
+ {"kah", NULL, NULL, NULL, "Kara (Central African Republic)"},
+ {"kai", NULL, NULL, NULL, "Karekare"},
+ {"kaj", NULL, NULL, NULL, "Jju"},
+ {"kak", NULL, NULL, NULL, "Kalanguya"},
+ {"kal", "kal", "kal", "kl", "Kalaallisut"},
+ {"kam", "kam", "kam", NULL, "Kamba (Kenya)"},
+ {"kan", "kan", "kan", "kn", "Kannada"},
+ {"kao", NULL, NULL, NULL, "Xaasongaxango"},
+ {"kap", NULL, NULL, NULL, "Bezhta"},
+ {"kaq", NULL, NULL, NULL, "Capanahua"},
+ {"kas", "kas", "kas", "ks", "Kashmiri"},
+ {"kat", "geo", "kat", "ka", "Georgian"},
+ {"kau", "kau", "kau", "kr", "Kanuri"},
+ {"kav", NULL, NULL, NULL, "Katukína"},
+ {"kaw", "kaw", "kaw", NULL, "Kawi"},
+ {"kax", NULL, NULL, NULL, "Kao"},
+ {"kay", NULL, NULL, NULL, "Kamayurá"},
+ {"kaz", "kaz", "kaz", "kk", "Kazakh"},
+ {"kba", NULL, NULL, NULL, "Kalarko"},
+ {"kbb", NULL, NULL, NULL, "Kaxuiâna"},
+ {"kbc", NULL, NULL, NULL, "Kadiwéu"},
+ {"kbd", "kbd", "kbd", NULL, "Kabardian"},
+ {"kbe", NULL, NULL, NULL, "Kanju"},
+ {"kbg", NULL, NULL, NULL, "Khamba"},
+ {"kbh", NULL, NULL, NULL, "Camsá"},
+ {"kbi", NULL, NULL, NULL, "Kaptiau"},
+ {"kbj", NULL, NULL, NULL, "Kari"},
+ {"kbk", NULL, NULL, NULL, "Grass Koiari"},
+ {"kbl", NULL, NULL, NULL, "Kanembu"},
+ {"kbm", NULL, NULL, NULL, "Iwal"},
+ {"kbn", NULL, NULL, NULL, "Kare (Central African Republic)"},
+ {"kbo", NULL, NULL, NULL, "Keliko"},
+ {"kbp", NULL, NULL, NULL, "Kabiyè"},
+ {"kbq", NULL, NULL, NULL, "Kamano"},
+ {"kbr", NULL, NULL, NULL, "Kafa"},
+ {"kbs", NULL, NULL, NULL, "Kande"},
+ {"kbt", NULL, NULL, NULL, "Abadi"},
+ {"kbu", NULL, NULL, NULL, "Kabutra"},
+ {"kbv", NULL, NULL, NULL, "Dera (Indonesia)"},
+ {"kbw", NULL, NULL, NULL, "Kaiep"},
+ {"kbx", NULL, NULL, NULL, "Ap Ma"},
+ {"kby", NULL, NULL, NULL, "Manga Kanuri"},
+ {"kbz", NULL, NULL, NULL, "Duhwa"},
+ {"kca", NULL, NULL, NULL, "Khanty"},
+ {"kcb", NULL, NULL, NULL, "Kawacha"},
+ {"kcc", NULL, NULL, NULL, "Lubila"},
+ {"kcd", NULL, NULL, NULL, "Ngkâlmpw Kanum"},
+ {"kce", NULL, NULL, NULL, "Kaivi"},
+ {"kcf", NULL, NULL, NULL, "Ukaan"},
+ {"kcg", NULL, NULL, NULL, "Tyap"},
+ {"kch", NULL, NULL, NULL, "Vono"},
+ {"kci", NULL, NULL, NULL, "Kamantan"},
+ {"kcj", NULL, NULL, NULL, "Kobiana"},
+ {"kck", NULL, NULL, NULL, "Kalanga"},
+ {"kcl", NULL, NULL, NULL, "Kela (Papua New Guinea)"},
+ {"kcm", NULL, NULL, NULL, "Gula (Central African Republic)"},
+ {"kcn", NULL, NULL, NULL, "Nubi"},
+ {"kco", NULL, NULL, NULL, "Kinalakna"},
+ {"kcp", NULL, NULL, NULL, "Kanga"},
+ {"kcq", NULL, NULL, NULL, "Kamo"},
+ {"kcr", NULL, NULL, NULL, "Katla"},
+ {"kcs", NULL, NULL, NULL, "Koenoem"},
+ {"kct", NULL, NULL, NULL, "Kaian"},
+ {"kcu", NULL, NULL, NULL, "Kami (Tanzania)"},
+ {"kcv", NULL, NULL, NULL, "Kete"},
+ {"kcw", NULL, NULL, NULL, "Kabwari"},
+ {"kcx", NULL, NULL, NULL, "Kachama-Ganjule"},
+ {"kcy", NULL, NULL, NULL, "Korandje"},
+ {"kcz", NULL, NULL, NULL, "Konongo"},
+ {"kda", NULL, NULL, NULL, "Worimi"},
+ {"kdc", NULL, NULL, NULL, "Kutu"},
+ {"kdd", NULL, NULL, NULL, "Yankunytjatjara"},
+ {"kde", NULL, NULL, NULL, "Makonde"},
+ {"kdf", NULL, NULL, NULL, "Mamusi"},
+ {"kdg", NULL, NULL, NULL, "Seba"},
+ {"kdh", NULL, NULL, NULL, "Tem"},
+ {"kdi", NULL, NULL, NULL, "Kumam"},
+ {"kdj", NULL, NULL, NULL, "Karamojong"},
+ {"kdk", NULL, NULL, NULL, "Numèè"},
+ {"kdl", NULL, NULL, NULL, "Tsikimba"},
+ {"kdm", NULL, NULL, NULL, "Kagoma"},
+ {"kdn", NULL, NULL, NULL, "Kunda"},
+ {"kdp", NULL, NULL, NULL, "Kaningdon-Nindem"},
+ {"kdq", NULL, NULL, NULL, "Koch"},
+ {"kdr", NULL, NULL, NULL, "Karaim"},
+ {"kdt", NULL, NULL, NULL, "Kuy"},
+ {"kdu", NULL, NULL, NULL, "Kadaru"},
+ {"kdw", NULL, NULL, NULL, "Koneraw"},
+ {"kdx", NULL, NULL, NULL, "Kam"},
+ {"kdy", NULL, NULL, NULL, "Keder"},
+ {"kdz", NULL, NULL, NULL, "Kwaja"},
+ {"kea", NULL, NULL, NULL, "Kabuverdianu"},
+ {"keb", NULL, NULL, NULL, "Kélé"},
+ {"kec", NULL, NULL, NULL, "Keiga"},
+ {"ked", NULL, NULL, NULL, "Kerewe"},
+ {"kee", NULL, NULL, NULL, "Eastern Keres"},
+ {"kef", NULL, NULL, NULL, "Kpessi"},
+ {"keg", NULL, NULL, NULL, "Tese"},
+ {"keh", NULL, NULL, NULL, "Keak"},
+ {"kei", NULL, NULL, NULL, "Kei"},
+ {"kej", NULL, NULL, NULL, "Kadar"},
+ {"kek", NULL, NULL, NULL, "Kekchí"},
+ {"kel", NULL, NULL, NULL, "Kela (Democratic Republic of Congo)"},
+ {"kem", NULL, NULL, NULL, "Kemak"},
+ {"ken", NULL, NULL, NULL, "Kenyang"},
+ {"keo", NULL, NULL, NULL, "Kakwa"},
+ {"kep", NULL, NULL, NULL, "Kaikadi"},
+ {"keq", NULL, NULL, NULL, "Kamar"},
+ {"ker", NULL, NULL, NULL, "Kera"},
+ {"kes", NULL, NULL, NULL, "Kugbo"},
+ {"ket", NULL, NULL, NULL, "Ket"},
+ {"keu", NULL, NULL, NULL, "Akebu"},
+ {"kev", NULL, NULL, NULL, "Kanikkaran"},
+ {"kew", NULL, NULL, NULL, "West Kewa"},
+ {"kex", NULL, NULL, NULL, "Kukna"},
+ {"key", NULL, NULL, NULL, "Kupia"},
+ {"kez", NULL, NULL, NULL, "Kukele"},
+ {"kfa", NULL, NULL, NULL, "Kodava"},
+ {"kfb", NULL, NULL, NULL, "Northwestern Kolami"},
+ {"kfc", NULL, NULL, NULL, "Konda-Dora"},
+ {"kfd", NULL, NULL, NULL, "Korra Koraga"},
+ {"kfe", NULL, NULL, NULL, "Kota (India)"},
+ {"kff", NULL, NULL, NULL, "Koya"},
+ {"kfg", NULL, NULL, NULL, "Kudiya"},
+ {"kfh", NULL, NULL, NULL, "Kurichiya"},
+ {"kfi", NULL, NULL, NULL, "Kannada Kurumba"},
+ {"kfj", NULL, NULL, NULL, "Kemiehua"},
+ {"kfk", NULL, NULL, NULL, "Kinnauri"},
+ {"kfl", NULL, NULL, NULL, "Kung"},
+ {"kfm", NULL, NULL, NULL, "Khunsari"},
+ {"kfn", NULL, NULL, NULL, "Kuk"},
+ {"kfo", NULL, NULL, NULL, "Koro (Côte d'Ivoire)"},
+ {"kfp", NULL, NULL, NULL, "Korwa"},
+ {"kfq", NULL, NULL, NULL, "Korku"},
+ {"kfr", NULL, NULL, NULL, "Kachhi"},
+ {"kfs", NULL, NULL, NULL, "Bilaspuri"},
+ {"kft", NULL, NULL, NULL, "Kanjari"},
+ {"kfu", NULL, NULL, NULL, "Katkari"},
+ {"kfv", NULL, NULL, NULL, "Kurmukar"},
+ {"kfw", NULL, NULL, NULL, "Kharam Naga"},
+ {"kfx", NULL, NULL, NULL, "Kullu Pahari"},
+ {"kfy", NULL, NULL, NULL, "Kumaoni"},
+ {"kfz", NULL, NULL, NULL, "Koromfé"},
+ {"kga", NULL, NULL, NULL, "Koyaga"},
+ {"kgb", NULL, NULL, NULL, "Kawe"},
+ {"kge", NULL, NULL, NULL, "Komering"},
+ {"kgf", NULL, NULL, NULL, "Kube"},
+ {"kgg", NULL, NULL, NULL, "Kusunda"},
+ {"kgi", NULL, NULL, NULL, "Selangor Sign Language"},
+ {"kgj", NULL, NULL, NULL, "Gamale Kham"},
+ {"kgk", NULL, NULL, NULL, "Kaiwá"},
+ {"kgl", NULL, NULL, NULL, "Kunggari"},
+ {"kgm", NULL, NULL, NULL, "Karipúna"},
+ {"kgn", NULL, NULL, NULL, "Karingani"},
+ {"kgo", NULL, NULL, NULL, "Krongo"},
+ {"kgp", NULL, NULL, NULL, "Kaingang"},
+ {"kgq", NULL, NULL, NULL, "Kamoro"},
+ {"kgr", NULL, NULL, NULL, "Abun"},
+ {"kgs", NULL, NULL, NULL, "Kumbainggar"},
+ {"kgt", NULL, NULL, NULL, "Somyev"},
+ {"kgu", NULL, NULL, NULL, "Kobol"},
+ {"kgv", NULL, NULL, NULL, "Karas"},
+ {"kgw", NULL, NULL, NULL, "Karon Dori"},
+ {"kgx", NULL, NULL, NULL, "Kamaru"},
+ {"kgy", NULL, NULL, NULL, "Kyerung"},
+ {"kha", "kha", "kha", NULL, "Khasi"},
+ {"khb", NULL, NULL, NULL, "Lü"},
+ {"khc", NULL, NULL, NULL, "Tukang Besi North"},
+ {"khd", NULL, NULL, NULL, "Bädi Kanum"},
+ {"khe", NULL, NULL, NULL, "Korowai"},
+ {"khf", NULL, NULL, NULL, "Khuen"},
+ {"khg", NULL, NULL, NULL, "Khams Tibetan"},
+ {"khh", NULL, NULL, NULL, "Kehu"},
+ {"khj", NULL, NULL, NULL, "Kuturmi"},
+ {"khk", NULL, NULL, NULL, "Halh Mongolian"},
+ {"khl", NULL, NULL, NULL, "Lusi"},
+ {"khm", "khm", "khm", "km", "Khmer"},
+ {"khn", NULL, NULL, NULL, "Khandesi"},
+ {"kho", "kho", "kho", NULL, "Khotanese"},
+ {"khp", NULL, NULL, NULL, "Kapori"},
+ {"khq", NULL, NULL, NULL, "Koyra Chiini Songhay"},
+ {"khr", NULL, NULL, NULL, "Kharia"},
+ {"khs", NULL, NULL, NULL, "Kasua"},
+ {"kht", NULL, NULL, NULL, "Khamti"},
+ {"khu", NULL, NULL, NULL, "Nkhumbi"},
+ {"khv", NULL, NULL, NULL, "Khvarshi"},
+ {"khw", NULL, NULL, NULL, "Khowar"},
+ {"khx", NULL, NULL, NULL, "Kanu"},
+ {"khy", NULL, NULL, NULL, "Kele (Democratic Republic of Congo)"},
+ {"khz", NULL, NULL, NULL, "Keapara"},
+ {"kia", NULL, NULL, NULL, "Kim"},
+ {"kib", NULL, NULL, NULL, "Koalib"},
+ {"kic", NULL, NULL, NULL, "Kickapoo"},
+ {"kid", NULL, NULL, NULL, "Koshin"},
+ {"kie", NULL, NULL, NULL, "Kibet"},
+ {"kif", NULL, NULL, NULL, "Eastern Parbate Kham"},
+ {"kig", NULL, NULL, NULL, "Kimaama"},
+ {"kih", NULL, NULL, NULL, "Kilmeri"},
+ {"kii", NULL, NULL, NULL, "Kitsai"},
+ {"kij", NULL, NULL, NULL, "Kilivila"},
+ {"kik", "kik", "kik", "ki", "Kikuyu"},
+ {"kil", NULL, NULL, NULL, "Kariya"},
+ {"kim", NULL, NULL, NULL, "Karagas"},
+ {"kin", "kin", "kin", "rw", "Kinyarwanda"},
+ {"kio", NULL, NULL, NULL, "Kiowa"},
+ {"kip", NULL, NULL, NULL, "Sheshi Kham"},
+ {"kiq", NULL, NULL, NULL, "Kosadle"},
+ {"kir", "kir", "kir", "ky", "Kirghiz"},
+ {"kis", NULL, NULL, NULL, "Kis"},
+ {"kit", NULL, NULL, NULL, "Agob"},
+ {"kiu", NULL, NULL, NULL, "Kirmanjki (individual language)"},
+ {"kiv", NULL, NULL, NULL, "Kimbu"},
+ {"kiw", NULL, NULL, NULL, "Northeast Kiwai"},
+ {"kix", NULL, NULL, NULL, "Khiamniungan Naga"},
+ {"kiy", NULL, NULL, NULL, "Kirikiri"},
+ {"kiz", NULL, NULL, NULL, "Kisi"},
+ {"kja", NULL, NULL, NULL, "Mlap"},
+ {"kjb", NULL, NULL, NULL, "Q'anjob'al"},
+ {"kjc", NULL, NULL, NULL, "Coastal Konjo"},
+ {"kjd", NULL, NULL, NULL, "Southern Kiwai"},
+ {"kje", NULL, NULL, NULL, "Kisar"},
+ {"kjg", NULL, NULL, NULL, "Khmu"},
+ {"kjh", NULL, NULL, NULL, "Khakas"},
+ {"kji", NULL, NULL, NULL, "Zabana"},
+ {"kjj", NULL, NULL, NULL, "Khinalugh"},
+ {"kjk", NULL, NULL, NULL, "Highland Konjo"},
+ {"kjl", NULL, NULL, NULL, "Western Parbate Kham"},
+ {"kjm", NULL, NULL, NULL, "Kháng"},
+ {"kjn", NULL, NULL, NULL, "Kunjen"},
+ {"kjo", NULL, NULL, NULL, "Harijan Kinnauri"},
+ {"kjp", NULL, NULL, NULL, "Pwo Eastern Karen"},
+ {"kjq", NULL, NULL, NULL, "Western Keres"},
+ {"kjr", NULL, NULL, NULL, "Kurudu"},
+ {"kjs", NULL, NULL, NULL, "East Kewa"},
+ {"kjt", NULL, NULL, NULL, "Phrae Pwo Karen"},
+ {"kju", NULL, NULL, NULL, "Kashaya"},
+ {"kjv", NULL, NULL, NULL, "Kaikavian Literary Language"},
+ {"kjx", NULL, NULL, NULL, "Ramopa"},
+ {"kjy", NULL, NULL, NULL, "Erave"},
+ {"kjz", NULL, NULL, NULL, "Bumthangkha"},
+ {"kka", NULL, NULL, NULL, "Kakanda"},
+ {"kkb", NULL, NULL, NULL, "Kwerisa"},
+ {"kkc", NULL, NULL, NULL, "Odoodee"},
+ {"kkd", NULL, NULL, NULL, "Kinuku"},
+ {"kke", NULL, NULL, NULL, "Kakabe"},
+ {"kkf", NULL, NULL, NULL, "Kalaktang Monpa"},
+ {"kkg", NULL, NULL, NULL, "Mabaka Valley Kalinga"},
+ {"kkh", NULL, NULL, NULL, "Khün"},
+ {"kki", NULL, NULL, NULL, "Kagulu"},
+ {"kkj", NULL, NULL, NULL, "Kako"},
+ {"kkk", NULL, NULL, NULL, "Kokota"},
+ {"kkl", NULL, NULL, NULL, "Kosarek Yale"},
+ {"kkm", NULL, NULL, NULL, "Kiong"},
+ {"kkn", NULL, NULL, NULL, "Kon Keu"},
+ {"kko", NULL, NULL, NULL, "Karko"},
+ {"kkp", NULL, NULL, NULL, "Gugubera"},
+ {"kkq", NULL, NULL, NULL, "Kaeku"},
+ {"kkr", NULL, NULL, NULL, "Kir-Balar"},
+ {"kks", NULL, NULL, NULL, "Giiwo"},
+ {"kkt", NULL, NULL, NULL, "Koi"},
+ {"kku", NULL, NULL, NULL, "Tumi"},
+ {"kkv", NULL, NULL, NULL, "Kangean"},
+ {"kkw", NULL, NULL, NULL, "Teke-Kukuya"},
+ {"kkx", NULL, NULL, NULL, "Kohin"},
+ {"kky", NULL, NULL, NULL, "Guugu Yimidhirr"},
+ {"kkz", NULL, NULL, NULL, "Kaska"},
+ {"kla", NULL, NULL, NULL, "Klamath-Modoc"},
+ {"klb", NULL, NULL, NULL, "Kiliwa"},
+ {"klc", NULL, NULL, NULL, "Kolbila"},
+ {"kld", NULL, NULL, NULL, "Gamilaraay"},
+ {"kle", NULL, NULL, NULL, "Kulung (Nepal)"},
+ {"klf", NULL, NULL, NULL, "Kendeje"},
+ {"klg", NULL, NULL, NULL, "Tagakaulo"},
+ {"klh", NULL, NULL, NULL, "Weliki"},
+ {"kli", NULL, NULL, NULL, "Kalumpang"},
+ {"klj", NULL, NULL, NULL, "Khalaj"},
+ {"klk", NULL, NULL, NULL, "Kono (Nigeria)"},
+ {"kll", NULL, NULL, NULL, "Kagan Kalagan"},
+ {"klm", NULL, NULL, NULL, "Migum"},
+ {"kln", NULL, NULL, NULL, "Kalenjin"},
+ {"klo", NULL, NULL, NULL, "Kapya"},
+ {"klp", NULL, NULL, NULL, "Kamasa"},
+ {"klq", NULL, NULL, NULL, "Rumu"},
+ {"klr", NULL, NULL, NULL, "Khaling"},
+ {"kls", NULL, NULL, NULL, "Kalasha"},
+ {"klt", NULL, NULL, NULL, "Nukna"},
+ {"klu", NULL, NULL, NULL, "Klao"},
+ {"klv", NULL, NULL, NULL, "Maskelynes"},
+ {"klw", NULL, NULL, NULL, "Tado"},
+ {"klx", NULL, NULL, NULL, "Koluwawa"},
+ {"kly", NULL, NULL, NULL, "Kalao"},
+ {"klz", NULL, NULL, NULL, "Kabola"},
+ {"kma", NULL, NULL, NULL, "Konni"},
+ {"kmb", "kmb", "kmb", NULL, "Kimbundu"},
+ {"kmc", NULL, NULL, NULL, "Southern Dong"},
+ {"kmd", NULL, NULL, NULL, "Majukayang Kalinga"},
+ {"kme", NULL, NULL, NULL, "Bakole"},
+ {"kmf", NULL, NULL, NULL, "Kare (Papua New Guinea)"},
+ {"kmg", NULL, NULL, NULL, "Kâte"},
+ {"kmh", NULL, NULL, NULL, "Kalam"},
+ {"kmi", NULL, NULL, NULL, "Kami (Nigeria)"},
+ {"kmj", NULL, NULL, NULL, "Kumarbhag Paharia"},
+ {"kmk", NULL, NULL, NULL, "Limos Kalinga"},
+ {"kml", NULL, NULL, NULL, "Tanudan Kalinga"},
+ {"kmm", NULL, NULL, NULL, "Kom (India)"},
+ {"kmn", NULL, NULL, NULL, "Awtuw"},
+ {"kmo", NULL, NULL, NULL, "Kwoma"},
+ {"kmp", NULL, NULL, NULL, "Gimme"},
+ {"kmq", NULL, NULL, NULL, "Kwama"},
+ {"kmr", NULL, NULL, NULL, "Northern Kurdish"},
+ {"kms", NULL, NULL, NULL, "Kamasau"},
+ {"kmt", NULL, NULL, NULL, "Kemtuik"},
+ {"kmu", NULL, NULL, NULL, "Kanite"},
+ {"kmv", NULL, NULL, NULL, "Karipúna Creole French"},
+ {"kmw", NULL, NULL, NULL, "Komo (Democratic Republic of Congo)"},
+ {"kmx", NULL, NULL, NULL, "Waboda"},
+ {"kmy", NULL, NULL, NULL, "Koma"},
+ {"kmz", NULL, NULL, NULL, "Khorasani Turkish"},
+ {"kna", NULL, NULL, NULL, "Dera (Nigeria)"},
+ {"knb", NULL, NULL, NULL, "Lubuagan Kalinga"},
+ {"knc", NULL, NULL, NULL, "Central Kanuri"},
+ {"knd", NULL, NULL, NULL, "Konda"},
+ {"kne", NULL, NULL, NULL, "Kankanaey"},
+ {"knf", NULL, NULL, NULL, "Mankanya"},
+ {"kng", NULL, NULL, NULL, "Koongo"},
+ {"kni", NULL, NULL, NULL, "Kanufi"},
+ {"knj", NULL, NULL, NULL, "Western Kanjobal"},
+ {"knk", NULL, NULL, NULL, "Kuranko"},
+ {"knl", NULL, NULL, NULL, "Keninjal"},
+ {"knm", NULL, NULL, NULL, "Kanamarí"},
+ {"knn", NULL, NULL, NULL, "Konkani (individual language)"},
+ {"kno", NULL, NULL, NULL, "Kono (Sierra Leone)"},
+ {"knp", NULL, NULL, NULL, "Kwanja"},
+ {"knq", NULL, NULL, NULL, "Kintaq"},
+ {"knr", NULL, NULL, NULL, "Kaningra"},
+ {"kns", NULL, NULL, NULL, "Kensiu"},
+ {"knt", NULL, NULL, NULL, "Panoan Katukína"},
+ {"knu", NULL, NULL, NULL, "Kono (Guinea)"},
+ {"knv", NULL, NULL, NULL, "Tabo"},
+ {"knw", NULL, NULL, NULL, "Kung-Ekoka"},
+ {"knx", NULL, NULL, NULL, "Kendayan"},
+ {"kny", NULL, NULL, NULL, "Kanyok"},
+ {"knz", NULL, NULL, NULL, "Kalamsé"},
+ {"koa", NULL, NULL, NULL, "Konomala"},
+ {"koc", NULL, NULL, NULL, "Kpati"},
+ {"kod", NULL, NULL, NULL, "Kodi"},
+ {"koe", NULL, NULL, NULL, "Kacipo-Bale Suri"},
+ {"kof", NULL, NULL, NULL, "Kubi"},
+ {"kog", NULL, NULL, NULL, "Cogui"},
+ {"koh", NULL, NULL, NULL, "Koyo"},
+ {"koi", NULL, NULL, NULL, "Komi-Permyak"},
+ {"kok", "kok", "kok", NULL, "Konkani (macrolanguage)"},
+ {"kol", NULL, NULL, NULL, "Kol (Papua New Guinea)"},
+ {"kom", "kom", "kom", "kv", "Komi"},
+ {"kon", "kon", "kon", "kg", "Kongo"},
+ {"koo", NULL, NULL, NULL, "Konzo"},
+ {"kop", NULL, NULL, NULL, "Waube"},
+ {"koq", NULL, NULL, NULL, "Kota (Gabon)"},
+ {"kor", "kor", "kor", "ko", "Korean"},
+ {"kos", "kos", "kos", NULL, "Kosraean"},
+ {"kot", NULL, NULL, NULL, "Lagwan"},
+ {"kou", NULL, NULL, NULL, "Koke"},
+ {"kov", NULL, NULL, NULL, "Kudu-Camo"},
+ {"kow", NULL, NULL, NULL, "Kugama"},
+ {"koy", NULL, NULL, NULL, "Koyukon"},
+ {"koz", NULL, NULL, NULL, "Korak"},
+ {"kpa", NULL, NULL, NULL, "Kutto"},
+ {"kpb", NULL, NULL, NULL, "Mullu Kurumba"},
+ {"kpc", NULL, NULL, NULL, "Curripaco"},
+ {"kpd", NULL, NULL, NULL, "Koba"},
+ {"kpe", "kpe", "kpe", NULL, "Kpelle"},
+ {"kpf", NULL, NULL, NULL, "Komba"},
+ {"kpg", NULL, NULL, NULL, "Kapingamarangi"},
+ {"kph", NULL, NULL, NULL, "Kplang"},
+ {"kpi", NULL, NULL, NULL, "Kofei"},
+ {"kpj", NULL, NULL, NULL, "Karajá"},
+ {"kpk", NULL, NULL, NULL, "Kpan"},
+ {"kpl", NULL, NULL, NULL, "Kpala"},
+ {"kpm", NULL, NULL, NULL, "Koho"},
+ {"kpn", NULL, NULL, NULL, "Kepkiriwát"},
+ {"kpo", NULL, NULL, NULL, "Ikposo"},
+ {"kpq", NULL, NULL, NULL, "Korupun-Sela"},
+ {"kpr", NULL, NULL, NULL, "Korafe-Yegha"},
+ {"kps", NULL, NULL, NULL, "Tehit"},
+ {"kpt", NULL, NULL, NULL, "Karata"},
+ {"kpu", NULL, NULL, NULL, "Kafoa"},
+ {"kpv", NULL, NULL, NULL, "Komi-Zyrian"},
+ {"kpw", NULL, NULL, NULL, "Kobon"},
+ {"kpx", NULL, NULL, NULL, "Mountain Koiali"},
+ {"kpy", NULL, NULL, NULL, "Koryak"},
+ {"kpz", NULL, NULL, NULL, "Kupsabiny"},
+ {"kqa", NULL, NULL, NULL, "Mum"},
+ {"kqb", NULL, NULL, NULL, "Kovai"},
+ {"kqc", NULL, NULL, NULL, "Doromu-Koki"},
+ {"kqd", NULL, NULL, NULL, "Koy Sanjaq Surat"},
+ {"kqe", NULL, NULL, NULL, "Kalagan"},
+ {"kqf", NULL, NULL, NULL, "Kakabai"},
+ {"kqg", NULL, NULL, NULL, "Khe"},
+ {"kqh", NULL, NULL, NULL, "Kisankasa"},
+ {"kqi", NULL, NULL, NULL, "Koitabu"},
+ {"kqj", NULL, NULL, NULL, "Koromira"},
+ {"kqk", NULL, NULL, NULL, "Kotafon Gbe"},
+ {"kql", NULL, NULL, NULL, "Kyenele"},
+ {"kqm", NULL, NULL, NULL, "Khisa"},
+ {"kqn", NULL, NULL, NULL, "Kaonde"},
+ {"kqo", NULL, NULL, NULL, "Eastern Krahn"},
+ {"kqp", NULL, NULL, NULL, "Kimré"},
+ {"kqq", NULL, NULL, NULL, "Krenak"},
+ {"kqr", NULL, NULL, NULL, "Kimaragang"},
+ {"kqs", NULL, NULL, NULL, "Northern Kissi"},
+ {"kqt", NULL, NULL, NULL, "Klias River Kadazan"},
+ {"kqu", NULL, NULL, NULL, "Seroa"},
+ {"kqv", NULL, NULL, NULL, "Okolod"},
+ {"kqw", NULL, NULL, NULL, "Kandas"},
+ {"kqx", NULL, NULL, NULL, "Mser"},
+ {"kqy", NULL, NULL, NULL, "Koorete"},
+ {"kqz", NULL, NULL, NULL, "Korana"},
+ {"kra", NULL, NULL, NULL, "Kumhali"},
+ {"krb", NULL, NULL, NULL, "Karkin"},
+ {"krc", "krc", "krc", NULL, "Karachay-Balkar"},
+ {"krd", NULL, NULL, NULL, "Kairui-Midiki"},
+ {"kre", NULL, NULL, NULL, "Panará"},
+ {"krf", NULL, NULL, NULL, "Koro (Vanuatu)"},
+ {"krh", NULL, NULL, NULL, "Kurama"},
+ {"kri", NULL, NULL, NULL, "Krio"},
+ {"krj", NULL, NULL, NULL, "Kinaray-A"},
+ {"krk", NULL, NULL, NULL, "Kerek"},
+ {"krl", "krl", "krl", NULL, "Karelian"},
+ {"krn", NULL, NULL, NULL, "Sapo"},
+ {"krp", NULL, NULL, NULL, "Korop"},
+ {"krr", NULL, NULL, NULL, "Krung"},
+ {"krs", NULL, NULL, NULL, "Gbaya (Sudan)"},
+ {"krt", NULL, NULL, NULL, "Tumari Kanuri"},
+ {"kru", "kru", "kru", NULL, "Kurukh"},
+ {"krv", NULL, NULL, NULL, "Kavet"},
+ {"krw", NULL, NULL, NULL, "Western Krahn"},
+ {"krx", NULL, NULL, NULL, "Karon"},
+ {"kry", NULL, NULL, NULL, "Kryts"},
+ {"krz", NULL, NULL, NULL, "Sota Kanum"},
+ {"ksa", NULL, NULL, NULL, "Shuwa-Zamani"},
+ {"ksb", NULL, NULL, NULL, "Shambala"},
+ {"ksc", NULL, NULL, NULL, "Southern Kalinga"},
+ {"ksd", NULL, NULL, NULL, "Kuanua"},
+ {"kse", NULL, NULL, NULL, "Kuni"},
+ {"ksf", NULL, NULL, NULL, "Bafia"},
+ {"ksg", NULL, NULL, NULL, "Kusaghe"},
+ {"ksh", NULL, NULL, NULL, "Kölsch"},
+ {"ksi", NULL, NULL, NULL, "Krisa"},
+ {"ksj", NULL, NULL, NULL, "Uare"},
+ {"ksk", NULL, NULL, NULL, "Kansa"},
+ {"ksl", NULL, NULL, NULL, "Kumalu"},
+ {"ksm", NULL, NULL, NULL, "Kumba"},
+ {"ksn", NULL, NULL, NULL, "Kasiguranin"},
+ {"kso", NULL, NULL, NULL, "Kofa"},
+ {"ksp", NULL, NULL, NULL, "Kaba"},
+ {"ksq", NULL, NULL, NULL, "Kwaami"},
+ {"ksr", NULL, NULL, NULL, "Borong"},
+ {"kss", NULL, NULL, NULL, "Southern Kisi"},
+ {"kst", NULL, NULL, NULL, "Winyé"},
+ {"ksu", NULL, NULL, NULL, "Khamyang"},
+ {"ksv", NULL, NULL, NULL, "Kusu"},
+ {"ksw", NULL, NULL, NULL, "S'gaw Karen"},
+ {"ksx", NULL, NULL, NULL, "Kedang"},
+ {"ksy", NULL, NULL, NULL, "Kharia Thar"},
+ {"ksz", NULL, NULL, NULL, "Kodaku"},
+ {"kta", NULL, NULL, NULL, "Katua"},
+ {"ktb", NULL, NULL, NULL, "Kambaata"},
+ {"ktc", NULL, NULL, NULL, "Kholok"},
+ {"ktd", NULL, NULL, NULL, "Kokata"},
+ {"kte", NULL, NULL, NULL, "Nubri"},
+ {"ktf", NULL, NULL, NULL, "Kwami"},
+ {"ktg", NULL, NULL, NULL, "Kalkutung"},
+ {"kth", NULL, NULL, NULL, "Karanga"},
+ {"kti", NULL, NULL, NULL, "North Muyu"},
+ {"ktj", NULL, NULL, NULL, "Plapo Krumen"},
+ {"ktk", NULL, NULL, NULL, "Kaniet"},
+ {"ktl", NULL, NULL, NULL, "Koroshi"},
+ {"ktm", NULL, NULL, NULL, "Kurti"},
+ {"ktn", NULL, NULL, NULL, "Karitiâna"},
+ {"kto", NULL, NULL, NULL, "Kuot"},
+ {"ktp", NULL, NULL, NULL, "Kaduo"},
+ {"ktq", NULL, NULL, NULL, "Katabaga"},
+ {"kts", NULL, NULL, NULL, "South Muyu"},
+ {"ktt", NULL, NULL, NULL, "Ketum"},
+ {"ktu", NULL, NULL, NULL, "Kituba (Democratic Republic of Congo)"},
+ {"ktv", NULL, NULL, NULL, "Eastern Katu"},
+ {"ktw", NULL, NULL, NULL, "Kato"},
+ {"ktx", NULL, NULL, NULL, "Kaxararí"},
+ {"kty", NULL, NULL, NULL, "Kango (Bas-Uélé District)"},
+ {"ktz", NULL, NULL, NULL, "Juǀʼhoan"},
+ {"kua", "kua", "kua", "kj", "Kuanyama"},
+ {"kub", NULL, NULL, NULL, "Kutep"},
+ {"kuc", NULL, NULL, NULL, "Kwinsu"},
+ {"kud", NULL, NULL, NULL, "'Auhelawa"},
+ {"kue", NULL, NULL, NULL, "Kuman (Papua New Guinea)"},
+ {"kuf", NULL, NULL, NULL, "Western Katu"},
+ {"kug", NULL, NULL, NULL, "Kupa"},
+ {"kuh", NULL, NULL, NULL, "Kushi"},
+ {"kui", NULL, NULL, NULL, "Kuikúro-Kalapálo"},
+ {"kuj", NULL, NULL, NULL, "Kuria"},
+ {"kuk", NULL, NULL, NULL, "Kepo'"},
+ {"kul", NULL, NULL, NULL, "Kulere"},
+ {"kum", "kum", "kum", NULL, "Kumyk"},
+ {"kun", NULL, NULL, NULL, "Kunama"},
+ {"kuo", NULL, NULL, NULL, "Kumukio"},
+ {"kup", NULL, NULL, NULL, "Kunimaipa"},
+ {"kuq", NULL, NULL, NULL, "Karipuna"},
+ {"kur", "kur", "kur", "ku", "Kurdish"},
+ {"kus", NULL, NULL, NULL, "Kusaal"},
+ {"kut", "kut", "kut", NULL, "Kutenai"},
+ {"kuu", NULL, NULL, NULL, "Upper Kuskokwim"},
+ {"kuv", NULL, NULL, NULL, "Kur"},
+ {"kuw", NULL, NULL, NULL, "Kpagua"},
+ {"kux", NULL, NULL, NULL, "Kukatja"},
+ {"kuy", NULL, NULL, NULL, "Kuuku-Ya'u"},
+ {"kuz", NULL, NULL, NULL, "Kunza"},
+ {"kva", NULL, NULL, NULL, "Bagvalal"},
+ {"kvb", NULL, NULL, NULL, "Kubu"},
+ {"kvc", NULL, NULL, NULL, "Kove"},
+ {"kvd", NULL, NULL, NULL, "Kui (Indonesia)"},
+ {"kve", NULL, NULL, NULL, "Kalabakan"},
+ {"kvf", NULL, NULL, NULL, "Kabalai"},
+ {"kvg", NULL, NULL, NULL, "Kuni-Boazi"},
+ {"kvh", NULL, NULL, NULL, "Komodo"},
+ {"kvi", NULL, NULL, NULL, "Kwang"},
+ {"kvj", NULL, NULL, NULL, "Psikye"},
+ {"kvk", NULL, NULL, NULL, "Korean Sign Language"},
+ {"kvl", NULL, NULL, NULL, "Kayaw"},
+ {"kvm", NULL, NULL, NULL, "Kendem"},
+ {"kvn", NULL, NULL, NULL, "Border Kuna"},
+ {"kvo", NULL, NULL, NULL, "Dobel"},
+ {"kvp", NULL, NULL, NULL, "Kompane"},
+ {"kvq", NULL, NULL, NULL, "Geba Karen"},
+ {"kvr", NULL, NULL, NULL, "Kerinci"},
+ {"kvt", NULL, NULL, NULL, "Lahta Karen"},
+ {"kvu", NULL, NULL, NULL, "Yinbaw Karen"},
+ {"kvv", NULL, NULL, NULL, "Kola"},
+ {"kvw", NULL, NULL, NULL, "Wersing"},
+ {"kvx", NULL, NULL, NULL, "Parkari Koli"},
+ {"kvy", NULL, NULL, NULL, "Yintale Karen"},
+ {"kvz", NULL, NULL, NULL, "Tsakwambo"},
+ {"kwa", NULL, NULL, NULL, "Dâw"},
+ {"kwb", NULL, NULL, NULL, "Kwa"},
+ {"kwc", NULL, NULL, NULL, "Likwala"},
+ {"kwd", NULL, NULL, NULL, "Kwaio"},
+ {"kwe", NULL, NULL, NULL, "Kwerba"},
+ {"kwf", NULL, NULL, NULL, "Kwara'ae"},
+ {"kwg", NULL, NULL, NULL, "Sara Kaba Deme"},
+ {"kwh", NULL, NULL, NULL, "Kowiai"},
+ {"kwi", NULL, NULL, NULL, "Awa-Cuaiquer"},
+ {"kwj", NULL, NULL, NULL, "Kwanga"},
+ {"kwk", NULL, NULL, NULL, "Kwakiutl"},
+ {"kwl", NULL, NULL, NULL, "Kofyar"},
+ {"kwm", NULL, NULL, NULL, "Kwambi"},
+ {"kwn", NULL, NULL, NULL, "Kwangali"},
+ {"kwo", NULL, NULL, NULL, "Kwomtari"},
+ {"kwp", NULL, NULL, NULL, "Kodia"},
+ {"kwr", NULL, NULL, NULL, "Kwer"},
+ {"kws", NULL, NULL, NULL, "Kwese"},
+ {"kwt", NULL, NULL, NULL, "Kwesten"},
+ {"kwu", NULL, NULL, NULL, "Kwakum"},
+ {"kwv", NULL, NULL, NULL, "Sara Kaba Náà"},
+ {"kww", NULL, NULL, NULL, "Kwinti"},
+ {"kwx", NULL, NULL, NULL, "Khirwar"},
+ {"kwy", NULL, NULL, NULL, "San Salvador Kongo"},
+ {"kwz", NULL, NULL, NULL, "Kwadi"},
+ {"kxa", NULL, NULL, NULL, "Kairiru"},
+ {"kxb", NULL, NULL, NULL, "Krobu"},
+ {"kxc", NULL, NULL, NULL, "Konso"},
+ {"kxd", NULL, NULL, NULL, "Brunei"},
+ {"kxf", NULL, NULL, NULL, "Manumanaw Karen"},
+ {"kxh", NULL, NULL, NULL, "Karo (Ethiopia)"},
+ {"kxi", NULL, NULL, NULL, "Keningau Murut"},
+ {"kxj", NULL, NULL, NULL, "Kulfa"},
+ {"kxk", NULL, NULL, NULL, "Zayein Karen"},
+ {"kxm", NULL, NULL, NULL, "Northern Khmer"},
+ {"kxn", NULL, NULL, NULL, "Kanowit-Tanjong Melanau"},
+ {"kxo", NULL, NULL, NULL, "Kanoé"},
+ {"kxp", NULL, NULL, NULL, "Wadiyara Koli"},
+ {"kxq", NULL, NULL, NULL, "Smärky Kanum"},
+ {"kxr", NULL, NULL, NULL, "Koro (Papua New Guinea)"},
+ {"kxs", NULL, NULL, NULL, "Kangjia"},
+ {"kxt", NULL, NULL, NULL, "Koiwat"},
+ {"kxv", NULL, NULL, NULL, "Kuvi"},
+ {"kxw", NULL, NULL, NULL, "Konai"},
+ {"kxx", NULL, NULL, NULL, "Likuba"},
+ {"kxy", NULL, NULL, NULL, "Kayong"},
+ {"kxz", NULL, NULL, NULL, "Kerewo"},
+ {"kya", NULL, NULL, NULL, "Kwaya"},
+ {"kyb", NULL, NULL, NULL, "Butbut Kalinga"},
+ {"kyc", NULL, NULL, NULL, "Kyaka"},
+ {"kyd", NULL, NULL, NULL, "Karey"},
+ {"kye", NULL, NULL, NULL, "Krache"},
+ {"kyf", NULL, NULL, NULL, "Kouya"},
+ {"kyg", NULL, NULL, NULL, "Keyagana"},
+ {"kyh", NULL, NULL, NULL, "Karok"},
+ {"kyi", NULL, NULL, NULL, "Kiput"},
+ {"kyj", NULL, NULL, NULL, "Karao"},
+ {"kyk", NULL, NULL, NULL, "Kamayo"},
+ {"kyl", NULL, NULL, NULL, "Kalapuya"},
+ {"kym", NULL, NULL, NULL, "Kpatili"},
+ {"kyn", NULL, NULL, NULL, "Northern Binukidnon"},
+ {"kyo", NULL, NULL, NULL, "Kelon"},
+ {"kyp", NULL, NULL, NULL, "Kang"},
+ {"kyq", NULL, NULL, NULL, "Kenga"},
+ {"kyr", NULL, NULL, NULL, "Kuruáya"},
+ {"kys", NULL, NULL, NULL, "Baram Kayan"},
+ {"kyt", NULL, NULL, NULL, "Kayagar"},
+ {"kyu", NULL, NULL, NULL, "Western Kayah"},
+ {"kyv", NULL, NULL, NULL, "Kayort"},
+ {"kyw", NULL, NULL, NULL, "Kudmali"},
+ {"kyx", NULL, NULL, NULL, "Rapoisi"},
+ {"kyy", NULL, NULL, NULL, "Kambaira"},
+ {"kyz", NULL, NULL, NULL, "Kayabí"},
+ {"kza", NULL, NULL, NULL, "Western Karaboro"},
+ {"kzb", NULL, NULL, NULL, "Kaibobo"},
+ {"kzc", NULL, NULL, NULL, "Bondoukou Kulango"},
+ {"kzd", NULL, NULL, NULL, "Kadai"},
+ {"kze", NULL, NULL, NULL, "Kosena"},
+ {"kzf", NULL, NULL, NULL, "Da'a Kaili"},
+ {"kzg", NULL, NULL, NULL, "Kikai"},
+ {"kzi", NULL, NULL, NULL, "Kelabit"},
+ {"kzk", NULL, NULL, NULL, "Kazukuru"},
+ {"kzl", NULL, NULL, NULL, "Kayeli"},
+ {"kzm", NULL, NULL, NULL, "Kais"},
+ {"kzn", NULL, NULL, NULL, "Kokola"},
+ {"kzo", NULL, NULL, NULL, "Kaningi"},
+ {"kzp", NULL, NULL, NULL, "Kaidipang"},
+ {"kzq", NULL, NULL, NULL, "Kaike"},
+ {"kzr", NULL, NULL, NULL, "Karang"},
+ {"kzs", NULL, NULL, NULL, "Sugut Dusun"},
+ {"kzu", NULL, NULL, NULL, "Kayupulau"},
+ {"kzv", NULL, NULL, NULL, "Komyandaret"},
+ {"kzw", NULL, NULL, NULL, "Karirí-Xocó"},
+ {"kzx", NULL, NULL, NULL, "Kamarian"},
+ {"kzy", NULL, NULL, NULL, "Kango (Tshopo District)"},
+ {"kzz", NULL, NULL, NULL, "Kalabra"},
+ {"laa", NULL, NULL, NULL, "Southern Subanen"},
+ {"lab", NULL, NULL, NULL, "Linear A"},
+ {"lac", NULL, NULL, NULL, "Lacandon"},
+ {"lad", "lad", "lad", NULL, "Ladino"},
+ {"lae", NULL, NULL, NULL, "Pattani"},
+ {"laf", NULL, NULL, NULL, "Lafofa"},
+ {"lag", NULL, NULL, NULL, "Langi"},
+ {"lah", "lah", "lah", NULL, "Lahnda"},
+ {"lai", NULL, NULL, NULL, "Lambya"},
+ {"laj", NULL, NULL, NULL, "Lango (Uganda)"},
+ {"lak", NULL, NULL, NULL, "Laka (Nigeria)"},
+ {"lal", NULL, NULL, NULL, "Lalia"},
+ {"lam", "lam", "lam", NULL, "Lamba"},
+ {"lan", NULL, NULL, NULL, "Laru"},
+ {"lao", "lao", "lao", "lo", "Lao"},
+ {"lap", NULL, NULL, NULL, "Laka (Chad)"},
+ {"laq", NULL, NULL, NULL, "Qabiao"},
+ {"lar", NULL, NULL, NULL, "Larteh"},
+ {"las", NULL, NULL, NULL, "Lama (Togo)"},
+ {"lat", "lat", "lat", "la", "Latin"},
+ {"lau", NULL, NULL, NULL, "Laba"},
+ {"lav", "lav", "lav", "lv", "Latvian"},
+ {"law", NULL, NULL, NULL, "Lauje"},
+ {"lax", NULL, NULL, NULL, "Tiwa"},
+ {"lay", NULL, NULL, NULL, "Lama Bai"},
+ {"laz", NULL, NULL, NULL, "Aribwatsa"},
+ {"lbb", NULL, NULL, NULL, "Label"},
+ {"lbc", NULL, NULL, NULL, "Lakkia"},
+ {"lbe", NULL, NULL, NULL, "Lak"},
+ {"lbf", NULL, NULL, NULL, "Tinani"},
+ {"lbg", NULL, NULL, NULL, "Laopang"},
+ {"lbi", NULL, NULL, NULL, "La'bi"},
+ {"lbj", NULL, NULL, NULL, "Ladakhi"},
+ {"lbk", NULL, NULL, NULL, "Central Bontok"},
+ {"lbl", NULL, NULL, NULL, "Libon Bikol"},
+ {"lbm", NULL, NULL, NULL, "Lodhi"},
+ {"lbn", NULL, NULL, NULL, "Rmeet"},
+ {"lbo", NULL, NULL, NULL, "Laven"},
+ {"lbq", NULL, NULL, NULL, "Wampar"},
+ {"lbr", NULL, NULL, NULL, "Lohorung"},
+ {"lbs", NULL, NULL, NULL, "Libyan Sign Language"},
+ {"lbt", NULL, NULL, NULL, "Lachi"},
+ {"lbu", NULL, NULL, NULL, "Labu"},
+ {"lbv", NULL, NULL, NULL, "Lavatbura-Lamusong"},
+ {"lbw", NULL, NULL, NULL, "Tolaki"},
+ {"lbx", NULL, NULL, NULL, "Lawangan"},
+ {"lby", NULL, NULL, NULL, "Lamalama"},
+ {"lbz", NULL, NULL, NULL, "Lardil"},
+ {"lcc", NULL, NULL, NULL, "Legenyem"},
+ {"lcd", NULL, NULL, NULL, "Lola"},
+ {"lce", NULL, NULL, NULL, "Loncong"},
+ {"lcf", NULL, NULL, NULL, "Lubu"},
+ {"lch", NULL, NULL, NULL, "Luchazi"},
+ {"lcl", NULL, NULL, NULL, "Lisela"},
+ {"lcm", NULL, NULL, NULL, "Tungag"},
+ {"lcp", NULL, NULL, NULL, "Western Lawa"},
+ {"lcq", NULL, NULL, NULL, "Luhu"},
+ {"lcs", NULL, NULL, NULL, "Lisabata-Nuniali"},
+ {"lda", NULL, NULL, NULL, "Kla-Dan"},
+ {"ldb", NULL, NULL, NULL, "Dũya"},
+ {"ldd", NULL, NULL, NULL, "Luri"},
+ {"ldg", NULL, NULL, NULL, "Lenyima"},
+ {"ldh", NULL, NULL, NULL, "Lamja-Dengsa-Tola"},
+ {"ldi", NULL, NULL, NULL, "Laari"},
+ {"ldj", NULL, NULL, NULL, "Lemoro"},
+ {"ldk", NULL, NULL, NULL, "Leelau"},
+ {"ldl", NULL, NULL, NULL, "Kaan"},
+ {"ldm", NULL, NULL, NULL, "Landoma"},
+ {"ldn", NULL, NULL, NULL, "Láadan"},
+ {"ldo", NULL, NULL, NULL, "Loo"},
+ {"ldp", NULL, NULL, NULL, "Tso"},
+ {"ldq", NULL, NULL, NULL, "Lufu"},
+ {"lea", NULL, NULL, NULL, "Lega-Shabunda"},
+ {"leb", NULL, NULL, NULL, "Lala-Bisa"},
+ {"lec", NULL, NULL, NULL, "Leco"},
+ {"led", NULL, NULL, NULL, "Lendu"},
+ {"lee", NULL, NULL, NULL, "Lyélé"},
+ {"lef", NULL, NULL, NULL, "Lelemi"},
+ {"leh", NULL, NULL, NULL, "Lenje"},
+ {"lei", NULL, NULL, NULL, "Lemio"},
+ {"lej", NULL, NULL, NULL, "Lengola"},
+ {"lek", NULL, NULL, NULL, "Leipon"},
+ {"lel", NULL, NULL, NULL, "Lele (Democratic Republic of Congo)"},
+ {"lem", NULL, NULL, NULL, "Nomaande"},
+ {"len", NULL, NULL, NULL, "Lenca"},
+ {"leo", NULL, NULL, NULL, "Leti (Cameroon)"},
+ {"lep", NULL, NULL, NULL, "Lepcha"},
+ {"leq", NULL, NULL, NULL, "Lembena"},
+ {"ler", NULL, NULL, NULL, "Lenkau"},
+ {"les", NULL, NULL, NULL, "Lese"},
+ {"let", NULL, NULL, NULL, "Lesing-Gelimi"},
+ {"leu", NULL, NULL, NULL, "Kara (Papua New Guinea)"},
+ {"lev", NULL, NULL, NULL, "Lamma"},
+ {"lew", NULL, NULL, NULL, "Ledo Kaili"},
+ {"lex", NULL, NULL, NULL, "Luang"},
+ {"ley", NULL, NULL, NULL, "Lemolang"},
+ {"lez", "lez", "lez", NULL, "Lezghian"},
+ {"lfa", NULL, NULL, NULL, "Lefa"},
+ {"lfn", NULL, NULL, NULL, "Lingua Franca Nova"},
+ {"lga", NULL, NULL, NULL, "Lungga"},
+ {"lgb", NULL, NULL, NULL, "Laghu"},
+ {"lgg", NULL, NULL, NULL, "Lugbara"},
+ {"lgh", NULL, NULL, NULL, "Laghuu"},
+ {"lgi", NULL, NULL, NULL, "Lengilu"},
+ {"lgk", NULL, NULL, NULL, "Lingarak"},
+ {"lgl", NULL, NULL, NULL, "Wala"},
+ {"lgm", NULL, NULL, NULL, "Lega-Mwenga"},
+ {"lgn", NULL, NULL, NULL, "T'apo"},
+ {"lgq", NULL, NULL, NULL, "Logba"},
+ {"lgr", NULL, NULL, NULL, "Lengo"},
+ {"lgt", NULL, NULL, NULL, "Pahi"},
+ {"lgu", NULL, NULL, NULL, "Longgu"},
+ {"lgz", NULL, NULL, NULL, "Ligenza"},
+ {"lha", NULL, NULL, NULL, "Laha (Viet Nam)"},
+ {"lhh", NULL, NULL, NULL, "Laha (Indonesia)"},
+ {"lhi", NULL, NULL, NULL, "Lahu Shi"},
+ {"lhl", NULL, NULL, NULL, "Lahul Lohar"},
+ {"lhm", NULL, NULL, NULL, "Lhomi"},
+ {"lhn", NULL, NULL, NULL, "Lahanan"},
+ {"lhp", NULL, NULL, NULL, "Lhokpu"},
+ {"lhs", NULL, NULL, NULL, "Mlahsö"},
+ {"lht", NULL, NULL, NULL, "Lo-Toga"},
+ {"lhu", NULL, NULL, NULL, "Lahu"},
+ {"lia", NULL, NULL, NULL, "West-Central Limba"},
+ {"lib", NULL, NULL, NULL, "Likum"},
+ {"lic", NULL, NULL, NULL, "Hlai"},
+ {"lid", NULL, NULL, NULL, "Nyindrou"},
+ {"lie", NULL, NULL, NULL, "Likila"},
+ {"lif", NULL, NULL, NULL, "Limbu"},
+ {"lig", NULL, NULL, NULL, "Ligbi"},
+ {"lih", NULL, NULL, NULL, "Lihir"},
+ {"lij", NULL, NULL, NULL, "Ligurian"},
+ {"lik", NULL, NULL, NULL, "Lika"},
+ {"lil", NULL, NULL, NULL, "Lillooet"},
+ {"lim", "lim", "lim", "li", "Limburgan"},
+ {"lin", "lin", "lin", "ln", "Lingala"},
+ {"lio", NULL, NULL, NULL, "Liki"},
+ {"lip", NULL, NULL, NULL, "Sekpele"},
+ {"liq", NULL, NULL, NULL, "Libido"},
+ {"lir", NULL, NULL, NULL, "Liberian English"},
+ {"lis", NULL, NULL, NULL, "Lisu"},
+ {"lit", "lit", "lit", "lt", "Lithuanian"},
+ {"liu", NULL, NULL, NULL, "Logorik"},
+ {"liv", NULL, NULL, NULL, "Liv"},
+ {"liw", NULL, NULL, NULL, "Col"},
+ {"lix", NULL, NULL, NULL, "Liabuku"},
+ {"liy", NULL, NULL, NULL, "Banda-Bambari"},
+ {"liz", NULL, NULL, NULL, "Libinza"},
+ {"lja", NULL, NULL, NULL, "Golpa"},
+ {"lje", NULL, NULL, NULL, "Rampi"},
+ {"lji", NULL, NULL, NULL, "Laiyolo"},
+ {"ljl", NULL, NULL, NULL, "Li'o"},
+ {"ljp", NULL, NULL, NULL, "Lampung Api"},
+ {"ljw", NULL, NULL, NULL, "Yirandali"},
+ {"ljx", NULL, NULL, NULL, "Yuru"},
+ {"lka", NULL, NULL, NULL, "Lakalei"},
+ {"lkb", NULL, NULL, NULL, "Kabras"},
+ {"lkc", NULL, NULL, NULL, "Kucong"},
+ {"lkd", NULL, NULL, NULL, "Lakondê"},
+ {"lke", NULL, NULL, NULL, "Kenyi"},
+ {"lkh", NULL, NULL, NULL, "Lakha"},
+ {"lki", NULL, NULL, NULL, "Laki"},
+ {"lkj", NULL, NULL, NULL, "Remun"},
+ {"lkl", NULL, NULL, NULL, "Laeko-Libuat"},
+ {"lkm", NULL, NULL, NULL, "Kalaamaya"},
+ {"lkn", NULL, NULL, NULL, "Lakon"},
+ {"lko", NULL, NULL, NULL, "Khayo"},
+ {"lkr", NULL, NULL, NULL, "Päri"},
+ {"lks", NULL, NULL, NULL, "Kisa"},
+ {"lkt", NULL, NULL, NULL, "Lakota"},
+ {"lku", NULL, NULL, NULL, "Kungkari"},
+ {"lky", NULL, NULL, NULL, "Lokoya"},
+ {"lla", NULL, NULL, NULL, "Lala-Roba"},
+ {"llb", NULL, NULL, NULL, "Lolo"},
+ {"llc", NULL, NULL, NULL, "Lele (Guinea)"},
+ {"lld", NULL, NULL, NULL, "Ladin"},
+ {"lle", NULL, NULL, NULL, "Lele (Papua New Guinea)"},
+ {"llf", NULL, NULL, NULL, "Hermit"},
+ {"llg", NULL, NULL, NULL, "Lole"},
+ {"llh", NULL, NULL, NULL, "Lamu"},
+ {"lli", NULL, NULL, NULL, "Teke-Laali"},
+ {"llj", NULL, NULL, NULL, "Ladji Ladji"},
+ {"llk", NULL, NULL, NULL, "Lelak"},
+ {"lll", NULL, NULL, NULL, "Lilau"},
+ {"llm", NULL, NULL, NULL, "Lasalimu"},
+ {"lln", NULL, NULL, NULL, "Lele (Chad)"},
+ {"llp", NULL, NULL, NULL, "North Efate"},
+ {"llq", NULL, NULL, NULL, "Lolak"},
+ {"lls", NULL, NULL, NULL, "Lithuanian Sign Language"},
+ {"llu", NULL, NULL, NULL, "Lau"},
+ {"llx", NULL, NULL, NULL, "Lauan"},
+ {"lma", NULL, NULL, NULL, "East Limba"},
+ {"lmb", NULL, NULL, NULL, "Merei"},
+ {"lmc", NULL, NULL, NULL, "Limilngan"},
+ {"lmd", NULL, NULL, NULL, "Lumun"},
+ {"lme", NULL, NULL, NULL, "Pévé"},
+ {"lmf", NULL, NULL, NULL, "South Lembata"},
+ {"lmg", NULL, NULL, NULL, "Lamogai"},
+ {"lmh", NULL, NULL, NULL, "Lambichhong"},
+ {"lmi", NULL, NULL, NULL, "Lombi"},
+ {"lmj", NULL, NULL, NULL, "West Lembata"},
+ {"lmk", NULL, NULL, NULL, "Lamkang"},
+ {"lml", NULL, NULL, NULL, "Hano"},
+ {"lmn", NULL, NULL, NULL, "Lambadi"},
+ {"lmo", NULL, NULL, NULL, "Lombard"},
+ {"lmp", NULL, NULL, NULL, "Limbum"},
+ {"lmq", NULL, NULL, NULL, "Lamatuka"},
+ {"lmr", NULL, NULL, NULL, "Lamalera"},
+ {"lmu", NULL, NULL, NULL, "Lamenu"},
+ {"lmv", NULL, NULL, NULL, "Lomaiviti"},
+ {"lmw", NULL, NULL, NULL, "Lake Miwok"},
+ {"lmx", NULL, NULL, NULL, "Laimbue"},
+ {"lmy", NULL, NULL, NULL, "Lamboya"},
+ {"lna", NULL, NULL, NULL, "Langbashe"},
+ {"lnb", NULL, NULL, NULL, "Mbalanhu"},
+ {"lnd", NULL, NULL, NULL, "Lundayeh"},
+ {"lng", NULL, NULL, NULL, "Langobardic"},
+ {"lnh", NULL, NULL, NULL, "Lanoh"},
+ {"lni", NULL, NULL, NULL, "Daantanai'"},
+ {"lnj", NULL, NULL, NULL, "Leningitij"},
+ {"lnl", NULL, NULL, NULL, "South Central Banda"},
+ {"lnm", NULL, NULL, NULL, "Langam"},
+ {"lnn", NULL, NULL, NULL, "Lorediakarkar"},
+ {"lno", NULL, NULL, NULL, "Lango (South Sudan)"},
+ {"lns", NULL, NULL, NULL, "Lamnso'"},
+ {"lnu", NULL, NULL, NULL, "Longuda"},
+ {"lnw", NULL, NULL, NULL, "Lanima"},
+ {"lnz", NULL, NULL, NULL, "Lonzo"},
+ {"loa", NULL, NULL, NULL, "Loloda"},
+ {"lob", NULL, NULL, NULL, "Lobi"},
+ {"loc", NULL, NULL, NULL, "Inonhan"},
+ {"loe", NULL, NULL, NULL, "Saluan"},
+ {"lof", NULL, NULL, NULL, "Logol"},
+ {"log", NULL, NULL, NULL, "Logo"},
+ {"loh", NULL, NULL, NULL, "Narim"},
+ {"loi", NULL, NULL, NULL, "Loma (Côte d'Ivoire)"},
+ {"loj", NULL, NULL, NULL, "Lou"},
+ {"lok", NULL, NULL, NULL, "Loko"},
+ {"lol", "lol", "lol", NULL, "Mongo"},
+ {"lom", NULL, NULL, NULL, "Loma (Liberia)"},
+ {"lon", NULL, NULL, NULL, "Malawi Lomwe"},
+ {"loo", NULL, NULL, NULL, "Lombo"},
+ {"lop", NULL, NULL, NULL, "Lopa"},
+ {"loq", NULL, NULL, NULL, "Lobala"},
+ {"lor", NULL, NULL, NULL, "Téén"},
+ {"los", NULL, NULL, NULL, "Loniu"},
+ {"lot", NULL, NULL, NULL, "Otuho"},
+ {"lou", NULL, NULL, NULL, "Louisiana Creole"},
+ {"lov", NULL, NULL, NULL, "Lopi"},
+ {"low", NULL, NULL, NULL, "Tampias Lobu"},
+ {"lox", NULL, NULL, NULL, "Loun"},
+ {"loy", NULL, NULL, NULL, "Loke"},
+ {"loz", "loz", "loz", NULL, "Lozi"},
+ {"lpa", NULL, NULL, NULL, "Lelepa"},
+ {"lpe", NULL, NULL, NULL, "Lepki"},
+ {"lpn", NULL, NULL, NULL, "Long Phuri Naga"},
+ {"lpo", NULL, NULL, NULL, "Lipo"},
+ {"lpx", NULL, NULL, NULL, "Lopit"},
+ {"lra", NULL, NULL, NULL, "Rara Bakati'"},
+ {"lrc", NULL, NULL, NULL, "Northern Luri"},
+ {"lre", NULL, NULL, NULL, "Laurentian"},
+ {"lrg", NULL, NULL, NULL, "Laragia"},
+ {"lri", NULL, NULL, NULL, "Marachi"},
+ {"lrk", NULL, NULL, NULL, "Loarki"},
+ {"lrl", NULL, NULL, NULL, "Lari"},
+ {"lrm", NULL, NULL, NULL, "Marama"},
+ {"lrn", NULL, NULL, NULL, "Lorang"},
+ {"lro", NULL, NULL, NULL, "Laro"},
+ {"lrr", NULL, NULL, NULL, "Southern Yamphu"},
+ {"lrt", NULL, NULL, NULL, "Larantuka Malay"},
+ {"lrv", NULL, NULL, NULL, "Larevat"},
+ {"lrz", NULL, NULL, NULL, "Lemerig"},
+ {"lsa", NULL, NULL, NULL, "Lasgerdi"},
+ {"lsb", NULL, NULL, NULL, "Burundian Sign Language"},
+ {"lsd", NULL, NULL, NULL, "Lishana Deni"},
+ {"lse", NULL, NULL, NULL, "Lusengo"},
+ {"lsh", NULL, NULL, NULL, "Lish"},
+ {"lsi", NULL, NULL, NULL, "Lashi"},
+ {"lsl", NULL, NULL, NULL, "Latvian Sign Language"},
+ {"lsm", NULL, NULL, NULL, "Saamia"},
+ {"lsn", NULL, NULL, NULL, "Tibetan Sign Language"},
+ {"lso", NULL, NULL, NULL, "Laos Sign Language"},
+ {"lsp", NULL, NULL, NULL, "Panamanian Sign Language"},
+ {"lsr", NULL, NULL, NULL, "Aruop"},
+ {"lss", NULL, NULL, NULL, "Lasi"},
+ {"lst", NULL, NULL, NULL, "Trinidad and Tobago Sign Language"},
+ {"lsv", NULL, NULL, NULL, "Sivia Sign Language"},
+ {"lsy", NULL, NULL, NULL, "Mauritian Sign Language"},
+ {"ltc", NULL, NULL, NULL, "Late Middle Chinese"},
+ {"ltg", NULL, NULL, NULL, "Latgalian"},
+ {"lth", NULL, NULL, NULL, "Thur"},
+ {"lti", NULL, NULL, NULL, "Leti (Indonesia)"},
+ {"ltn", NULL, NULL, NULL, "Latundê"},
+ {"lto", NULL, NULL, NULL, "Tsotso"},
+ {"lts", NULL, NULL, NULL, "Tachoni"},
+ {"ltu", NULL, NULL, NULL, "Latu"},
+ {"ltz", "ltz", "ltz", "lb", "Luxembourgish"},
+ {"lua", "lua", "lua", NULL, "Luba-Lulua"},
+ {"lub", "lub", "lub", "lu", "Luba-Katanga"},
+ {"luc", NULL, NULL, NULL, "Aringa"},
+ {"lud", NULL, NULL, NULL, "Ludian"},
+ {"lue", NULL, NULL, NULL, "Luvale"},
+ {"luf", NULL, NULL, NULL, "Laua"},
+ {"lug", "lug", "lug", "lg", "Ganda"},
+ {"lui", "lui", "lui", NULL, "Luiseno"},
+ {"luj", NULL, NULL, NULL, "Luna"},
+ {"luk", NULL, NULL, NULL, "Lunanakha"},
+ {"lul", NULL, NULL, NULL, "Olu'bo"},
+ {"lum", NULL, NULL, NULL, "Luimbi"},
+ {"lun", "lun", "lun", NULL, "Lunda"},
+ {"luo", "luo", "luo", NULL, "Luo (Kenya and Tanzania)"},
+ {"lup", NULL, NULL, NULL, "Lumbu"},
+ {"luq", NULL, NULL, NULL, "Lucumi"},
+ {"lur", NULL, NULL, NULL, "Laura"},
+ {"lus", "lus", "lus", NULL, "Lushai"},
+ {"lut", NULL, NULL, NULL, "Lushootseed"},
+ {"luu", NULL, NULL, NULL, "Lumba-Yakkha"},
+ {"luv", NULL, NULL, NULL, "Luwati"},
+ {"luw", NULL, NULL, NULL, "Luo (Cameroon)"},
+ {"luy", NULL, NULL, NULL, "Luyia"},
+ {"luz", NULL, NULL, NULL, "Southern Luri"},
+ {"lva", NULL, NULL, NULL, "Maku'a"},
+ {"lvi", NULL, NULL, NULL, "Lavi"},
+ {"lvk", NULL, NULL, NULL, "Lavukaleve"},
+ {"lvs", NULL, NULL, NULL, "Standard Latvian"},
+ {"lvu", NULL, NULL, NULL, "Levuka"},
+ {"lwa", NULL, NULL, NULL, "Lwalu"},
+ {"lwe", NULL, NULL, NULL, "Lewo Eleng"},
+ {"lwg", NULL, NULL, NULL, "Wanga"},
+ {"lwh", NULL, NULL, NULL, "White Lachi"},
+ {"lwl", NULL, NULL, NULL, "Eastern Lawa"},
+ {"lwm", NULL, NULL, NULL, "Laomian"},
+ {"lwo", NULL, NULL, NULL, "Luwo"},
+ {"lws", NULL, NULL, NULL, "Malawian Sign Language"},
+ {"lwt", NULL, NULL, NULL, "Lewotobi"},
+ {"lwu", NULL, NULL, NULL, "Lawu"},
+ {"lww", NULL, NULL, NULL, "Lewo"},
+ {"lxm", NULL, NULL, NULL, "Lakurumau"},
+ {"lya", NULL, NULL, NULL, "Layakha"},
+ {"lyg", NULL, NULL, NULL, "Lyngngam"},
+ {"lyn", NULL, NULL, NULL, "Luyana"},
+ {"lzh", NULL, NULL, NULL, "Literary Chinese"},
+ {"lzl", NULL, NULL, NULL, "Litzlitz"},
+ {"lzn", NULL, NULL, NULL, "Leinong Naga"},
+ {"lzz", NULL, NULL, NULL, "Laz"},
+ {"maa", NULL, NULL, NULL, "San Jerónimo Tecóatl Mazatec"},
+ {"mab", NULL, NULL, NULL, "Yutanduchi Mixtec"},
+ {"mad", "mad", "mad", NULL, "Madurese"},
+ {"mae", NULL, NULL, NULL, "Bo-Rukul"},
+ {"maf", NULL, NULL, NULL, "Mafa"},
+ {"mag", "mag", "mag", NULL, "Magahi"},
+ {"mah", "mah", "mah", "mh", "Marshallese"},
+ {"mai", "mai", "mai", NULL, "Maithili"},
+ {"maj", NULL, NULL, NULL, "Jalapa De Díaz Mazatec"},
+ {"mak", "mak", "mak", NULL, "Makasar"},
+ {"mal", "mal", "mal", "ml", "Malayalam"},
+ {"mam", NULL, NULL, NULL, "Mam"},
+ {"man", "man", "man", NULL, "Mandingo"},
+ {"maq", NULL, NULL, NULL, "Chiquihuitlán Mazatec"},
+ {"mar", "mar", "mar", "mr", "Marathi"},
+ {"mas", "mas", "mas", NULL, "Masai"},
+ {"mat", NULL, NULL, NULL, "San Francisco Matlatzinca"},
+ {"mau", NULL, NULL, NULL, "Huautla Mazatec"},
+ {"mav", NULL, NULL, NULL, "Sateré-Mawé"},
+ {"maw", NULL, NULL, NULL, "Mampruli"},
+ {"max", NULL, NULL, NULL, "North Moluccan Malay"},
+ {"maz", NULL, NULL, NULL, "Central Mazahua"},
+ {"mba", NULL, NULL, NULL, "Higaonon"},
+ {"mbb", NULL, NULL, NULL, "Western Bukidnon Manobo"},
+ {"mbc", NULL, NULL, NULL, "Macushi"},
+ {"mbd", NULL, NULL, NULL, "Dibabawon Manobo"},
+ {"mbe", NULL, NULL, NULL, "Molale"},
+ {"mbf", NULL, NULL, NULL, "Baba Malay"},
+ {"mbh", NULL, NULL, NULL, "Mangseng"},
+ {"mbi", NULL, NULL, NULL, "Ilianen Manobo"},
+ {"mbj", NULL, NULL, NULL, "Nadëb"},
+ {"mbk", NULL, NULL, NULL, "Malol"},
+ {"mbl", NULL, NULL, NULL, "Maxakalí"},
+ {"mbm", NULL, NULL, NULL, "Ombamba"},
+ {"mbn", NULL, NULL, NULL, "Macaguán"},
+ {"mbo", NULL, NULL, NULL, "Mbo (Cameroon)"},
+ {"mbp", NULL, NULL, NULL, "Malayo"},
+ {"mbq", NULL, NULL, NULL, "Maisin"},
+ {"mbr", NULL, NULL, NULL, "Nukak Makú"},
+ {"mbs", NULL, NULL, NULL, "Sarangani Manobo"},
+ {"mbt", NULL, NULL, NULL, "Matigsalug Manobo"},
+ {"mbu", NULL, NULL, NULL, "Mbula-Bwazza"},
+ {"mbv", NULL, NULL, NULL, "Mbulungish"},
+ {"mbw", NULL, NULL, NULL, "Maring"},
+ {"mbx", NULL, NULL, NULL, "Mari (East Sepik Province)"},
+ {"mby", NULL, NULL, NULL, "Memoni"},
+ {"mbz", NULL, NULL, NULL, "Amoltepec Mixtec"},
+ {"mca", NULL, NULL, NULL, "Maca"},
+ {"mcb", NULL, NULL, NULL, "Machiguenga"},
+ {"mcc", NULL, NULL, NULL, "Bitur"},
+ {"mcd", NULL, NULL, NULL, "Sharanahua"},
+ {"mce", NULL, NULL, NULL, "Itundujia Mixtec"},
+ {"mcf", NULL, NULL, NULL, "Matsés"},
+ {"mcg", NULL, NULL, NULL, "Mapoyo"},
+ {"mch", NULL, NULL, NULL, "Maquiritari"},
+ {"mci", NULL, NULL, NULL, "Mese"},
+ {"mcj", NULL, NULL, NULL, "Mvanip"},
+ {"mck", NULL, NULL, NULL, "Mbunda"},
+ {"mcl", NULL, NULL, NULL, "Macaguaje"},
+ {"mcm", NULL, NULL, NULL, "Malaccan Creole Portuguese"},
+ {"mcn", NULL, NULL, NULL, "Masana"},
+ {"mco", NULL, NULL, NULL, "Coatlán Mixe"},
+ {"mcp", NULL, NULL, NULL, "Makaa"},
+ {"mcq", NULL, NULL, NULL, "Ese"},
+ {"mcr", NULL, NULL, NULL, "Menya"},
+ {"mcs", NULL, NULL, NULL, "Mambai"},
+ {"mct", NULL, NULL, NULL, "Mengisa"},
+ {"mcu", NULL, NULL, NULL, "Cameroon Mambila"},
+ {"mcv", NULL, NULL, NULL, "Minanibai"},
+ {"mcw", NULL, NULL, NULL, "Mawa (Chad)"},
+ {"mcx", NULL, NULL, NULL, "Mpiemo"},
+ {"mcy", NULL, NULL, NULL, "South Watut"},
+ {"mcz", NULL, NULL, NULL, "Mawan"},
+ {"mda", NULL, NULL, NULL, "Mada (Nigeria)"},
+ {"mdb", NULL, NULL, NULL, "Morigi"},
+ {"mdc", NULL, NULL, NULL, "Male (Papua New Guinea)"},
+ {"mdd", NULL, NULL, NULL, "Mbum"},
+ {"mde", NULL, NULL, NULL, "Maba (Chad)"},
+ {"mdf", "mdf", "mdf", NULL, "Moksha"},
+ {"mdg", NULL, NULL, NULL, "Massalat"},
+ {"mdh", NULL, NULL, NULL, "Maguindanaon"},
+ {"mdi", NULL, NULL, NULL, "Mamvu"},
+ {"mdj", NULL, NULL, NULL, "Mangbetu"},
+ {"mdk", NULL, NULL, NULL, "Mangbutu"},
+ {"mdl", NULL, NULL, NULL, "Maltese Sign Language"},
+ {"mdm", NULL, NULL, NULL, "Mayogo"},
+ {"mdn", NULL, NULL, NULL, "Mbati"},
+ {"mdp", NULL, NULL, NULL, "Mbala"},
+ {"mdq", NULL, NULL, NULL, "Mbole"},
+ {"mdr", "mdr", "mdr", NULL, "Mandar"},
+ {"mds", NULL, NULL, NULL, "Maria (Papua New Guinea)"},
+ {"mdt", NULL, NULL, NULL, "Mbere"},
+ {"mdu", NULL, NULL, NULL, "Mboko"},
+ {"mdv", NULL, NULL, NULL, "Santa Lucía Monteverde Mixtec"},
+ {"mdw", NULL, NULL, NULL, "Mbosi"},
+ {"mdx", NULL, NULL, NULL, "Dizin"},
+ {"mdy", NULL, NULL, NULL, "Male (Ethiopia)"},
+ {"mdz", NULL, NULL, NULL, "Suruí Do Pará"},
+ {"mea", NULL, NULL, NULL, "Menka"},
+ {"meb", NULL, NULL, NULL, "Ikobi"},
+ {"mec", NULL, NULL, NULL, "Marra"},
+ {"med", NULL, NULL, NULL, "Melpa"},
+ {"mee", NULL, NULL, NULL, "Mengen"},
+ {"mef", NULL, NULL, NULL, "Megam"},
+ {"meh", NULL, NULL, NULL, "Southwestern Tlaxiaco Mixtec"},
+ {"mei", NULL, NULL, NULL, "Midob"},
+ {"mej", NULL, NULL, NULL, "Meyah"},
+ {"mek", NULL, NULL, NULL, "Mekeo"},
+ {"mel", NULL, NULL, NULL, "Central Melanau"},
+ {"mem", NULL, NULL, NULL, "Mangala"},
+ {"men", "men", "men", NULL, "Mende (Sierra Leone)"},
+ {"meo", NULL, NULL, NULL, "Kedah Malay"},
+ {"mep", NULL, NULL, NULL, "Miriwoong"},
+ {"meq", NULL, NULL, NULL, "Merey"},
+ {"mer", NULL, NULL, NULL, "Meru"},
+ {"mes", NULL, NULL, NULL, "Masmaje"},
+ {"met", NULL, NULL, NULL, "Mato"},
+ {"meu", NULL, NULL, NULL, "Motu"},
+ {"mev", NULL, NULL, NULL, "Mano"},
+ {"mew", NULL, NULL, NULL, "Maaka"},
+ {"mey", NULL, NULL, NULL, "Hassaniyya"},
+ {"mez", NULL, NULL, NULL, "Menominee"},
+ {"mfa", NULL, NULL, NULL, "Pattani Malay"},
+ {"mfb", NULL, NULL, NULL, "Bangka"},
+ {"mfc", NULL, NULL, NULL, "Mba"},
+ {"mfd", NULL, NULL, NULL, "Mendankwe-Nkwen"},
+ {"mfe", NULL, NULL, NULL, "Morisyen"},
+ {"mff", NULL, NULL, NULL, "Naki"},
+ {"mfg", NULL, NULL, NULL, "Mogofin"},
+ {"mfh", NULL, NULL, NULL, "Matal"},
+ {"mfi", NULL, NULL, NULL, "Wandala"},
+ {"mfj", NULL, NULL, NULL, "Mefele"},
+ {"mfk", NULL, NULL, NULL, "North Mofu"},
+ {"mfl", NULL, NULL, NULL, "Putai"},
+ {"mfm", NULL, NULL, NULL, "Marghi South"},
+ {"mfn", NULL, NULL, NULL, "Cross River Mbembe"},
+ {"mfo", NULL, NULL, NULL, "Mbe"},
+ {"mfp", NULL, NULL, NULL, "Makassar Malay"},
+ {"mfq", NULL, NULL, NULL, "Moba"},
+ {"mfr", NULL, NULL, NULL, "Marrithiyel"},
+ {"mfs", NULL, NULL, NULL, "Mexican Sign Language"},
+ {"mft", NULL, NULL, NULL, "Mokerang"},
+ {"mfu", NULL, NULL, NULL, "Mbwela"},
+ {"mfv", NULL, NULL, NULL, "Mandjak"},
+ {"mfw", NULL, NULL, NULL, "Mulaha"},
+ {"mfx", NULL, NULL, NULL, "Melo"},
+ {"mfy", NULL, NULL, NULL, "Mayo"},
+ {"mfz", NULL, NULL, NULL, "Mabaan"},
+ {"mga", "mga", "mga", NULL, "Middle Irish (900-1200)"},
+ {"mgb", NULL, NULL, NULL, "Mararit"},
+ {"mgc", NULL, NULL, NULL, "Morokodo"},
+ {"mgd", NULL, NULL, NULL, "Moru"},
+ {"mge", NULL, NULL, NULL, "Mango"},
+ {"mgf", NULL, NULL, NULL, "Maklew"},
+ {"mgg", NULL, NULL, NULL, "Mpumpong"},
+ {"mgh", NULL, NULL, NULL, "Makhuwa-Meetto"},
+ {"mgi", NULL, NULL, NULL, "Lijili"},
+ {"mgj", NULL, NULL, NULL, "Abureni"},
+ {"mgk", NULL, NULL, NULL, "Mawes"},
+ {"mgl", NULL, NULL, NULL, "Maleu-Kilenge"},
+ {"mgm", NULL, NULL, NULL, "Mambae"},
+ {"mgn", NULL, NULL, NULL, "Mbangi"},
+ {"mgo", NULL, NULL, NULL, "Meta'"},
+ {"mgp", NULL, NULL, NULL, "Eastern Magar"},
+ {"mgq", NULL, NULL, NULL, "Malila"},
+ {"mgr", NULL, NULL, NULL, "Mambwe-Lungu"},
+ {"mgs", NULL, NULL, NULL, "Manda (Tanzania)"},
+ {"mgt", NULL, NULL, NULL, "Mongol"},
+ {"mgu", NULL, NULL, NULL, "Mailu"},
+ {"mgv", NULL, NULL, NULL, "Matengo"},
+ {"mgw", NULL, NULL, NULL, "Matumbi"},
+ {"mgy", NULL, NULL, NULL, "Mbunga"},
+ {"mgz", NULL, NULL, NULL, "Mbugwe"},
+ {"mha", NULL, NULL, NULL, "Manda (India)"},
+ {"mhb", NULL, NULL, NULL, "Mahongwe"},
+ {"mhc", NULL, NULL, NULL, "Mocho"},
+ {"mhd", NULL, NULL, NULL, "Mbugu"},
+ {"mhe", NULL, NULL, NULL, "Besisi"},
+ {"mhf", NULL, NULL, NULL, "Mamaa"},
+ {"mhg", NULL, NULL, NULL, "Margu"},
+ {"mhi", NULL, NULL, NULL, "Ma'di"},
+ {"mhj", NULL, NULL, NULL, "Mogholi"},
+ {"mhk", NULL, NULL, NULL, "Mungaka"},
+ {"mhl", NULL, NULL, NULL, "Mauwake"},
+ {"mhm", NULL, NULL, NULL, "Makhuwa-Moniga"},
+ {"mhn", NULL, NULL, NULL, "Mócheno"},
+ {"mho", NULL, NULL, NULL, "Mashi (Zambia)"},
+ {"mhp", NULL, NULL, NULL, "Balinese Malay"},
+ {"mhq", NULL, NULL, NULL, "Mandan"},
+ {"mhr", NULL, NULL, NULL, "Eastern Mari"},
+ {"mhs", NULL, NULL, NULL, "Buru (Indonesia)"},
+ {"mht", NULL, NULL, NULL, "Mandahuaca"},
+ {"mhu", NULL, NULL, NULL, "Digaro-Mishmi"},
+ {"mhw", NULL, NULL, NULL, "Mbukushu"},
+ {"mhx", NULL, NULL, NULL, "Maru"},
+ {"mhy", NULL, NULL, NULL, "Ma'anyan"},
+ {"mhz", NULL, NULL, NULL, "Mor (Mor Islands)"},
+ {"mia", NULL, NULL, NULL, "Miami"},
+ {"mib", NULL, NULL, NULL, "Atatláhuca Mixtec"},
+ {"mic", "mic", "mic", NULL, "Mi'kmaq"},
+ {"mid", NULL, NULL, NULL, "Mandaic"},
+ {"mie", NULL, NULL, NULL, "Ocotepec Mixtec"},
+ {"mif", NULL, NULL, NULL, "Mofu-Gudur"},
+ {"mig", NULL, NULL, NULL, "San Miguel El Grande Mixtec"},
+ {"mih", NULL, NULL, NULL, "Chayuco Mixtec"},
+ {"mii", NULL, NULL, NULL, "Chigmecatitlán Mixtec"},
+ {"mij", NULL, NULL, NULL, "Abar"},
+ {"mik", NULL, NULL, NULL, "Mikasuki"},
+ {"mil", NULL, NULL, NULL, "Peñoles Mixtec"},
+ {"mim", NULL, NULL, NULL, "Alacatlatzala Mixtec"},
+ {"min", "min", "min", NULL, "Minangkabau"},
+ {"mio", NULL, NULL, NULL, "Pinotepa Nacional Mixtec"},
+ {"mip", NULL, NULL, NULL, "Apasco-Apoala Mixtec"},
+ {"miq", NULL, NULL, NULL, "Mískito"},
+ {"mir", NULL, NULL, NULL, "Isthmus Mixe"},
+ {"mis", "mis", "mis", NULL, "Uncoded languages"},
+ {"mit", NULL, NULL, NULL, "Southern Puebla Mixtec"},
+ {"miu", NULL, NULL, NULL, "Cacaloxtepec Mixtec"},
+ {"miw", NULL, NULL, NULL, "Akoye"},
+ {"mix", NULL, NULL, NULL, "Mixtepec Mixtec"},
+ {"miy", NULL, NULL, NULL, "Ayutla Mixtec"},
+ {"miz", NULL, NULL, NULL, "Coatzospan Mixtec"},
+ {"mjb", NULL, NULL, NULL, "Makalero"},
+ {"mjc", NULL, NULL, NULL, "San Juan Colorado Mixtec"},
+ {"mjd", NULL, NULL, NULL, "Northwest Maidu"},
+ {"mje", NULL, NULL, NULL, "Muskum"},
+ {"mjg", NULL, NULL, NULL, "Tu"},
+ {"mjh", NULL, NULL, NULL, "Mwera (Nyasa)"},
+ {"mji", NULL, NULL, NULL, "Kim Mun"},
+ {"mjj", NULL, NULL, NULL, "Mawak"},
+ {"mjk", NULL, NULL, NULL, "Matukar"},
+ {"mjl", NULL, NULL, NULL, "Mandeali"},
+ {"mjm", NULL, NULL, NULL, "Medebur"},
+ {"mjn", NULL, NULL, NULL, "Ma (Papua New Guinea)"},
+ {"mjo", NULL, NULL, NULL, "Malankuravan"},
+ {"mjp", NULL, NULL, NULL, "Malapandaram"},
+ {"mjq", NULL, NULL, NULL, "Malaryan"},
+ {"mjr", NULL, NULL, NULL, "Malavedan"},
+ {"mjs", NULL, NULL, NULL, "Miship"},
+ {"mjt", NULL, NULL, NULL, "Sauria Paharia"},
+ {"mju", NULL, NULL, NULL, "Manna-Dora"},
+ {"mjv", NULL, NULL, NULL, "Mannan"},
+ {"mjw", NULL, NULL, NULL, "Karbi"},
+ {"mjx", NULL, NULL, NULL, "Mahali"},
+ {"mjy", NULL, NULL, NULL, "Mahican"},
+ {"mjz", NULL, NULL, NULL, "Majhi"},
+ {"mka", NULL, NULL, NULL, "Mbre"},
+ {"mkb", NULL, NULL, NULL, "Mal Paharia"},
+ {"mkc", NULL, NULL, NULL, "Siliput"},
+ {"mkd", "mac", "mkd", "mk", "Macedonian"},
+ {"mke", NULL, NULL, NULL, "Mawchi"},
+ {"mkf", NULL, NULL, NULL, "Miya"},
+ {"mkg", NULL, NULL, NULL, "Mak (China)"},
+ {"mki", NULL, NULL, NULL, "Dhatki"},
+ {"mkj", NULL, NULL, NULL, "Mokilese"},
+ {"mkk", NULL, NULL, NULL, "Byep"},
+ {"mkl", NULL, NULL, NULL, "Mokole"},
+ {"mkm", NULL, NULL, NULL, "Moklen"},
+ {"mkn", NULL, NULL, NULL, "Kupang Malay"},
+ {"mko", NULL, NULL, NULL, "Mingang Doso"},
+ {"mkp", NULL, NULL, NULL, "Moikodi"},
+ {"mkq", NULL, NULL, NULL, "Bay Miwok"},
+ {"mkr", NULL, NULL, NULL, "Malas"},
+ {"mks", NULL, NULL, NULL, "Silacayoapan Mixtec"},
+ {"mkt", NULL, NULL, NULL, "Vamale"},
+ {"mku", NULL, NULL, NULL, "Konyanka Maninka"},
+ {"mkv", NULL, NULL, NULL, "Mafea"},
+ {"mkw", NULL, NULL, NULL, "Kituba (Congo)"},
+ {"mkx", NULL, NULL, NULL, "Kinamiging Manobo"},
+ {"mky", NULL, NULL, NULL, "East Makian"},
+ {"mkz", NULL, NULL, NULL, "Makasae"},
+ {"mla", NULL, NULL, NULL, "Malo"},
+ {"mlb", NULL, NULL, NULL, "Mbule"},
+ {"mlc", NULL, NULL, NULL, "Cao Lan"},
+ {"mle", NULL, NULL, NULL, "Manambu"},
+ {"mlf", NULL, NULL, NULL, "Mal"},
+ {"mlg", "mlg", "mlg", "mg", "Malagasy"},
+ {"mlh", NULL, NULL, NULL, "Mape"},
+ {"mli", NULL, NULL, NULL, "Malimpung"},
+ {"mlj", NULL, NULL, NULL, "Miltu"},
+ {"mlk", NULL, NULL, NULL, "Ilwana"},
+ {"mll", NULL, NULL, NULL, "Malua Bay"},
+ {"mlm", NULL, NULL, NULL, "Mulam"},
+ {"mln", NULL, NULL, NULL, "Malango"},
+ {"mlo", NULL, NULL, NULL, "Mlomp"},
+ {"mlp", NULL, NULL, NULL, "Bargam"},
+ {"mlq", NULL, NULL, NULL, "Western Maninkakan"},
+ {"mlr", NULL, NULL, NULL, "Vame"},
+ {"mls", NULL, NULL, NULL, "Masalit"},
+ {"mlt", "mlt", "mlt", "mt", "Maltese"},
+ {"mlu", NULL, NULL, NULL, "To'abaita"},
+ {"mlv", NULL, NULL, NULL, "Motlav"},
+ {"mlw", NULL, NULL, NULL, "Moloko"},
+ {"mlx", NULL, NULL, NULL, "Malfaxal"},
+ {"mlz", NULL, NULL, NULL, "Malaynon"},
+ {"mma", NULL, NULL, NULL, "Mama"},
+ {"mmb", NULL, NULL, NULL, "Momina"},
+ {"mmc", NULL, NULL, NULL, "Michoacán Mazahua"},
+ {"mmd", NULL, NULL, NULL, "Maonan"},
+ {"mme", NULL, NULL, NULL, "Mae"},
+ {"mmf", NULL, NULL, NULL, "Mundat"},
+ {"mmg", NULL, NULL, NULL, "North Ambrym"},
+ {"mmh", NULL, NULL, NULL, "Mehináku"},
+ {"mmi", NULL, NULL, NULL, "Musar"},
+ {"mmj", NULL, NULL, NULL, "Majhwar"},
+ {"mmk", NULL, NULL, NULL, "Mukha-Dora"},
+ {"mml", NULL, NULL, NULL, "Man Met"},
+ {"mmm", NULL, NULL, NULL, "Maii"},
+ {"mmn", NULL, NULL, NULL, "Mamanwa"},
+ {"mmo", NULL, NULL, NULL, "Mangga Buang"},
+ {"mmp", NULL, NULL, NULL, "Siawi"},
+ {"mmq", NULL, NULL, NULL, "Musak"},
+ {"mmr", NULL, NULL, NULL, "Western Xiangxi Miao"},
+ {"mmt", NULL, NULL, NULL, "Malalamai"},
+ {"mmu", NULL, NULL, NULL, "Mmaala"},
+ {"mmv", NULL, NULL, NULL, "Miriti"},
+ {"mmw", NULL, NULL, NULL, "Emae"},
+ {"mmx", NULL, NULL, NULL, "Madak"},
+ {"mmy", NULL, NULL, NULL, "Migaama"},
+ {"mmz", NULL, NULL, NULL, "Mabaale"},
+ {"mna", NULL, NULL, NULL, "Mbula"},
+ {"mnb", NULL, NULL, NULL, "Muna"},
+ {"mnc", "mnc", "mnc", NULL, "Manchu"},
+ {"mnd", NULL, NULL, NULL, "Mondé"},
+ {"mne", NULL, NULL, NULL, "Naba"},
+ {"mnf", NULL, NULL, NULL, "Mundani"},
+ {"mng", NULL, NULL, NULL, "Eastern Mnong"},
+ {"mnh", NULL, NULL, NULL, "Mono (Democratic Republic of Congo)"},
+ {"mni", "mni", "mni", NULL, "Manipuri"},
+ {"mnj", NULL, NULL, NULL, "Munji"},
+ {"mnk", NULL, NULL, NULL, "Mandinka"},
+ {"mnl", NULL, NULL, NULL, "Tiale"},
+ {"mnm", NULL, NULL, NULL, "Mapena"},
+ {"mnn", NULL, NULL, NULL, "Southern Mnong"},
+ {"mnp", NULL, NULL, NULL, "Min Bei Chinese"},
+ {"mnq", NULL, NULL, NULL, "Minriq"},
+ {"mnr", NULL, NULL, NULL, "Mono (USA)"},
+ {"mns", NULL, NULL, NULL, "Mansi"},
+ {"mnu", NULL, NULL, NULL, "Mer"},
+ {"mnv", NULL, NULL, NULL, "Rennell-Bellona"},
+ {"mnw", NULL, NULL, NULL, "Mon"},
+ {"mnx", NULL, NULL, NULL, "Manikion"},
+ {"mny", NULL, NULL, NULL, "Manyawa"},
+ {"mnz", NULL, NULL, NULL, "Moni"},
+ {"moa", NULL, NULL, NULL, "Mwan"},
+ {"moc", NULL, NULL, NULL, "Mocoví"},
+ {"mod", NULL, NULL, NULL, "Mobilian"},
+ {"moe", NULL, NULL, NULL, "Innu"},
+ {"mog", NULL, NULL, NULL, "Mongondow"},
+ {"moh", "moh", "moh", NULL, "Mohawk"},
+ {"moi", NULL, NULL, NULL, "Mboi"},
+ {"moj", NULL, NULL, NULL, "Monzombo"},
+ {"mok", NULL, NULL, NULL, "Morori"},
+ {"mom", NULL, NULL, NULL, "Mangue"},
+ {"mon", "mon", "mon", "mn", "Mongolian"},
+ {"moo", NULL, NULL, NULL, "Monom"},
+ {"mop", NULL, NULL, NULL, "Mopán Maya"},
+ {"moq", NULL, NULL, NULL, "Mor (Bomberai Peninsula)"},
+ {"mor", NULL, NULL, NULL, "Moro"},
+ {"mos", "mos", "mos", NULL, "Mossi"},
+ {"mot", NULL, NULL, NULL, "Barí"},
+ {"mou", NULL, NULL, NULL, "Mogum"},
+ {"mov", NULL, NULL, NULL, "Mohave"},
+ {"mow", NULL, NULL, NULL, "Moi (Congo)"},
+ {"mox", NULL, NULL, NULL, "Molima"},
+ {"moy", NULL, NULL, NULL, "Shekkacho"},
+ {"moz", NULL, NULL, NULL, "Mukulu"},
+ {"mpa", NULL, NULL, NULL, "Mpoto"},
+ {"mpb", NULL, NULL, NULL, "Malak Malak"},
+ {"mpc", NULL, NULL, NULL, "Mangarrayi"},
+ {"mpd", NULL, NULL, NULL, "Machinere"},
+ {"mpe", NULL, NULL, NULL, "Majang"},
+ {"mpg", NULL, NULL, NULL, "Marba"},
+ {"mph", NULL, NULL, NULL, "Maung"},
+ {"mpi", NULL, NULL, NULL, "Mpade"},
+ {"mpj", NULL, NULL, NULL, "Martu Wangka"},
+ {"mpk", NULL, NULL, NULL, "Mbara (Chad)"},
+ {"mpl", NULL, NULL, NULL, "Middle Watut"},
+ {"mpm", NULL, NULL, NULL, "Yosondúa Mixtec"},
+ {"mpn", NULL, NULL, NULL, "Mindiri"},
+ {"mpo", NULL, NULL, NULL, "Miu"},
+ {"mpp", NULL, NULL, NULL, "Migabac"},
+ {"mpq", NULL, NULL, NULL, "Matís"},
+ {"mpr", NULL, NULL, NULL, "Vangunu"},
+ {"mps", NULL, NULL, NULL, "Dadibi"},
+ {"mpt", NULL, NULL, NULL, "Mian"},
+ {"mpu", NULL, NULL, NULL, "Makuráp"},
+ {"mpv", NULL, NULL, NULL, "Mungkip"},
+ {"mpw", NULL, NULL, NULL, "Mapidian"},
+ {"mpx", NULL, NULL, NULL, "Misima-Panaeati"},
+ {"mpy", NULL, NULL, NULL, "Mapia"},
+ {"mpz", NULL, NULL, NULL, "Mpi"},
+ {"mqa", NULL, NULL, NULL, "Maba (Indonesia)"},
+ {"mqb", NULL, NULL, NULL, "Mbuko"},
+ {"mqc", NULL, NULL, NULL, "Mangole"},
+ {"mqe", NULL, NULL, NULL, "Matepi"},
+ {"mqf", NULL, NULL, NULL, "Momuna"},
+ {"mqg", NULL, NULL, NULL, "Kota Bangun Kutai Malay"},
+ {"mqh", NULL, NULL, NULL, "Tlazoyaltepec Mixtec"},
+ {"mqi", NULL, NULL, NULL, "Mariri"},
+ {"mqj", NULL, NULL, NULL, "Mamasa"},
+ {"mqk", NULL, NULL, NULL, "Rajah Kabunsuwan Manobo"},
+ {"mql", NULL, NULL, NULL, "Mbelime"},
+ {"mqm", NULL, NULL, NULL, "South Marquesan"},
+ {"mqn", NULL, NULL, NULL, "Moronene"},
+ {"mqo", NULL, NULL, NULL, "Modole"},
+ {"mqp", NULL, NULL, NULL, "Manipa"},
+ {"mqq", NULL, NULL, NULL, "Minokok"},
+ {"mqr", NULL, NULL, NULL, "Mander"},
+ {"mqs", NULL, NULL, NULL, "West Makian"},
+ {"mqt", NULL, NULL, NULL, "Mok"},
+ {"mqu", NULL, NULL, NULL, "Mandari"},
+ {"mqv", NULL, NULL, NULL, "Mosimo"},
+ {"mqw", NULL, NULL, NULL, "Murupi"},
+ {"mqx", NULL, NULL, NULL, "Mamuju"},
+ {"mqy", NULL, NULL, NULL, "Manggarai"},
+ {"mqz", NULL, NULL, NULL, "Pano"},
+ {"mra", NULL, NULL, NULL, "Mlabri"},
+ {"mrb", NULL, NULL, NULL, "Marino"},
+ {"mrc", NULL, NULL, NULL, "Maricopa"},
+ {"mrd", NULL, NULL, NULL, "Western Magar"},
+ {"mre", NULL, NULL, NULL, "Martha's Vineyard Sign Language"},
+ {"mrf", NULL, NULL, NULL, "Elseng"},
+ {"mrg", NULL, NULL, NULL, "Mising"},
+ {"mrh", NULL, NULL, NULL, "Mara Chin"},
+ {"mri", "mao", "mri", "mi", "Maori"},
+ {"mrj", NULL, NULL, NULL, "Western Mari"},
+ {"mrk", NULL, NULL, NULL, "Hmwaveke"},
+ {"mrl", NULL, NULL, NULL, "Mortlockese"},
+ {"mrm", NULL, NULL, NULL, "Merlav"},
+ {"mrn", NULL, NULL, NULL, "Cheke Holo"},
+ {"mro", NULL, NULL, NULL, "Mru"},
+ {"mrp", NULL, NULL, NULL, "Morouas"},
+ {"mrq", NULL, NULL, NULL, "North Marquesan"},
+ {"mrr", NULL, NULL, NULL, "Maria (India)"},
+ {"mrs", NULL, NULL, NULL, "Maragus"},
+ {"mrt", NULL, NULL, NULL, "Marghi Central"},
+ {"mru", NULL, NULL, NULL, "Mono (Cameroon)"},
+ {"mrv", NULL, NULL, NULL, "Mangareva"},
+ {"mrw", NULL, NULL, NULL, "Maranao"},
+ {"mrx", NULL, NULL, NULL, "Maremgi"},
+ {"mry", NULL, NULL, NULL, "Mandaya"},
+ {"mrz", NULL, NULL, NULL, "Marind"},
+ {"msa", "may", "msa", "ms", "Malay (macrolanguage)"},
+ {"msb", NULL, NULL, NULL, "Masbatenyo"},
+ {"msc", NULL, NULL, NULL, "Sankaran Maninka"},
+ {"msd", NULL, NULL, NULL, "Yucatec Maya Sign Language"},
+ {"mse", NULL, NULL, NULL, "Musey"},
+ {"msf", NULL, NULL, NULL, "Mekwei"},
+ {"msg", NULL, NULL, NULL, "Moraid"},
+ {"msh", NULL, NULL, NULL, "Masikoro Malagasy"},
+ {"msi", NULL, NULL, NULL, "Sabah Malay"},
+ {"msj", NULL, NULL, NULL, "Ma (Democratic Republic of Congo)"},
+ {"msk", NULL, NULL, NULL, "Mansaka"},
+ {"msl", NULL, NULL, NULL, "Molof"},
+ {"msm", NULL, NULL, NULL, "Agusan Manobo"},
+ {"msn", NULL, NULL, NULL, "Vurës"},
+ {"mso", NULL, NULL, NULL, "Mombum"},
+ {"msp", NULL, NULL, NULL, "Maritsauá"},
+ {"msq", NULL, NULL, NULL, "Caac"},
+ {"msr", NULL, NULL, NULL, "Mongolian Sign Language"},
+ {"mss", NULL, NULL, NULL, "West Masela"},
+ {"msu", NULL, NULL, NULL, "Musom"},
+ {"msv", NULL, NULL, NULL, "Maslam"},
+ {"msw", NULL, NULL, NULL, "Mansoanka"},
+ {"msx", NULL, NULL, NULL, "Moresada"},
+ {"msy", NULL, NULL, NULL, "Aruamu"},
+ {"msz", NULL, NULL, NULL, "Momare"},
+ {"mta", NULL, NULL, NULL, "Cotabato Manobo"},
+ {"mtb", NULL, NULL, NULL, "Anyin Morofo"},
+ {"mtc", NULL, NULL, NULL, "Munit"},
+ {"mtd", NULL, NULL, NULL, "Mualang"},
+ {"mte", NULL, NULL, NULL, "Mono (Solomon Islands)"},
+ {"mtf", NULL, NULL, NULL, "Murik (Papua New Guinea)"},
+ {"mtg", NULL, NULL, NULL, "Una"},
+ {"mth", NULL, NULL, NULL, "Munggui"},
+ {"mti", NULL, NULL, NULL, "Maiwa (Papua New Guinea)"},
+ {"mtj", NULL, NULL, NULL, "Moskona"},
+ {"mtk", NULL, NULL, NULL, "Mbe'"},
+ {"mtl", NULL, NULL, NULL, "Montol"},
+ {"mtm", NULL, NULL, NULL, "Mator"},
+ {"mtn", NULL, NULL, NULL, "Matagalpa"},
+ {"mto", NULL, NULL, NULL, "Totontepec Mixe"},
+ {"mtp", NULL, NULL, NULL, "Wichí Lhamtés Nocten"},
+ {"mtq", NULL, NULL, NULL, "Muong"},
+ {"mtr", NULL, NULL, NULL, "Mewari"},
+ {"mts", NULL, NULL, NULL, "Yora"},
+ {"mtt", NULL, NULL, NULL, "Mota"},
+ {"mtu", NULL, NULL, NULL, "Tututepec Mixtec"},
+ {"mtv", NULL, NULL, NULL, "Asaro'o"},
+ {"mtw", NULL, NULL, NULL, "Southern Binukidnon"},
+ {"mtx", NULL, NULL, NULL, "Tidaá Mixtec"},
+ {"mty", NULL, NULL, NULL, "Nabi"},
+ {"mua", NULL, NULL, NULL, "Mundang"},
+ {"mub", NULL, NULL, NULL, "Mubi"},
+ {"muc", NULL, NULL, NULL, "Ajumbu"},
+ {"mud", NULL, NULL, NULL, "Mednyj Aleut"},
+ {"mue", NULL, NULL, NULL, "Media Lengua"},
+ {"mug", NULL, NULL, NULL, "Musgu"},
+ {"muh", NULL, NULL, NULL, "Mündü"},
+ {"mui", NULL, NULL, NULL, "Musi"},
+ {"muj", NULL, NULL, NULL, "Mabire"},
+ {"muk", NULL, NULL, NULL, "Mugom"},
+ {"mul", "mul", "mul", NULL, "Multiple languages"},
+ {"mum", NULL, NULL, NULL, "Maiwala"},
+ {"muo", NULL, NULL, NULL, "Nyong"},
+ {"mup", NULL, NULL, NULL, "Malvi"},
+ {"muq", NULL, NULL, NULL, "Eastern Xiangxi Miao"},
+ {"mur", NULL, NULL, NULL, "Murle"},
+ {"mus", "mus", "mus", NULL, "Creek"},
+ {"mut", NULL, NULL, NULL, "Western Muria"},
+ {"muu", NULL, NULL, NULL, "Yaaku"},
+ {"muv", NULL, NULL, NULL, "Muthuvan"},
+ {"mux", NULL, NULL, NULL, "Bo-Ung"},
+ {"muy", NULL, NULL, NULL, "Muyang"},
+ {"muz", NULL, NULL, NULL, "Mursi"},
+ {"mva", NULL, NULL, NULL, "Manam"},
+ {"mvb", NULL, NULL, NULL, "Mattole"},
+ {"mvd", NULL, NULL, NULL, "Mamboru"},
+ {"mve", NULL, NULL, NULL, "Marwari (Pakistan)"},
+ {"mvf", NULL, NULL, NULL, "Peripheral Mongolian"},
+ {"mvg", NULL, NULL, NULL, "Yucuañe Mixtec"},
+ {"mvh", NULL, NULL, NULL, "Mulgi"},
+ {"mvi", NULL, NULL, NULL, "Miyako"},
+ {"mvk", NULL, NULL, NULL, "Mekmek"},
+ {"mvl", NULL, NULL, NULL, "Mbara (Australia)"},
+ {"mvn", NULL, NULL, NULL, "Minaveha"},
+ {"mvo", NULL, NULL, NULL, "Marovo"},
+ {"mvp", NULL, NULL, NULL, "Duri"},
+ {"mvq", NULL, NULL, NULL, "Moere"},
+ {"mvr", NULL, NULL, NULL, "Marau"},
+ {"mvs", NULL, NULL, NULL, "Massep"},
+ {"mvt", NULL, NULL, NULL, "Mpotovoro"},
+ {"mvu", NULL, NULL, NULL, "Marfa"},
+ {"mvv", NULL, NULL, NULL, "Tagal Murut"},
+ {"mvw", NULL, NULL, NULL, "Machinga"},
+ {"mvx", NULL, NULL, NULL, "Meoswar"},
+ {"mvy", NULL, NULL, NULL, "Indus Kohistani"},
+ {"mvz", NULL, NULL, NULL, "Mesqan"},
+ {"mwa", NULL, NULL, NULL, "Mwatebu"},
+ {"mwb", NULL, NULL, NULL, "Juwal"},
+ {"mwc", NULL, NULL, NULL, "Are"},
+ {"mwe", NULL, NULL, NULL, "Mwera (Chimwera)"},
+ {"mwf", NULL, NULL, NULL, "Murrinh-Patha"},
+ {"mwg", NULL, NULL, NULL, "Aiklep"},
+ {"mwh", NULL, NULL, NULL, "Mouk-Aria"},
+ {"mwi", NULL, NULL, NULL, "Labo"},
+ {"mwk", NULL, NULL, NULL, "Kita Maninkakan"},
+ {"mwl", "mwl", "mwl", NULL, "Mirandese"},
+ {"mwm", NULL, NULL, NULL, "Sar"},
+ {"mwn", NULL, NULL, NULL, "Nyamwanga"},
+ {"mwo", NULL, NULL, NULL, "Central Maewo"},
+ {"mwp", NULL, NULL, NULL, "Kala Lagaw Ya"},
+ {"mwq", NULL, NULL, NULL, "Mün Chin"},
+ {"mwr", "mwr", "mwr", NULL, "Marwari"},
+ {"mws", NULL, NULL, NULL, "Mwimbi-Muthambi"},
+ {"mwt", NULL, NULL, NULL, "Moken"},
+ {"mwu", NULL, NULL, NULL, "Mittu"},
+ {"mwv", NULL, NULL, NULL, "Mentawai"},
+ {"mww", NULL, NULL, NULL, "Hmong Daw"},
+ {"mwz", NULL, NULL, NULL, "Moingi"},
+ {"mxa", NULL, NULL, NULL, "Northwest Oaxaca Mixtec"},
+ {"mxb", NULL, NULL, NULL, "Tezoatlán Mixtec"},
+ {"mxc", NULL, NULL, NULL, "Manyika"},
+ {"mxd", NULL, NULL, NULL, "Modang"},
+ {"mxe", NULL, NULL, NULL, "Mele-Fila"},
+ {"mxf", NULL, NULL, NULL, "Malgbe"},
+ {"mxg", NULL, NULL, NULL, "Mbangala"},
+ {"mxh", NULL, NULL, NULL, "Mvuba"},
+ {"mxi", NULL, NULL, NULL, "Mozarabic"},
+ {"mxj", NULL, NULL, NULL, "Miju-Mishmi"},
+ {"mxk", NULL, NULL, NULL, "Monumbo"},
+ {"mxl", NULL, NULL, NULL, "Maxi Gbe"},
+ {"mxm", NULL, NULL, NULL, "Meramera"},
+ {"mxn", NULL, NULL, NULL, "Moi (Indonesia)"},
+ {"mxo", NULL, NULL, NULL, "Mbowe"},
+ {"mxp", NULL, NULL, NULL, "Tlahuitoltepec Mixe"},
+ {"mxq", NULL, NULL, NULL, "Juquila Mixe"},
+ {"mxr", NULL, NULL, NULL, "Murik (Malaysia)"},
+ {"mxs", NULL, NULL, NULL, "Huitepec Mixtec"},
+ {"mxt", NULL, NULL, NULL, "Jamiltepec Mixtec"},
+ {"mxu", NULL, NULL, NULL, "Mada (Cameroon)"},
+ {"mxv", NULL, NULL, NULL, "Metlatónoc Mixtec"},
+ {"mxw", NULL, NULL, NULL, "Namo"},
+ {"mxx", NULL, NULL, NULL, "Mahou"},
+ {"mxy", NULL, NULL, NULL, "Southeastern Nochixtlán Mixtec"},
+ {"mxz", NULL, NULL, NULL, "Central Masela"},
+ {"mya", "bur", "mya", "my", "Burmese"},
+ {"myb", NULL, NULL, NULL, "Mbay"},
+ {"myc", NULL, NULL, NULL, "Mayeka"},
+ {"mye", NULL, NULL, NULL, "Myene"},
+ {"myf", NULL, NULL, NULL, "Bambassi"},
+ {"myg", NULL, NULL, NULL, "Manta"},
+ {"myh", NULL, NULL, NULL, "Makah"},
+ {"myj", NULL, NULL, NULL, "Mangayat"},
+ {"myk", NULL, NULL, NULL, "Mamara Senoufo"},
+ {"myl", NULL, NULL, NULL, "Moma"},
+ {"mym", NULL, NULL, NULL, "Me'en"},
+ {"myo", NULL, NULL, NULL, "Anfillo"},
+ {"myp", NULL, NULL, NULL, "Pirahã"},
+ {"myr", NULL, NULL, NULL, "Muniche"},
+ {"mys", NULL, NULL, NULL, "Mesmes"},
+ {"myu", NULL, NULL, NULL, "Mundurukú"},
+ {"myv", "myv", "myv", NULL, "Erzya"},
+ {"myw", NULL, NULL, NULL, "Muyuw"},
+ {"myx", NULL, NULL, NULL, "Masaaba"},
+ {"myy", NULL, NULL, NULL, "Macuna"},
+ {"myz", NULL, NULL, NULL, "Classical Mandaic"},
+ {"mza", NULL, NULL, NULL, "Santa María Zacatepec Mixtec"},
+ {"mzb", NULL, NULL, NULL, "Tumzabt"},
+ {"mzc", NULL, NULL, NULL, "Madagascar Sign Language"},
+ {"mzd", NULL, NULL, NULL, "Malimba"},
+ {"mze", NULL, NULL, NULL, "Morawa"},
+ {"mzg", NULL, NULL, NULL, "Monastic Sign Language"},
+ {"mzh", NULL, NULL, NULL, "Wichí Lhamtés Güisnay"},
+ {"mzi", NULL, NULL, NULL, "Ixcatlán Mazatec"},
+ {"mzj", NULL, NULL, NULL, "Manya"},
+ {"mzk", NULL, NULL, NULL, "Nigeria Mambila"},
+ {"mzl", NULL, NULL, NULL, "Mazatlán Mixe"},
+ {"mzm", NULL, NULL, NULL, "Mumuye"},
+ {"mzn", NULL, NULL, NULL, "Mazanderani"},
+ {"mzo", NULL, NULL, NULL, "Matipuhy"},
+ {"mzp", NULL, NULL, NULL, "Movima"},
+ {"mzq", NULL, NULL, NULL, "Mori Atas"},
+ {"mzr", NULL, NULL, NULL, "Marúbo"},
+ {"mzs", NULL, NULL, NULL, "Macanese"},
+ {"mzt", NULL, NULL, NULL, "Mintil"},
+ {"mzu", NULL, NULL, NULL, "Inapang"},
+ {"mzv", NULL, NULL, NULL, "Manza"},
+ {"mzw", NULL, NULL, NULL, "Deg"},
+ {"mzx", NULL, NULL, NULL, "Mawayana"},
+ {"mzy", NULL, NULL, NULL, "Mozambican Sign Language"},
+ {"mzz", NULL, NULL, NULL, "Maiadomu"},
+ {"naa", NULL, NULL, NULL, "Namla"},
+ {"nab", NULL, NULL, NULL, "Southern Nambikuára"},
+ {"nac", NULL, NULL, NULL, "Narak"},
+ {"nae", NULL, NULL, NULL, "Naka'ela"},
+ {"naf", NULL, NULL, NULL, "Nabak"},
+ {"nag", NULL, NULL, NULL, "Naga Pidgin"},
+ {"naj", NULL, NULL, NULL, "Nalu"},
+ {"nak", NULL, NULL, NULL, "Nakanai"},
+ {"nal", NULL, NULL, NULL, "Nalik"},
+ {"nam", NULL, NULL, NULL, "Ngan'gityemerri"},
+ {"nan", NULL, NULL, NULL, "Min Nan Chinese"},
+ {"nao", NULL, NULL, NULL, "Naaba"},
+ {"nap", "nap", "nap", NULL, "Neapolitan"},
+ {"naq", NULL, NULL, NULL, "Khoekhoe"},
+ {"nar", NULL, NULL, NULL, "Iguta"},
+ {"nas", NULL, NULL, NULL, "Naasioi"},
+ {"nat", NULL, NULL, NULL, "Ca̱hungwa̱rya̱"},
+ {"nau", "nau", "nau", "na", "Nauru"},
+ {"nav", "nav", "nav", "nv", "Navajo"},
+ {"naw", NULL, NULL, NULL, "Nawuri"},
+ {"nax", NULL, NULL, NULL, "Nakwi"},
+ {"nay", NULL, NULL, NULL, "Ngarrindjeri"},
+ {"naz", NULL, NULL, NULL, "Coatepec Nahuatl"},
+ {"nba", NULL, NULL, NULL, "Nyemba"},
+ {"nbb", NULL, NULL, NULL, "Ndoe"},
+ {"nbc", NULL, NULL, NULL, "Chang Naga"},
+ {"nbd", NULL, NULL, NULL, "Ngbinda"},
+ {"nbe", NULL, NULL, NULL, "Konyak Naga"},
+ {"nbg", NULL, NULL, NULL, "Nagarchal"},
+ {"nbh", NULL, NULL, NULL, "Ngamo"},
+ {"nbi", NULL, NULL, NULL, "Mao Naga"},
+ {"nbj", NULL, NULL, NULL, "Ngarinyman"},
+ {"nbk", NULL, NULL, NULL, "Nake"},
+ {"nbl", "nbl", "nbl", "nr", "South Ndebele"},
+ {"nbm", NULL, NULL, NULL, "Ngbaka Ma'bo"},
+ {"nbn", NULL, NULL, NULL, "Kuri"},
+ {"nbo", NULL, NULL, NULL, "Nkukoli"},
+ {"nbp", NULL, NULL, NULL, "Nnam"},
+ {"nbq", NULL, NULL, NULL, "Nggem"},
+ {"nbr", NULL, NULL, NULL, "Numana"},
+ {"nbs", NULL, NULL, NULL, "Namibian Sign Language"},
+ {"nbt", NULL, NULL, NULL, "Na"},
+ {"nbu", NULL, NULL, NULL, "Rongmei Naga"},
+ {"nbv", NULL, NULL, NULL, "Ngamambo"},
+ {"nbw", NULL, NULL, NULL, "Southern Ngbandi"},
+ {"nby", NULL, NULL, NULL, "Ningera"},
+ {"nca", NULL, NULL, NULL, "Iyo"},
+ {"ncb", NULL, NULL, NULL, "Central Nicobarese"},
+ {"ncc", NULL, NULL, NULL, "Ponam"},
+ {"ncd", NULL, NULL, NULL, "Nachering"},
+ {"nce", NULL, NULL, NULL, "Yale"},
+ {"ncf", NULL, NULL, NULL, "Notsi"},
+ {"ncg", NULL, NULL, NULL, "Nisga'a"},
+ {"nch", NULL, NULL, NULL, "Central Huasteca Nahuatl"},
+ {"nci", NULL, NULL, NULL, "Classical Nahuatl"},
+ {"ncj", NULL, NULL, NULL, "Northern Puebla Nahuatl"},
+ {"nck", NULL, NULL, NULL, "Na-kara"},
+ {"ncl", NULL, NULL, NULL, "Michoacán Nahuatl"},
+ {"ncm", NULL, NULL, NULL, "Nambo"},
+ {"ncn", NULL, NULL, NULL, "Nauna"},
+ {"nco", NULL, NULL, NULL, "Sibe"},
+ {"ncq", NULL, NULL, NULL, "Northern Katang"},
+ {"ncr", NULL, NULL, NULL, "Ncane"},
+ {"ncs", NULL, NULL, NULL, "Nicaraguan Sign Language"},
+ {"nct", NULL, NULL, NULL, "Chothe Naga"},
+ {"ncu", NULL, NULL, NULL, "Chumburung"},
+ {"ncx", NULL, NULL, NULL, "Central Puebla Nahuatl"},
+ {"ncz", NULL, NULL, NULL, "Natchez"},
+ {"nda", NULL, NULL, NULL, "Ndasa"},
+ {"ndb", NULL, NULL, NULL, "Kenswei Nsei"},
+ {"ndc", NULL, NULL, NULL, "Ndau"},
+ {"ndd", NULL, NULL, NULL, "Nde-Nsele-Nta"},
+ {"nde", "nde", "nde", "nd", "North Ndebele"},
+ {"ndf", NULL, NULL, NULL, "Nadruvian"},
+ {"ndg", NULL, NULL, NULL, "Ndengereko"},
+ {"ndh", NULL, NULL, NULL, "Ndali"},
+ {"ndi", NULL, NULL, NULL, "Samba Leko"},
+ {"ndj", NULL, NULL, NULL, "Ndamba"},
+ {"ndk", NULL, NULL, NULL, "Ndaka"},
+ {"ndl", NULL, NULL, NULL, "Ndolo"},
+ {"ndm", NULL, NULL, NULL, "Ndam"},
+ {"ndn", NULL, NULL, NULL, "Ngundi"},
+ {"ndo", "ndo", "ndo", "ng", "Ndonga"},
+ {"ndp", NULL, NULL, NULL, "Ndo"},
+ {"ndq", NULL, NULL, NULL, "Ndombe"},
+ {"ndr", NULL, NULL, NULL, "Ndoola"},
+ {"nds", "nds", "nds", NULL, "Low German"},
+ {"ndt", NULL, NULL, NULL, "Ndunga"},
+ {"ndu", NULL, NULL, NULL, "Dugun"},
+ {"ndv", NULL, NULL, NULL, "Ndut"},
+ {"ndw", NULL, NULL, NULL, "Ndobo"},
+ {"ndx", NULL, NULL, NULL, "Nduga"},
+ {"ndy", NULL, NULL, NULL, "Lutos"},
+ {"ndz", NULL, NULL, NULL, "Ndogo"},
+ {"nea", NULL, NULL, NULL, "Eastern Ngad'a"},
+ {"neb", NULL, NULL, NULL, "Toura (Côte d'Ivoire)"},
+ {"nec", NULL, NULL, NULL, "Nedebang"},
+ {"ned", NULL, NULL, NULL, "Nde-Gbite"},
+ {"nee", NULL, NULL, NULL, "Nêlêmwa-Nixumwak"},
+ {"nef", NULL, NULL, NULL, "Nefamese"},
+ {"neg", NULL, NULL, NULL, "Negidal"},
+ {"neh", NULL, NULL, NULL, "Nyenkha"},
+ {"nei", NULL, NULL, NULL, "Neo-Hittite"},
+ {"nej", NULL, NULL, NULL, "Neko"},
+ {"nek", NULL, NULL, NULL, "Neku"},
+ {"nem", NULL, NULL, NULL, "Nemi"},
+ {"nen", NULL, NULL, NULL, "Nengone"},
+ {"neo", NULL, NULL, NULL, "Ná-Meo"},
+ {"nep", "nep", "nep", "ne", "Nepali (macrolanguage)"},
+ {"neq", NULL, NULL, NULL, "North Central Mixe"},
+ {"ner", NULL, NULL, NULL, "Yahadian"},
+ {"nes", NULL, NULL, NULL, "Bhoti Kinnauri"},
+ {"net", NULL, NULL, NULL, "Nete"},
+ {"neu", NULL, NULL, NULL, "Neo"},
+ {"nev", NULL, NULL, NULL, "Nyaheun"},
+ {"new", "new", "new", NULL, "Newari"},
+ {"nex", NULL, NULL, NULL, "Neme"},
+ {"ney", NULL, NULL, NULL, "Neyo"},
+ {"nez", NULL, NULL, NULL, "Nez Perce"},
+ {"nfa", NULL, NULL, NULL, "Dhao"},
+ {"nfd", NULL, NULL, NULL, "Ahwai"},
+ {"nfl", NULL, NULL, NULL, "Ayiwo"},
+ {"nfr", NULL, NULL, NULL, "Nafaanra"},
+ {"nfu", NULL, NULL, NULL, "Mfumte"},
+ {"nga", NULL, NULL, NULL, "Ngbaka"},
+ {"ngb", NULL, NULL, NULL, "Northern Ngbandi"},
+ {"ngc", NULL, NULL, NULL, "Ngombe (Democratic Republic of Congo)"},
+ {"ngd", NULL, NULL, NULL, "Ngando (Central African Republic)"},
+ {"nge", NULL, NULL, NULL, "Ngemba"},
+ {"ngg", NULL, NULL, NULL, "Ngbaka Manza"},
+ {"ngh", NULL, NULL, NULL, "Nǁng"},
+ {"ngi", NULL, NULL, NULL, "Ngizim"},
+ {"ngj", NULL, NULL, NULL, "Ngie"},
+ {"ngk", NULL, NULL, NULL, "Dalabon"},
+ {"ngl", NULL, NULL, NULL, "Lomwe"},
+ {"ngm", NULL, NULL, NULL, "Ngatik Men's Creole"},
+ {"ngn", NULL, NULL, NULL, "Ngwo"},
+ {"ngp", NULL, NULL, NULL, "Ngulu"},
+ {"ngq", NULL, NULL, NULL, "Ngurimi"},
+ {"ngr", NULL, NULL, NULL, "Engdewu"},
+ {"ngs", NULL, NULL, NULL, "Gvoko"},
+ {"ngt", NULL, NULL, NULL, "Kriang"},
+ {"ngu", NULL, NULL, NULL, "Guerrero Nahuatl"},
+ {"ngv", NULL, NULL, NULL, "Nagumi"},
+ {"ngw", NULL, NULL, NULL, "Ngwaba"},
+ {"ngx", NULL, NULL, NULL, "Nggwahyi"},
+ {"ngy", NULL, NULL, NULL, "Tibea"},
+ {"ngz", NULL, NULL, NULL, "Ngungwel"},
+ {"nha", NULL, NULL, NULL, "Nhanda"},
+ {"nhb", NULL, NULL, NULL, "Beng"},
+ {"nhc", NULL, NULL, NULL, "Tabasco Nahuatl"},
+ {"nhd", NULL, NULL, NULL, "Chiripá"},
+ {"nhe", NULL, NULL, NULL, "Eastern Huasteca Nahuatl"},
+ {"nhf", NULL, NULL, NULL, "Nhuwala"},
+ {"nhg", NULL, NULL, NULL, "Tetelcingo Nahuatl"},
+ {"nhh", NULL, NULL, NULL, "Nahari"},
+ {"nhi", NULL, NULL, NULL, "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"},
+ {"nhk", NULL, NULL, NULL, "Isthmus-Cosoleacaque Nahuatl"},
+ {"nhm", NULL, NULL, NULL, "Morelos Nahuatl"},
+ {"nhn", NULL, NULL, NULL, "Central Nahuatl"},
+ {"nho", NULL, NULL, NULL, "Takuu"},
+ {"nhp", NULL, NULL, NULL, "Isthmus-Pajapan Nahuatl"},
+ {"nhq", NULL, NULL, NULL, "Huaxcaleca Nahuatl"},
+ {"nhr", NULL, NULL, NULL, "Naro"},
+ {"nht", NULL, NULL, NULL, "Ometepec Nahuatl"},
+ {"nhu", NULL, NULL, NULL, "Noone"},
+ {"nhv", NULL, NULL, NULL, "Temascaltepec Nahuatl"},
+ {"nhw", NULL, NULL, NULL, "Western Huasteca Nahuatl"},
+ {"nhx", NULL, NULL, NULL, "Isthmus-Mecayapan Nahuatl"},
+ {"nhy", NULL, NULL, NULL, "Northern Oaxaca Nahuatl"},
+ {"nhz", NULL, NULL, NULL, "Santa María La Alta Nahuatl"},
+ {"nia", "nia", "nia", NULL, "Nias"},
+ {"nib", NULL, NULL, NULL, "Nakame"},
+ {"nid", NULL, NULL, NULL, "Ngandi"},
+ {"nie", NULL, NULL, NULL, "Niellim"},
+ {"nif", NULL, NULL, NULL, "Nek"},
+ {"nig", NULL, NULL, NULL, "Ngalakgan"},
+ {"nih", NULL, NULL, NULL, "Nyiha (Tanzania)"},
+ {"nii", NULL, NULL, NULL, "Nii"},
+ {"nij", NULL, NULL, NULL, "Ngaju"},
+ {"nik", NULL, NULL, NULL, "Southern Nicobarese"},
+ {"nil", NULL, NULL, NULL, "Nila"},
+ {"nim", NULL, NULL, NULL, "Nilamba"},
+ {"nin", NULL, NULL, NULL, "Ninzo"},
+ {"nio", NULL, NULL, NULL, "Nganasan"},
+ {"niq", NULL, NULL, NULL, "Nandi"},
+ {"nir", NULL, NULL, NULL, "Nimboran"},
+ {"nis", NULL, NULL, NULL, "Nimi"},
+ {"nit", NULL, NULL, NULL, "Southeastern Kolami"},
+ {"niu", "niu", "niu", NULL, "Niuean"},
+ {"niv", NULL, NULL, NULL, "Gilyak"},
+ {"niw", NULL, NULL, NULL, "Nimo"},
+ {"nix", NULL, NULL, NULL, "Hema"},
+ {"niy", NULL, NULL, NULL, "Ngiti"},
+ {"niz", NULL, NULL, NULL, "Ningil"},
+ {"nja", NULL, NULL, NULL, "Nzanyi"},
+ {"njb", NULL, NULL, NULL, "Nocte Naga"},
+ {"njd", NULL, NULL, NULL, "Ndonde Hamba"},
+ {"njh", NULL, NULL, NULL, "Lotha Naga"},
+ {"nji", NULL, NULL, NULL, "Gudanji"},
+ {"njj", NULL, NULL, NULL, "Njen"},
+ {"njl", NULL, NULL, NULL, "Njalgulgule"},
+ {"njm", NULL, NULL, NULL, "Angami Naga"},
+ {"njn", NULL, NULL, NULL, "Liangmai Naga"},
+ {"njo", NULL, NULL, NULL, "Ao Naga"},
+ {"njr", NULL, NULL, NULL, "Njerep"},
+ {"njs", NULL, NULL, NULL, "Nisa"},
+ {"njt", NULL, NULL, NULL, "Ndyuka-Trio Pidgin"},
+ {"nju", NULL, NULL, NULL, "Ngadjunmaya"},
+ {"njx", NULL, NULL, NULL, "Kunyi"},
+ {"njy", NULL, NULL, NULL, "Njyem"},
+ {"njz", NULL, NULL, NULL, "Nyishi"},
+ {"nka", NULL, NULL, NULL, "Nkoya"},
+ {"nkb", NULL, NULL, NULL, "Khoibu Naga"},
+ {"nkc", NULL, NULL, NULL, "Nkongho"},
+ {"nkd", NULL, NULL, NULL, "Koireng"},
+ {"nke", NULL, NULL, NULL, "Duke"},
+ {"nkf", NULL, NULL, NULL, "Inpui Naga"},
+ {"nkg", NULL, NULL, NULL, "Nekgini"},
+ {"nkh", NULL, NULL, NULL, "Khezha Naga"},
+ {"nki", NULL, NULL, NULL, "Thangal Naga"},
+ {"nkj", NULL, NULL, NULL, "Nakai"},
+ {"nkk", NULL, NULL, NULL, "Nokuku"},
+ {"nkm", NULL, NULL, NULL, "Namat"},
+ {"nkn", NULL, NULL, NULL, "Nkangala"},
+ {"nko", NULL, NULL, NULL, "Nkonya"},
+ {"nkp", NULL, NULL, NULL, "Niuatoputapu"},
+ {"nkq", NULL, NULL, NULL, "Nkami"},
+ {"nkr", NULL, NULL, NULL, "Nukuoro"},
+ {"nks", NULL, NULL, NULL, "North Asmat"},
+ {"nkt", NULL, NULL, NULL, "Nyika (Tanzania)"},
+ {"nku", NULL, NULL, NULL, "Bouna Kulango"},
+ {"nkv", NULL, NULL, NULL, "Nyika (Malawi and Zambia)"},
+ {"nkw", NULL, NULL, NULL, "Nkutu"},
+ {"nkx", NULL, NULL, NULL, "Nkoroo"},
+ {"nkz", NULL, NULL, NULL, "Nkari"},
+ {"nla", NULL, NULL, NULL, "Ngombale"},
+ {"nlc", NULL, NULL, NULL, "Nalca"},
+ {"nld", "dut", "nld", "nl", "Dutch"},
+ {"nle", NULL, NULL, NULL, "East Nyala"},
+ {"nlg", NULL, NULL, NULL, "Gela"},
+ {"nli", NULL, NULL, NULL, "Grangali"},
+ {"nlj", NULL, NULL, NULL, "Nyali"},
+ {"nlk", NULL, NULL, NULL, "Ninia Yali"},
+ {"nll", NULL, NULL, NULL, "Nihali"},
+ {"nlm", NULL, NULL, NULL, "Mankiyali"},
+ {"nlo", NULL, NULL, NULL, "Ngul"},
+ {"nlq", NULL, NULL, NULL, "Lao Naga"},
+ {"nlu", NULL, NULL, NULL, "Nchumbulu"},
+ {"nlv", NULL, NULL, NULL, "Orizaba Nahuatl"},
+ {"nlw", NULL, NULL, NULL, "Walangama"},
+ {"nlx", NULL, NULL, NULL, "Nahali"},
+ {"nly", NULL, NULL, NULL, "Nyamal"},
+ {"nlz", NULL, NULL, NULL, "Nalögo"},
+ {"nma", NULL, NULL, NULL, "Maram Naga"},
+ {"nmb", NULL, NULL, NULL, "Big Nambas"},
+ {"nmc", NULL, NULL, NULL, "Ngam"},
+ {"nmd", NULL, NULL, NULL, "Ndumu"},
+ {"nme", NULL, NULL, NULL, "Mzieme Naga"},
+ {"nmf", NULL, NULL, NULL, "Tangkhul Naga (India)"},
+ {"nmg", NULL, NULL, NULL, "Kwasio"},
+ {"nmh", NULL, NULL, NULL, "Monsang Naga"},
+ {"nmi", NULL, NULL, NULL, "Nyam"},
+ {"nmj", NULL, NULL, NULL, "Ngombe (Central African Republic)"},
+ {"nmk", NULL, NULL, NULL, "Namakura"},
+ {"nml", NULL, NULL, NULL, "Ndemli"},
+ {"nmm", NULL, NULL, NULL, "Manangba"},
+ {"nmn", NULL, NULL, NULL, "ǃXóõ"},
+ {"nmo", NULL, NULL, NULL, "Moyon Naga"},
+ {"nmp", NULL, NULL, NULL, "Nimanbur"},
+ {"nmq", NULL, NULL, NULL, "Nambya"},
+ {"nmr", NULL, NULL, NULL, "Nimbari"},
+ {"nms", NULL, NULL, NULL, "Letemboi"},
+ {"nmt", NULL, NULL, NULL, "Namonuito"},
+ {"nmu", NULL, NULL, NULL, "Northeast Maidu"},
+ {"nmv", NULL, NULL, NULL, "Ngamini"},
+ {"nmw", NULL, NULL, NULL, "Nimoa"},
+ {"nmx", NULL, NULL, NULL, "Nama (Papua New Guinea)"},
+ {"nmy", NULL, NULL, NULL, "Namuyi"},
+ {"nmz", NULL, NULL, NULL, "Nawdm"},
+ {"nna", NULL, NULL, NULL, "Nyangumarta"},
+ {"nnb", NULL, NULL, NULL, "Nande"},
+ {"nnc", NULL, NULL, NULL, "Nancere"},
+ {"nnd", NULL, NULL, NULL, "West Ambae"},
+ {"nne", NULL, NULL, NULL, "Ngandyera"},
+ {"nnf", NULL, NULL, NULL, "Ngaing"},
+ {"nng", NULL, NULL, NULL, "Maring Naga"},
+ {"nnh", NULL, NULL, NULL, "Ngiemboon"},
+ {"nni", NULL, NULL, NULL, "North Nuaulu"},
+ {"nnj", NULL, NULL, NULL, "Nyangatom"},
+ {"nnk", NULL, NULL, NULL, "Nankina"},
+ {"nnl", NULL, NULL, NULL, "Northern Rengma Naga"},
+ {"nnm", NULL, NULL, NULL, "Namia"},
+ {"nnn", NULL, NULL, NULL, "Ngete"},
+ {"nno", "nno", "nno", "nn", "Norwegian Nynorsk"},
+ {"nnp", NULL, NULL, NULL, "Wancho Naga"},
+ {"nnq", NULL, NULL, NULL, "Ngindo"},
+ {"nnr", NULL, NULL, NULL, "Narungga"},
+ {"nnt", NULL, NULL, NULL, "Nanticoke"},
+ {"nnu", NULL, NULL, NULL, "Dwang"},
+ {"nnv", NULL, NULL, NULL, "Nugunu (Australia)"},
+ {"nnw", NULL, NULL, NULL, "Southern Nuni"},
+ {"nny", NULL, NULL, NULL, "Nyangga"},
+ {"nnz", NULL, NULL, NULL, "Nda'nda'"},
+ {"noa", NULL, NULL, NULL, "Woun Meu"},
+ {"nob", "nob", "nob", "nb", "Norwegian Bokmål"},
+ {"noc", NULL, NULL, NULL, "Nuk"},
+ {"nod", NULL, NULL, NULL, "Northern Thai"},
+ {"noe", NULL, NULL, NULL, "Nimadi"},
+ {"nof", NULL, NULL, NULL, "Nomane"},
+ {"nog", "nog", "nog", NULL, "Nogai"},
+ {"noh", NULL, NULL, NULL, "Nomu"},
+ {"noi", NULL, NULL, NULL, "Noiri"},
+ {"noj", NULL, NULL, NULL, "Nonuya"},
+ {"nok", NULL, NULL, NULL, "Nooksack"},
+ {"nol", NULL, NULL, NULL, "Nomlaki"},
+ {"nom", NULL, NULL, NULL, "Nocamán"},
+ {"non", "non", "non", NULL, "Old Norse"},
+ {"nop", NULL, NULL, NULL, "Numanggang"},
+ {"noq", NULL, NULL, NULL, "Ngongo"},
+ {"nor", "nor", "nor", "no", "Norwegian"},
+ {"nos", NULL, NULL, NULL, "Eastern Nisu"},
+ {"not", NULL, NULL, NULL, "Nomatsiguenga"},
+ {"nou", NULL, NULL, NULL, "Ewage-Notu"},
+ {"nov", NULL, NULL, NULL, "Novial"},
+ {"now", NULL, NULL, NULL, "Nyambo"},
+ {"noy", NULL, NULL, NULL, "Noy"},
+ {"noz", NULL, NULL, NULL, "Nayi"},
+ {"npa", NULL, NULL, NULL, "Nar Phu"},
+ {"npb", NULL, NULL, NULL, "Nupbikha"},
+ {"npg", NULL, NULL, NULL, "Ponyo-Gongwang Naga"},
+ {"nph", NULL, NULL, NULL, "Phom Naga"},
+ {"npi", NULL, NULL, NULL, "Nepali (individual language)"},
+ {"npl", NULL, NULL, NULL, "Southeastern Puebla Nahuatl"},
+ {"npn", NULL, NULL, NULL, "Mondropolon"},
+ {"npo", NULL, NULL, NULL, "Pochuri Naga"},
+ {"nps", NULL, NULL, NULL, "Nipsan"},
+ {"npu", NULL, NULL, NULL, "Puimei Naga"},
+ {"npx", NULL, NULL, NULL, "Noipx"},
+ {"npy", NULL, NULL, NULL, "Napu"},
+ {"nqg", NULL, NULL, NULL, "Southern Nago"},
+ {"nqk", NULL, NULL, NULL, "Kura Ede Nago"},
+ {"nql", NULL, NULL, NULL, "Ngendelengo"},
+ {"nqm", NULL, NULL, NULL, "Ndom"},
+ {"nqn", NULL, NULL, NULL, "Nen"},
+ {"nqo", "nqo", "nqo", NULL, "N'Ko"},
+ {"nqq", NULL, NULL, NULL, "Kyan-Karyaw Naga"},
+ {"nqt", NULL, NULL, NULL, "Nteng"},
+ {"nqy", NULL, NULL, NULL, "Akyaung Ari Naga"},
+ {"nra", NULL, NULL, NULL, "Ngom"},
+ {"nrb", NULL, NULL, NULL, "Nara"},
+ {"nrc", NULL, NULL, NULL, "Noric"},
+ {"nre", NULL, NULL, NULL, "Southern Rengma Naga"},
+ {"nrf", NULL, NULL, NULL, "Jèrriais"},
+ {"nrg", NULL, NULL, NULL, "Narango"},
+ {"nri", NULL, NULL, NULL, "Chokri Naga"},
+ {"nrk", NULL, NULL, NULL, "Ngarla"},
+ {"nrl", NULL, NULL, NULL, "Ngarluma"},
+ {"nrm", NULL, NULL, NULL, "Narom"},
+ {"nrn", NULL, NULL, NULL, "Norn"},
+ {"nrp", NULL, NULL, NULL, "North Picene"},
+ {"nrr", NULL, NULL, NULL, "Norra"},
+ {"nrt", NULL, NULL, NULL, "Northern Kalapuya"},
+ {"nru", NULL, NULL, NULL, "Narua"},
+ {"nrx", NULL, NULL, NULL, "Ngurmbur"},
+ {"nrz", NULL, NULL, NULL, "Lala"},
+ {"nsa", NULL, NULL, NULL, "Sangtam Naga"},
+ {"nsb", NULL, NULL, NULL, "Lower Nossob"},
+ {"nsc", NULL, NULL, NULL, "Nshi"},
+ {"nsd", NULL, NULL, NULL, "Southern Nisu"},
+ {"nse", NULL, NULL, NULL, "Nsenga"},
+ {"nsf", NULL, NULL, NULL, "Northwestern Nisu"},
+ {"nsg", NULL, NULL, NULL, "Ngasa"},
+ {"nsh", NULL, NULL, NULL, "Ngoshie"},
+ {"nsi", NULL, NULL, NULL, "Nigerian Sign Language"},
+ {"nsk", NULL, NULL, NULL, "Naskapi"},
+ {"nsl", NULL, NULL, NULL, "Norwegian Sign Language"},
+ {"nsm", NULL, NULL, NULL, "Sumi Naga"},
+ {"nsn", NULL, NULL, NULL, "Nehan"},
+ {"nso", "nso", "nso", NULL, "Pedi"},
+ {"nsp", NULL, NULL, NULL, "Nepalese Sign Language"},
+ {"nsq", NULL, NULL, NULL, "Northern Sierra Miwok"},
+ {"nsr", NULL, NULL, NULL, "Maritime Sign Language"},
+ {"nss", NULL, NULL, NULL, "Nali"},
+ {"nst", NULL, NULL, NULL, "Tase Naga"},
+ {"nsu", NULL, NULL, NULL, "Sierra Negra Nahuatl"},
+ {"nsv", NULL, NULL, NULL, "Southwestern Nisu"},
+ {"nsw", NULL, NULL, NULL, "Navut"},
+ {"nsx", NULL, NULL, NULL, "Nsongo"},
+ {"nsy", NULL, NULL, NULL, "Nasal"},
+ {"nsz", NULL, NULL, NULL, "Nisenan"},
+ {"ntd", NULL, NULL, NULL, "Northern Tidung"},
+ {"nte", NULL, NULL, NULL, "Nathembo"},
+ {"ntg", NULL, NULL, NULL, "Ngantangarra"},
+ {"nti", NULL, NULL, NULL, "Natioro"},
+ {"ntj", NULL, NULL, NULL, "Ngaanyatjarra"},
+ {"ntk", NULL, NULL, NULL, "Ikoma-Nata-Isenye"},
+ {"ntm", NULL, NULL, NULL, "Nateni"},
+ {"nto", NULL, NULL, NULL, "Ntomba"},
+ {"ntp", NULL, NULL, NULL, "Northern Tepehuan"},
+ {"ntr", NULL, NULL, NULL, "Delo"},
+ {"ntu", NULL, NULL, NULL, "Natügu"},
+ {"ntw", NULL, NULL, NULL, "Nottoway"},
+ {"ntx", NULL, NULL, NULL, "Tangkhul Naga (Myanmar)"},
+ {"nty", NULL, NULL, NULL, "Mantsi"},
+ {"ntz", NULL, NULL, NULL, "Natanzi"},
+ {"nua", NULL, NULL, NULL, "Yuanga"},
+ {"nuc", NULL, NULL, NULL, "Nukuini"},
+ {"nud", NULL, NULL, NULL, "Ngala"},
+ {"nue", NULL, NULL, NULL, "Ngundu"},
+ {"nuf", NULL, NULL, NULL, "Nusu"},
+ {"nug", NULL, NULL, NULL, "Nungali"},
+ {"nuh", NULL, NULL, NULL, "Ndunda"},
+ {"nui", NULL, NULL, NULL, "Ngumbi"},
+ {"nuj", NULL, NULL, NULL, "Nyole"},
+ {"nuk", NULL, NULL, NULL, "Nuu-chah-nulth"},
+ {"nul", NULL, NULL, NULL, "Nusa Laut"},
+ {"num", NULL, NULL, NULL, "Niuafo'ou"},
+ {"nun", NULL, NULL, NULL, "Anong"},
+ {"nuo", NULL, NULL, NULL, "Nguôn"},
+ {"nup", NULL, NULL, NULL, "Nupe-Nupe-Tako"},
+ {"nuq", NULL, NULL, NULL, "Nukumanu"},
+ {"nur", NULL, NULL, NULL, "Nukuria"},
+ {"nus", NULL, NULL, NULL, "Nuer"},
+ {"nut", NULL, NULL, NULL, "Nung (Viet Nam)"},
+ {"nuu", NULL, NULL, NULL, "Ngbundu"},
+ {"nuv", NULL, NULL, NULL, "Northern Nuni"},
+ {"nuw", NULL, NULL, NULL, "Nguluwan"},
+ {"nux", NULL, NULL, NULL, "Mehek"},
+ {"nuy", NULL, NULL, NULL, "Nunggubuyu"},
+ {"nuz", NULL, NULL, NULL, "Tlamacazapa Nahuatl"},
+ {"nvh", NULL, NULL, NULL, "Nasarian"},
+ {"nvm", NULL, NULL, NULL, "Namiae"},
+ {"nvo", NULL, NULL, NULL, "Nyokon"},
+ {"nwa", NULL, NULL, NULL, "Nawathinehena"},
+ {"nwb", NULL, NULL, NULL, "Nyabwa"},
+ {"nwc", "nwc", "nwc", NULL, "Classical Newari"},
+ {"nwe", NULL, NULL, NULL, "Ngwe"},
+ {"nwg", NULL, NULL, NULL, "Ngayawung"},
+ {"nwi", NULL, NULL, NULL, "Southwest Tanna"},
+ {"nwm", NULL, NULL, NULL, "Nyamusa-Molo"},
+ {"nwo", NULL, NULL, NULL, "Nauo"},
+ {"nwr", NULL, NULL, NULL, "Nawaru"},
+ {"nwx", NULL, NULL, NULL, "Middle Newar"},
+ {"nwy", NULL, NULL, NULL, "Nottoway-Meherrin"},
+ {"nxa", NULL, NULL, NULL, "Nauete"},
+ {"nxd", NULL, NULL, NULL, "Ngando (Democratic Republic of Congo)"},
+ {"nxe", NULL, NULL, NULL, "Nage"},
+ {"nxg", NULL, NULL, NULL, "Ngad'a"},
+ {"nxi", NULL, NULL, NULL, "Nindi"},
+ {"nxk", NULL, NULL, NULL, "Koki Naga"},
+ {"nxl", NULL, NULL, NULL, "South Nuaulu"},
+ {"nxm", NULL, NULL, NULL, "Numidian"},
+ {"nxn", NULL, NULL, NULL, "Ngawun"},
+ {"nxo", NULL, NULL, NULL, "Ndambomo"},
+ {"nxq", NULL, NULL, NULL, "Naxi"},
+ {"nxr", NULL, NULL, NULL, "Ninggerum"},
+ {"nxx", NULL, NULL, NULL, "Nafri"},
+ {"nya", "nya", "nya", "ny", "Nyanja"},
+ {"nyb", NULL, NULL, NULL, "Nyangbo"},
+ {"nyc", NULL, NULL, NULL, "Nyanga-li"},
+ {"nyd", NULL, NULL, NULL, "Nyore"},
+ {"nye", NULL, NULL, NULL, "Nyengo"},
+ {"nyf", NULL, NULL, NULL, "Giryama"},
+ {"nyg", NULL, NULL, NULL, "Nyindu"},
+ {"nyh", NULL, NULL, NULL, "Nyikina"},
+ {"nyi", NULL, NULL, NULL, "Ama (Sudan)"},
+ {"nyj", NULL, NULL, NULL, "Nyanga"},
+ {"nyk", NULL, NULL, NULL, "Nyaneka"},
+ {"nyl", NULL, NULL, NULL, "Nyeu"},
+ {"nym", "nym", "nym", NULL, "Nyamwezi"},
+ {"nyn", "nyn", "nyn", NULL, "Nyankole"},
+ {"nyo", "nyo", "nyo", NULL, "Nyoro"},
+ {"nyp", NULL, NULL, NULL, "Nyang'i"},
+ {"nyq", NULL, NULL, NULL, "Nayini"},
+ {"nyr", NULL, NULL, NULL, "Nyiha (Malawi)"},
+ {"nys", NULL, NULL, NULL, "Nyungar"},
+ {"nyt", NULL, NULL, NULL, "Nyawaygi"},
+ {"nyu", NULL, NULL, NULL, "Nyungwe"},
+ {"nyv", NULL, NULL, NULL, "Nyulnyul"},
+ {"nyw", NULL, NULL, NULL, "Nyaw"},
+ {"nyx", NULL, NULL, NULL, "Nganyaywana"},
+ {"nyy", NULL, NULL, NULL, "Nyakyusa-Ngonde"},
+ {"nza", NULL, NULL, NULL, "Tigon Mbembe"},
+ {"nzb", NULL, NULL, NULL, "Njebi"},
+ {"nzd", NULL, NULL, NULL, "Nzadi"},
+ {"nzi", "nzi", "nzi", NULL, "Nzima"},
+ {"nzk", NULL, NULL, NULL, "Nzakara"},
+ {"nzm", NULL, NULL, NULL, "Zeme Naga"},
+ {"nzs", NULL, NULL, NULL, "New Zealand Sign Language"},
+ {"nzu", NULL, NULL, NULL, "Teke-Nzikou"},
+ {"nzy", NULL, NULL, NULL, "Nzakambay"},
+ {"nzz", NULL, NULL, NULL, "Nanga Dama Dogon"},
+ {"oaa", NULL, NULL, NULL, "Orok"},
+ {"oac", NULL, NULL, NULL, "Oroch"},
+ {"oar", NULL, NULL, NULL, "Old Aramaic (up to 700 BCE)"},
+ {"oav", NULL, NULL, NULL, "Old Avar"},
+ {"obi", NULL, NULL, NULL, "Obispeño"},
+ {"obk", NULL, NULL, NULL, "Southern Bontok"},
+ {"obl", NULL, NULL, NULL, "Oblo"},
+ {"obm", NULL, NULL, NULL, "Moabite"},
+ {"obo", NULL, NULL, NULL, "Obo Manobo"},
+ {"obr", NULL, NULL, NULL, "Old Burmese"},
+ {"obt", NULL, NULL, NULL, "Old Breton"},
+ {"obu", NULL, NULL, NULL, "Obulom"},
+ {"oca", NULL, NULL, NULL, "Ocaina"},
+ {"och", NULL, NULL, NULL, "Old Chinese"},
+ {"oci", "oci", "oci", "oc", "Occitan (post 1500)"},
+ {"ocm", NULL, NULL, NULL, "Old Cham"},
+ {"oco", NULL, NULL, NULL, "Old Cornish"},
+ {"ocu", NULL, NULL, NULL, "Atzingo Matlatzinca"},
+ {"oda", NULL, NULL, NULL, "Odut"},
+ {"odk", NULL, NULL, NULL, "Od"},
+ {"odt", NULL, NULL, NULL, "Old Dutch"},
+ {"odu", NULL, NULL, NULL, "Odual"},
+ {"ofo", NULL, NULL, NULL, "Ofo"},
+ {"ofs", NULL, NULL, NULL, "Old Frisian"},
+ {"ofu", NULL, NULL, NULL, "Efutop"},
+ {"ogb", NULL, NULL, NULL, "Ogbia"},
+ {"ogc", NULL, NULL, NULL, "Ogbah"},
+ {"oge", NULL, NULL, NULL, "Old Georgian"},
+ {"ogg", NULL, NULL, NULL, "Ogbogolo"},
+ {"ogo", NULL, NULL, NULL, "Khana"},
+ {"ogu", NULL, NULL, NULL, "Ogbronuagum"},
+ {"oht", NULL, NULL, NULL, "Old Hittite"},
+ {"ohu", NULL, NULL, NULL, "Old Hungarian"},
+ {"oia", NULL, NULL, NULL, "Oirata"},
+ {"oin", NULL, NULL, NULL, "Inebu One"},
+ {"ojb", NULL, NULL, NULL, "Northwestern Ojibwa"},
+ {"ojc", NULL, NULL, NULL, "Central Ojibwa"},
+ {"ojg", NULL, NULL, NULL, "Eastern Ojibwa"},
+ {"oji", "oji", "oji", "oj", "Ojibwa"},
+ {"ojp", NULL, NULL, NULL, "Old Japanese"},
+ {"ojs", NULL, NULL, NULL, "Severn Ojibwa"},
+ {"ojv", NULL, NULL, NULL, "Ontong Java"},
+ {"ojw", NULL, NULL, NULL, "Western Ojibwa"},
+ {"oka", NULL, NULL, NULL, "Okanagan"},
+ {"okb", NULL, NULL, NULL, "Okobo"},
+ {"okc", NULL, NULL, NULL, "Kobo"},
+ {"okd", NULL, NULL, NULL, "Okodia"},
+ {"oke", NULL, NULL, NULL, "Okpe (Southwestern Edo)"},
+ {"okg", NULL, NULL, NULL, "Koko Babangk"},
+ {"okh", NULL, NULL, NULL, "Koresh-e Rostam"},
+ {"oki", NULL, NULL, NULL, "Okiek"},
+ {"okj", NULL, NULL, NULL, "Oko-Juwoi"},
+ {"okk", NULL, NULL, NULL, "Kwamtim One"},
+ {"okl", NULL, NULL, NULL, "Old Kentish Sign Language"},
+ {"okm", NULL, NULL, NULL, "Middle Korean (10th-16th cent.)"},
+ {"okn", NULL, NULL, NULL, "Oki-No-Erabu"},
+ {"oko", NULL, NULL, NULL, "Old Korean (3rd-9th cent.)"},
+ {"okr", NULL, NULL, NULL, "Kirike"},
+ {"oks", NULL, NULL, NULL, "Oko-Eni-Osayen"},
+ {"oku", NULL, NULL, NULL, "Oku"},
+ {"okv", NULL, NULL, NULL, "Orokaiva"},
+ {"okx", NULL, NULL, NULL, "Okpe (Northwestern Edo)"},
+ {"okz", NULL, NULL, NULL, "Old Khmer"},
+ {"ola", NULL, NULL, NULL, "Walungge"},
+ {"old", NULL, NULL, NULL, "Mochi"},
+ {"ole", NULL, NULL, NULL, "Olekha"},
+ {"olk", NULL, NULL, NULL, "Olkol"},
+ {"olm", NULL, NULL, NULL, "Oloma"},
+ {"olo", NULL, NULL, NULL, "Livvi"},
+ {"olr", NULL, NULL, NULL, "Olrat"},
+ {"olt", NULL, NULL, NULL, "Old Lithuanian"},
+ {"olu", NULL, NULL, NULL, "Kuvale"},
+ {"oma", NULL, NULL, NULL, "Omaha-Ponca"},
+ {"omb", NULL, NULL, NULL, "East Ambae"},
+ {"omc", NULL, NULL, NULL, "Mochica"},
+ {"omg", NULL, NULL, NULL, "Omagua"},
+ {"omi", NULL, NULL, NULL, "Omi"},
+ {"omk", NULL, NULL, NULL, "Omok"},
+ {"oml", NULL, NULL, NULL, "Ombo"},
+ {"omn", NULL, NULL, NULL, "Minoan"},
+ {"omo", NULL, NULL, NULL, "Utarmbung"},
+ {"omp", NULL, NULL, NULL, "Old Manipuri"},
+ {"omr", NULL, NULL, NULL, "Old Marathi"},
+ {"omt", NULL, NULL, NULL, "Omotik"},
+ {"omu", NULL, NULL, NULL, "Omurano"},
+ {"omw", NULL, NULL, NULL, "South Tairora"},
+ {"omx", NULL, NULL, NULL, "Old Mon"},
+ {"omy", NULL, NULL, NULL, "Old Malay"},
+ {"ona", NULL, NULL, NULL, "Ona"},
+ {"onb", NULL, NULL, NULL, "Lingao"},
+ {"one", NULL, NULL, NULL, "Oneida"},
+ {"ong", NULL, NULL, NULL, "Olo"},
+ {"oni", NULL, NULL, NULL, "Onin"},
+ {"onj", NULL, NULL, NULL, "Onjob"},
+ {"onk", NULL, NULL, NULL, "Kabore One"},
+ {"onn", NULL, NULL, NULL, "Onobasulu"},
+ {"ono", NULL, NULL, NULL, "Onondaga"},
+ {"onp", NULL, NULL, NULL, "Sartang"},
+ {"onr", NULL, NULL, NULL, "Northern One"},
+ {"ons", NULL, NULL, NULL, "Ono"},
+ {"ont", NULL, NULL, NULL, "Ontenu"},
+ {"onu", NULL, NULL, NULL, "Unua"},
+ {"onw", NULL, NULL, NULL, "Old Nubian"},
+ {"onx", NULL, NULL, NULL, "Onin Based Pidgin"},
+ {"ood", NULL, NULL, NULL, "Tohono O'odham"},
+ {"oog", NULL, NULL, NULL, "Ong"},
+ {"oon", NULL, NULL, NULL, "Önge"},
+ {"oor", NULL, NULL, NULL, "Oorlams"},
+ {"oos", NULL, NULL, NULL, "Old Ossetic"},
+ {"opa", NULL, NULL, NULL, "Okpamheri"},
+ {"opk", NULL, NULL, NULL, "Kopkaka"},
+ {"opm", NULL, NULL, NULL, "Oksapmin"},
+ {"opo", NULL, NULL, NULL, "Opao"},
+ {"opt", NULL, NULL, NULL, "Opata"},
+ {"opy", NULL, NULL, NULL, "Ofayé"},
+ {"ora", NULL, NULL, NULL, "Oroha"},
+ {"orc", NULL, NULL, NULL, "Orma"},
+ {"ore", NULL, NULL, NULL, "Orejón"},
+ {"org", NULL, NULL, NULL, "Oring"},
+ {"orh", NULL, NULL, NULL, "Oroqen"},
+ {"ori", "ori", "ori", "or", "Oriya (macrolanguage)"},
+ {"orm", "orm", "orm", "om", "Oromo"},
+ {"orn", NULL, NULL, NULL, "Orang Kanaq"},
+ {"oro", NULL, NULL, NULL, "Orokolo"},
+ {"orr", NULL, NULL, NULL, "Oruma"},
+ {"ors", NULL, NULL, NULL, "Orang Seletar"},
+ {"ort", NULL, NULL, NULL, "Adivasi Oriya"},
+ {"oru", NULL, NULL, NULL, "Ormuri"},
+ {"orv", NULL, NULL, NULL, "Old Russian"},
+ {"orw", NULL, NULL, NULL, "Oro Win"},
+ {"orx", NULL, NULL, NULL, "Oro"},
+ {"ory", NULL, NULL, NULL, "Odia"},
+ {"orz", NULL, NULL, NULL, "Ormu"},
+ {"osa", "osa", "osa", NULL, "Osage"},
+ {"osc", NULL, NULL, NULL, "Oscan"},
+ {"osi", NULL, NULL, NULL, "Osing"},
+ {"osn", NULL, NULL, NULL, "Old Sundanese"},
+ {"oso", NULL, NULL, NULL, "Ososo"},
+ {"osp", NULL, NULL, NULL, "Old Spanish"},
+ {"oss", "oss", "oss", "os", "Ossetian"},
+ {"ost", NULL, NULL, NULL, "Osatu"},
+ {"osu", NULL, NULL, NULL, "Southern One"},
+ {"osx", NULL, NULL, NULL, "Old Saxon"},
+ {"ota", "ota", "ota", NULL, "Ottoman Turkish (1500-1928)"},
+ {"otb", NULL, NULL, NULL, "Old Tibetan"},
+ {"otd", NULL, NULL, NULL, "Ot Danum"},
+ {"ote", NULL, NULL, NULL, "Mezquital Otomi"},
+ {"oti", NULL, NULL, NULL, "Oti"},
+ {"otk", NULL, NULL, NULL, "Old Turkish"},
+ {"otl", NULL, NULL, NULL, "Tilapa Otomi"},
+ {"otm", NULL, NULL, NULL, "Eastern Highland Otomi"},
+ {"otn", NULL, NULL, NULL, "Tenango Otomi"},
+ {"otq", NULL, NULL, NULL, "Querétaro Otomi"},
+ {"otr", NULL, NULL, NULL, "Otoro"},
+ {"ots", NULL, NULL, NULL, "Estado de México Otomi"},
+ {"ott", NULL, NULL, NULL, "Temoaya Otomi"},
+ {"otu", NULL, NULL, NULL, "Otuke"},
+ {"otw", NULL, NULL, NULL, "Ottawa"},
+ {"otx", NULL, NULL, NULL, "Texcatepec Otomi"},
+ {"oty", NULL, NULL, NULL, "Old Tamil"},
+ {"otz", NULL, NULL, NULL, "Ixtenco Otomi"},
+ {"oua", NULL, NULL, NULL, "Tagargrent"},
+ {"oub", NULL, NULL, NULL, "Glio-Oubi"},
+ {"oue", NULL, NULL, NULL, "Oune"},
+ {"oui", NULL, NULL, NULL, "Old Uighur"},
+ {"oum", NULL, NULL, NULL, "Ouma"},
+ {"ovd", NULL, NULL, NULL, "Elfdalian"},
+ {"owi", NULL, NULL, NULL, "Owiniga"},
+ {"owl", NULL, NULL, NULL, "Old Welsh"},
+ {"oyb", NULL, NULL, NULL, "Oy"},
+ {"oyd", NULL, NULL, NULL, "Oyda"},
+ {"oym", NULL, NULL, NULL, "Wayampi"},
+ {"oyy", NULL, NULL, NULL, "Oya'oya"},
+ {"ozm", NULL, NULL, NULL, "Koonzime"},
+ {"pab", NULL, NULL, NULL, "Parecís"},
+ {"pac", NULL, NULL, NULL, "Pacoh"},
+ {"pad", NULL, NULL, NULL, "Paumarí"},
+ {"pae", NULL, NULL, NULL, "Pagibete"},
+ {"paf", NULL, NULL, NULL, "Paranawát"},
+ {"pag", "pag", "pag", NULL, "Pangasinan"},
+ {"pah", NULL, NULL, NULL, "Tenharim"},
+ {"pai", NULL, NULL, NULL, "Pe"},
+ {"pak", NULL, NULL, NULL, "Parakanã"},
+ {"pal", "pal", "pal", NULL, "Pahlavi"},
+ {"pam", "pam", "pam", NULL, "Pampanga"},
+ {"pan", "pan", "pan", "pa", "Panjabi"},
+ {"pao", NULL, NULL, NULL, "Northern Paiute"},
+ {"pap", "pap", "pap", NULL, "Papiamento"},
+ {"paq", NULL, NULL, NULL, "Parya"},
+ {"par", NULL, NULL, NULL, "Panamint"},
+ {"pas", NULL, NULL, NULL, "Papasena"},
+ {"pau", "pau", "pau", NULL, "Palauan"},
+ {"pav", NULL, NULL, NULL, "Pakaásnovos"},
+ {"paw", NULL, NULL, NULL, "Pawnee"},
+ {"pax", NULL, NULL, NULL, "Pankararé"},
+ {"pay", NULL, NULL, NULL, "Pech"},
+ {"paz", NULL, NULL, NULL, "Pankararú"},
+ {"pbb", NULL, NULL, NULL, "Páez"},
+ {"pbc", NULL, NULL, NULL, "Patamona"},
+ {"pbe", NULL, NULL, NULL, "Mezontla Popoloca"},
+ {"pbf", NULL, NULL, NULL, "Coyotepec Popoloca"},
+ {"pbg", NULL, NULL, NULL, "Paraujano"},
+ {"pbh", NULL, NULL, NULL, "E'ñapa Woromaipu"},
+ {"pbi", NULL, NULL, NULL, "Parkwa"},
+ {"pbl", NULL, NULL, NULL, "Mak (Nigeria)"},
+ {"pbm", NULL, NULL, NULL, "Puebla Mazatec"},
+ {"pbn", NULL, NULL, NULL, "Kpasam"},
+ {"pbo", NULL, NULL, NULL, "Papel"},
+ {"pbp", NULL, NULL, NULL, "Badyara"},
+ {"pbr", NULL, NULL, NULL, "Pangwa"},
+ {"pbs", NULL, NULL, NULL, "Central Pame"},
+ {"pbt", NULL, NULL, NULL, "Southern Pashto"},
+ {"pbu", NULL, NULL, NULL, "Northern Pashto"},
+ {"pbv", NULL, NULL, NULL, "Pnar"},
+ {"pby", NULL, NULL, NULL, "Pyu (Papua New Guinea)"},
+ {"pca", NULL, NULL, NULL, "Santa Inés Ahuatempan Popoloca"},
+ {"pcb", NULL, NULL, NULL, "Pear"},
+ {"pcc", NULL, NULL, NULL, "Bouyei"},
+ {"pcd", NULL, NULL, NULL, "Picard"},
+ {"pce", NULL, NULL, NULL, "Ruching Palaung"},
+ {"pcf", NULL, NULL, NULL, "Paliyan"},
+ {"pcg", NULL, NULL, NULL, "Paniya"},
+ {"pch", NULL, NULL, NULL, "Pardhan"},
+ {"pci", NULL, NULL, NULL, "Duruwa"},
+ {"pcj", NULL, NULL, NULL, "Parenga"},
+ {"pck", NULL, NULL, NULL, "Paite Chin"},
+ {"pcl", NULL, NULL, NULL, "Pardhi"},
+ {"pcm", NULL, NULL, NULL, "Nigerian Pidgin"},
+ {"pcn", NULL, NULL, NULL, "Piti"},
+ {"pcp", NULL, NULL, NULL, "Pacahuara"},
+ {"pcw", NULL, NULL, NULL, "Pyapun"},
+ {"pda", NULL, NULL, NULL, "Anam"},
+ {"pdc", NULL, NULL, NULL, "Pennsylvania German"},
+ {"pdi", NULL, NULL, NULL, "Pa Di"},
+ {"pdn", NULL, NULL, NULL, "Podena"},
+ {"pdo", NULL, NULL, NULL, "Padoe"},
+ {"pdt", NULL, NULL, NULL, "Plautdietsch"},
+ {"pdu", NULL, NULL, NULL, "Kayan"},
+ {"pea", NULL, NULL, NULL, "Peranakan Indonesian"},
+ {"peb", NULL, NULL, NULL, "Eastern Pomo"},
+ {"ped", NULL, NULL, NULL, "Mala (Papua New Guinea)"},
+ {"pee", NULL, NULL, NULL, "Taje"},
+ {"pef", NULL, NULL, NULL, "Northeastern Pomo"},
+ {"peg", NULL, NULL, NULL, "Pengo"},
+ {"peh", NULL, NULL, NULL, "Bonan"},
+ {"pei", NULL, NULL, NULL, "Chichimeca-Jonaz"},
+ {"pej", NULL, NULL, NULL, "Northern Pomo"},
+ {"pek", NULL, NULL, NULL, "Penchal"},
+ {"pel", NULL, NULL, NULL, "Pekal"},
+ {"pem", NULL, NULL, NULL, "Phende"},
+ {"peo", "peo", "peo", NULL, "Old Persian (ca. 600-400 B.C.)"},
+ {"pep", NULL, NULL, NULL, "Kunja"},
+ {"peq", NULL, NULL, NULL, "Southern Pomo"},
+ {"pes", NULL, NULL, NULL, "Iranian Persian"},
+ {"pev", NULL, NULL, NULL, "Pémono"},
+ {"pex", NULL, NULL, NULL, "Petats"},
+ {"pey", NULL, NULL, NULL, "Petjo"},
+ {"pez", NULL, NULL, NULL, "Eastern Penan"},
+ {"pfa", NULL, NULL, NULL, "Pááfang"},
+ {"pfe", NULL, NULL, NULL, "Pere"},
+ {"pfl", NULL, NULL, NULL, "Pfaelzisch"},
+ {"pga", NULL, NULL, NULL, "Sudanese Creole Arabic"},
+ {"pgd", NULL, NULL, NULL, "Gāndhārī"},
+ {"pgg", NULL, NULL, NULL, "Pangwali"},
+ {"pgi", NULL, NULL, NULL, "Pagi"},
+ {"pgk", NULL, NULL, NULL, "Rerep"},
+ {"pgl", NULL, NULL, NULL, "Primitive Irish"},
+ {"pgn", NULL, NULL, NULL, "Paelignian"},
+ {"pgs", NULL, NULL, NULL, "Pangseng"},
+ {"pgu", NULL, NULL, NULL, "Pagu"},
+ {"pgz", NULL, NULL, NULL, "Papua New Guinean Sign Language"},
+ {"pha", NULL, NULL, NULL, "Pa-Hng"},
+ {"phd", NULL, NULL, NULL, "Phudagi"},
+ {"phg", NULL, NULL, NULL, "Phuong"},
+ {"phh", NULL, NULL, NULL, "Phukha"},
+ {"phk", NULL, NULL, NULL, "Phake"},
+ {"phl", NULL, NULL, NULL, "Phalura"},
+ {"phm", NULL, NULL, NULL, "Phimbi"},
+ {"phn", "phn", "phn", NULL, "Phoenician"},
+ {"pho", NULL, NULL, NULL, "Phunoi"},
+ {"phq", NULL, NULL, NULL, "Phana'"},
+ {"phr", NULL, NULL, NULL, "Pahari-Potwari"},
+ {"pht", NULL, NULL, NULL, "Phu Thai"},
+ {"phu", NULL, NULL, NULL, "Phuan"},
+ {"phv", NULL, NULL, NULL, "Pahlavani"},
+ {"phw", NULL, NULL, NULL, "Phangduwali"},
+ {"pia", NULL, NULL, NULL, "Pima Bajo"},
+ {"pib", NULL, NULL, NULL, "Yine"},
+ {"pic", NULL, NULL, NULL, "Pinji"},
+ {"pid", NULL, NULL, NULL, "Piaroa"},
+ {"pie", NULL, NULL, NULL, "Piro"},
+ {"pif", NULL, NULL, NULL, "Pingelapese"},
+ {"pig", NULL, NULL, NULL, "Pisabo"},
+ {"pih", NULL, NULL, NULL, "Pitcairn-Norfolk"},
+ {"pii", NULL, NULL, NULL, "Pini"},
+ {"pij", NULL, NULL, NULL, "Pijao"},
+ {"pil", NULL, NULL, NULL, "Yom"},
+ {"pim", NULL, NULL, NULL, "Powhatan"},
+ {"pin", NULL, NULL, NULL, "Piame"},
+ {"pio", NULL, NULL, NULL, "Piapoco"},
+ {"pip", NULL, NULL, NULL, "Pero"},
+ {"pir", NULL, NULL, NULL, "Piratapuyo"},
+ {"pis", NULL, NULL, NULL, "Pijin"},
+ {"pit", NULL, NULL, NULL, "Pitta Pitta"},
+ {"piu", NULL, NULL, NULL, "Pintupi-Luritja"},
+ {"piv", NULL, NULL, NULL, "Pileni"},
+ {"piw", NULL, NULL, NULL, "Pimbwe"},
+ {"pix", NULL, NULL, NULL, "Piu"},
+ {"piy", NULL, NULL, NULL, "Piya-Kwonci"},
+ {"piz", NULL, NULL, NULL, "Pije"},
+ {"pjt", NULL, NULL, NULL, "Pitjantjatjara"},
+ {"pka", NULL, NULL, NULL, "Ardhamāgadhī Prākrit"},
+ {"pkb", NULL, NULL, NULL, "Pokomo"},
+ {"pkc", NULL, NULL, NULL, "Paekche"},
+ {"pkg", NULL, NULL, NULL, "Pak-Tong"},
+ {"pkh", NULL, NULL, NULL, "Pankhu"},
+ {"pkn", NULL, NULL, NULL, "Pakanha"},
+ {"pko", NULL, NULL, NULL, "Pökoot"},
+ {"pkp", NULL, NULL, NULL, "Pukapuka"},
+ {"pkr", NULL, NULL, NULL, "Attapady Kurumba"},
+ {"pks", NULL, NULL, NULL, "Pakistan Sign Language"},
+ {"pkt", NULL, NULL, NULL, "Maleng"},
+ {"pku", NULL, NULL, NULL, "Paku"},
+ {"pla", NULL, NULL, NULL, "Miani"},
+ {"plb", NULL, NULL, NULL, "Polonombauk"},
+ {"plc", NULL, NULL, NULL, "Central Palawano"},
+ {"pld", NULL, NULL, NULL, "Polari"},
+ {"ple", NULL, NULL, NULL, "Palu'e"},
+ {"plg", NULL, NULL, NULL, "Pilagá"},
+ {"plh", NULL, NULL, NULL, "Paulohi"},
+ {"pli", "pli", "pli", "pi", "Pali"},
+ {"plj", NULL, NULL, NULL, "Polci"},
+ {"plk", NULL, NULL, NULL, "Kohistani Shina"},
+ {"pll", NULL, NULL, NULL, "Shwe Palaung"},
+ {"pln", NULL, NULL, NULL, "Palenquero"},
+ {"plo", NULL, NULL, NULL, "Oluta Popoluca"},
+ {"plq", NULL, NULL, NULL, "Palaic"},
+ {"plr", NULL, NULL, NULL, "Palaka Senoufo"},
+ {"pls", NULL, NULL, NULL, "San Marcos Tlacoyalco Popoloca"},
+ {"plt", NULL, NULL, NULL, "Plateau Malagasy"},
+ {"plu", NULL, NULL, NULL, "Palikúr"},
+ {"plv", NULL, NULL, NULL, "Southwest Palawano"},
+ {"plw", NULL, NULL, NULL, "Brooke's Point Palawano"},
+ {"ply", NULL, NULL, NULL, "Bolyu"},
+ {"plz", NULL, NULL, NULL, "Paluan"},
+ {"pma", NULL, NULL, NULL, "Paama"},
+ {"pmb", NULL, NULL, NULL, "Pambia"},
+ {"pmd", NULL, NULL, NULL, "Pallanganmiddang"},
+ {"pme", NULL, NULL, NULL, "Pwaamei"},
+ {"pmf", NULL, NULL, NULL, "Pamona"},
+ {"pmh", NULL, NULL, NULL, "Māhārāṣṭri Prākrit"},
+ {"pmi", NULL, NULL, NULL, "Northern Pumi"},
+ {"pmj", NULL, NULL, NULL, "Southern Pumi"},
+ {"pmk", NULL, NULL, NULL, "Pamlico"},
+ {"pml", NULL, NULL, NULL, "Lingua Franca"},
+ {"pmm", NULL, NULL, NULL, "Pomo"},
+ {"pmn", NULL, NULL, NULL, "Pam"},
+ {"pmo", NULL, NULL, NULL, "Pom"},
+ {"pmq", NULL, NULL, NULL, "Northern Pame"},
+ {"pmr", NULL, NULL, NULL, "Paynamar"},
+ {"pms", NULL, NULL, NULL, "Piemontese"},
+ {"pmt", NULL, NULL, NULL, "Tuamotuan"},
+ {"pmw", NULL, NULL, NULL, "Plains Miwok"},
+ {"pmx", NULL, NULL, NULL, "Poumei Naga"},
+ {"pmy", NULL, NULL, NULL, "Papuan Malay"},
+ {"pmz", NULL, NULL, NULL, "Southern Pame"},
+ {"pna", NULL, NULL, NULL, "Punan Bah-Biau"},
+ {"pnb", NULL, NULL, NULL, "Western Panjabi"},
+ {"pnc", NULL, NULL, NULL, "Pannei"},
+ {"pnd", NULL, NULL, NULL, "Mpinda"},
+ {"pne", NULL, NULL, NULL, "Western Penan"},
+ {"png", NULL, NULL, NULL, "Pangu"},
+ {"pnh", NULL, NULL, NULL, "Penrhyn"},
+ {"pni", NULL, NULL, NULL, "Aoheng"},
+ {"pnj", NULL, NULL, NULL, "Pinjarup"},
+ {"pnk", NULL, NULL, NULL, "Paunaka"},
+ {"pnl", NULL, NULL, NULL, "Paleni"},
+ {"pnm", NULL, NULL, NULL, "Punan Batu 1"},
+ {"pnn", NULL, NULL, NULL, "Pinai-Hagahai"},
+ {"pno", NULL, NULL, NULL, "Panobo"},
+ {"pnp", NULL, NULL, NULL, "Pancana"},
+ {"pnq", NULL, NULL, NULL, "Pana (Burkina Faso)"},
+ {"pnr", NULL, NULL, NULL, "Panim"},
+ {"pns", NULL, NULL, NULL, "Ponosakan"},
+ {"pnt", NULL, NULL, NULL, "Pontic"},
+ {"pnu", NULL, NULL, NULL, "Jiongnai Bunu"},
+ {"pnv", NULL, NULL, NULL, "Pinigura"},
+ {"pnw", NULL, NULL, NULL, "Banyjima"},
+ {"pnx", NULL, NULL, NULL, "Phong-Kniang"},
+ {"pny", NULL, NULL, NULL, "Pinyin"},
+ {"pnz", NULL, NULL, NULL, "Pana (Central African Republic)"},
+ {"poc", NULL, NULL, NULL, "Poqomam"},
+ {"poe", NULL, NULL, NULL, "San Juan Atzingo Popoloca"},
+ {"pof", NULL, NULL, NULL, "Poke"},
+ {"pog", NULL, NULL, NULL, "Potiguára"},
+ {"poh", NULL, NULL, NULL, "Poqomchi'"},
+ {"poi", NULL, NULL, NULL, "Highland Popoluca"},
+ {"pok", NULL, NULL, NULL, "Pokangá"},
+ {"pol", "pol", "pol", "pl", "Polish"},
+ {"pom", NULL, NULL, NULL, "Southeastern Pomo"},
+ {"pon", "pon", "pon", NULL, "Pohnpeian"},
+ {"poo", NULL, NULL, NULL, "Central Pomo"},
+ {"pop", NULL, NULL, NULL, "Pwapwâ"},
+ {"poq", NULL, NULL, NULL, "Texistepec Popoluca"},
+ {"por", "por", "por", "pt", "Portuguese"},
+ {"pos", NULL, NULL, NULL, "Sayula Popoluca"},
+ {"pot", NULL, NULL, NULL, "Potawatomi"},
+ {"pov", NULL, NULL, NULL, "Upper Guinea Crioulo"},
+ {"pow", NULL, NULL, NULL, "San Felipe Otlaltepec Popoloca"},
+ {"pox", NULL, NULL, NULL, "Polabian"},
+ {"poy", NULL, NULL, NULL, "Pogolo"},
+ {"ppe", NULL, NULL, NULL, "Papi"},
+ {"ppi", NULL, NULL, NULL, "Paipai"},
+ {"ppk", NULL, NULL, NULL, "Uma"},
+ {"ppl", NULL, NULL, NULL, "Pipil"},
+ {"ppm", NULL, NULL, NULL, "Papuma"},
+ {"ppn", NULL, NULL, NULL, "Papapana"},
+ {"ppo", NULL, NULL, NULL, "Folopa"},
+ {"ppp", NULL, NULL, NULL, "Pelende"},
+ {"ppq", NULL, NULL, NULL, "Pei"},
+ {"pps", NULL, NULL, NULL, "San Luís Temalacayuca Popoloca"},
+ {"ppt", NULL, NULL, NULL, "Pare"},
+ {"ppu", NULL, NULL, NULL, "Papora"},
+ {"pqa", NULL, NULL, NULL, "Pa'a"},
+ {"pqm", NULL, NULL, NULL, "Malecite-Passamaquoddy"},
+ {"prc", NULL, NULL, NULL, "Parachi"},
+ {"prd", NULL, NULL, NULL, "Parsi-Dari"},
+ {"pre", NULL, NULL, NULL, "Principense"},
+ {"prf", NULL, NULL, NULL, "Paranan"},
+ {"prg", NULL, NULL, NULL, "Prussian"},
+ {"prh", NULL, NULL, NULL, "Porohanon"},
+ {"pri", NULL, NULL, NULL, "Paicî"},
+ {"prk", NULL, NULL, NULL, "Parauk"},
+ {"prl", NULL, NULL, NULL, "Peruvian Sign Language"},
+ {"prm", NULL, NULL, NULL, "Kibiri"},
+ {"prn", NULL, NULL, NULL, "Prasuni"},
+ {"pro", "pro", "pro", NULL, "Old Provençal (to 1500)"},
+ {"prp", NULL, NULL, NULL, "Parsi"},
+ {"prq", NULL, NULL, NULL, "Ashéninka Perené"},
+ {"prr", NULL, NULL, NULL, "Puri"},
+ {"prs", NULL, NULL, NULL, "Dari"},
+ {"prt", NULL, NULL, NULL, "Phai"},
+ {"pru", NULL, NULL, NULL, "Puragi"},
+ {"prw", NULL, NULL, NULL, "Parawen"},
+ {"prx", NULL, NULL, NULL, "Purik"},
+ {"prz", NULL, NULL, NULL, "Providencia Sign Language"},
+ {"psa", NULL, NULL, NULL, "Asue Awyu"},
+ {"psc", NULL, NULL, NULL, "Persian Sign Language"},
+ {"psd", NULL, NULL, NULL, "Plains Indian Sign Language"},
+ {"pse", NULL, NULL, NULL, "Central Malay"},
+ {"psg", NULL, NULL, NULL, "Penang Sign Language"},
+ {"psh", NULL, NULL, NULL, "Southwest Pashai"},
+ {"psi", NULL, NULL, NULL, "Southeast Pashai"},
+ {"psl", NULL, NULL, NULL, "Puerto Rican Sign Language"},
+ {"psm", NULL, NULL, NULL, "Pauserna"},
+ {"psn", NULL, NULL, NULL, "Panasuan"},
+ {"pso", NULL, NULL, NULL, "Polish Sign Language"},
+ {"psp", NULL, NULL, NULL, "Philippine Sign Language"},
+ {"psq", NULL, NULL, NULL, "Pasi"},
+ {"psr", NULL, NULL, NULL, "Portuguese Sign Language"},
+ {"pss", NULL, NULL, NULL, "Kaulong"},
+ {"pst", NULL, NULL, NULL, "Central Pashto"},
+ {"psu", NULL, NULL, NULL, "Sauraseni Prākrit"},
+ {"psw", NULL, NULL, NULL, "Port Sandwich"},
+ {"psy", NULL, NULL, NULL, "Piscataway"},
+ {"pta", NULL, NULL, NULL, "Pai Tavytera"},
+ {"pth", NULL, NULL, NULL, "Pataxó Hã-Ha-Hãe"},
+ {"pti", NULL, NULL, NULL, "Pindiini"},
+ {"ptn", NULL, NULL, NULL, "Patani"},
+ {"pto", NULL, NULL, NULL, "Zo'é"},
+ {"ptp", NULL, NULL, NULL, "Patep"},
+ {"ptq", NULL, NULL, NULL, "Pattapu"},
+ {"ptr", NULL, NULL, NULL, "Piamatsina"},
+ {"ptt", NULL, NULL, NULL, "Enrekang"},
+ {"ptu", NULL, NULL, NULL, "Bambam"},
+ {"ptv", NULL, NULL, NULL, "Port Vato"},
+ {"ptw", NULL, NULL, NULL, "Pentlatch"},
+ {"pty", NULL, NULL, NULL, "Pathiya"},
+ {"pua", NULL, NULL, NULL, "Western Highland Purepecha"},
+ {"pub", NULL, NULL, NULL, "Purum"},
+ {"puc", NULL, NULL, NULL, "Punan Merap"},
+ {"pud", NULL, NULL, NULL, "Punan Aput"},
+ {"pue", NULL, NULL, NULL, "Puelche"},
+ {"puf", NULL, NULL, NULL, "Punan Merah"},
+ {"pug", NULL, NULL, NULL, "Phuie"},
+ {"pui", NULL, NULL, NULL, "Puinave"},
+ {"puj", NULL, NULL, NULL, "Punan Tubu"},
+ {"pum", NULL, NULL, NULL, "Puma"},
+ {"puo", NULL, NULL, NULL, "Puoc"},
+ {"pup", NULL, NULL, NULL, "Pulabu"},
+ {"puq", NULL, NULL, NULL, "Puquina"},
+ {"pur", NULL, NULL, NULL, "Puruborá"},
+ {"pus", "pus", "pus", "ps", "Pushto"},
+ {"put", NULL, NULL, NULL, "Putoh"},
+ {"puu", NULL, NULL, NULL, "Punu"},
+ {"puw", NULL, NULL, NULL, "Puluwatese"},
+ {"pux", NULL, NULL, NULL, "Puare"},
+ {"puy", NULL, NULL, NULL, "Purisimeño"},
+ {"pwa", NULL, NULL, NULL, "Pawaia"},
+ {"pwb", NULL, NULL, NULL, "Panawa"},
+ {"pwg", NULL, NULL, NULL, "Gapapaiwa"},
+ {"pwi", NULL, NULL, NULL, "Patwin"},
+ {"pwm", NULL, NULL, NULL, "Molbog"},
+ {"pwn", NULL, NULL, NULL, "Paiwan"},
+ {"pwo", NULL, NULL, NULL, "Pwo Western Karen"},
+ {"pwr", NULL, NULL, NULL, "Powari"},
+ {"pww", NULL, NULL, NULL, "Pwo Northern Karen"},
+ {"pxm", NULL, NULL, NULL, "Quetzaltepec Mixe"},
+ {"pye", NULL, NULL, NULL, "Pye Krumen"},
+ {"pym", NULL, NULL, NULL, "Fyam"},
+ {"pyn", NULL, NULL, NULL, "Poyanáwa"},
+ {"pys", NULL, NULL, NULL, "Paraguayan Sign Language"},
+ {"pyu", NULL, NULL, NULL, "Puyuma"},
+ {"pyx", NULL, NULL, NULL, "Pyu (Myanmar)"},
+ {"pyy", NULL, NULL, NULL, "Pyen"},
+ {"pzn", NULL, NULL, NULL, "Para Naga"},
+ {"qua", NULL, NULL, NULL, "Quapaw"},
+ {"qub", NULL, NULL, NULL, "Huallaga Huánuco Quechua"},
+ {"quc", NULL, NULL, NULL, "K'iche'"},
+ {"qud", NULL, NULL, NULL, "Calderón Highland Quichua"},
+ {"que", "que", "que", "qu", "Quechua"},
+ {"quf", NULL, NULL, NULL, "Lambayeque Quechua"},
+ {"qug", NULL, NULL, NULL, "Chimborazo Highland Quichua"},
+ {"quh", NULL, NULL, NULL, "South Bolivian Quechua"},
+ {"qui", NULL, NULL, NULL, "Quileute"},
+ {"quk", NULL, NULL, NULL, "Chachapoyas Quechua"},
+ {"qul", NULL, NULL, NULL, "North Bolivian Quechua"},
+ {"qum", NULL, NULL, NULL, "Sipacapense"},
+ {"qun", NULL, NULL, NULL, "Quinault"},
+ {"qup", NULL, NULL, NULL, "Southern Pastaza Quechua"},
+ {"quq", NULL, NULL, NULL, "Quinqui"},
+ {"qur", NULL, NULL, NULL, "Yanahuanca Pasco Quechua"},
+ {"qus", NULL, NULL, NULL, "Santiago del Estero Quichua"},
+ {"quv", NULL, NULL, NULL, "Sacapulteco"},
+ {"quw", NULL, NULL, NULL, "Tena Lowland Quichua"},
+ {"qux", NULL, NULL, NULL, "Yauyos Quechua"},
+ {"quy", NULL, NULL, NULL, "Ayacucho Quechua"},
+ {"quz", NULL, NULL, NULL, "Cusco Quechua"},
+ {"qva", NULL, NULL, NULL, "Ambo-Pasco Quechua"},
+ {"qvc", NULL, NULL, NULL, "Cajamarca Quechua"},
+ {"qve", NULL, NULL, NULL, "Eastern Apurímac Quechua"},
+ {"qvh", NULL, NULL, NULL, "Huamalíes-Dos de Mayo Huánuco Quechua"},
+ {"qvi", NULL, NULL, NULL, "Imbabura Highland Quichua"},
+ {"qvj", NULL, NULL, NULL, "Loja Highland Quichua"},
+ {"qvl", NULL, NULL, NULL, "Cajatambo North Lima Quechua"},
+ {"qvm", NULL, NULL, NULL, "Margos-Yarowilca-Lauricocha Quechua"},
+ {"qvn", NULL, NULL, NULL, "North Junín Quechua"},
+ {"qvo", NULL, NULL, NULL, "Napo Lowland Quechua"},
+ {"qvp", NULL, NULL, NULL, "Pacaraos Quechua"},
+ {"qvs", NULL, NULL, NULL, "San Martín Quechua"},
+ {"qvw", NULL, NULL, NULL, "Huaylla Wanca Quechua"},
+ {"qvy", NULL, NULL, NULL, "Queyu"},
+ {"qvz", NULL, NULL, NULL, "Northern Pastaza Quichua"},
+ {"qwa", NULL, NULL, NULL, "Corongo Ancash Quechua"},
+ {"qwc", NULL, NULL, NULL, "Classical Quechua"},
+ {"qwh", NULL, NULL, NULL, "Huaylas Ancash Quechua"},
+ {"qwm", NULL, NULL, NULL, "Kuman (Russia)"},
+ {"qws", NULL, NULL, NULL, "Sihuas Ancash Quechua"},
+ {"qwt", NULL, NULL, NULL, "Kwalhioqua-Tlatskanai"},
+ {"qxa", NULL, NULL, NULL, "Chiquián Ancash Quechua"},
+ {"qxc", NULL, NULL, NULL, "Chincha Quechua"},
+ {"qxh", NULL, NULL, NULL, "Panao Huánuco Quechua"},
+ {"qxl", NULL, NULL, NULL, "Salasaca Highland Quichua"},
+ {"qxn", NULL, NULL, NULL, "Northern Conchucos Ancash Quechua"},
+ {"qxo", NULL, NULL, NULL, "Southern Conchucos Ancash Quechua"},
+ {"qxp", NULL, NULL, NULL, "Puno Quechua"},
+ {"qxq", NULL, NULL, NULL, "Qashqa'i"},
+ {"qxr", NULL, NULL, NULL, "Cañar Highland Quichua"},
+ {"qxs", NULL, NULL, NULL, "Southern Qiang"},
+ {"qxt", NULL, NULL, NULL, "Santa Ana de Tusi Pasco Quechua"},
+ {"qxu", NULL, NULL, NULL, "Arequipa-La Unión Quechua"},
+ {"qxw", NULL, NULL, NULL, "Jauja Wanca Quechua"},
+ {"qya", NULL, NULL, NULL, "Quenya"},
+ {"qyp", NULL, NULL, NULL, "Quiripi"},
+ {"raa", NULL, NULL, NULL, "Dungmali"},
+ {"rab", NULL, NULL, NULL, "Camling"},
+ {"rac", NULL, NULL, NULL, "Rasawa"},
+ {"rad", NULL, NULL, NULL, "Rade"},
+ {"raf", NULL, NULL, NULL, "Western Meohang"},
+ {"rag", NULL, NULL, NULL, "Logooli"},
+ {"rah", NULL, NULL, NULL, "Rabha"},
+ {"rai", NULL, NULL, NULL, "Ramoaaina"},
+ {"raj", "raj", "raj", NULL, "Rajasthani"},
+ {"rak", NULL, NULL, NULL, "Tulu-Bohuai"},
+ {"ral", NULL, NULL, NULL, "Ralte"},
+ {"ram", NULL, NULL, NULL, "Canela"},
+ {"ran", NULL, NULL, NULL, "Riantana"},
+ {"rao", NULL, NULL, NULL, "Rao"},
+ {"rap", "rap", "rap", NULL, "Rapanui"},
+ {"raq", NULL, NULL, NULL, "Saam"},
+ {"rar", "rar", "rar", NULL, "Rarotongan"},
+ {"ras", NULL, NULL, NULL, "Tegali"},
+ {"rat", NULL, NULL, NULL, "Razajerdi"},
+ {"rau", NULL, NULL, NULL, "Raute"},
+ {"rav", NULL, NULL, NULL, "Sampang"},
+ {"raw", NULL, NULL, NULL, "Rawang"},
+ {"rax", NULL, NULL, NULL, "Rang"},
+ {"ray", NULL, NULL, NULL, "Rapa"},
+ {"raz", NULL, NULL, NULL, "Rahambuu"},
+ {"rbb", NULL, NULL, NULL, "Rumai Palaung"},
+ {"rbk", NULL, NULL, NULL, "Northern Bontok"},
+ {"rbl", NULL, NULL, NULL, "Miraya Bikol"},
+ {"rbp", NULL, NULL, NULL, "Barababaraba"},
+ {"rcf", NULL, NULL, NULL, "Réunion Creole French"},
+ {"rdb", NULL, NULL, NULL, "Rudbari"},
+ {"rea", NULL, NULL, NULL, "Rerau"},
+ {"reb", NULL, NULL, NULL, "Rembong"},
+ {"ree", NULL, NULL, NULL, "Rejang Kayan"},
+ {"reg", NULL, NULL, NULL, "Kara (Tanzania)"},
+ {"rei", NULL, NULL, NULL, "Reli"},
+ {"rej", NULL, NULL, NULL, "Rejang"},
+ {"rel", NULL, NULL, NULL, "Rendille"},
+ {"rem", NULL, NULL, NULL, "Remo"},
+ {"ren", NULL, NULL, NULL, "Rengao"},
+ {"rer", NULL, NULL, NULL, "Rer Bare"},
+ {"res", NULL, NULL, NULL, "Reshe"},
+ {"ret", NULL, NULL, NULL, "Retta"},
+ {"rey", NULL, NULL, NULL, "Reyesano"},
+ {"rga", NULL, NULL, NULL, "Roria"},
+ {"rge", NULL, NULL, NULL, "Romano-Greek"},
+ {"rgk", NULL, NULL, NULL, "Rangkas"},
+ {"rgn", NULL, NULL, NULL, "Romagnol"},
+ {"rgr", NULL, NULL, NULL, "Resígaro"},
+ {"rgs", NULL, NULL, NULL, "Southern Roglai"},
+ {"rgu", NULL, NULL, NULL, "Ringgou"},
+ {"rhg", NULL, NULL, NULL, "Rohingya"},
+ {"rhp", NULL, NULL, NULL, "Yahang"},
+ {"ria", NULL, NULL, NULL, "Riang (India)"},
+ {"rif", NULL, NULL, NULL, "Tarifit"},
+ {"ril", NULL, NULL, NULL, "Riang Lang"},
+ {"rim", NULL, NULL, NULL, "Nyaturu"},
+ {"rin", NULL, NULL, NULL, "Nungu"},
+ {"rir", NULL, NULL, NULL, "Ribun"},
+ {"rit", NULL, NULL, NULL, "Ritharrngu"},
+ {"riu", NULL, NULL, NULL, "Riung"},
+ {"rjg", NULL, NULL, NULL, "Rajong"},
+ {"rji", NULL, NULL, NULL, "Raji"},
+ {"rjs", NULL, NULL, NULL, "Rajbanshi"},
+ {"rka", NULL, NULL, NULL, "Kraol"},
+ {"rkb", NULL, NULL, NULL, "Rikbaktsa"},
+ {"rkh", NULL, NULL, NULL, "Rakahanga-Manihiki"},
+ {"rki", NULL, NULL, NULL, "Rakhine"},
+ {"rkm", NULL, NULL, NULL, "Marka"},
+ {"rkt", NULL, NULL, NULL, "Rangpuri"},
+ {"rkw", NULL, NULL, NULL, "Arakwal"},
+ {"rma", NULL, NULL, NULL, "Rama"},
+ {"rmb", NULL, NULL, NULL, "Rembarrnga"},
+ {"rmc", NULL, NULL, NULL, "Carpathian Romani"},
+ {"rmd", NULL, NULL, NULL, "Traveller Danish"},
+ {"rme", NULL, NULL, NULL, "Angloromani"},
+ {"rmf", NULL, NULL, NULL, "Kalo Finnish Romani"},
+ {"rmg", NULL, NULL, NULL, "Traveller Norwegian"},
+ {"rmh", NULL, NULL, NULL, "Murkim"},
+ {"rmi", NULL, NULL, NULL, "Lomavren"},
+ {"rmk", NULL, NULL, NULL, "Romkun"},
+ {"rml", NULL, NULL, NULL, "Baltic Romani"},
+ {"rmm", NULL, NULL, NULL, "Roma"},
+ {"rmn", NULL, NULL, NULL, "Balkan Romani"},
+ {"rmo", NULL, NULL, NULL, "Sinte Romani"},
+ {"rmp", NULL, NULL, NULL, "Rempi"},
+ {"rmq", NULL, NULL, NULL, "Caló"},
+ {"rms", NULL, NULL, NULL, "Romanian Sign Language"},
+ {"rmt", NULL, NULL, NULL, "Domari"},
+ {"rmu", NULL, NULL, NULL, "Tavringer Romani"},
+ {"rmv", NULL, NULL, NULL, "Romanova"},
+ {"rmw", NULL, NULL, NULL, "Welsh Romani"},
+ {"rmx", NULL, NULL, NULL, "Romam"},
+ {"rmy", NULL, NULL, NULL, "Vlax Romani"},
+ {"rmz", NULL, NULL, NULL, "Marma"},
+ {"rnd", NULL, NULL, NULL, "Ruund"},
+ {"rng", NULL, NULL, NULL, "Ronga"},
+ {"rnl", NULL, NULL, NULL, "Ranglong"},
+ {"rnn", NULL, NULL, NULL, "Roon"},
+ {"rnp", NULL, NULL, NULL, "Rongpo"},
+ {"rnr", NULL, NULL, NULL, "Nari Nari"},
+ {"rnw", NULL, NULL, NULL, "Rungwa"},
+ {"rob", NULL, NULL, NULL, "Tae'"},
+ {"roc", NULL, NULL, NULL, "Cacgia Roglai"},
+ {"rod", NULL, NULL, NULL, "Rogo"},
+ {"roe", NULL, NULL, NULL, "Ronji"},
+ {"rof", NULL, NULL, NULL, "Rombo"},
+ {"rog", NULL, NULL, NULL, "Northern Roglai"},
+ {"roh", "roh", "roh", "rm", "Romansh"},
+ {"rol", NULL, NULL, NULL, "Romblomanon"},
+ {"rom", "rom", "rom", NULL, "Romany"},
+ {"ron", "rum", "ron", "ro", "Romanian"},
+ {"roo", NULL, NULL, NULL, "Rotokas"},
+ {"rop", NULL, NULL, NULL, "Kriol"},
+ {"ror", NULL, NULL, NULL, "Rongga"},
+ {"rou", NULL, NULL, NULL, "Runga"},
+ {"row", NULL, NULL, NULL, "Dela-Oenale"},
+ {"rpn", NULL, NULL, NULL, "Repanbitip"},
+ {"rpt", NULL, NULL, NULL, "Rapting"},
+ {"rri", NULL, NULL, NULL, "Ririo"},
+ {"rro", NULL, NULL, NULL, "Waima"},
+ {"rrt", NULL, NULL, NULL, "Arritinngithigh"},
+ {"rsb", NULL, NULL, NULL, "Romano-Serbian"},
+ {"rsl", NULL, NULL, NULL, "Russian Sign Language"},
+ {"rsm", NULL, NULL, NULL, "Miriwoong Sign Language"},
+ {"rtc", NULL, NULL, NULL, "Rungtu Chin"},
+ {"rth", NULL, NULL, NULL, "Ratahan"},
+ {"rtm", NULL, NULL, NULL, "Rotuman"},
+ {"rts", NULL, NULL, NULL, "Yurats"},
+ {"rtw", NULL, NULL, NULL, "Rathawi"},
+ {"rub", NULL, NULL, NULL, "Gungu"},
+ {"ruc", NULL, NULL, NULL, "Ruuli"},
+ {"rue", NULL, NULL, NULL, "Rusyn"},
+ {"ruf", NULL, NULL, NULL, "Luguru"},
+ {"rug", NULL, NULL, NULL, "Roviana"},
+ {"ruh", NULL, NULL, NULL, "Ruga"},
+ {"rui", NULL, NULL, NULL, "Rufiji"},
+ {"ruk", NULL, NULL, NULL, "Che"},
+ {"run", "run", "run", "rn", "Rundi"},
+ {"ruo", NULL, NULL, NULL, "Istro Romanian"},
+ {"rup", "rup", "rup", NULL, "Macedo-Romanian"},
+ {"ruq", NULL, NULL, NULL, "Megleno Romanian"},
+ {"rus", "rus", "rus", "ru", "Russian"},
+ {"rut", NULL, NULL, NULL, "Rutul"},
+ {"ruu", NULL, NULL, NULL, "Lanas Lobu"},
+ {"ruy", NULL, NULL, NULL, "Mala (Nigeria)"},
+ {"ruz", NULL, NULL, NULL, "Ruma"},
+ {"rwa", NULL, NULL, NULL, "Rawo"},
+ {"rwk", NULL, NULL, NULL, "Rwa"},
+ {"rwl", NULL, NULL, NULL, "Ruwila"},
+ {"rwm", NULL, NULL, NULL, "Amba (Uganda)"},
+ {"rwo", NULL, NULL, NULL, "Rawa"},
+ {"rwr", NULL, NULL, NULL, "Marwari (India)"},
+ {"rxd", NULL, NULL, NULL, "Ngardi"},
+ {"rxw", NULL, NULL, NULL, "Karuwali"},
+ {"ryn", NULL, NULL, NULL, "Northern Amami-Oshima"},
+ {"rys", NULL, NULL, NULL, "Yaeyama"},
+ {"ryu", NULL, NULL, NULL, "Central Okinawan"},
+ {"rzh", NULL, NULL, NULL, "Rāziḥī"},
+ {"saa", NULL, NULL, NULL, "Saba"},
+ {"sab", NULL, NULL, NULL, "Buglere"},
+ {"sac", NULL, NULL, NULL, "Meskwaki"},
+ {"sad", "sad", "sad", NULL, "Sandawe"},
+ {"sae", NULL, NULL, NULL, "Sabanê"},
+ {"saf", NULL, NULL, NULL, "Safaliba"},
+ {"sag", "sag", "sag", "sg", "Sango"},
+ {"sah", "sah", "sah", NULL, "Yakut"},
+ {"saj", NULL, NULL, NULL, "Sahu"},
+ {"sak", NULL, NULL, NULL, "Sake"},
+ {"sam", "sam", "sam", NULL, "Samaritan Aramaic"},
+ {"san", "san", "san", "sa", "Sanskrit"},
+ {"sao", NULL, NULL, NULL, "Sause"},
+ {"saq", NULL, NULL, NULL, "Samburu"},
+ {"sar", NULL, NULL, NULL, "Saraveca"},
+ {"sas", "sas", "sas", NULL, "Sasak"},
+ {"sat", "sat", "sat", NULL, "Santali"},
+ {"sau", NULL, NULL, NULL, "Saleman"},
+ {"sav", NULL, NULL, NULL, "Saafi-Saafi"},
+ {"saw", NULL, NULL, NULL, "Sawi"},
+ {"sax", NULL, NULL, NULL, "Sa"},
+ {"say", NULL, NULL, NULL, "Saya"},
+ {"saz", NULL, NULL, NULL, "Saurashtra"},
+ {"sba", NULL, NULL, NULL, "Ngambay"},
+ {"sbb", NULL, NULL, NULL, "Simbo"},
+ {"sbc", NULL, NULL, NULL, "Kele (Papua New Guinea)"},
+ {"sbd", NULL, NULL, NULL, "Southern Samo"},
+ {"sbe", NULL, NULL, NULL, "Saliba"},
+ {"sbf", NULL, NULL, NULL, "Chabu"},
+ {"sbg", NULL, NULL, NULL, "Seget"},
+ {"sbh", NULL, NULL, NULL, "Sori-Harengan"},
+ {"sbi", NULL, NULL, NULL, "Seti"},
+ {"sbj", NULL, NULL, NULL, "Surbakhal"},
+ {"sbk", NULL, NULL, NULL, "Safwa"},
+ {"sbl", NULL, NULL, NULL, "Botolan Sambal"},
+ {"sbm", NULL, NULL, NULL, "Sagala"},
+ {"sbn", NULL, NULL, NULL, "Sindhi Bhil"},
+ {"sbo", NULL, NULL, NULL, "Sabüm"},
+ {"sbp", NULL, NULL, NULL, "Sangu (Tanzania)"},
+ {"sbq", NULL, NULL, NULL, "Sileibi"},
+ {"sbr", NULL, NULL, NULL, "Sembakung Murut"},
+ {"sbs", NULL, NULL, NULL, "Subiya"},
+ {"sbt", NULL, NULL, NULL, "Kimki"},
+ {"sbu", NULL, NULL, NULL, "Stod Bhoti"},
+ {"sbv", NULL, NULL, NULL, "Sabine"},
+ {"sbw", NULL, NULL, NULL, "Simba"},
+ {"sbx", NULL, NULL, NULL, "Seberuang"},
+ {"sby", NULL, NULL, NULL, "Soli"},
+ {"sbz", NULL, NULL, NULL, "Sara Kaba"},
+ {"scb", NULL, NULL, NULL, "Chut"},
+ {"sce", NULL, NULL, NULL, "Dongxiang"},
+ {"scf", NULL, NULL, NULL, "San Miguel Creole French"},
+ {"scg", NULL, NULL, NULL, "Sanggau"},
+ {"sch", NULL, NULL, NULL, "Sakachep"},
+ {"sci", NULL, NULL, NULL, "Sri Lankan Creole Malay"},
+ {"sck", NULL, NULL, NULL, "Sadri"},
+ {"scl", NULL, NULL, NULL, "Shina"},
+ {"scn", "scn", "scn", NULL, "Sicilian"},
+ {"sco", "sco", "sco", NULL, "Scots"},
+ {"scp", NULL, NULL, NULL, "Hyolmo"},
+ {"scq", NULL, NULL, NULL, "Sa'och"},
+ {"scs", NULL, NULL, NULL, "North Slavey"},
+ {"sct", NULL, NULL, NULL, "Southern Katang"},
+ {"scu", NULL, NULL, NULL, "Shumcho"},
+ {"scv", NULL, NULL, NULL, "Sheni"},
+ {"scw", NULL, NULL, NULL, "Sha"},
+ {"scx", NULL, NULL, NULL, "Sicel"},
+ {"sda", NULL, NULL, NULL, "Toraja-Sa'dan"},
+ {"sdb", NULL, NULL, NULL, "Shabak"},
+ {"sdc", NULL, NULL, NULL, "Sassarese Sardinian"},
+ {"sde", NULL, NULL, NULL, "Surubu"},
+ {"sdf", NULL, NULL, NULL, "Sarli"},
+ {"sdg", NULL, NULL, NULL, "Savi"},
+ {"sdh", NULL, NULL, NULL, "Southern Kurdish"},
+ {"sdj", NULL, NULL, NULL, "Suundi"},
+ {"sdk", NULL, NULL, NULL, "Sos Kundi"},
+ {"sdl", NULL, NULL, NULL, "Saudi Arabian Sign Language"},
+ {"sdn", NULL, NULL, NULL, "Gallurese Sardinian"},
+ {"sdo", NULL, NULL, NULL, "Bukar-Sadung Bidayuh"},
+ {"sdp", NULL, NULL, NULL, "Sherdukpen"},
+ {"sdq", NULL, NULL, NULL, "Semandang"},
+ {"sdr", NULL, NULL, NULL, "Oraon Sadri"},
+ {"sds", NULL, NULL, NULL, "Sened"},
+ {"sdt", NULL, NULL, NULL, "Shuadit"},
+ {"sdu", NULL, NULL, NULL, "Sarudu"},
+ {"sdx", NULL, NULL, NULL, "Sibu Melanau"},
+ {"sdz", NULL, NULL, NULL, "Sallands"},
+ {"sea", NULL, NULL, NULL, "Semai"},
+ {"seb", NULL, NULL, NULL, "Shempire Senoufo"},
+ {"sec", NULL, NULL, NULL, "Sechelt"},
+ {"sed", NULL, NULL, NULL, "Sedang"},
+ {"see", NULL, NULL, NULL, "Seneca"},
+ {"sef", NULL, NULL, NULL, "Cebaara Senoufo"},
+ {"seg", NULL, NULL, NULL, "Segeju"},
+ {"seh", NULL, NULL, NULL, "Sena"},
+ {"sei", NULL, NULL, NULL, "Seri"},
+ {"sej", NULL, NULL, NULL, "Sene"},
+ {"sek", NULL, NULL, NULL, "Sekani"},
+ {"sel", "sel", "sel", NULL, "Selkup"},
+ {"sen", NULL, NULL, NULL, "Nanerigé Sénoufo"},
+ {"seo", NULL, NULL, NULL, "Suarmin"},
+ {"sep", NULL, NULL, NULL, "Sìcìté Sénoufo"},
+ {"seq", NULL, NULL, NULL, "Senara Sénoufo"},
+ {"ser", NULL, NULL, NULL, "Serrano"},
+ {"ses", NULL, NULL, NULL, "Koyraboro Senni Songhai"},
+ {"set", NULL, NULL, NULL, "Sentani"},
+ {"seu", NULL, NULL, NULL, "Serui-Laut"},
+ {"sev", NULL, NULL, NULL, "Nyarafolo Senoufo"},
+ {"sew", NULL, NULL, NULL, "Sewa Bay"},
+ {"sey", NULL, NULL, NULL, "Secoya"},
+ {"sez", NULL, NULL, NULL, "Senthang Chin"},
+ {"sfb", NULL, NULL, NULL, "Langue des signes de Belgique Francophone"},
+ {"sfe", NULL, NULL, NULL, "Eastern Subanen"},
+ {"sfm", NULL, NULL, NULL, "Small Flowery Miao"},
+ {"sfs", NULL, NULL, NULL, "South African Sign Language"},
+ {"sfw", NULL, NULL, NULL, "Sehwi"},
+ {"sga", "sga", "sga", NULL, "Old Irish (to 900)"},
+ {"sgb", NULL, NULL, NULL, "Mag-antsi Ayta"},
+ {"sgc", NULL, NULL, NULL, "Kipsigis"},
+ {"sgd", NULL, NULL, NULL, "Surigaonon"},
+ {"sge", NULL, NULL, NULL, "Segai"},
+ {"sgg", NULL, NULL, NULL, "Swiss-German Sign Language"},
+ {"sgh", NULL, NULL, NULL, "Shughni"},
+ {"sgi", NULL, NULL, NULL, "Suga"},
+ {"sgj", NULL, NULL, NULL, "Surgujia"},
+ {"sgk", NULL, NULL, NULL, "Sangkong"},
+ {"sgm", NULL, NULL, NULL, "Singa"},
+ {"sgp", NULL, NULL, NULL, "Singpho"},
+ {"sgr", NULL, NULL, NULL, "Sangisari"},
+ {"sgs", NULL, NULL, NULL, "Samogitian"},
+ {"sgt", NULL, NULL, NULL, "Brokpake"},
+ {"sgu", NULL, NULL, NULL, "Salas"},
+ {"sgw", NULL, NULL, NULL, "Sebat Bet Gurage"},
+ {"sgx", NULL, NULL, NULL, "Sierra Leone Sign Language"},
+ {"sgy", NULL, NULL, NULL, "Sanglechi"},
+ {"sgz", NULL, NULL, NULL, "Sursurunga"},
+ {"sha", NULL, NULL, NULL, "Shall-Zwall"},
+ {"shb", NULL, NULL, NULL, "Ninam"},
+ {"shc", NULL, NULL, NULL, "Sonde"},
+ {"shd", NULL, NULL, NULL, "Kundal Shahi"},
+ {"she", NULL, NULL, NULL, "Sheko"},
+ {"shg", NULL, NULL, NULL, "Shua"},
+ {"shh", NULL, NULL, NULL, "Shoshoni"},
+ {"shi", NULL, NULL, NULL, "Tachelhit"},
+ {"shj", NULL, NULL, NULL, "Shatt"},
+ {"shk", NULL, NULL, NULL, "Shilluk"},
+ {"shl", NULL, NULL, NULL, "Shendu"},
+ {"shm", NULL, NULL, NULL, "Shahrudi"},
+ {"shn", "shn", "shn", NULL, "Shan"},
+ {"sho", NULL, NULL, NULL, "Shanga"},
+ {"shp", NULL, NULL, NULL, "Shipibo-Conibo"},
+ {"shq", NULL, NULL, NULL, "Sala"},
+ {"shr", NULL, NULL, NULL, "Shi"},
+ {"shs", NULL, NULL, NULL, "Shuswap"},
+ {"sht", NULL, NULL, NULL, "Shasta"},
+ {"shu", NULL, NULL, NULL, "Chadian Arabic"},
+ {"shv", NULL, NULL, NULL, "Shehri"},
+ {"shw", NULL, NULL, NULL, "Shwai"},
+ {"shx", NULL, NULL, NULL, "She"},
+ {"shy", NULL, NULL, NULL, "Tachawit"},
+ {"shz", NULL, NULL, NULL, "Syenara Senoufo"},
+ {"sia", NULL, NULL, NULL, "Akkala Sami"},
+ {"sib", NULL, NULL, NULL, "Sebop"},
+ {"sid", "sid", "sid", NULL, "Sidamo"},
+ {"sie", NULL, NULL, NULL, "Simaa"},
+ {"sif", NULL, NULL, NULL, "Siamou"},
+ {"sig", NULL, NULL, NULL, "Paasaal"},
+ {"sih", NULL, NULL, NULL, "Zire"},
+ {"sii", NULL, NULL, NULL, "Shom Peng"},
+ {"sij", NULL, NULL, NULL, "Numbami"},
+ {"sik", NULL, NULL, NULL, "Sikiana"},
+ {"sil", NULL, NULL, NULL, "Tumulung Sisaala"},
+ {"sim", NULL, NULL, NULL, "Mende (Papua New Guinea)"},
+ {"sin", "sin", "sin", "si", "Sinhala"},
+ {"sip", NULL, NULL, NULL, "Sikkimese"},
+ {"siq", NULL, NULL, NULL, "Sonia"},
+ {"sir", NULL, NULL, NULL, "Siri"},
+ {"sis", NULL, NULL, NULL, "Siuslaw"},
+ {"siu", NULL, NULL, NULL, "Sinagen"},
+ {"siv", NULL, NULL, NULL, "Sumariup"},
+ {"siw", NULL, NULL, NULL, "Siwai"},
+ {"six", NULL, NULL, NULL, "Sumau"},
+ {"siy", NULL, NULL, NULL, "Sivandi"},
+ {"siz", NULL, NULL, NULL, "Siwi"},
+ {"sja", NULL, NULL, NULL, "Epena"},
+ {"sjb", NULL, NULL, NULL, "Sajau Basap"},
+ {"sjd", NULL, NULL, NULL, "Kildin Sami"},
+ {"sje", NULL, NULL, NULL, "Pite Sami"},
+ {"sjg", NULL, NULL, NULL, "Assangori"},
+ {"sjk", NULL, NULL, NULL, "Kemi Sami"},
+ {"sjl", NULL, NULL, NULL, "Sajalong"},
+ {"sjm", NULL, NULL, NULL, "Mapun"},
+ {"sjn", NULL, NULL, NULL, "Sindarin"},
+ {"sjo", NULL, NULL, NULL, "Xibe"},
+ {"sjp", NULL, NULL, NULL, "Surjapuri"},
+ {"sjr", NULL, NULL, NULL, "Siar-Lak"},
+ {"sjs", NULL, NULL, NULL, "Senhaja De Srair"},
+ {"sjt", NULL, NULL, NULL, "Ter Sami"},
+ {"sju", NULL, NULL, NULL, "Ume Sami"},
+ {"sjw", NULL, NULL, NULL, "Shawnee"},
+ {"ska", NULL, NULL, NULL, "Skagit"},
+ {"skb", NULL, NULL, NULL, "Saek"},
+ {"skc", NULL, NULL, NULL, "Ma Manda"},
+ {"skd", NULL, NULL, NULL, "Southern Sierra Miwok"},
+ {"ske", NULL, NULL, NULL, "Seke (Vanuatu)"},
+ {"skf", NULL, NULL, NULL, "Sakirabiá"},
+ {"skg", NULL, NULL, NULL, "Sakalava Malagasy"},
+ {"skh", NULL, NULL, NULL, "Sikule"},
+ {"ski", NULL, NULL, NULL, "Sika"},
+ {"skj", NULL, NULL, NULL, "Seke (Nepal)"},
+ {"skm", NULL, NULL, NULL, "Kutong"},
+ {"skn", NULL, NULL, NULL, "Kolibugan Subanon"},
+ {"sko", NULL, NULL, NULL, "Seko Tengah"},
+ {"skp", NULL, NULL, NULL, "Sekapan"},
+ {"skq", NULL, NULL, NULL, "Sininkere"},
+ {"skr", NULL, NULL, NULL, "Saraiki"},
+ {"sks", NULL, NULL, NULL, "Maia"},
+ {"skt", NULL, NULL, NULL, "Sakata"},
+ {"sku", NULL, NULL, NULL, "Sakao"},
+ {"skv", NULL, NULL, NULL, "Skou"},
+ {"skw", NULL, NULL, NULL, "Skepi Creole Dutch"},
+ {"skx", NULL, NULL, NULL, "Seko Padang"},
+ {"sky", NULL, NULL, NULL, "Sikaiana"},
+ {"skz", NULL, NULL, NULL, "Sekar"},
+ {"slc", NULL, NULL, NULL, "Sáliba"},
+ {"sld", NULL, NULL, NULL, "Sissala"},
+ {"sle", NULL, NULL, NULL, "Sholaga"},
+ {"slf", NULL, NULL, NULL, "Swiss-Italian Sign Language"},
+ {"slg", NULL, NULL, NULL, "Selungai Murut"},
+ {"slh", NULL, NULL, NULL, "Southern Puget Sound Salish"},
+ {"sli", NULL, NULL, NULL, "Lower Silesian"},
+ {"slj", NULL, NULL, NULL, "Salumá"},
+ {"slk", "slo", "slk", "sk", "Slovak"},
+ {"sll", NULL, NULL, NULL, "Salt-Yui"},
+ {"slm", NULL, NULL, NULL, "Pangutaran Sama"},
+ {"sln", NULL, NULL, NULL, "Salinan"},
+ {"slp", NULL, NULL, NULL, "Lamaholot"},
+ {"slq", NULL, NULL, NULL, "Salchuq"},
+ {"slr", NULL, NULL, NULL, "Salar"},
+ {"sls", NULL, NULL, NULL, "Singapore Sign Language"},
+ {"slt", NULL, NULL, NULL, "Sila"},
+ {"slu", NULL, NULL, NULL, "Selaru"},
+ {"slv", "slv", "slv", "sl", "Slovenian"},
+ {"slw", NULL, NULL, NULL, "Sialum"},
+ {"slx", NULL, NULL, NULL, "Salampasu"},
+ {"sly", NULL, NULL, NULL, "Selayar"},
+ {"slz", NULL, NULL, NULL, "Ma'ya"},
+ {"sma", "sma", "sma", NULL, "Southern Sami"},
+ {"smb", NULL, NULL, NULL, "Simbari"},
+ {"smc", NULL, NULL, NULL, "Som"},
+ {"smd", NULL, NULL, NULL, "Sama"},
+ {"sme", "sme", "sme", "se", "Northern Sami"},
+ {"smf", NULL, NULL, NULL, "Auwe"},
+ {"smg", NULL, NULL, NULL, "Simbali"},
+ {"smh", NULL, NULL, NULL, "Samei"},
+ {"smj", "smj", "smj", NULL, "Lule Sami"},
+ {"smk", NULL, NULL, NULL, "Bolinao"},
+ {"sml", NULL, NULL, NULL, "Central Sama"},
+ {"smm", NULL, NULL, NULL, "Musasa"},
+ {"smn", "smn", "smn", NULL, "Inari Sami"},
+ {"smo", "smo", "smo", "sm", "Samoan"},
+ {"smp", NULL, NULL, NULL, "Samaritan"},
+ {"smq", NULL, NULL, NULL, "Samo"},
+ {"smr", NULL, NULL, NULL, "Simeulue"},
+ {"sms", "sms", "sms", NULL, "Skolt Sami"},
+ {"smt", NULL, NULL, NULL, "Simte"},
+ {"smu", NULL, NULL, NULL, "Somray"},
+ {"smv", NULL, NULL, NULL, "Samvedi"},
+ {"smw", NULL, NULL, NULL, "Sumbawa"},
+ {"smx", NULL, NULL, NULL, "Samba"},
+ {"smy", NULL, NULL, NULL, "Semnani"},
+ {"smz", NULL, NULL, NULL, "Simeku"},
+ {"sna", "sna", "sna", "sn", "Shona"},
+ {"snb", NULL, NULL, NULL, "Sebuyau"},
+ {"snc", NULL, NULL, NULL, "Sinaugoro"},
+ {"snd", "snd", "snd", "sd", "Sindhi"},
+ {"sne", NULL, NULL, NULL, "Bau Bidayuh"},
+ {"snf", NULL, NULL, NULL, "Noon"},
+ {"sng", NULL, NULL, NULL, "Sanga (Democratic Republic of Congo)"},
+ {"sni", NULL, NULL, NULL, "Sensi"},
+ {"snj", NULL, NULL, NULL, "Riverain Sango"},
+ {"snk", "snk", "snk", NULL, "Soninke"},
+ {"snl", NULL, NULL, NULL, "Sangil"},
+ {"snm", NULL, NULL, NULL, "Southern Ma'di"},
+ {"snn", NULL, NULL, NULL, "Siona"},
+ {"sno", NULL, NULL, NULL, "Snohomish"},
+ {"snp", NULL, NULL, NULL, "Siane"},
+ {"snq", NULL, NULL, NULL, "Sangu (Gabon)"},
+ {"snr", NULL, NULL, NULL, "Sihan"},
+ {"sns", NULL, NULL, NULL, "South West Bay"},
+ {"snu", NULL, NULL, NULL, "Senggi"},
+ {"snv", NULL, NULL, NULL, "Sa'ban"},
+ {"snw", NULL, NULL, NULL, "Selee"},
+ {"snx", NULL, NULL, NULL, "Sam"},
+ {"sny", NULL, NULL, NULL, "Saniyo-Hiyewe"},
+ {"snz", NULL, NULL, NULL, "Kou"},
+ {"soa", NULL, NULL, NULL, "Thai Song"},
+ {"sob", NULL, NULL, NULL, "Sobei"},
+ {"soc", NULL, NULL, NULL, "So (Democratic Republic of Congo)"},
+ {"sod", NULL, NULL, NULL, "Songoora"},
+ {"soe", NULL, NULL, NULL, "Songomeno"},
+ {"sog", "sog", "sog", NULL, "Sogdian"},
+ {"soh", NULL, NULL, NULL, "Aka"},
+ {"soi", NULL, NULL, NULL, "Sonha"},
+ {"soj", NULL, NULL, NULL, "Soi"},
+ {"sok", NULL, NULL, NULL, "Sokoro"},
+ {"sol", NULL, NULL, NULL, "Solos"},
+ {"som", "som", "som", "so", "Somali"},
+ {"soo", NULL, NULL, NULL, "Songo"},
+ {"sop", NULL, NULL, NULL, "Songe"},
+ {"soq", NULL, NULL, NULL, "Kanasi"},
+ {"sor", NULL, NULL, NULL, "Somrai"},
+ {"sos", NULL, NULL, NULL, "Seeku"},
+ {"sot", "sot", "sot", "st", "Southern Sotho"},
+ {"sou", NULL, NULL, NULL, "Southern Thai"},
+ {"sov", NULL, NULL, NULL, "Sonsorol"},
+ {"sow", NULL, NULL, NULL, "Sowanda"},
+ {"sox", NULL, NULL, NULL, "Swo"},
+ {"soy", NULL, NULL, NULL, "Miyobe"},
+ {"soz", NULL, NULL, NULL, "Temi"},
+ {"spa", "spa", "spa", "es", "Spanish"},
+ {"spb", NULL, NULL, NULL, "Sepa (Indonesia)"},
+ {"spc", NULL, NULL, NULL, "Sapé"},
+ {"spd", NULL, NULL, NULL, "Saep"},
+ {"spe", NULL, NULL, NULL, "Sepa (Papua New Guinea)"},
+ {"spg", NULL, NULL, NULL, "Sian"},
+ {"spi", NULL, NULL, NULL, "Saponi"},
+ {"spk", NULL, NULL, NULL, "Sengo"},
+ {"spl", NULL, NULL, NULL, "Selepet"},
+ {"spm", NULL, NULL, NULL, "Akukem"},
+ {"spn", NULL, NULL, NULL, "Sanapaná"},
+ {"spo", NULL, NULL, NULL, "Spokane"},
+ {"spp", NULL, NULL, NULL, "Supyire Senoufo"},
+ {"spq", NULL, NULL, NULL, "Loreto-Ucayali Spanish"},
+ {"spr", NULL, NULL, NULL, "Saparua"},
+ {"sps", NULL, NULL, NULL, "Saposa"},
+ {"spt", NULL, NULL, NULL, "Spiti Bhoti"},
+ {"spu", NULL, NULL, NULL, "Sapuan"},
+ {"spv", NULL, NULL, NULL, "Sambalpuri"},
+ {"spx", NULL, NULL, NULL, "South Picene"},
+ {"spy", NULL, NULL, NULL, "Sabaot"},
+ {"sqa", NULL, NULL, NULL, "Shama-Sambuga"},
+ {"sqh", NULL, NULL, NULL, "Shau"},
+ {"sqi", "alb", "sqi", "sq", "Albanian"},
+ {"sqk", NULL, NULL, NULL, "Albanian Sign Language"},
+ {"sqm", NULL, NULL, NULL, "Suma"},
+ {"sqn", NULL, NULL, NULL, "Susquehannock"},
+ {"sqo", NULL, NULL, NULL, "Sorkhei"},
+ {"sqq", NULL, NULL, NULL, "Sou"},
+ {"sqr", NULL, NULL, NULL, "Siculo Arabic"},
+ {"sqs", NULL, NULL, NULL, "Sri Lankan Sign Language"},
+ {"sqt", NULL, NULL, NULL, "Soqotri"},
+ {"squ", NULL, NULL, NULL, "Squamish"},
+ {"sqx", NULL, NULL, NULL, "Kufr Qassem Sign Language (KQSL)"},
+ {"sra", NULL, NULL, NULL, "Saruga"},
+ {"srb", NULL, NULL, NULL, "Sora"},
+ {"src", NULL, NULL, NULL, "Logudorese Sardinian"},
+ {"srd", "srd", "srd", "sc", "Sardinian"},
+ {"sre", NULL, NULL, NULL, "Sara"},
+ {"srf", NULL, NULL, NULL, "Nafi"},
+ {"srg", NULL, NULL, NULL, "Sulod"},
+ {"srh", NULL, NULL, NULL, "Sarikoli"},
+ {"sri", NULL, NULL, NULL, "Siriano"},
+ {"srk", NULL, NULL, NULL, "Serudung Murut"},
+ {"srl", NULL, NULL, NULL, "Isirawa"},
+ {"srm", NULL, NULL, NULL, "Saramaccan"},
+ {"srn", "srn", "srn", NULL, "Sranan Tongo"},
+ {"sro", NULL, NULL, NULL, "Campidanese Sardinian"},
+ {"srp", "srp", "srp", "sr", "Serbian"},
+ {"srq", NULL, NULL, NULL, "Sirionó"},
+ {"srr", "srr", "srr", NULL, "Serer"},
+ {"srs", NULL, NULL, NULL, "Sarsi"},
+ {"srt", NULL, NULL, NULL, "Sauri"},
+ {"sru", NULL, NULL, NULL, "Suruí"},
+ {"srv", NULL, NULL, NULL, "Southern Sorsoganon"},
+ {"srw", NULL, NULL, NULL, "Serua"},
+ {"srx", NULL, NULL, NULL, "Sirmauri"},
+ {"sry", NULL, NULL, NULL, "Sera"},
+ {"srz", NULL, NULL, NULL, "Shahmirzadi"},
+ {"ssb", NULL, NULL, NULL, "Southern Sama"},
+ {"ssc", NULL, NULL, NULL, "Suba-Simbiti"},
+ {"ssd", NULL, NULL, NULL, "Siroi"},
+ {"sse", NULL, NULL, NULL, "Balangingi"},
+ {"ssf", NULL, NULL, NULL, "Thao"},
+ {"ssg", NULL, NULL, NULL, "Seimat"},
+ {"ssh", NULL, NULL, NULL, "Shihhi Arabic"},
+ {"ssi", NULL, NULL, NULL, "Sansi"},
+ {"ssj", NULL, NULL, NULL, "Sausi"},
+ {"ssk", NULL, NULL, NULL, "Sunam"},
+ {"ssl", NULL, NULL, NULL, "Western Sisaala"},
+ {"ssm", NULL, NULL, NULL, "Semnam"},
+ {"ssn", NULL, NULL, NULL, "Waata"},
+ {"sso", NULL, NULL, NULL, "Sissano"},
+ {"ssp", NULL, NULL, NULL, "Spanish Sign Language"},
+ {"ssq", NULL, NULL, NULL, "So'a"},
+ {"ssr", NULL, NULL, NULL, "Swiss-French Sign Language"},
+ {"sss", NULL, NULL, NULL, "Sô"},
+ {"sst", NULL, NULL, NULL, "Sinasina"},
+ {"ssu", NULL, NULL, NULL, "Susuami"},
+ {"ssv", NULL, NULL, NULL, "Shark Bay"},
+ {"ssw", "ssw", "ssw", "ss", "Swati"},
+ {"ssx", NULL, NULL, NULL, "Samberigi"},
+ {"ssy", NULL, NULL, NULL, "Saho"},
+ {"ssz", NULL, NULL, NULL, "Sengseng"},
+ {"sta", NULL, NULL, NULL, "Settla"},
+ {"stb", NULL, NULL, NULL, "Northern Subanen"},
+ {"std", NULL, NULL, NULL, "Sentinel"},
+ {"ste", NULL, NULL, NULL, "Liana-Seti"},
+ {"stf", NULL, NULL, NULL, "Seta"},
+ {"stg", NULL, NULL, NULL, "Trieng"},
+ {"sth", NULL, NULL, NULL, "Shelta"},
+ {"sti", NULL, NULL, NULL, "Bulo Stieng"},
+ {"stj", NULL, NULL, NULL, "Matya Samo"},
+ {"stk", NULL, NULL, NULL, "Arammba"},
+ {"stl", NULL, NULL, NULL, "Stellingwerfs"},
+ {"stm", NULL, NULL, NULL, "Setaman"},
+ {"stn", NULL, NULL, NULL, "Owa"},
+ {"sto", NULL, NULL, NULL, "Stoney"},
+ {"stp", NULL, NULL, NULL, "Southeastern Tepehuan"},
+ {"stq", NULL, NULL, NULL, "Saterfriesisch"},
+ {"str", NULL, NULL, NULL, "Straits Salish"},
+ {"sts", NULL, NULL, NULL, "Shumashti"},
+ {"stt", NULL, NULL, NULL, "Budeh Stieng"},
+ {"stu", NULL, NULL, NULL, "Samtao"},
+ {"stv", NULL, NULL, NULL, "Silt'e"},
+ {"stw", NULL, NULL, NULL, "Satawalese"},
+ {"sty", NULL, NULL, NULL, "Siberian Tatar"},
+ {"sua", NULL, NULL, NULL, "Sulka"},
+ {"sub", NULL, NULL, NULL, "Suku"},
+ {"suc", NULL, NULL, NULL, "Western Subanon"},
+ {"sue", NULL, NULL, NULL, "Suena"},
+ {"sug", NULL, NULL, NULL, "Suganga"},
+ {"sui", NULL, NULL, NULL, "Suki"},
+ {"suj", NULL, NULL, NULL, "Shubi"},
+ {"suk", "suk", "suk", NULL, "Sukuma"},
+ {"sun", "sun", "sun", "su", "Sundanese"},
+ {"suo", NULL, NULL, NULL, "Bouni"},
+ {"suq", NULL, NULL, NULL, "Tirmaga-Chai Suri"},
+ {"sur", NULL, NULL, NULL, "Mwaghavul"},
+ {"sus", "sus", "sus", NULL, "Susu"},
+ {"sut", NULL, NULL, NULL, "Subtiaba"},
+ {"suv", NULL, NULL, NULL, "Puroik"},
+ {"suw", NULL, NULL, NULL, "Sumbwa"},
+ {"sux", "sux", "sux", NULL, "Sumerian"},
+ {"suy", NULL, NULL, NULL, "Suyá"},
+ {"suz", NULL, NULL, NULL, "Sunwar"},
+ {"sva", NULL, NULL, NULL, "Svan"},
+ {"svb", NULL, NULL, NULL, "Ulau-Suain"},
+ {"svc", NULL, NULL, NULL, "Vincentian Creole English"},
+ {"sve", NULL, NULL, NULL, "Serili"},
+ {"svk", NULL, NULL, NULL, "Slovakian Sign Language"},
+ {"svm", NULL, NULL, NULL, "Slavomolisano"},
+ {"svs", NULL, NULL, NULL, "Savosavo"},
+ {"svx", NULL, NULL, NULL, "Skalvian"},
+ {"swa", "swa", "swa", "sw", "Swahili (macrolanguage)"},
+ {"swb", NULL, NULL, NULL, "Maore Comorian"},
+ {"swc", NULL, NULL, NULL, "Congo Swahili"},
+ {"swe", "swe", "swe", "sv", "Swedish"},
+ {"swf", NULL, NULL, NULL, "Sere"},
+ {"swg", NULL, NULL, NULL, "Swabian"},
+ {"swh", NULL, NULL, NULL, "Swahili (individual language)"},
+ {"swi", NULL, NULL, NULL, "Sui"},
+ {"swj", NULL, NULL, NULL, "Sira"},
+ {"swk", NULL, NULL, NULL, "Malawi Sena"},
+ {"swl", NULL, NULL, NULL, "Swedish Sign Language"},
+ {"swm", NULL, NULL, NULL, "Samosa"},
+ {"swn", NULL, NULL, NULL, "Sawknah"},
+ {"swo", NULL, NULL, NULL, "Shanenawa"},
+ {"swp", NULL, NULL, NULL, "Suau"},
+ {"swq", NULL, NULL, NULL, "Sharwa"},
+ {"swr", NULL, NULL, NULL, "Saweru"},
+ {"sws", NULL, NULL, NULL, "Seluwasan"},
+ {"swt", NULL, NULL, NULL, "Sawila"},
+ {"swu", NULL, NULL, NULL, "Suwawa"},
+ {"swv", NULL, NULL, NULL, "Shekhawati"},
+ {"sww", NULL, NULL, NULL, "Sowa"},
+ {"swx", NULL, NULL, NULL, "Suruahá"},
+ {"swy", NULL, NULL, NULL, "Sarua"},
+ {"sxb", NULL, NULL, NULL, "Suba"},
+ {"sxc", NULL, NULL, NULL, "Sicanian"},
+ {"sxe", NULL, NULL, NULL, "Sighu"},
+ {"sxg", NULL, NULL, NULL, "Shuhi"},
+ {"sxk", NULL, NULL, NULL, "Southern Kalapuya"},
+ {"sxl", NULL, NULL, NULL, "Selian"},
+ {"sxm", NULL, NULL, NULL, "Samre"},
+ {"sxn", NULL, NULL, NULL, "Sangir"},
+ {"sxo", NULL, NULL, NULL, "Sorothaptic"},
+ {"sxr", NULL, NULL, NULL, "Saaroa"},
+ {"sxs", NULL, NULL, NULL, "Sasaru"},
+ {"sxu", NULL, NULL, NULL, "Upper Saxon"},
+ {"sxw", NULL, NULL, NULL, "Saxwe Gbe"},
+ {"sya", NULL, NULL, NULL, "Siang"},
+ {"syb", NULL, NULL, NULL, "Central Subanen"},
+ {"syc", "syc", "syc", NULL, "Classical Syriac"},
+ {"syi", NULL, NULL, NULL, "Seki"},
+ {"syk", NULL, NULL, NULL, "Sukur"},
+ {"syl", NULL, NULL, NULL, "Sylheti"},
+ {"sym", NULL, NULL, NULL, "Maya Samo"},
+ {"syn", NULL, NULL, NULL, "Senaya"},
+ {"syo", NULL, NULL, NULL, "Suoy"},
+ {"syr", "syr", "syr", NULL, "Syriac"},
+ {"sys", NULL, NULL, NULL, "Sinyar"},
+ {"syw", NULL, NULL, NULL, "Kagate"},
+ {"syx", NULL, NULL, NULL, "Samay"},
+ {"syy", NULL, NULL, NULL, "Al-Sayyid Bedouin Sign Language"},
+ {"sza", NULL, NULL, NULL, "Semelai"},
+ {"szb", NULL, NULL, NULL, "Ngalum"},
+ {"szc", NULL, NULL, NULL, "Semaq Beri"},
+ {"szd", NULL, NULL, NULL, "Seru"},
+ {"sze", NULL, NULL, NULL, "Seze"},
+ {"szg", NULL, NULL, NULL, "Sengele"},
+ {"szl", NULL, NULL, NULL, "Silesian"},
+ {"szn", NULL, NULL, NULL, "Sula"},
+ {"szp", NULL, NULL, NULL, "Suabo"},
+ {"szs", NULL, NULL, NULL, "Solomon Islands Sign Language"},
+ {"szv", NULL, NULL, NULL, "Isu (Fako Division)"},
+ {"szw", NULL, NULL, NULL, "Sawai"},
+ {"szy", NULL, NULL, NULL, "Sakizaya"},
+ {"taa", NULL, NULL, NULL, "Lower Tanana"},
+ {"tab", NULL, NULL, NULL, "Tabassaran"},
+ {"tac", NULL, NULL, NULL, "Lowland Tarahumara"},
+ {"tad", NULL, NULL, NULL, "Tause"},
+ {"tae", NULL, NULL, NULL, "Tariana"},
+ {"taf", NULL, NULL, NULL, "Tapirapé"},
+ {"tag", NULL, NULL, NULL, "Tagoi"},
+ {"tah", "tah", "tah", "ty", "Tahitian"},
+ {"taj", NULL, NULL, NULL, "Eastern Tamang"},
+ {"tak", NULL, NULL, NULL, "Tala"},
+ {"tal", NULL, NULL, NULL, "Tal"},
+ {"tam", "tam", "tam", "ta", "Tamil"},
+ {"tan", NULL, NULL, NULL, "Tangale"},
+ {"tao", NULL, NULL, NULL, "Yami"},
+ {"tap", NULL, NULL, NULL, "Taabwa"},
+ {"taq", NULL, NULL, NULL, "Tamasheq"},
+ {"tar", NULL, NULL, NULL, "Central Tarahumara"},
+ {"tas", NULL, NULL, NULL, "Tay Boi"},
+ {"tat", "tat", "tat", "tt", "Tatar"},
+ {"tau", NULL, NULL, NULL, "Upper Tanana"},
+ {"tav", NULL, NULL, NULL, "Tatuyo"},
+ {"taw", NULL, NULL, NULL, "Tai"},
+ {"tax", NULL, NULL, NULL, "Tamki"},
+ {"tay", NULL, NULL, NULL, "Atayal"},
+ {"taz", NULL, NULL, NULL, "Tocho"},
+ {"tba", NULL, NULL, NULL, "Aikanã"},
+ {"tbc", NULL, NULL, NULL, "Takia"},
+ {"tbd", NULL, NULL, NULL, "Kaki Ae"},
+ {"tbe", NULL, NULL, NULL, "Tanimbili"},
+ {"tbf", NULL, NULL, NULL, "Mandara"},
+ {"tbg", NULL, NULL, NULL, "North Tairora"},
+ {"tbh", NULL, NULL, NULL, "Dharawal"},
+ {"tbi", NULL, NULL, NULL, "Gaam"},
+ {"tbj", NULL, NULL, NULL, "Tiang"},
+ {"tbk", NULL, NULL, NULL, "Calamian Tagbanwa"},
+ {"tbl", NULL, NULL, NULL, "Tboli"},
+ {"tbm", NULL, NULL, NULL, "Tagbu"},
+ {"tbn", NULL, NULL, NULL, "Barro Negro Tunebo"},
+ {"tbo", NULL, NULL, NULL, "Tawala"},
+ {"tbp", NULL, NULL, NULL, "Taworta"},
+ {"tbr", NULL, NULL, NULL, "Tumtum"},
+ {"tbs", NULL, NULL, NULL, "Tanguat"},
+ {"tbt", NULL, NULL, NULL, "Tembo (Kitembo)"},
+ {"tbu", NULL, NULL, NULL, "Tubar"},
+ {"tbv", NULL, NULL, NULL, "Tobo"},
+ {"tbw", NULL, NULL, NULL, "Tagbanwa"},
+ {"tbx", NULL, NULL, NULL, "Kapin"},
+ {"tby", NULL, NULL, NULL, "Tabaru"},
+ {"tbz", NULL, NULL, NULL, "Ditammari"},
+ {"tca", NULL, NULL, NULL, "Ticuna"},
+ {"tcb", NULL, NULL, NULL, "Tanacross"},
+ {"tcc", NULL, NULL, NULL, "Datooga"},
+ {"tcd", NULL, NULL, NULL, "Tafi"},
+ {"tce", NULL, NULL, NULL, "Southern Tutchone"},
+ {"tcf", NULL, NULL, NULL, "Malinaltepec Me'phaa"},
+ {"tcg", NULL, NULL, NULL, "Tamagario"},
+ {"tch", NULL, NULL, NULL, "Turks And Caicos Creole English"},
+ {"tci", NULL, NULL, NULL, "Wára"},
+ {"tck", NULL, NULL, NULL, "Tchitchege"},
+ {"tcl", NULL, NULL, NULL, "Taman (Myanmar)"},
+ {"tcm", NULL, NULL, NULL, "Tanahmerah"},
+ {"tcn", NULL, NULL, NULL, "Tichurong"},
+ {"tco", NULL, NULL, NULL, "Taungyo"},
+ {"tcp", NULL, NULL, NULL, "Tawr Chin"},
+ {"tcq", NULL, NULL, NULL, "Kaiy"},
+ {"tcs", NULL, NULL, NULL, "Torres Strait Creole"},
+ {"tct", NULL, NULL, NULL, "T'en"},
+ {"tcu", NULL, NULL, NULL, "Southeastern Tarahumara"},
+ {"tcw", NULL, NULL, NULL, "Tecpatlán Totonac"},
+ {"tcx", NULL, NULL, NULL, "Toda"},
+ {"tcy", NULL, NULL, NULL, "Tulu"},
+ {"tcz", NULL, NULL, NULL, "Thado Chin"},
+ {"tda", NULL, NULL, NULL, "Tagdal"},
+ {"tdb", NULL, NULL, NULL, "Panchpargania"},
+ {"tdc", NULL, NULL, NULL, "Emberá-Tadó"},
+ {"tdd", NULL, NULL, NULL, "Tai Nüa"},
+ {"tde", NULL, NULL, NULL, "Tiranige Diga Dogon"},
+ {"tdf", NULL, NULL, NULL, "Talieng"},
+ {"tdg", NULL, NULL, NULL, "Western Tamang"},
+ {"tdh", NULL, NULL, NULL, "Thulung"},
+ {"tdi", NULL, NULL, NULL, "Tomadino"},
+ {"tdj", NULL, NULL, NULL, "Tajio"},
+ {"tdk", NULL, NULL, NULL, "Tambas"},
+ {"tdl", NULL, NULL, NULL, "Sur"},
+ {"tdm", NULL, NULL, NULL, "Taruma"},
+ {"tdn", NULL, NULL, NULL, "Tondano"},
+ {"tdo", NULL, NULL, NULL, "Teme"},
+ {"tdq", NULL, NULL, NULL, "Tita"},
+ {"tdr", NULL, NULL, NULL, "Todrah"},
+ {"tds", NULL, NULL, NULL, "Doutai"},
+ {"tdt", NULL, NULL, NULL, "Tetun Dili"},
+ {"tdv", NULL, NULL, NULL, "Toro"},
+ {"tdx", NULL, NULL, NULL, "Tandroy-Mahafaly Malagasy"},
+ {"tdy", NULL, NULL, NULL, "Tadyawan"},
+ {"tea", NULL, NULL, NULL, "Temiar"},
+ {"teb", NULL, NULL, NULL, "Tetete"},
+ {"tec", NULL, NULL, NULL, "Terik"},
+ {"ted", NULL, NULL, NULL, "Tepo Krumen"},
+ {"tee", NULL, NULL, NULL, "Huehuetla Tepehua"},
+ {"tef", NULL, NULL, NULL, "Teressa"},
+ {"teg", NULL, NULL, NULL, "Teke-Tege"},
+ {"teh", NULL, NULL, NULL, "Tehuelche"},
+ {"tei", NULL, NULL, NULL, "Torricelli"},
+ {"tek", NULL, NULL, NULL, "Ibali Teke"},
+ {"tel", "tel", "tel", "te", "Telugu"},
+ {"tem", "tem", "tem", NULL, "Timne"},
+ {"ten", NULL, NULL, NULL, "Tama (Colombia)"},
+ {"teo", NULL, NULL, NULL, "Teso"},
+ {"tep", NULL, NULL, NULL, "Tepecano"},
+ {"teq", NULL, NULL, NULL, "Temein"},
+ {"ter", "ter", "ter", NULL, "Tereno"},
+ {"tes", NULL, NULL, NULL, "Tengger"},
+ {"tet", "tet", "tet", NULL, "Tetum"},
+ {"teu", NULL, NULL, NULL, "Soo"},
+ {"tev", NULL, NULL, NULL, "Teor"},
+ {"tew", NULL, NULL, NULL, "Tewa (USA)"},
+ {"tex", NULL, NULL, NULL, "Tennet"},
+ {"tey", NULL, NULL, NULL, "Tulishi"},
+ {"tez", NULL, NULL, NULL, "Tetserret"},
+ {"tfi", NULL, NULL, NULL, "Tofin Gbe"},
+ {"tfn", NULL, NULL, NULL, "Tanaina"},
+ {"tfo", NULL, NULL, NULL, "Tefaro"},
+ {"tfr", NULL, NULL, NULL, "Teribe"},
+ {"tft", NULL, NULL, NULL, "Ternate"},
+ {"tga", NULL, NULL, NULL, "Sagalla"},
+ {"tgb", NULL, NULL, NULL, "Tobilung"},
+ {"tgc", NULL, NULL, NULL, "Tigak"},
+ {"tgd", NULL, NULL, NULL, "Ciwogai"},
+ {"tge", NULL, NULL, NULL, "Eastern Gorkha Tamang"},
+ {"tgf", NULL, NULL, NULL, "Chalikha"},
+ {"tgh", NULL, NULL, NULL, "Tobagonian Creole English"},
+ {"tgi", NULL, NULL, NULL, "Lawunuia"},
+ {"tgj", NULL, NULL, NULL, "Tagin"},
+ {"tgk", "tgk", "tgk", "tg", "Tajik"},
+ {"tgl", "tgl", "tgl", "tl", "Tagalog"},
+ {"tgn", NULL, NULL, NULL, "Tandaganon"},
+ {"tgo", NULL, NULL, NULL, "Sudest"},
+ {"tgp", NULL, NULL, NULL, "Tangoa"},
+ {"tgq", NULL, NULL, NULL, "Tring"},
+ {"tgr", NULL, NULL, NULL, "Tareng"},
+ {"tgs", NULL, NULL, NULL, "Nume"},
+ {"tgt", NULL, NULL, NULL, "Central Tagbanwa"},
+ {"tgu", NULL, NULL, NULL, "Tanggu"},
+ {"tgv", NULL, NULL, NULL, "Tingui-Boto"},
+ {"tgw", NULL, NULL, NULL, "Tagwana Senoufo"},
+ {"tgx", NULL, NULL, NULL, "Tagish"},
+ {"tgy", NULL, NULL, NULL, "Togoyo"},
+ {"tgz", NULL, NULL, NULL, "Tagalaka"},
+ {"tha", "tha", "tha", "th", "Thai"},
+ {"thd", NULL, NULL, NULL, "Kuuk Thaayorre"},
+ {"the", NULL, NULL, NULL, "Chitwania Tharu"},
+ {"thf", NULL, NULL, NULL, "Thangmi"},
+ {"thh", NULL, NULL, NULL, "Northern Tarahumara"},
+ {"thi", NULL, NULL, NULL, "Tai Long"},
+ {"thk", NULL, NULL, NULL, "Tharaka"},
+ {"thl", NULL, NULL, NULL, "Dangaura Tharu"},
+ {"thm", NULL, NULL, NULL, "Aheu"},
+ {"thn", NULL, NULL, NULL, "Thachanadan"},
+ {"thp", NULL, NULL, NULL, "Thompson"},
+ {"thq", NULL, NULL, NULL, "Kochila Tharu"},
+ {"thr", NULL, NULL, NULL, "Rana Tharu"},
+ {"ths", NULL, NULL, NULL, "Thakali"},
+ {"tht", NULL, NULL, NULL, "Tahltan"},
+ {"thu", NULL, NULL, NULL, "Thuri"},
+ {"thv", NULL, NULL, NULL, "Tahaggart Tamahaq"},
+ {"thy", NULL, NULL, NULL, "Tha"},
+ {"thz", NULL, NULL, NULL, "Tayart Tamajeq"},
+ {"tia", NULL, NULL, NULL, "Tidikelt Tamazight"},
+ {"tic", NULL, NULL, NULL, "Tira"},
+ {"tif", NULL, NULL, NULL, "Tifal"},
+ {"tig", "tig", "tig", NULL, "Tigre"},
+ {"tih", NULL, NULL, NULL, "Timugon Murut"},
+ {"tii", NULL, NULL, NULL, "Tiene"},
+ {"tij", NULL, NULL, NULL, "Tilung"},
+ {"tik", NULL, NULL, NULL, "Tikar"},
+ {"til", NULL, NULL, NULL, "Tillamook"},
+ {"tim", NULL, NULL, NULL, "Timbe"},
+ {"tin", NULL, NULL, NULL, "Tindi"},
+ {"tio", NULL, NULL, NULL, "Teop"},
+ {"tip", NULL, NULL, NULL, "Trimuris"},
+ {"tiq", NULL, NULL, NULL, "Tiéfo"},
+ {"tir", "tir", "tir", "ti", "Tigrinya"},
+ {"tis", NULL, NULL, NULL, "Masadiit Itneg"},
+ {"tit", NULL, NULL, NULL, "Tinigua"},
+ {"tiu", NULL, NULL, NULL, "Adasen"},
+ {"tiv", "tiv", "tiv", NULL, "Tiv"},
+ {"tiw", NULL, NULL, NULL, "Tiwi"},
+ {"tix", NULL, NULL, NULL, "Southern Tiwa"},
+ {"tiy", NULL, NULL, NULL, "Tiruray"},
+ {"tiz", NULL, NULL, NULL, "Tai Hongjin"},
+ {"tja", NULL, NULL, NULL, "Tajuasohn"},
+ {"tjg", NULL, NULL, NULL, "Tunjung"},
+ {"tji", NULL, NULL, NULL, "Northern Tujia"},
+ {"tjj", NULL, NULL, NULL, "Tjungundji"},
+ {"tjl", NULL, NULL, NULL, "Tai Laing"},
+ {"tjm", NULL, NULL, NULL, "Timucua"},
+ {"tjn", NULL, NULL, NULL, "Tonjon"},
+ {"tjo", NULL, NULL, NULL, "Temacine Tamazight"},
+ {"tjp", NULL, NULL, NULL, "Tjupany"},
+ {"tjs", NULL, NULL, NULL, "Southern Tujia"},
+ {"tju", NULL, NULL, NULL, "Tjurruru"},
+ {"tjw", NULL, NULL, NULL, "Djabwurrung"},
+ {"tka", NULL, NULL, NULL, "Truká"},
+ {"tkb", NULL, NULL, NULL, "Buksa"},
+ {"tkd", NULL, NULL, NULL, "Tukudede"},
+ {"tke", NULL, NULL, NULL, "Takwane"},
+ {"tkf", NULL, NULL, NULL, "Tukumanféd"},
+ {"tkg", NULL, NULL, NULL, "Tesaka Malagasy"},
+ {"tkl", "tkl", "tkl", NULL, "Tokelau"},
+ {"tkm", NULL, NULL, NULL, "Takelma"},
+ {"tkn", NULL, NULL, NULL, "Toku-No-Shima"},
+ {"tkp", NULL, NULL, NULL, "Tikopia"},
+ {"tkq", NULL, NULL, NULL, "Tee"},
+ {"tkr", NULL, NULL, NULL, "Tsakhur"},
+ {"tks", NULL, NULL, NULL, "Takestani"},
+ {"tkt", NULL, NULL, NULL, "Kathoriya Tharu"},
+ {"tku", NULL, NULL, NULL, "Upper Necaxa Totonac"},
+ {"tkv", NULL, NULL, NULL, "Mur Pano"},
+ {"tkw", NULL, NULL, NULL, "Teanu"},
+ {"tkx", NULL, NULL, NULL, "Tangko"},
+ {"tkz", NULL, NULL, NULL, "Takua"},
+ {"tla", NULL, NULL, NULL, "Southwestern Tepehuan"},
+ {"tlb", NULL, NULL, NULL, "Tobelo"},
+ {"tlc", NULL, NULL, NULL, "Yecuatla Totonac"},
+ {"tld", NULL, NULL, NULL, "Talaud"},
+ {"tlf", NULL, NULL, NULL, "Telefol"},
+ {"tlg", NULL, NULL, NULL, "Tofanma"},
+ {"tlh", "tlh", "tlh", NULL, "Klingon"},
+ {"tli", "tli", "tli", NULL, "Tlingit"},
+ {"tlj", NULL, NULL, NULL, "Talinga-Bwisi"},
+ {"tlk", NULL, NULL, NULL, "Taloki"},
+ {"tll", NULL, NULL, NULL, "Tetela"},
+ {"tlm", NULL, NULL, NULL, "Tolomako"},
+ {"tln", NULL, NULL, NULL, "Talondo'"},
+ {"tlo", NULL, NULL, NULL, "Talodi"},
+ {"tlp", NULL, NULL, NULL, "Filomena Mata-Coahuitlán Totonac"},
+ {"tlq", NULL, NULL, NULL, "Tai Loi"},
+ {"tlr", NULL, NULL, NULL, "Talise"},
+ {"tls", NULL, NULL, NULL, "Tambotalo"},
+ {"tlt", NULL, NULL, NULL, "Sou Nama"},
+ {"tlu", NULL, NULL, NULL, "Tulehu"},
+ {"tlv", NULL, NULL, NULL, "Taliabu"},
+ {"tlx", NULL, NULL, NULL, "Khehek"},
+ {"tly", NULL, NULL, NULL, "Talysh"},
+ {"tma", NULL, NULL, NULL, "Tama (Chad)"},
+ {"tmb", NULL, NULL, NULL, "Katbol"},
+ {"tmc", NULL, NULL, NULL, "Tumak"},
+ {"tmd", NULL, NULL, NULL, "Haruai"},
+ {"tme", NULL, NULL, NULL, "Tremembé"},
+ {"tmf", NULL, NULL, NULL, "Toba-Maskoy"},
+ {"tmg", NULL, NULL, NULL, "Ternateño"},
+ {"tmh", "tmh", "tmh", NULL, "Tamashek"},
+ {"tmi", NULL, NULL, NULL, "Tutuba"},
+ {"tmj", NULL, NULL, NULL, "Samarokena"},
+ {"tmk", NULL, NULL, NULL, "Northwestern Tamang"},
+ {"tml", NULL, NULL, NULL, "Tamnim Citak"},
+ {"tmm", NULL, NULL, NULL, "Tai Thanh"},
+ {"tmn", NULL, NULL, NULL, "Taman (Indonesia)"},
+ {"tmo", NULL, NULL, NULL, "Temoq"},
+ {"tmq", NULL, NULL, NULL, "Tumleo"},
+ {"tmr", NULL, NULL, NULL, "Jewish Babylonian Aramaic (ca. 200-1200 CE)"},
+ {"tms", NULL, NULL, NULL, "Tima"},
+ {"tmt", NULL, NULL, NULL, "Tasmate"},
+ {"tmu", NULL, NULL, NULL, "Iau"},
+ {"tmv", NULL, NULL, NULL, "Tembo (Motembo)"},
+ {"tmw", NULL, NULL, NULL, "Temuan"},
+ {"tmy", NULL, NULL, NULL, "Tami"},
+ {"tmz", NULL, NULL, NULL, "Tamanaku"},
+ {"tna", NULL, NULL, NULL, "Tacana"},
+ {"tnb", NULL, NULL, NULL, "Western Tunebo"},
+ {"tnc", NULL, NULL, NULL, "Tanimuca-Retuarã"},
+ {"tnd", NULL, NULL, NULL, "Angosturas Tunebo"},
+ {"tng", NULL, NULL, NULL, "Tobanga"},
+ {"tnh", NULL, NULL, NULL, "Maiani"},
+ {"tni", NULL, NULL, NULL, "Tandia"},
+ {"tnk", NULL, NULL, NULL, "Kwamera"},
+ {"tnl", NULL, NULL, NULL, "Lenakel"},
+ {"tnm", NULL, NULL, NULL, "Tabla"},
+ {"tnn", NULL, NULL, NULL, "North Tanna"},
+ {"tno", NULL, NULL, NULL, "Toromono"},
+ {"tnp", NULL, NULL, NULL, "Whitesands"},
+ {"tnq", NULL, NULL, NULL, "Taino"},
+ {"tnr", NULL, NULL, NULL, "Ménik"},
+ {"tns", NULL, NULL, NULL, "Tenis"},
+ {"tnt", NULL, NULL, NULL, "Tontemboan"},
+ {"tnu", NULL, NULL, NULL, "Tay Khang"},
+ {"tnv", NULL, NULL, NULL, "Tangchangya"},
+ {"tnw", NULL, NULL, NULL, "Tonsawang"},
+ {"tnx", NULL, NULL, NULL, "Tanema"},
+ {"tny", NULL, NULL, NULL, "Tongwe"},
+ {"tnz", NULL, NULL, NULL, "Ten'edn"},
+ {"tob", NULL, NULL, NULL, "Toba"},
+ {"toc", NULL, NULL, NULL, "Coyutla Totonac"},
+ {"tod", NULL, NULL, NULL, "Toma"},
+ {"tof", NULL, NULL, NULL, "Gizrra"},
+ {"tog", "tog", "tog", NULL, "Tonga (Nyasa)"},
+ {"toh", NULL, NULL, NULL, "Gitonga"},
+ {"toi", NULL, NULL, NULL, "Tonga (Zambia)"},
+ {"toj", NULL, NULL, NULL, "Tojolabal"},
+ {"tol", NULL, NULL, NULL, "Tolowa"},
+ {"tom", NULL, NULL, NULL, "Tombulu"},
+ {"ton", "ton", "ton", "to", "Tonga (Tonga Islands)"},
+ {"too", NULL, NULL, NULL, "Xicotepec De Juárez Totonac"},
+ {"top", NULL, NULL, NULL, "Papantla Totonac"},
+ {"toq", NULL, NULL, NULL, "Toposa"},
+ {"tor", NULL, NULL, NULL, "Togbo-Vara Banda"},
+ {"tos", NULL, NULL, NULL, "Highland Totonac"},
+ {"tou", NULL, NULL, NULL, "Tho"},
+ {"tov", NULL, NULL, NULL, "Upper Taromi"},
+ {"tow", NULL, NULL, NULL, "Jemez"},
+ {"tox", NULL, NULL, NULL, "Tobian"},
+ {"toy", NULL, NULL, NULL, "Topoiyo"},
+ {"toz", NULL, NULL, NULL, "To"},
+ {"tpa", NULL, NULL, NULL, "Taupota"},
+ {"tpc", NULL, NULL, NULL, "Azoyú Me'phaa"},
+ {"tpe", NULL, NULL, NULL, "Tippera"},
+ {"tpf", NULL, NULL, NULL, "Tarpia"},
+ {"tpg", NULL, NULL, NULL, "Kula"},
+ {"tpi", "tpi", "tpi", NULL, "Tok Pisin"},
+ {"tpj", NULL, NULL, NULL, "Tapieté"},
+ {"tpk", NULL, NULL, NULL, "Tupinikin"},
+ {"tpl", NULL, NULL, NULL, "Tlacoapa Me'phaa"},
+ {"tpm", NULL, NULL, NULL, "Tampulma"},
+ {"tpn", NULL, NULL, NULL, "Tupinambá"},
+ {"tpo", NULL, NULL, NULL, "Tai Pao"},
+ {"tpp", NULL, NULL, NULL, "Pisaflores Tepehua"},
+ {"tpq", NULL, NULL, NULL, "Tukpa"},
+ {"tpr", NULL, NULL, NULL, "Tuparí"},
+ {"tpt", NULL, NULL, NULL, "Tlachichilco Tepehua"},
+ {"tpu", NULL, NULL, NULL, "Tampuan"},
+ {"tpv", NULL, NULL, NULL, "Tanapag"},
+ {"tpw", NULL, NULL, NULL, "Tupí"},
+ {"tpx", NULL, NULL, NULL, "Acatepec Me'phaa"},
+ {"tpy", NULL, NULL, NULL, "Trumai"},
+ {"tpz", NULL, NULL, NULL, "Tinputz"},
+ {"tqb", NULL, NULL, NULL, "Tembé"},
+ {"tql", NULL, NULL, NULL, "Lehali"},
+ {"tqm", NULL, NULL, NULL, "Turumsa"},
+ {"tqn", NULL, NULL, NULL, "Tenino"},
+ {"tqo", NULL, NULL, NULL, "Toaripi"},
+ {"tqp", NULL, NULL, NULL, "Tomoip"},
+ {"tqq", NULL, NULL, NULL, "Tunni"},
+ {"tqr", NULL, NULL, NULL, "Torona"},
+ {"tqt", NULL, NULL, NULL, "Western Totonac"},
+ {"tqu", NULL, NULL, NULL, "Touo"},
+ {"tqw", NULL, NULL, NULL, "Tonkawa"},
+ {"tra", NULL, NULL, NULL, "Tirahi"},
+ {"trb", NULL, NULL, NULL, "Terebu"},
+ {"trc", NULL, NULL, NULL, "Copala Triqui"},
+ {"trd", NULL, NULL, NULL, "Turi"},
+ {"tre", NULL, NULL, NULL, "East Tarangan"},
+ {"trf", NULL, NULL, NULL, "Trinidadian Creole English"},
+ {"trg", NULL, NULL, NULL, "Lishán Didán"},
+ {"trh", NULL, NULL, NULL, "Turaka"},
+ {"tri", NULL, NULL, NULL, "Trió"},
+ {"trj", NULL, NULL, NULL, "Toram"},
+ {"trl", NULL, NULL, NULL, "Traveller Scottish"},
+ {"trm", NULL, NULL, NULL, "Tregami"},
+ {"trn", NULL, NULL, NULL, "Trinitario"},
+ {"tro", NULL, NULL, NULL, "Tarao Naga"},
+ {"trp", NULL, NULL, NULL, "Kok Borok"},
+ {"trq", NULL, NULL, NULL, "San Martín Itunyoso Triqui"},
+ {"trr", NULL, NULL, NULL, "Taushiro"},
+ {"trs", NULL, NULL, NULL, "Chicahuaxtla Triqui"},
+ {"trt", NULL, NULL, NULL, "Tunggare"},
+ {"tru", NULL, NULL, NULL, "Turoyo"},
+ {"trv", NULL, NULL, NULL, "Taroko"},
+ {"trw", NULL, NULL, NULL, "Torwali"},
+ {"trx", NULL, NULL, NULL, "Tringgus-Sembaan Bidayuh"},
+ {"try", NULL, NULL, NULL, "Turung"},
+ {"trz", NULL, NULL, NULL, "Torá"},
+ {"tsa", NULL, NULL, NULL, "Tsaangi"},
+ {"tsb", NULL, NULL, NULL, "Tsamai"},
+ {"tsc", NULL, NULL, NULL, "Tswa"},
+ {"tsd", NULL, NULL, NULL, "Tsakonian"},
+ {"tse", NULL, NULL, NULL, "Tunisian Sign Language"},
+ {"tsg", NULL, NULL, NULL, "Tausug"},
+ {"tsh", NULL, NULL, NULL, "Tsuvan"},
+ {"tsi", "tsi", "tsi", NULL, "Tsimshian"},
+ {"tsj", NULL, NULL, NULL, "Tshangla"},
+ {"tsk", NULL, NULL, NULL, "Tseku"},
+ {"tsl", NULL, NULL, NULL, "Ts'ün-Lao"},
+ {"tsm", NULL, NULL, NULL, "Turkish Sign Language"},
+ {"tsn", "tsn", "tsn", "tn", "Tswana"},
+ {"tso", "tso", "tso", "ts", "Tsonga"},
+ {"tsp", NULL, NULL, NULL, "Northern Toussian"},
+ {"tsq", NULL, NULL, NULL, "Thai Sign Language"},
+ {"tsr", NULL, NULL, NULL, "Akei"},
+ {"tss", NULL, NULL, NULL, "Taiwan Sign Language"},
+ {"tst", NULL, NULL, NULL, "Tondi Songway Kiini"},
+ {"tsu", NULL, NULL, NULL, "Tsou"},
+ {"tsv", NULL, NULL, NULL, "Tsogo"},
+ {"tsw", NULL, NULL, NULL, "Tsishingini"},
+ {"tsx", NULL, NULL, NULL, "Mubami"},
+ {"tsy", NULL, NULL, NULL, "Tebul Sign Language"},
+ {"tsz", NULL, NULL, NULL, "Purepecha"},
+ {"tta", NULL, NULL, NULL, "Tutelo"},
+ {"ttb", NULL, NULL, NULL, "Gaa"},
+ {"ttc", NULL, NULL, NULL, "Tektiteko"},
+ {"ttd", NULL, NULL, NULL, "Tauade"},
+ {"tte", NULL, NULL, NULL, "Bwanabwana"},
+ {"ttf", NULL, NULL, NULL, "Tuotomb"},
+ {"ttg", NULL, NULL, NULL, "Tutong"},
+ {"tth", NULL, NULL, NULL, "Upper Ta'oih"},
+ {"tti", NULL, NULL, NULL, "Tobati"},
+ {"ttj", NULL, NULL, NULL, "Tooro"},
+ {"ttk", NULL, NULL, NULL, "Totoro"},
+ {"ttl", NULL, NULL, NULL, "Totela"},
+ {"ttm", NULL, NULL, NULL, "Northern Tutchone"},
+ {"ttn", NULL, NULL, NULL, "Towei"},
+ {"tto", NULL, NULL, NULL, "Lower Ta'oih"},
+ {"ttp", NULL, NULL, NULL, "Tombelala"},
+ {"ttq", NULL, NULL, NULL, "Tawallammat Tamajaq"},
+ {"ttr", NULL, NULL, NULL, "Tera"},
+ {"tts", NULL, NULL, NULL, "Northeastern Thai"},
+ {"ttt", NULL, NULL, NULL, "Muslim Tat"},
+ {"ttu", NULL, NULL, NULL, "Torau"},
+ {"ttv", NULL, NULL, NULL, "Titan"},
+ {"ttw", NULL, NULL, NULL, "Long Wat"},
+ {"tty", NULL, NULL, NULL, "Sikaritai"},
+ {"ttz", NULL, NULL, NULL, "Tsum"},
+ {"tua", NULL, NULL, NULL, "Wiarumus"},
+ {"tub", NULL, NULL, NULL, "Tübatulabal"},
+ {"tuc", NULL, NULL, NULL, "Mutu"},
+ {"tud", NULL, NULL, NULL, "Tuxá"},
+ {"tue", NULL, NULL, NULL, "Tuyuca"},
+ {"tuf", NULL, NULL, NULL, "Central Tunebo"},
+ {"tug", NULL, NULL, NULL, "Tunia"},
+ {"tuh", NULL, NULL, NULL, "Taulil"},
+ {"tui", NULL, NULL, NULL, "Tupuri"},
+ {"tuj", NULL, NULL, NULL, "Tugutil"},
+ {"tuk", "tuk", "tuk", "tk", "Turkmen"},
+ {"tul", NULL, NULL, NULL, "Tula"},
+ {"tum", "tum", "tum", NULL, "Tumbuka"},
+ {"tun", NULL, NULL, NULL, "Tunica"},
+ {"tuo", NULL, NULL, NULL, "Tucano"},
+ {"tuq", NULL, NULL, NULL, "Tedaga"},
+ {"tur", "tur", "tur", "tr", "Turkish"},
+ {"tus", NULL, NULL, NULL, "Tuscarora"},
+ {"tuu", NULL, NULL, NULL, "Tututni"},
+ {"tuv", NULL, NULL, NULL, "Turkana"},
+ {"tux", NULL, NULL, NULL, "Tuxináwa"},
+ {"tuy", NULL, NULL, NULL, "Tugen"},
+ {"tuz", NULL, NULL, NULL, "Turka"},
+ {"tva", NULL, NULL, NULL, "Vaghua"},
+ {"tvd", NULL, NULL, NULL, "Tsuvadi"},
+ {"tve", NULL, NULL, NULL, "Te'un"},
+ {"tvk", NULL, NULL, NULL, "Southeast Ambrym"},
+ {"tvl", "tvl", "tvl", NULL, "Tuvalu"},
+ {"tvm", NULL, NULL, NULL, "Tela-Masbuar"},
+ {"tvn", NULL, NULL, NULL, "Tavoyan"},
+ {"tvo", NULL, NULL, NULL, "Tidore"},
+ {"tvs", NULL, NULL, NULL, "Taveta"},
+ {"tvt", NULL, NULL, NULL, "Tutsa Naga"},
+ {"tvu", NULL, NULL, NULL, "Tunen"},
+ {"tvw", NULL, NULL, NULL, "Sedoa"},
+ {"tvx", NULL, NULL, NULL, "Taivoan"},
+ {"tvy", NULL, NULL, NULL, "Timor Pidgin"},
+ {"twa", NULL, NULL, NULL, "Twana"},
+ {"twb", NULL, NULL, NULL, "Western Tawbuid"},
+ {"twc", NULL, NULL, NULL, "Teshenawa"},
+ {"twd", NULL, NULL, NULL, "Twents"},
+ {"twe", NULL, NULL, NULL, "Tewa (Indonesia)"},
+ {"twf", NULL, NULL, NULL, "Northern Tiwa"},
+ {"twg", NULL, NULL, NULL, "Tereweng"},
+ {"twh", NULL, NULL, NULL, "Tai Dón"},
+ {"twi", "twi", "twi", "tw", "Twi"},
+ {"twl", NULL, NULL, NULL, "Tawara"},
+ {"twm", NULL, NULL, NULL, "Tawang Monpa"},
+ {"twn", NULL, NULL, NULL, "Twendi"},
+ {"two", NULL, NULL, NULL, "Tswapong"},
+ {"twp", NULL, NULL, NULL, "Ere"},
+ {"twq", NULL, NULL, NULL, "Tasawaq"},
+ {"twr", NULL, NULL, NULL, "Southwestern Tarahumara"},
+ {"twt", NULL, NULL, NULL, "Turiwára"},
+ {"twu", NULL, NULL, NULL, "Termanu"},
+ {"tww", NULL, NULL, NULL, "Tuwari"},
+ {"twx", NULL, NULL, NULL, "Tewe"},
+ {"twy", NULL, NULL, NULL, "Tawoyan"},
+ {"txa", NULL, NULL, NULL, "Tombonuo"},
+ {"txb", NULL, NULL, NULL, "Tokharian B"},
+ {"txc", NULL, NULL, NULL, "Tsetsaut"},
+ {"txe", NULL, NULL, NULL, "Totoli"},
+ {"txg", NULL, NULL, NULL, "Tangut"},
+ {"txh", NULL, NULL, NULL, "Thracian"},
+ {"txi", NULL, NULL, NULL, "Ikpeng"},
+ {"txj", NULL, NULL, NULL, "Tarjumo"},
+ {"txm", NULL, NULL, NULL, "Tomini"},
+ {"txn", NULL, NULL, NULL, "West Tarangan"},
+ {"txo", NULL, NULL, NULL, "Toto"},
+ {"txq", NULL, NULL, NULL, "Tii"},
+ {"txr", NULL, NULL, NULL, "Tartessian"},
+ {"txs", NULL, NULL, NULL, "Tonsea"},
+ {"txt", NULL, NULL, NULL, "Citak"},
+ {"txu", NULL, NULL, NULL, "Kayapó"},
+ {"txx", NULL, NULL, NULL, "Tatana"},
+ {"txy", NULL, NULL, NULL, "Tanosy Malagasy"},
+ {"tya", NULL, NULL, NULL, "Tauya"},
+ {"tye", NULL, NULL, NULL, "Kyanga"},
+ {"tyh", NULL, NULL, NULL, "O'du"},
+ {"tyi", NULL, NULL, NULL, "Teke-Tsaayi"},
+ {"tyj", NULL, NULL, NULL, "Tai Do"},
+ {"tyl", NULL, NULL, NULL, "Thu Lao"},
+ {"tyn", NULL, NULL, NULL, "Kombai"},
+ {"typ", NULL, NULL, NULL, "Thaypan"},
+ {"tyr", NULL, NULL, NULL, "Tai Daeng"},
+ {"tys", NULL, NULL, NULL, "Tày Sa Pa"},
+ {"tyt", NULL, NULL, NULL, "Tày Tac"},
+ {"tyu", NULL, NULL, NULL, "Kua"},
+ {"tyv", "tyv", "tyv", NULL, "Tuvinian"},
+ {"tyx", NULL, NULL, NULL, "Teke-Tyee"},
+ {"tyy", NULL, NULL, NULL, "Tiyaa"},
+ {"tyz", NULL, NULL, NULL, "Tày"},
+ {"tza", NULL, NULL, NULL, "Tanzanian Sign Language"},
+ {"tzh", NULL, NULL, NULL, "Tzeltal"},
+ {"tzj", NULL, NULL, NULL, "Tz'utujil"},
+ {"tzl", NULL, NULL, NULL, "Talossan"},
+ {"tzm", NULL, NULL, NULL, "Central Atlas Tamazight"},
+ {"tzn", NULL, NULL, NULL, "Tugun"},
+ {"tzo", NULL, NULL, NULL, "Tzotzil"},
+ {"tzx", NULL, NULL, NULL, "Tabriak"},
+ {"uam", NULL, NULL, NULL, "Uamué"},
+ {"uan", NULL, NULL, NULL, "Kuan"},
+ {"uar", NULL, NULL, NULL, "Tairuma"},
+ {"uba", NULL, NULL, NULL, "Ubang"},
+ {"ubi", NULL, NULL, NULL, "Ubi"},
+ {"ubl", NULL, NULL, NULL, "Buhi'non Bikol"},
+ {"ubr", NULL, NULL, NULL, "Ubir"},
+ {"ubu", NULL, NULL, NULL, "Umbu-Ungu"},
+ {"uby", NULL, NULL, NULL, "Ubykh"},
+ {"uda", NULL, NULL, NULL, "Uda"},
+ {"ude", NULL, NULL, NULL, "Udihe"},
+ {"udg", NULL, NULL, NULL, "Muduga"},
+ {"udi", NULL, NULL, NULL, "Udi"},
+ {"udj", NULL, NULL, NULL, "Ujir"},
+ {"udl", NULL, NULL, NULL, "Wuzlam"},
+ {"udm", "udm", "udm", NULL, "Udmurt"},
+ {"udu", NULL, NULL, NULL, "Uduk"},
+ {"ues", NULL, NULL, NULL, "Kioko"},
+ {"ufi", NULL, NULL, NULL, "Ufim"},
+ {"uga", "uga", "uga", NULL, "Ugaritic"},
+ {"ugb", NULL, NULL, NULL, "Kuku-Ugbanh"},
+ {"uge", NULL, NULL, NULL, "Ughele"},
+ {"ugn", NULL, NULL, NULL, "Ugandan Sign Language"},
+ {"ugo", NULL, NULL, NULL, "Ugong"},
+ {"ugy", NULL, NULL, NULL, "Uruguayan Sign Language"},
+ {"uha", NULL, NULL, NULL, "Uhami"},
+ {"uhn", NULL, NULL, NULL, "Damal"},
+ {"uig", "uig", "uig", "ug", "Uighur"},
+ {"uis", NULL, NULL, NULL, "Uisai"},
+ {"uiv", NULL, NULL, NULL, "Iyive"},
+ {"uji", NULL, NULL, NULL, "Tanjijili"},
+ {"uka", NULL, NULL, NULL, "Kaburi"},
+ {"ukg", NULL, NULL, NULL, "Ukuriguma"},
+ {"ukh", NULL, NULL, NULL, "Ukhwejo"},
+ {"uki", NULL, NULL, NULL, "Kui (India)"},
+ {"ukk", NULL, NULL, NULL, "Muak Sa-aak"},
+ {"ukl", NULL, NULL, NULL, "Ukrainian Sign Language"},
+ {"ukp", NULL, NULL, NULL, "Ukpe-Bayobiri"},
+ {"ukq", NULL, NULL, NULL, "Ukwa"},
+ {"ukr", "ukr", "ukr", "uk", "Ukrainian"},
+ {"uks", NULL, NULL, NULL, "Urubú-Kaapor Sign Language"},
+ {"uku", NULL, NULL, NULL, "Ukue"},
+ {"ukv", NULL, NULL, NULL, "Kuku"},
+ {"ukw", NULL, NULL, NULL, "Ukwuani-Aboh-Ndoni"},
+ {"uky", NULL, NULL, NULL, "Kuuk-Yak"},
+ {"ula", NULL, NULL, NULL, "Fungwa"},
+ {"ulb", NULL, NULL, NULL, "Ulukwumi"},
+ {"ulc", NULL, NULL, NULL, "Ulch"},
+ {"ule", NULL, NULL, NULL, "Lule"},
+ {"ulf", NULL, NULL, NULL, "Usku"},
+ {"uli", NULL, NULL, NULL, "Ulithian"},
+ {"ulk", NULL, NULL, NULL, "Meriam Mir"},
+ {"ull", NULL, NULL, NULL, "Ullatan"},
+ {"ulm", NULL, NULL, NULL, "Ulumanda'"},
+ {"uln", NULL, NULL, NULL, "Unserdeutsch"},
+ {"ulu", NULL, NULL, NULL, "Uma' Lung"},
+ {"ulw", NULL, NULL, NULL, "Ulwa"},
+ {"uma", NULL, NULL, NULL, "Umatilla"},
+ {"umb", "umb", "umb", NULL, "Umbundu"},
+ {"umc", NULL, NULL, NULL, "Marrucinian"},
+ {"umd", NULL, NULL, NULL, "Umbindhamu"},
+ {"umg", NULL, NULL, NULL, "Morrobalama"},
+ {"umi", NULL, NULL, NULL, "Ukit"},
+ {"umm", NULL, NULL, NULL, "Umon"},
+ {"umn", NULL, NULL, NULL, "Makyan Naga"},
+ {"umo", NULL, NULL, NULL, "Umotína"},
+ {"ump", NULL, NULL, NULL, "Umpila"},
+ {"umr", NULL, NULL, NULL, "Umbugarla"},
+ {"ums", NULL, NULL, NULL, "Pendau"},
+ {"umu", NULL, NULL, NULL, "Munsee"},
+ {"una", NULL, NULL, NULL, "North Watut"},
+ {"und", "und", "und", NULL, "Undetermined"},
+ {"une", NULL, NULL, NULL, "Uneme"},
+ {"ung", NULL, NULL, NULL, "Ngarinyin"},
+ {"uni", NULL, NULL, NULL, "Uni"},
+ {"unk", NULL, NULL, NULL, "Enawené-Nawé"},
+ {"unm", NULL, NULL, NULL, "Unami"},
+ {"unn", NULL, NULL, NULL, "Kurnai"},
+ {"unr", NULL, NULL, NULL, "Mundari"},
+ {"unu", NULL, NULL, NULL, "Unubahe"},
+ {"unx", NULL, NULL, NULL, "Munda"},
+ {"unz", NULL, NULL, NULL, "Unde Kaili"},
+ {"upi", NULL, NULL, NULL, "Umeda"},
+ {"upv", NULL, NULL, NULL, "Uripiv-Wala-Rano-Atchin"},
+ {"ura", NULL, NULL, NULL, "Urarina"},
+ {"urb", NULL, NULL, NULL, "Urubú-Kaapor"},
+ {"urc", NULL, NULL, NULL, "Urningangg"},
+ {"urd", "urd", "urd", "ur", "Urdu"},
+ {"ure", NULL, NULL, NULL, "Uru"},
+ {"urf", NULL, NULL, NULL, "Uradhi"},
+ {"urg", NULL, NULL, NULL, "Urigina"},
+ {"urh", NULL, NULL, NULL, "Urhobo"},
+ {"uri", NULL, NULL, NULL, "Urim"},
+ {"urk", NULL, NULL, NULL, "Urak Lawoi'"},
+ {"url", NULL, NULL, NULL, "Urali"},
+ {"urm", NULL, NULL, NULL, "Urapmin"},
+ {"urn", NULL, NULL, NULL, "Uruangnirin"},
+ {"uro", NULL, NULL, NULL, "Ura (Papua New Guinea)"},
+ {"urp", NULL, NULL, NULL, "Uru-Pa-In"},
+ {"urr", NULL, NULL, NULL, "Lehalurup"},
+ {"urt", NULL, NULL, NULL, "Urat"},
+ {"uru", NULL, NULL, NULL, "Urumi"},
+ {"urv", NULL, NULL, NULL, "Uruava"},
+ {"urw", NULL, NULL, NULL, "Sop"},
+ {"urx", NULL, NULL, NULL, "Urimo"},
+ {"ury", NULL, NULL, NULL, "Orya"},
+ {"urz", NULL, NULL, NULL, "Uru-Eu-Wau-Wau"},
+ {"usa", NULL, NULL, NULL, "Usarufa"},
+ {"ush", NULL, NULL, NULL, "Ushojo"},
+ {"usi", NULL, NULL, NULL, "Usui"},
+ {"usk", NULL, NULL, NULL, "Usaghade"},
+ {"usp", NULL, NULL, NULL, "Uspanteco"},
+ {"uss", NULL, NULL, NULL, "us-Saare"},
+ {"usu", NULL, NULL, NULL, "Uya"},
+ {"uta", NULL, NULL, NULL, "Otank"},
+ {"ute", NULL, NULL, NULL, "Ute-Southern Paiute"},
+ {"uth", NULL, NULL, NULL, "ut-Hun"},
+ {"utp", NULL, NULL, NULL, "Amba (Solomon Islands)"},
+ {"utr", NULL, NULL, NULL, "Etulo"},
+ {"utu", NULL, NULL, NULL, "Utu"},
+ {"uum", NULL, NULL, NULL, "Urum"},
+ {"uun", NULL, NULL, NULL, "Kulon-Pazeh"},
+ {"uur", NULL, NULL, NULL, "Ura (Vanuatu)"},
+ {"uuu", NULL, NULL, NULL, "U"},
+ {"uve", NULL, NULL, NULL, "West Uvean"},
+ {"uvh", NULL, NULL, NULL, "Uri"},
+ {"uvl", NULL, NULL, NULL, "Lote"},
+ {"uwa", NULL, NULL, NULL, "Kuku-Uwanh"},
+ {"uya", NULL, NULL, NULL, "Doko-Uyanga"},
+ {"uzb", "uzb", "uzb", "uz", "Uzbek"},
+ {"uzn", NULL, NULL, NULL, "Northern Uzbek"},
+ {"uzs", NULL, NULL, NULL, "Southern Uzbek"},
+ {"vaa", NULL, NULL, NULL, "Vaagri Booli"},
+ {"vae", NULL, NULL, NULL, "Vale"},
+ {"vaf", NULL, NULL, NULL, "Vafsi"},
+ {"vag", NULL, NULL, NULL, "Vagla"},
+ {"vah", NULL, NULL, NULL, "Varhadi-Nagpuri"},
+ {"vai", "vai", "vai", NULL, "Vai"},
+ {"vaj", NULL, NULL, NULL, "Sekele"},
+ {"val", NULL, NULL, NULL, "Vehes"},
+ {"vam", NULL, NULL, NULL, "Vanimo"},
+ {"van", NULL, NULL, NULL, "Valman"},
+ {"vao", NULL, NULL, NULL, "Vao"},
+ {"vap", NULL, NULL, NULL, "Vaiphei"},
+ {"var", NULL, NULL, NULL, "Huarijio"},
+ {"vas", NULL, NULL, NULL, "Vasavi"},
+ {"vau", NULL, NULL, NULL, "Vanuma"},
+ {"vav", NULL, NULL, NULL, "Varli"},
+ {"vay", NULL, NULL, NULL, "Wayu"},
+ {"vbb", NULL, NULL, NULL, "Southeast Babar"},
+ {"vbk", NULL, NULL, NULL, "Southwestern Bontok"},
+ {"vec", NULL, NULL, NULL, "Venetian"},
+ {"ved", NULL, NULL, NULL, "Veddah"},
+ {"vel", NULL, NULL, NULL, "Veluws"},
+ {"vem", NULL, NULL, NULL, "Vemgo-Mabas"},
+ {"ven", "ven", "ven", "ve", "Venda"},
+ {"veo", NULL, NULL, NULL, "Ventureño"},
+ {"vep", NULL, NULL, NULL, "Veps"},
+ {"ver", NULL, NULL, NULL, "Mom Jango"},
+ {"vgr", NULL, NULL, NULL, "Vaghri"},
+ {"vgt", NULL, NULL, NULL, "Vlaamse Gebarentaal"},
+ {"vic", NULL, NULL, NULL, "Virgin Islands Creole English"},
+ {"vid", NULL, NULL, NULL, "Vidunda"},
+ {"vie", "vie", "vie", "vi", "Vietnamese"},
+ {"vif", NULL, NULL, NULL, "Vili"},
+ {"vig", NULL, NULL, NULL, "Viemo"},
+ {"vil", NULL, NULL, NULL, "Vilela"},
+ {"vin", NULL, NULL, NULL, "Vinza"},
+ {"vis", NULL, NULL, NULL, "Vishavan"},
+ {"vit", NULL, NULL, NULL, "Viti"},
+ {"viv", NULL, NULL, NULL, "Iduna"},
+ {"vka", NULL, NULL, NULL, "Kariyarra"},
+ {"vkj", NULL, NULL, NULL, "Kujarge"},
+ {"vkk", NULL, NULL, NULL, "Kaur"},
+ {"vkl", NULL, NULL, NULL, "Kulisusu"},
+ {"vkm", NULL, NULL, NULL, "Kamakan"},
+ {"vkn", NULL, NULL, NULL, "Koro Nulu"},
+ {"vko", NULL, NULL, NULL, "Kodeoha"},
+ {"vkp", NULL, NULL, NULL, "Korlai Creole Portuguese"},
+ {"vkt", NULL, NULL, NULL, "Tenggarong Kutai Malay"},
+ {"vku", NULL, NULL, NULL, "Kurrama"},
+ {"vkz", NULL, NULL, NULL, "Koro Zuba"},
+ {"vlp", NULL, NULL, NULL, "Valpei"},
+ {"vls", NULL, NULL, NULL, "Vlaams"},
+ {"vma", NULL, NULL, NULL, "Martuyhunira"},
+ {"vmb", NULL, NULL, NULL, "Barbaram"},
+ {"vmc", NULL, NULL, NULL, "Juxtlahuaca Mixtec"},
+ {"vmd", NULL, NULL, NULL, "Mudu Koraga"},
+ {"vme", NULL, NULL, NULL, "East Masela"},
+ {"vmf", NULL, NULL, NULL, "Mainfränkisch"},
+ {"vmg", NULL, NULL, NULL, "Lungalunga"},
+ {"vmh", NULL, NULL, NULL, "Maraghei"},
+ {"vmi", NULL, NULL, NULL, "Miwa"},
+ {"vmj", NULL, NULL, NULL, "Ixtayutla Mixtec"},
+ {"vmk", NULL, NULL, NULL, "Makhuwa-Shirima"},
+ {"vml", NULL, NULL, NULL, "Malgana"},
+ {"vmm", NULL, NULL, NULL, "Mitlatongo Mixtec"},
+ {"vmp", NULL, NULL, NULL, "Soyaltepec Mazatec"},
+ {"vmq", NULL, NULL, NULL, "Soyaltepec Mixtec"},
+ {"vmr", NULL, NULL, NULL, "Marenje"},
+ {"vms", NULL, NULL, NULL, "Moksela"},
+ {"vmu", NULL, NULL, NULL, "Muluridyi"},
+ {"vmv", NULL, NULL, NULL, "Valley Maidu"},
+ {"vmw", NULL, NULL, NULL, "Makhuwa"},
+ {"vmx", NULL, NULL, NULL, "Tamazola Mixtec"},
+ {"vmy", NULL, NULL, NULL, "Ayautla Mazatec"},
+ {"vmz", NULL, NULL, NULL, "Mazatlán Mazatec"},
+ {"vnk", NULL, NULL, NULL, "Vano"},
+ {"vnm", NULL, NULL, NULL, "Vinmavis"},
+ {"vnp", NULL, NULL, NULL, "Vunapu"},
+ {"vol", "vol", "vol", "vo", "Volapük"},
+ {"vor", NULL, NULL, NULL, "Voro"},
+ {"vot", "vot", "vot", NULL, "Votic"},
+ {"vra", NULL, NULL, NULL, "Vera'a"},
+ {"vro", NULL, NULL, NULL, "Võro"},
+ {"vrs", NULL, NULL, NULL, "Varisi"},
+ {"vrt", NULL, NULL, NULL, "Burmbar"},
+ {"vsi", NULL, NULL, NULL, "Moldova Sign Language"},
+ {"vsl", NULL, NULL, NULL, "Venezuelan Sign Language"},
+ {"vsv", NULL, NULL, NULL, "Valencian Sign Language"},
+ {"vto", NULL, NULL, NULL, "Vitou"},
+ {"vum", NULL, NULL, NULL, "Vumbu"},
+ {"vun", NULL, NULL, NULL, "Vunjo"},
+ {"vut", NULL, NULL, NULL, "Vute"},
+ {"vwa", NULL, NULL, NULL, "Awa (China)"},
+ {"waa", NULL, NULL, NULL, "Walla Walla"},
+ {"wab", NULL, NULL, NULL, "Wab"},
+ {"wac", NULL, NULL, NULL, "Wasco-Wishram"},
+ {"wad", NULL, NULL, NULL, "Wamesa"},
+ {"wae", NULL, NULL, NULL, "Walser"},
+ {"waf", NULL, NULL, NULL, "Wakoná"},
+ {"wag", NULL, NULL, NULL, "Wa'ema"},
+ {"wah", NULL, NULL, NULL, "Watubela"},
+ {"wai", NULL, NULL, NULL, "Wares"},
+ {"waj", NULL, NULL, NULL, "Waffa"},
+ {"wal", "wal", "wal", NULL, "Wolaytta"},
+ {"wam", NULL, NULL, NULL, "Wampanoag"},
+ {"wan", NULL, NULL, NULL, "Wan"},
+ {"wao", NULL, NULL, NULL, "Wappo"},
+ {"wap", NULL, NULL, NULL, "Wapishana"},
+ {"waq", NULL, NULL, NULL, "Wagiman"},
+ {"war", "war", "war", NULL, "Waray (Philippines)"},
+ {"was", "was", "was", NULL, "Washo"},
+ {"wat", NULL, NULL, NULL, "Kaninuwa"},
+ {"wau", NULL, NULL, NULL, "Waurá"},
+ {"wav", NULL, NULL, NULL, "Waka"},
+ {"waw", NULL, NULL, NULL, "Waiwai"},
+ {"wax", NULL, NULL, NULL, "Watam"},
+ {"way", NULL, NULL, NULL, "Wayana"},
+ {"waz", NULL, NULL, NULL, "Wampur"},
+ {"wba", NULL, NULL, NULL, "Warao"},
+ {"wbb", NULL, NULL, NULL, "Wabo"},
+ {"wbe", NULL, NULL, NULL, "Waritai"},
+ {"wbf", NULL, NULL, NULL, "Wara"},
+ {"wbh", NULL, NULL, NULL, "Wanda"},
+ {"wbi", NULL, NULL, NULL, "Vwanji"},
+ {"wbj", NULL, NULL, NULL, "Alagwa"},
+ {"wbk", NULL, NULL, NULL, "Waigali"},
+ {"wbl", NULL, NULL, NULL, "Wakhi"},
+ {"wbm", NULL, NULL, NULL, "Wa"},
+ {"wbp", NULL, NULL, NULL, "Warlpiri"},
+ {"wbq", NULL, NULL, NULL, "Waddar"},
+ {"wbr", NULL, NULL, NULL, "Wagdi"},
+ {"wbs", NULL, NULL, NULL, "West Bengal Sign Language"},
+ {"wbt", NULL, NULL, NULL, "Warnman"},
+ {"wbv", NULL, NULL, NULL, "Wajarri"},
+ {"wbw", NULL, NULL, NULL, "Woi"},
+ {"wca", NULL, NULL, NULL, "Yanomámi"},
+ {"wci", NULL, NULL, NULL, "Waci Gbe"},
+ {"wdd", NULL, NULL, NULL, "Wandji"},
+ {"wdg", NULL, NULL, NULL, "Wadaginam"},
+ {"wdj", NULL, NULL, NULL, "Wadjiginy"},
+ {"wdk", NULL, NULL, NULL, "Wadikali"},
+ {"wdu", NULL, NULL, NULL, "Wadjigu"},
+ {"wdy", NULL, NULL, NULL, "Wadjabangayi"},
+ {"wea", NULL, NULL, NULL, "Wewaw"},
+ {"wec", NULL, NULL, NULL, "Wè Western"},
+ {"wed", NULL, NULL, NULL, "Wedau"},
+ {"weg", NULL, NULL, NULL, "Wergaia"},
+ {"weh", NULL, NULL, NULL, "Weh"},
+ {"wei", NULL, NULL, NULL, "Kiunum"},
+ {"wem", NULL, NULL, NULL, "Weme Gbe"},
+ {"weo", NULL, NULL, NULL, "Wemale"},
+ {"wep", NULL, NULL, NULL, "Westphalien"},
+ {"wer", NULL, NULL, NULL, "Weri"},
+ {"wes", NULL, NULL, NULL, "Cameroon Pidgin"},
+ {"wet", NULL, NULL, NULL, "Perai"},
+ {"weu", NULL, NULL, NULL, "Rawngtu Chin"},
+ {"wew", NULL, NULL, NULL, "Wejewa"},
+ {"wfg", NULL, NULL, NULL, "Yafi"},
+ {"wga", NULL, NULL, NULL, "Wagaya"},
+ {"wgb", NULL, NULL, NULL, "Wagawaga"},
+ {"wgg", NULL, NULL, NULL, "Wangkangurru"},
+ {"wgi", NULL, NULL, NULL, "Wahgi"},
+ {"wgo", NULL, NULL, NULL, "Waigeo"},
+ {"wgu", NULL, NULL, NULL, "Wirangu"},
+ {"wgy", NULL, NULL, NULL, "Warrgamay"},
+ {"wha", NULL, NULL, NULL, "Sou Upaa"},
+ {"whg", NULL, NULL, NULL, "North Wahgi"},
+ {"whk", NULL, NULL, NULL, "Wahau Kenyah"},
+ {"whu", NULL, NULL, NULL, "Wahau Kayan"},
+ {"wib", NULL, NULL, NULL, "Southern Toussian"},
+ {"wic", NULL, NULL, NULL, "Wichita"},
+ {"wie", NULL, NULL, NULL, "Wik-Epa"},
+ {"wif", NULL, NULL, NULL, "Wik-Keyangan"},
+ {"wig", NULL, NULL, NULL, "Wik Ngathan"},
+ {"wih", NULL, NULL, NULL, "Wik-Me'anha"},
+ {"wii", NULL, NULL, NULL, "Minidien"},
+ {"wij", NULL, NULL, NULL, "Wik-Iiyanh"},
+ {"wik", NULL, NULL, NULL, "Wikalkan"},
+ {"wil", NULL, NULL, NULL, "Wilawila"},
+ {"wim", NULL, NULL, NULL, "Wik-Mungkan"},
+ {"win", NULL, NULL, NULL, "Ho-Chunk"},
+ {"wir", NULL, NULL, NULL, "Wiraféd"},
+ {"wiu", NULL, NULL, NULL, "Wiru"},
+ {"wiv", NULL, NULL, NULL, "Vitu"},
+ {"wiy", NULL, NULL, NULL, "Wiyot"},
+ {"wja", NULL, NULL, NULL, "Waja"},
+ {"wji", NULL, NULL, NULL, "Warji"},
+ {"wka", NULL, NULL, NULL, "Kw'adza"},
+ {"wkb", NULL, NULL, NULL, "Kumbaran"},
+ {"wkd", NULL, NULL, NULL, "Wakde"},
+ {"wkl", NULL, NULL, NULL, "Kalanadi"},
+ {"wkr", NULL, NULL, NULL, "Keerray-Woorroong"},
+ {"wku", NULL, NULL, NULL, "Kunduvadi"},
+ {"wkw", NULL, NULL, NULL, "Wakawaka"},
+ {"wky", NULL, NULL, NULL, "Wangkayutyuru"},
+ {"wla", NULL, NULL, NULL, "Walio"},
+ {"wlc", NULL, NULL, NULL, "Mwali Comorian"},
+ {"wle", NULL, NULL, NULL, "Wolane"},
+ {"wlg", NULL, NULL, NULL, "Kunbarlang"},
+ {"wlh", NULL, NULL, NULL, "Welaun"},
+ {"wli", NULL, NULL, NULL, "Waioli"},
+ {"wlk", NULL, NULL, NULL, "Wailaki"},
+ {"wll", NULL, NULL, NULL, "Wali (Sudan)"},
+ {"wlm", NULL, NULL, NULL, "Middle Welsh"},
+ {"wln", "wln", "wln", "wa", "Walloon"},
+ {"wlo", NULL, NULL, NULL, "Wolio"},
+ {"wlr", NULL, NULL, NULL, "Wailapa"},
+ {"wls", NULL, NULL, NULL, "Wallisian"},
+ {"wlu", NULL, NULL, NULL, "Wuliwuli"},
+ {"wlv", NULL, NULL, NULL, "Wichí Lhamtés Vejoz"},
+ {"wlw", NULL, NULL, NULL, "Walak"},
+ {"wlx", NULL, NULL, NULL, "Wali (Ghana)"},
+ {"wly", NULL, NULL, NULL, "Waling"},
+ {"wma", NULL, NULL, NULL, "Mawa (Nigeria)"},
+ {"wmb", NULL, NULL, NULL, "Wambaya"},
+ {"wmc", NULL, NULL, NULL, "Wamas"},
+ {"wmd", NULL, NULL, NULL, "Mamaindé"},
+ {"wme", NULL, NULL, NULL, "Wambule"},
+ {"wmg", NULL, NULL, NULL, "Western Minyag"},
+ {"wmh", NULL, NULL, NULL, "Waima'a"},
+ {"wmi", NULL, NULL, NULL, "Wamin"},
+ {"wmm", NULL, NULL, NULL, "Maiwa (Indonesia)"},
+ {"wmn", NULL, NULL, NULL, "Waamwang"},
+ {"wmo", NULL, NULL, NULL, "Wom (Papua New Guinea)"},
+ {"wms", NULL, NULL, NULL, "Wambon"},
+ {"wmt", NULL, NULL, NULL, "Walmajarri"},
+ {"wmw", NULL, NULL, NULL, "Mwani"},
+ {"wmx", NULL, NULL, NULL, "Womo"},
+ {"wnb", NULL, NULL, NULL, "Wanambre"},
+ {"wnc", NULL, NULL, NULL, "Wantoat"},
+ {"wnd", NULL, NULL, NULL, "Wandarang"},
+ {"wne", NULL, NULL, NULL, "Waneci"},
+ {"wng", NULL, NULL, NULL, "Wanggom"},
+ {"wni", NULL, NULL, NULL, "Ndzwani Comorian"},
+ {"wnk", NULL, NULL, NULL, "Wanukaka"},
+ {"wnm", NULL, NULL, NULL, "Wanggamala"},
+ {"wnn", NULL, NULL, NULL, "Wunumara"},
+ {"wno", NULL, NULL, NULL, "Wano"},
+ {"wnp", NULL, NULL, NULL, "Wanap"},
+ {"wnu", NULL, NULL, NULL, "Usan"},
+ {"wnw", NULL, NULL, NULL, "Wintu"},
+ {"wny", NULL, NULL, NULL, "Wanyi"},
+ {"woa", NULL, NULL, NULL, "Kuwema"},
+ {"wob", NULL, NULL, NULL, "Wè Northern"},
+ {"woc", NULL, NULL, NULL, "Wogeo"},
+ {"wod", NULL, NULL, NULL, "Wolani"},
+ {"woe", NULL, NULL, NULL, "Woleaian"},
+ {"wof", NULL, NULL, NULL, "Gambian Wolof"},
+ {"wog", NULL, NULL, NULL, "Wogamusin"},
+ {"woi", NULL, NULL, NULL, "Kamang"},
+ {"wok", NULL, NULL, NULL, "Longto"},
+ {"wol", "wol", "wol", "wo", "Wolof"},
+ {"wom", NULL, NULL, NULL, "Wom (Nigeria)"},
+ {"won", NULL, NULL, NULL, "Wongo"},
+ {"woo", NULL, NULL, NULL, "Manombai"},
+ {"wor", NULL, NULL, NULL, "Woria"},
+ {"wos", NULL, NULL, NULL, "Hanga Hundi"},
+ {"wow", NULL, NULL, NULL, "Wawonii"},
+ {"woy", NULL, NULL, NULL, "Weyto"},
+ {"wpc", NULL, NULL, NULL, "Maco"},
+ {"wrb", NULL, NULL, NULL, "Waluwarra"},
+ {"wrd", NULL, NULL, NULL, "Warduji"},
+ {"wrg", NULL, NULL, NULL, "Warungu"},
+ {"wrh", NULL, NULL, NULL, "Wiradjuri"},
+ {"wri", NULL, NULL, NULL, "Wariyangga"},
+ {"wrk", NULL, NULL, NULL, "Garrwa"},
+ {"wrl", NULL, NULL, NULL, "Warlmanpa"},
+ {"wrm", NULL, NULL, NULL, "Warumungu"},
+ {"wrn", NULL, NULL, NULL, "Warnang"},
+ {"wro", NULL, NULL, NULL, "Worrorra"},
+ {"wrp", NULL, NULL, NULL, "Waropen"},
+ {"wrr", NULL, NULL, NULL, "Wardaman"},
+ {"wrs", NULL, NULL, NULL, "Waris"},
+ {"wru", NULL, NULL, NULL, "Waru"},
+ {"wrv", NULL, NULL, NULL, "Waruna"},
+ {"wrw", NULL, NULL, NULL, "Gugu Warra"},
+ {"wrx", NULL, NULL, NULL, "Wae Rana"},
+ {"wry", NULL, NULL, NULL, "Merwari"},
+ {"wrz", NULL, NULL, NULL, "Waray (Australia)"},
+ {"wsa", NULL, NULL, NULL, "Warembori"},
+ {"wsg", NULL, NULL, NULL, "Adilabad Gondi"},
+ {"wsi", NULL, NULL, NULL, "Wusi"},
+ {"wsk", NULL, NULL, NULL, "Waskia"},
+ {"wsr", NULL, NULL, NULL, "Owenia"},
+ {"wss", NULL, NULL, NULL, "Wasa"},
+ {"wsu", NULL, NULL, NULL, "Wasu"},
+ {"wsv", NULL, NULL, NULL, "Wotapuri-Katarqalai"},
+ {"wtf", NULL, NULL, NULL, "Watiwa"},
+ {"wth", NULL, NULL, NULL, "Wathawurrung"},
+ {"wti", NULL, NULL, NULL, "Berta"},
+ {"wtk", NULL, NULL, NULL, "Watakataui"},
+ {"wtm", NULL, NULL, NULL, "Mewati"},
+ {"wtw", NULL, NULL, NULL, "Wotu"},
+ {"wua", NULL, NULL, NULL, "Wikngenchera"},
+ {"wub", NULL, NULL, NULL, "Wunambal"},
+ {"wud", NULL, NULL, NULL, "Wudu"},
+ {"wuh", NULL, NULL, NULL, "Wutunhua"},
+ {"wul", NULL, NULL, NULL, "Silimo"},
+ {"wum", NULL, NULL, NULL, "Wumbvu"},
+ {"wun", NULL, NULL, NULL, "Bungu"},
+ {"wur", NULL, NULL, NULL, "Wurrugu"},
+ {"wut", NULL, NULL, NULL, "Wutung"},
+ {"wuu", NULL, NULL, NULL, "Wu Chinese"},
+ {"wuv", NULL, NULL, NULL, "Wuvulu-Aua"},
+ {"wux", NULL, NULL, NULL, "Wulna"},
+ {"wuy", NULL, NULL, NULL, "Wauyai"},
+ {"wwa", NULL, NULL, NULL, "Waama"},
+ {"wwb", NULL, NULL, NULL, "Wakabunga"},
+ {"wwo", NULL, NULL, NULL, "Wetamut"},
+ {"wwr", NULL, NULL, NULL, "Warrwa"},
+ {"www", NULL, NULL, NULL, "Wawa"},
+ {"wxa", NULL, NULL, NULL, "Waxianghua"},
+ {"wxw", NULL, NULL, NULL, "Wardandi"},
+ {"wya", NULL, NULL, NULL, "Wyandot"},
+ {"wyb", NULL, NULL, NULL, "Wangaaybuwan-Ngiyambaa"},
+ {"wyi", NULL, NULL, NULL, "Woiwurrung"},
+ {"wym", NULL, NULL, NULL, "Wymysorys"},
+ {"wyr", NULL, NULL, NULL, "Wayoró"},
+ {"wyy", NULL, NULL, NULL, "Western Fijian"},
+ {"xaa", NULL, NULL, NULL, "Andalusian Arabic"},
+ {"xab", NULL, NULL, NULL, "Sambe"},
+ {"xac", NULL, NULL, NULL, "Kachari"},
+ {"xad", NULL, NULL, NULL, "Adai"},
+ {"xae", NULL, NULL, NULL, "Aequian"},
+ {"xag", NULL, NULL, NULL, "Aghwan"},
+ {"xai", NULL, NULL, NULL, "Kaimbé"},
+ {"xaj", NULL, NULL, NULL, "Ararandewára"},
+ {"xak", NULL, NULL, NULL, "Máku"},
+ {"xal", "xal", "xal", NULL, "Kalmyk"},
+ {"xam", NULL, NULL, NULL, "ǀXam"},
+ {"xan", NULL, NULL, NULL, "Xamtanga"},
+ {"xao", NULL, NULL, NULL, "Khao"},
+ {"xap", NULL, NULL, NULL, "Apalachee"},
+ {"xaq", NULL, NULL, NULL, "Aquitanian"},
+ {"xar", NULL, NULL, NULL, "Karami"},
+ {"xas", NULL, NULL, NULL, "Kamas"},
+ {"xat", NULL, NULL, NULL, "Katawixi"},
+ {"xau", NULL, NULL, NULL, "Kauwera"},
+ {"xav", NULL, NULL, NULL, "Xavánte"},
+ {"xaw", NULL, NULL, NULL, "Kawaiisu"},
+ {"xay", NULL, NULL, NULL, "Kayan Mahakam"},
+ {"xbb", NULL, NULL, NULL, "Lower Burdekin"},
+ {"xbc", NULL, NULL, NULL, "Bactrian"},
+ {"xbd", NULL, NULL, NULL, "Bindal"},
+ {"xbe", NULL, NULL, NULL, "Bigambal"},
+ {"xbg", NULL, NULL, NULL, "Bunganditj"},
+ {"xbi", NULL, NULL, NULL, "Kombio"},
+ {"xbj", NULL, NULL, NULL, "Birrpayi"},
+ {"xbm", NULL, NULL, NULL, "Middle Breton"},
+ {"xbn", NULL, NULL, NULL, "Kenaboi"},
+ {"xbo", NULL, NULL, NULL, "Bolgarian"},
+ {"xbp", NULL, NULL, NULL, "Bibbulman"},
+ {"xbr", NULL, NULL, NULL, "Kambera"},
+ {"xbw", NULL, NULL, NULL, "Kambiwá"},
+ {"xby", NULL, NULL, NULL, "Batjala"},
+ {"xcb", NULL, NULL, NULL, "Cumbric"},
+ {"xcc", NULL, NULL, NULL, "Camunic"},
+ {"xce", NULL, NULL, NULL, "Celtiberian"},
+ {"xcg", NULL, NULL, NULL, "Cisalpine Gaulish"},
+ {"xch", NULL, NULL, NULL, "Chemakum"},
+ {"xcl", NULL, NULL, NULL, "Classical Armenian"},
+ {"xcm", NULL, NULL, NULL, "Comecrudo"},
+ {"xcn", NULL, NULL, NULL, "Cotoname"},
+ {"xco", NULL, NULL, NULL, "Chorasmian"},
+ {"xcr", NULL, NULL, NULL, "Carian"},
+ {"xct", NULL, NULL, NULL, "Classical Tibetan"},
+ {"xcu", NULL, NULL, NULL, "Curonian"},
+ {"xcv", NULL, NULL, NULL, "Chuvantsy"},
+ {"xcw", NULL, NULL, NULL, "Coahuilteco"},
+ {"xcy", NULL, NULL, NULL, "Cayuse"},
+ {"xda", NULL, NULL, NULL, "Darkinyung"},
+ {"xdc", NULL, NULL, NULL, "Dacian"},
+ {"xdk", NULL, NULL, NULL, "Dharuk"},
+ {"xdm", NULL, NULL, NULL, "Edomite"},
+ {"xdo", NULL, NULL, NULL, "Kwandu"},
+ {"xdy", NULL, NULL, NULL, "Malayic Dayak"},
+ {"xeb", NULL, NULL, NULL, "Eblan"},
+ {"xed", NULL, NULL, NULL, "Hdi"},
+ {"xeg", NULL, NULL, NULL, "ǁXegwi"},
+ {"xel", NULL, NULL, NULL, "Kelo"},
+ {"xem", NULL, NULL, NULL, "Kembayan"},
+ {"xep", NULL, NULL, NULL, "Epi-Olmec"},
+ {"xer", NULL, NULL, NULL, "Xerénte"},
+ {"xes", NULL, NULL, NULL, "Kesawai"},
+ {"xet", NULL, NULL, NULL, "Xetá"},
+ {"xeu", NULL, NULL, NULL, "Keoru-Ahia"},
+ {"xfa", NULL, NULL, NULL, "Faliscan"},
+ {"xga", NULL, NULL, NULL, "Galatian"},
+ {"xgb", NULL, NULL, NULL, "Gbin"},
+ {"xgd", NULL, NULL, NULL, "Gudang"},
+ {"xgf", NULL, NULL, NULL, "Gabrielino-Fernandeño"},
+ {"xgg", NULL, NULL, NULL, "Goreng"},
+ {"xgi", NULL, NULL, NULL, "Garingbal"},
+ {"xgl", NULL, NULL, NULL, "Galindan"},
+ {"xgm", NULL, NULL, NULL, "Dharumbal"},
+ {"xgr", NULL, NULL, NULL, "Garza"},
+ {"xgu", NULL, NULL, NULL, "Unggumi"},
+ {"xgw", NULL, NULL, NULL, "Guwa"},
+ {"xha", NULL, NULL, NULL, "Harami"},
+ {"xhc", NULL, NULL, NULL, "Hunnic"},
+ {"xhd", NULL, NULL, NULL, "Hadrami"},
+ {"xhe", NULL, NULL, NULL, "Khetrani"},
+ {"xho", "xho", "xho", "xh", "Xhosa"},
+ {"xhr", NULL, NULL, NULL, "Hernican"},
+ {"xht", NULL, NULL, NULL, "Hattic"},
+ {"xhu", NULL, NULL, NULL, "Hurrian"},
+ {"xhv", NULL, NULL, NULL, "Khua"},
+ {"xib", NULL, NULL, NULL, "Iberian"},
+ {"xii", NULL, NULL, NULL, "Xiri"},
+ {"xil", NULL, NULL, NULL, "Illyrian"},
+ {"xin", NULL, NULL, NULL, "Xinca"},
+ {"xir", NULL, NULL, NULL, "Xiriâna"},
+ {"xis", NULL, NULL, NULL, "Kisan"},
+ {"xiv", NULL, NULL, NULL, "Indus Valley Language"},
+ {"xiy", NULL, NULL, NULL, "Xipaya"},
+ {"xjb", NULL, NULL, NULL, "Minjungbal"},
+ {"xjt", NULL, NULL, NULL, "Jaitmatang"},
+ {"xka", NULL, NULL, NULL, "Kalkoti"},
+ {"xkb", NULL, NULL, NULL, "Northern Nago"},
+ {"xkc", NULL, NULL, NULL, "Kho'ini"},
+ {"xkd", NULL, NULL, NULL, "Mendalam Kayan"},
+ {"xke", NULL, NULL, NULL, "Kereho"},
+ {"xkf", NULL, NULL, NULL, "Khengkha"},
+ {"xkg", NULL, NULL, NULL, "Kagoro"},
+ {"xki", NULL, NULL, NULL, "Kenyan Sign Language"},
+ {"xkj", NULL, NULL, NULL, "Kajali"},
+ {"xkk", NULL, NULL, NULL, "Kaco'"},
+ {"xkl", NULL, NULL, NULL, "Mainstream Kenyah"},
+ {"xkn", NULL, NULL, NULL, "Kayan River Kayan"},
+ {"xko", NULL, NULL, NULL, "Kiorr"},
+ {"xkp", NULL, NULL, NULL, "Kabatei"},
+ {"xkq", NULL, NULL, NULL, "Koroni"},
+ {"xkr", NULL, NULL, NULL, "Xakriabá"},
+ {"xks", NULL, NULL, NULL, "Kumbewaha"},
+ {"xkt", NULL, NULL, NULL, "Kantosi"},
+ {"xku", NULL, NULL, NULL, "Kaamba"},
+ {"xkv", NULL, NULL, NULL, "Kgalagadi"},
+ {"xkw", NULL, NULL, NULL, "Kembra"},
+ {"xkx", NULL, NULL, NULL, "Karore"},
+ {"xky", NULL, NULL, NULL, "Uma' Lasan"},
+ {"xkz", NULL, NULL, NULL, "Kurtokha"},
+ {"xla", NULL, NULL, NULL, "Kamula"},
+ {"xlb", NULL, NULL, NULL, "Loup B"},
+ {"xlc", NULL, NULL, NULL, "Lycian"},
+ {"xld", NULL, NULL, NULL, "Lydian"},
+ {"xle", NULL, NULL, NULL, "Lemnian"},
+ {"xlg", NULL, NULL, NULL, "Ligurian (Ancient)"},
+ {"xli", NULL, NULL, NULL, "Liburnian"},
+ {"xln", NULL, NULL, NULL, "Alanic"},
+ {"xlo", NULL, NULL, NULL, "Loup A"},
+ {"xlp", NULL, NULL, NULL, "Lepontic"},
+ {"xls", NULL, NULL, NULL, "Lusitanian"},
+ {"xlu", NULL, NULL, NULL, "Cuneiform Luwian"},
+ {"xly", NULL, NULL, NULL, "Elymian"},
+ {"xma", NULL, NULL, NULL, "Mushungulu"},
+ {"xmb", NULL, NULL, NULL, "Mbonga"},
+ {"xmc", NULL, NULL, NULL, "Makhuwa-Marrevone"},
+ {"xmd", NULL, NULL, NULL, "Mbudum"},
+ {"xme", NULL, NULL, NULL, "Median"},
+ {"xmf", NULL, NULL, NULL, "Mingrelian"},
+ {"xmg", NULL, NULL, NULL, "Mengaka"},
+ {"xmh", NULL, NULL, NULL, "Kugu-Muminh"},
+ {"xmj", NULL, NULL, NULL, "Majera"},
+ {"xmk", NULL, NULL, NULL, "Ancient Macedonian"},
+ {"xml", NULL, NULL, NULL, "Malaysian Sign Language"},
+ {"xmm", NULL, NULL, NULL, "Manado Malay"},
+ {"xmn", NULL, NULL, NULL, "Manichaean Middle Persian"},
+ {"xmo", NULL, NULL, NULL, "Morerebi"},
+ {"xmp", NULL, NULL, NULL, "Kuku-Mu'inh"},
+ {"xmq", NULL, NULL, NULL, "Kuku-Mangk"},
+ {"xmr", NULL, NULL, NULL, "Meroitic"},
+ {"xms", NULL, NULL, NULL, "Moroccan Sign Language"},
+ {"xmt", NULL, NULL, NULL, "Matbat"},
+ {"xmu", NULL, NULL, NULL, "Kamu"},
+ {"xmv", NULL, NULL, NULL, "Antankarana Malagasy"},
+ {"xmw", NULL, NULL, NULL, "Tsimihety Malagasy"},
+ {"xmx", NULL, NULL, NULL, "Maden"},
+ {"xmy", NULL, NULL, NULL, "Mayaguduna"},
+ {"xmz", NULL, NULL, NULL, "Mori Bawah"},
+ {"xna", NULL, NULL, NULL, "Ancient North Arabian"},
+ {"xnb", NULL, NULL, NULL, "Kanakanabu"},
+ {"xng", NULL, NULL, NULL, "Middle Mongolian"},
+ {"xnh", NULL, NULL, NULL, "Kuanhua"},
+ {"xni", NULL, NULL, NULL, "Ngarigu"},
+ {"xnj", NULL, NULL, NULL, "Ngoni (Tanzania)"},
+ {"xnk", NULL, NULL, NULL, "Nganakarti"},
+ {"xnm", NULL, NULL, NULL, "Ngumbarl"},
+ {"xnn", NULL, NULL, NULL, "Northern Kankanay"},
+ {"xno", NULL, NULL, NULL, "Anglo-Norman"},
+ {"xnq", NULL, NULL, NULL, "Ngoni (Mozambique)"},
+ {"xnr", NULL, NULL, NULL, "Kangri"},
+ {"xns", NULL, NULL, NULL, "Kanashi"},
+ {"xnt", NULL, NULL, NULL, "Narragansett"},
+ {"xnu", NULL, NULL, NULL, "Nukunul"},
+ {"xny", NULL, NULL, NULL, "Nyiyaparli"},
+ {"xnz", NULL, NULL, NULL, "Kenzi"},
+ {"xoc", NULL, NULL, NULL, "O'chi'chi'"},
+ {"xod", NULL, NULL, NULL, "Kokoda"},
+ {"xog", NULL, NULL, NULL, "Soga"},
+ {"xoi", NULL, NULL, NULL, "Kominimung"},
+ {"xok", NULL, NULL, NULL, "Xokleng"},
+ {"xom", NULL, NULL, NULL, "Komo (Sudan)"},
+ {"xon", NULL, NULL, NULL, "Konkomba"},
+ {"xoo", NULL, NULL, NULL, "Xukurú"},
+ {"xop", NULL, NULL, NULL, "Kopar"},
+ {"xor", NULL, NULL, NULL, "Korubo"},
+ {"xow", NULL, NULL, NULL, "Kowaki"},
+ {"xpa", NULL, NULL, NULL, "Pirriya"},
+ {"xpb", NULL, NULL, NULL, "Northeastern Tasmanian"},
+ {"xpc", NULL, NULL, NULL, "Pecheneg"},
+ {"xpd", NULL, NULL, NULL, "Oyster Bay Tasmanian"},
+ {"xpe", NULL, NULL, NULL, "Liberia Kpelle"},
+ {"xpf", NULL, NULL, NULL, "Southeast Tasmanian"},
+ {"xpg", NULL, NULL, NULL, "Phrygian"},
+ {"xph", NULL, NULL, NULL, "North Midlands Tasmanian"},
+ {"xpi", NULL, NULL, NULL, "Pictish"},
+ {"xpj", NULL, NULL, NULL, "Mpalitjanh"},
+ {"xpk", NULL, NULL, NULL, "Kulina Pano"},
+ {"xpl", NULL, NULL, NULL, "Port Sorell Tasmanian"},
+ {"xpm", NULL, NULL, NULL, "Pumpokol"},
+ {"xpn", NULL, NULL, NULL, "Kapinawá"},
+ {"xpo", NULL, NULL, NULL, "Pochutec"},
+ {"xpp", NULL, NULL, NULL, "Puyo-Paekche"},
+ {"xpq", NULL, NULL, NULL, "Mohegan-Pequot"},
+ {"xpr", NULL, NULL, NULL, "Parthian"},
+ {"xps", NULL, NULL, NULL, "Pisidian"},
+ {"xpt", NULL, NULL, NULL, "Punthamara"},
+ {"xpu", NULL, NULL, NULL, "Punic"},
+ {"xpv", NULL, NULL, NULL, "Northern Tasmanian"},
+ {"xpw", NULL, NULL, NULL, "Northwestern Tasmanian"},
+ {"xpx", NULL, NULL, NULL, "Southwestern Tasmanian"},
+ {"xpy", NULL, NULL, NULL, "Puyo"},
+ {"xpz", NULL, NULL, NULL, "Bruny Island Tasmanian"},
+ {"xqa", NULL, NULL, NULL, "Karakhanid"},
+ {"xqt", NULL, NULL, NULL, "Qatabanian"},
+ {"xra", NULL, NULL, NULL, "Krahô"},
+ {"xrb", NULL, NULL, NULL, "Eastern Karaboro"},
+ {"xrd", NULL, NULL, NULL, "Gundungurra"},
+ {"xre", NULL, NULL, NULL, "Kreye"},
+ {"xrg", NULL, NULL, NULL, "Minang"},
+ {"xri", NULL, NULL, NULL, "Krikati-Timbira"},
+ {"xrm", NULL, NULL, NULL, "Armazic"},
+ {"xrn", NULL, NULL, NULL, "Arin"},
+ {"xrr", NULL, NULL, NULL, "Raetic"},
+ {"xrt", NULL, NULL, NULL, "Aranama-Tamique"},
+ {"xru", NULL, NULL, NULL, "Marriammu"},
+ {"xrw", NULL, NULL, NULL, "Karawa"},
+ {"xsa", NULL, NULL, NULL, "Sabaean"},
+ {"xsb", NULL, NULL, NULL, "Sambal"},
+ {"xsc", NULL, NULL, NULL, "Scythian"},
+ {"xsd", NULL, NULL, NULL, "Sidetic"},
+ {"xse", NULL, NULL, NULL, "Sempan"},
+ {"xsh", NULL, NULL, NULL, "Shamang"},
+ {"xsi", NULL, NULL, NULL, "Sio"},
+ {"xsj", NULL, NULL, NULL, "Subi"},
+ {"xsl", NULL, NULL, NULL, "South Slavey"},
+ {"xsm", NULL, NULL, NULL, "Kasem"},
+ {"xsn", NULL, NULL, NULL, "Sanga (Nigeria)"},
+ {"xso", NULL, NULL, NULL, "Solano"},
+ {"xsp", NULL, NULL, NULL, "Silopi"},
+ {"xsq", NULL, NULL, NULL, "Makhuwa-Saka"},
+ {"xsr", NULL, NULL, NULL, "Sherpa"},
+ {"xss", NULL, NULL, NULL, "Assan"},
+ {"xsu", NULL, NULL, NULL, "Sanumá"},
+ {"xsv", NULL, NULL, NULL, "Sudovian"},
+ {"xsy", NULL, NULL, NULL, "Saisiyat"},
+ {"xta", NULL, NULL, NULL, "Alcozauca Mixtec"},
+ {"xtb", NULL, NULL, NULL, "Chazumba Mixtec"},
+ {"xtc", NULL, NULL, NULL, "Katcha-Kadugli-Miri"},
+ {"xtd", NULL, NULL, NULL, "Diuxi-Tilantongo Mixtec"},
+ {"xte", NULL, NULL, NULL, "Ketengban"},
+ {"xtg", NULL, NULL, NULL, "Transalpine Gaulish"},
+ {"xth", NULL, NULL, NULL, "Yitha Yitha"},
+ {"xti", NULL, NULL, NULL, "Sinicahua Mixtec"},
+ {"xtj", NULL, NULL, NULL, "San Juan Teita Mixtec"},
+ {"xtl", NULL, NULL, NULL, "Tijaltepec Mixtec"},
+ {"xtm", NULL, NULL, NULL, "Magdalena Peñasco Mixtec"},
+ {"xtn", NULL, NULL, NULL, "Northern Tlaxiaco Mixtec"},
+ {"xto", NULL, NULL, NULL, "Tokharian A"},
+ {"xtp", NULL, NULL, NULL, "San Miguel Piedras Mixtec"},
+ {"xtq", NULL, NULL, NULL, "Tumshuqese"},
+ {"xtr", NULL, NULL, NULL, "Early Tripuri"},
+ {"xts", NULL, NULL, NULL, "Sindihui Mixtec"},
+ {"xtt", NULL, NULL, NULL, "Tacahua Mixtec"},
+ {"xtu", NULL, NULL, NULL, "Cuyamecalco Mixtec"},
+ {"xtv", NULL, NULL, NULL, "Thawa"},
+ {"xtw", NULL, NULL, NULL, "Tawandê"},
+ {"xty", NULL, NULL, NULL, "Yoloxochitl Mixtec"},
+ {"xua", NULL, NULL, NULL, "Alu Kurumba"},
+ {"xub", NULL, NULL, NULL, "Betta Kurumba"},
+ {"xud", NULL, NULL, NULL, "Umiida"},
+ {"xug", NULL, NULL, NULL, "Kunigami"},
+ {"xuj", NULL, NULL, NULL, "Jennu Kurumba"},
+ {"xul", NULL, NULL, NULL, "Ngunawal"},
+ {"xum", NULL, NULL, NULL, "Umbrian"},
+ {"xun", NULL, NULL, NULL, "Unggaranggu"},
+ {"xuo", NULL, NULL, NULL, "Kuo"},
+ {"xup", NULL, NULL, NULL, "Upper Umpqua"},
+ {"xur", NULL, NULL, NULL, "Urartian"},
+ {"xut", NULL, NULL, NULL, "Kuthant"},
+ {"xuu", NULL, NULL, NULL, "Kxoe"},
+ {"xve", NULL, NULL, NULL, "Venetic"},
+ {"xvi", NULL, NULL, NULL, "Kamviri"},
+ {"xvn", NULL, NULL, NULL, "Vandalic"},
+ {"xvo", NULL, NULL, NULL, "Volscian"},
+ {"xvs", NULL, NULL, NULL, "Vestinian"},
+ {"xwa", NULL, NULL, NULL, "Kwaza"},
+ {"xwc", NULL, NULL, NULL, "Woccon"},
+ {"xwd", NULL, NULL, NULL, "Wadi Wadi"},
+ {"xwe", NULL, NULL, NULL, "Xwela Gbe"},
+ {"xwg", NULL, NULL, NULL, "Kwegu"},
+ {"xwj", NULL, NULL, NULL, "Wajuk"},
+ {"xwk", NULL, NULL, NULL, "Wangkumara"},
+ {"xwl", NULL, NULL, NULL, "Western Xwla Gbe"},
+ {"xwo", NULL, NULL, NULL, "Written Oirat"},
+ {"xwr", NULL, NULL, NULL, "Kwerba Mamberamo"},
+ {"xwt", NULL, NULL, NULL, "Wotjobaluk"},
+ {"xww", NULL, NULL, NULL, "Wemba Wemba"},
+ {"xxb", NULL, NULL, NULL, "Boro (Ghana)"},
+ {"xxk", NULL, NULL, NULL, "Ke'o"},
+ {"xxm", NULL, NULL, NULL, "Minkin"},
+ {"xxr", NULL, NULL, NULL, "Koropó"},
+ {"xxt", NULL, NULL, NULL, "Tambora"},
+ {"xya", NULL, NULL, NULL, "Yaygir"},
+ {"xyb", NULL, NULL, NULL, "Yandjibara"},
+ {"xyj", NULL, NULL, NULL, "Mayi-Yapi"},
+ {"xyk", NULL, NULL, NULL, "Mayi-Kulan"},
+ {"xyl", NULL, NULL, NULL, "Yalakalore"},
+ {"xyt", NULL, NULL, NULL, "Mayi-Thakurti"},
+ {"xyy", NULL, NULL, NULL, "Yorta Yorta"},
+ {"xzh", NULL, NULL, NULL, "Zhang-Zhung"},
+ {"xzm", NULL, NULL, NULL, "Zemgalian"},
+ {"xzp", NULL, NULL, NULL, "Ancient Zapotec"},
+ {"yaa", NULL, NULL, NULL, "Yaminahua"},
+ {"yab", NULL, NULL, NULL, "Yuhup"},
+ {"yac", NULL, NULL, NULL, "Pass Valley Yali"},
+ {"yad", NULL, NULL, NULL, "Yagua"},
+ {"yae", NULL, NULL, NULL, "Pumé"},
+ {"yaf", NULL, NULL, NULL, "Yaka (Democratic Republic of Congo)"},
+ {"yag", NULL, NULL, NULL, "Yámana"},
+ {"yah", NULL, NULL, NULL, "Yazgulyam"},
+ {"yai", NULL, NULL, NULL, "Yagnobi"},
+ {"yaj", NULL, NULL, NULL, "Banda-Yangere"},
+ {"yak", NULL, NULL, NULL, "Yakama"},
+ {"yal", NULL, NULL, NULL, "Yalunka"},
+ {"yam", NULL, NULL, NULL, "Yamba"},
+ {"yan", NULL, NULL, NULL, "Mayangna"},
+ {"yao", "yao", "yao", NULL, "Yao"},
+ {"yap", "yap", "yap", NULL, "Yapese"},
+ {"yaq", NULL, NULL, NULL, "Yaqui"},
+ {"yar", NULL, NULL, NULL, "Yabarana"},
+ {"yas", NULL, NULL, NULL, "Nugunu (Cameroon)"},
+ {"yat", NULL, NULL, NULL, "Yambeta"},
+ {"yau", NULL, NULL, NULL, "Yuwana"},
+ {"yav", NULL, NULL, NULL, "Yangben"},
+ {"yaw", NULL, NULL, NULL, "Yawalapití"},
+ {"yax", NULL, NULL, NULL, "Yauma"},
+ {"yay", NULL, NULL, NULL, "Agwagwune"},
+ {"yaz", NULL, NULL, NULL, "Lokaa"},
+ {"yba", NULL, NULL, NULL, "Yala"},
+ {"ybb", NULL, NULL, NULL, "Yemba"},
+ {"ybe", NULL, NULL, NULL, "West Yugur"},
+ {"ybh", NULL, NULL, NULL, "Yakha"},
+ {"ybi", NULL, NULL, NULL, "Yamphu"},
+ {"ybj", NULL, NULL, NULL, "Hasha"},
+ {"ybk", NULL, NULL, NULL, "Bokha"},
+ {"ybl", NULL, NULL, NULL, "Yukuben"},
+ {"ybm", NULL, NULL, NULL, "Yaben"},
+ {"ybn", NULL, NULL, NULL, "Yabaâna"},
+ {"ybo", NULL, NULL, NULL, "Yabong"},
+ {"ybx", NULL, NULL, NULL, "Yawiyo"},
+ {"yby", NULL, NULL, NULL, "Yaweyuha"},
+ {"ych", NULL, NULL, NULL, "Chesu"},
+ {"ycl", NULL, NULL, NULL, "Lolopo"},
+ {"ycn", NULL, NULL, NULL, "Yucuna"},
+ {"ycp", NULL, NULL, NULL, "Chepya"},
+ {"yda", NULL, NULL, NULL, "Yanda"},
+ {"ydd", NULL, NULL, NULL, "Eastern Yiddish"},
+ {"yde", NULL, NULL, NULL, "Yangum Dey"},
+ {"ydg", NULL, NULL, NULL, "Yidgha"},
+ {"ydk", NULL, NULL, NULL, "Yoidik"},
+ {"yea", NULL, NULL, NULL, "Ravula"},
+ {"yec", NULL, NULL, NULL, "Yeniche"},
+ {"yee", NULL, NULL, NULL, "Yimas"},
+ {"yei", NULL, NULL, NULL, "Yeni"},
+ {"yej", NULL, NULL, NULL, "Yevanic"},
+ {"yel", NULL, NULL, NULL, "Yela"},
+ {"yer", NULL, NULL, NULL, "Tarok"},
+ {"yes", NULL, NULL, NULL, "Nyankpa"},
+ {"yet", NULL, NULL, NULL, "Yetfa"},
+ {"yeu", NULL, NULL, NULL, "Yerukula"},
+ {"yev", NULL, NULL, NULL, "Yapunda"},
+ {"yey", NULL, NULL, NULL, "Yeyi"},
+ {"yga", NULL, NULL, NULL, "Malyangapa"},
+ {"ygi", NULL, NULL, NULL, "Yiningayi"},
+ {"ygl", NULL, NULL, NULL, "Yangum Gel"},
+ {"ygm", NULL, NULL, NULL, "Yagomi"},
+ {"ygp", NULL, NULL, NULL, "Gepo"},
+ {"ygr", NULL, NULL, NULL, "Yagaria"},
+ {"ygs", NULL, NULL, NULL, "Yolŋu Sign Language"},
+ {"ygu", NULL, NULL, NULL, "Yugul"},
+ {"ygw", NULL, NULL, NULL, "Yagwoia"},
+ {"yha", NULL, NULL, NULL, "Baha Buyang"},
+ {"yhd", NULL, NULL, NULL, "Judeo-Iraqi Arabic"},
+ {"yhl", NULL, NULL, NULL, "Hlepho Phowa"},
+ {"yhs", NULL, NULL, NULL, "Yan-nhaŋu Sign Language"},
+ {"yia", NULL, NULL, NULL, "Yinggarda"},
+ {"yid", "yid", "yid", "yi", "Yiddish"},
+ {"yif", NULL, NULL, NULL, "Ache"},
+ {"yig", NULL, NULL, NULL, "Wusa Nasu"},
+ {"yih", NULL, NULL, NULL, "Western Yiddish"},
+ {"yii", NULL, NULL, NULL, "Yidiny"},
+ {"yij", NULL, NULL, NULL, "Yindjibarndi"},
+ {"yik", NULL, NULL, NULL, "Dongshanba Lalo"},
+ {"yil", NULL, NULL, NULL, "Yindjilandji"},
+ {"yim", NULL, NULL, NULL, "Yimchungru Naga"},
+ {"yin", NULL, NULL, NULL, "Riang Lai"},
+ {"yip", NULL, NULL, NULL, "Pholo"},
+ {"yiq", NULL, NULL, NULL, "Miqie"},
+ {"yir", NULL, NULL, NULL, "North Awyu"},
+ {"yis", NULL, NULL, NULL, "Yis"},
+ {"yit", NULL, NULL, NULL, "Eastern Lalu"},
+ {"yiu", NULL, NULL, NULL, "Awu"},
+ {"yiv", NULL, NULL, NULL, "Northern Nisu"},
+ {"yix", NULL, NULL, NULL, "Axi Yi"},
+ {"yiz", NULL, NULL, NULL, "Azhe"},
+ {"yka", NULL, NULL, NULL, "Yakan"},
+ {"ykg", NULL, NULL, NULL, "Northern Yukaghir"},
+ {"yki", NULL, NULL, NULL, "Yoke"},
+ {"ykk", NULL, NULL, NULL, "Yakaikeke"},
+ {"ykl", NULL, NULL, NULL, "Khlula"},
+ {"ykm", NULL, NULL, NULL, "Kap"},
+ {"ykn", NULL, NULL, NULL, "Kua-nsi"},
+ {"yko", NULL, NULL, NULL, "Yasa"},
+ {"ykr", NULL, NULL, NULL, "Yekora"},
+ {"ykt", NULL, NULL, NULL, "Kathu"},
+ {"yku", NULL, NULL, NULL, "Kuamasi"},
+ {"yky", NULL, NULL, NULL, "Yakoma"},
+ {"yla", NULL, NULL, NULL, "Yaul"},
+ {"ylb", NULL, NULL, NULL, "Yaleba"},
+ {"yle", NULL, NULL, NULL, "Yele"},
+ {"ylg", NULL, NULL, NULL, "Yelogu"},
+ {"yli", NULL, NULL, NULL, "Angguruk Yali"},
+ {"yll", NULL, NULL, NULL, "Yil"},
+ {"ylm", NULL, NULL, NULL, "Limi"},
+ {"yln", NULL, NULL, NULL, "Langnian Buyang"},
+ {"ylo", NULL, NULL, NULL, "Naluo Yi"},
+ {"ylr", NULL, NULL, NULL, "Yalarnnga"},
+ {"ylu", NULL, NULL, NULL, "Aribwaung"},
+ {"yly", NULL, NULL, NULL, "Nyâlayu"},
+ {"ymb", NULL, NULL, NULL, "Yambes"},
+ {"ymc", NULL, NULL, NULL, "Southern Muji"},
+ {"ymd", NULL, NULL, NULL, "Muda"},
+ {"yme", NULL, NULL, NULL, "Yameo"},
+ {"ymg", NULL, NULL, NULL, "Yamongeri"},
+ {"ymh", NULL, NULL, NULL, "Mili"},
+ {"ymi", NULL, NULL, NULL, "Moji"},
+ {"ymk", NULL, NULL, NULL, "Makwe"},
+ {"yml", NULL, NULL, NULL, "Iamalele"},
+ {"ymm", NULL, NULL, NULL, "Maay"},
+ {"ymn", NULL, NULL, NULL, "Yamna"},
+ {"ymo", NULL, NULL, NULL, "Yangum Mon"},
+ {"ymp", NULL, NULL, NULL, "Yamap"},
+ {"ymq", NULL, NULL, NULL, "Qila Muji"},
+ {"ymr", NULL, NULL, NULL, "Malasar"},
+ {"yms", NULL, NULL, NULL, "Mysian"},
+ {"ymx", NULL, NULL, NULL, "Northern Muji"},
+ {"ymz", NULL, NULL, NULL, "Muzi"},
+ {"yna", NULL, NULL, NULL, "Aluo"},
+ {"ynd", NULL, NULL, NULL, "Yandruwandha"},
+ {"yne", NULL, NULL, NULL, "Lang'e"},
+ {"yng", NULL, NULL, NULL, "Yango"},
+ {"ynk", NULL, NULL, NULL, "Naukan Yupik"},
+ {"ynl", NULL, NULL, NULL, "Yangulam"},
+ {"ynn", NULL, NULL, NULL, "Yana"},
+ {"yno", NULL, NULL, NULL, "Yong"},
+ {"ynq", NULL, NULL, NULL, "Yendang"},
+ {"yns", NULL, NULL, NULL, "Yansi"},
+ {"ynu", NULL, NULL, NULL, "Yahuna"},
+ {"yob", NULL, NULL, NULL, "Yoba"},
+ {"yog", NULL, NULL, NULL, "Yogad"},
+ {"yoi", NULL, NULL, NULL, "Yonaguni"},
+ {"yok", NULL, NULL, NULL, "Yokuts"},
+ {"yol", NULL, NULL, NULL, "Yola"},
+ {"yom", NULL, NULL, NULL, "Yombe"},
+ {"yon", NULL, NULL, NULL, "Yongkom"},
+ {"yor", "yor", "yor", "yo", "Yoruba"},
+ {"yot", NULL, NULL, NULL, "Yotti"},
+ {"yox", NULL, NULL, NULL, "Yoron"},
+ {"yoy", NULL, NULL, NULL, "Yoy"},
+ {"ypa", NULL, NULL, NULL, "Phala"},
+ {"ypb", NULL, NULL, NULL, "Labo Phowa"},
+ {"ypg", NULL, NULL, NULL, "Phola"},
+ {"yph", NULL, NULL, NULL, "Phupha"},
+ {"ypm", NULL, NULL, NULL, "Phuma"},
+ {"ypn", NULL, NULL, NULL, "Ani Phowa"},
+ {"ypo", NULL, NULL, NULL, "Alo Phola"},
+ {"ypp", NULL, NULL, NULL, "Phupa"},
+ {"ypz", NULL, NULL, NULL, "Phuza"},
+ {"yra", NULL, NULL, NULL, "Yerakai"},
+ {"yrb", NULL, NULL, NULL, "Yareba"},
+ {"yre", NULL, NULL, NULL, "Yaouré"},
+ {"yrk", NULL, NULL, NULL, "Nenets"},
+ {"yrl", NULL, NULL, NULL, "Nhengatu"},
+ {"yrm", NULL, NULL, NULL, "Yirrk-Mel"},
+ {"yrn", NULL, NULL, NULL, "Yerong"},
+ {"yro", NULL, NULL, NULL, "Yaroamë"},
+ {"yrs", NULL, NULL, NULL, "Yarsun"},
+ {"yrw", NULL, NULL, NULL, "Yarawata"},
+ {"yry", NULL, NULL, NULL, "Yarluyandi"},
+ {"ysc", NULL, NULL, NULL, "Yassic"},
+ {"ysd", NULL, NULL, NULL, "Samatao"},
+ {"ysg", NULL, NULL, NULL, "Sonaga"},
+ {"ysl", NULL, NULL, NULL, "Yugoslavian Sign Language"},
+ {"ysm", NULL, NULL, NULL, "Myanmar Sign Language"},
+ {"ysn", NULL, NULL, NULL, "Sani"},
+ {"yso", NULL, NULL, NULL, "Nisi (China)"},
+ {"ysp", NULL, NULL, NULL, "Southern Lolopo"},
+ {"ysr", NULL, NULL, NULL, "Sirenik Yupik"},
+ {"yss", NULL, NULL, NULL, "Yessan-Mayo"},
+ {"ysy", NULL, NULL, NULL, "Sanie"},
+ {"yta", NULL, NULL, NULL, "Talu"},
+ {"ytl", NULL, NULL, NULL, "Tanglang"},
+ {"ytp", NULL, NULL, NULL, "Thopho"},
+ {"ytw", NULL, NULL, NULL, "Yout Wam"},
+ {"yty", NULL, NULL, NULL, "Yatay"},
+ {"yua", NULL, NULL, NULL, "Yucateco"},
+ {"yub", NULL, NULL, NULL, "Yugambal"},
+ {"yuc", NULL, NULL, NULL, "Yuchi"},
+ {"yud", NULL, NULL, NULL, "Judeo-Tripolitanian Arabic"},
+ {"yue", NULL, NULL, NULL, "Yue Chinese"},
+ {"yuf", NULL, NULL, NULL, "Havasupai-Walapai-Yavapai"},
+ {"yug", NULL, NULL, NULL, "Yug"},
+ {"yui", NULL, NULL, NULL, "Yurutí"},
+ {"yuj", NULL, NULL, NULL, "Karkar-Yuri"},
+ {"yuk", NULL, NULL, NULL, "Yuki"},
+ {"yul", NULL, NULL, NULL, "Yulu"},
+ {"yum", NULL, NULL, NULL, "Quechan"},
+ {"yun", NULL, NULL, NULL, "Bena (Nigeria)"},
+ {"yup", NULL, NULL, NULL, "Yukpa"},
+ {"yuq", NULL, NULL, NULL, "Yuqui"},
+ {"yur", NULL, NULL, NULL, "Yurok"},
+ {"yut", NULL, NULL, NULL, "Yopno"},
+ {"yuw", NULL, NULL, NULL, "Yau (Morobe Province)"},
+ {"yux", NULL, NULL, NULL, "Southern Yukaghir"},
+ {"yuy", NULL, NULL, NULL, "East Yugur"},
+ {"yuz", NULL, NULL, NULL, "Yuracare"},
+ {"yva", NULL, NULL, NULL, "Yawa"},
+ {"yvt", NULL, NULL, NULL, "Yavitero"},
+ {"ywa", NULL, NULL, NULL, "Kalou"},
+ {"ywg", NULL, NULL, NULL, "Yinhawangka"},
+ {"ywl", NULL, NULL, NULL, "Western Lalu"},
+ {"ywn", NULL, NULL, NULL, "Yawanawa"},
+ {"ywq", NULL, NULL, NULL, "Wuding-Luquan Yi"},
+ {"ywr", NULL, NULL, NULL, "Yawuru"},
+ {"ywt", NULL, NULL, NULL, "Xishanba Lalo"},
+ {"ywu", NULL, NULL, NULL, "Wumeng Nasu"},
+ {"yww", NULL, NULL, NULL, "Yawarawarga"},
+ {"yxa", NULL, NULL, NULL, "Mayawali"},
+ {"yxg", NULL, NULL, NULL, "Yagara"},
+ {"yxl", NULL, NULL, NULL, "Yardliyawarra"},
+ {"yxm", NULL, NULL, NULL, "Yinwum"},
+ {"yxu", NULL, NULL, NULL, "Yuyu"},
+ {"yxy", NULL, NULL, NULL, "Yabula Yabula"},
+ {"yyr", NULL, NULL, NULL, "Yir Yoront"},
+ {"yyu", NULL, NULL, NULL, "Yau (Sandaun Province)"},
+ {"yyz", NULL, NULL, NULL, "Ayizi"},
+ {"yzg", NULL, NULL, NULL, "E'ma Buyang"},
+ {"yzk", NULL, NULL, NULL, "Zokhuo"},
+ {"zaa", NULL, NULL, NULL, "Sierra de Juárez Zapotec"},
+ {"zab", NULL, NULL, NULL, "Western Tlacolula Valley Zapotec"},
+ {"zac", NULL, NULL, NULL, "Ocotlán Zapotec"},
+ {"zad", NULL, NULL, NULL, "Cajonos Zapotec"},
+ {"zae", NULL, NULL, NULL, "Yareni Zapotec"},
+ {"zaf", NULL, NULL, NULL, "Ayoquesco Zapotec"},
+ {"zag", NULL, NULL, NULL, "Zaghawa"},
+ {"zah", NULL, NULL, NULL, "Zangwal"},
+ {"zai", NULL, NULL, NULL, "Isthmus Zapotec"},
+ {"zaj", NULL, NULL, NULL, "Zaramo"},
+ {"zak", NULL, NULL, NULL, "Zanaki"},
+ {"zal", NULL, NULL, NULL, "Zauzou"},
+ {"zam", NULL, NULL, NULL, "Miahuatlán Zapotec"},
+ {"zao", NULL, NULL, NULL, "Ozolotepec Zapotec"},
+ {"zap", "zap", "zap", NULL, "Zapotec"},
+ {"zaq", NULL, NULL, NULL, "Aloápam Zapotec"},
+ {"zar", NULL, NULL, NULL, "Rincón Zapotec"},
+ {"zas", NULL, NULL, NULL, "Santo Domingo Albarradas Zapotec"},
+ {"zat", NULL, NULL, NULL, "Tabaa Zapotec"},
+ {"zau", NULL, NULL, NULL, "Zangskari"},
+ {"zav", NULL, NULL, NULL, "Yatzachi Zapotec"},
+ {"zaw", NULL, NULL, NULL, "Mitla Zapotec"},
+ {"zax", NULL, NULL, NULL, "Xadani Zapotec"},
+ {"zay", NULL, NULL, NULL, "Zayse-Zergulla"},
+ {"zaz", NULL, NULL, NULL, "Zari"},
+ {"zba", NULL, NULL, NULL, "Balaibalan"},
+ {"zbc", NULL, NULL, NULL, "Central Berawan"},
+ {"zbe", NULL, NULL, NULL, "East Berawan"},
+ {"zbl", "zbl", "zbl", NULL, "Blissymbols"},
+ {"zbt", NULL, NULL, NULL, "Batui"},
+ {"zbu", NULL, NULL, NULL, "Bu (Bauchi State)"},
+ {"zbw", NULL, NULL, NULL, "West Berawan"},
+ {"zca", NULL, NULL, NULL, "Coatecas Altas Zapotec"},
+ {"zch", NULL, NULL, NULL, "Central Hongshuihe Zhuang"},
+ {"zdj", NULL, NULL, NULL, "Ngazidja Comorian"},
+ {"zea", NULL, NULL, NULL, "Zeeuws"},
+ {"zeg", NULL, NULL, NULL, "Zenag"},
+ {"zeh", NULL, NULL, NULL, "Eastern Hongshuihe Zhuang"},
+ {"zen", "zen", "zen", NULL, "Zenaga"},
+ {"zga", NULL, NULL, NULL, "Kinga"},
+ {"zgb", NULL, NULL, NULL, "Guibei Zhuang"},
+ {"zgh", "zgh", "zgh", NULL, "Standard Moroccan Tamazight"},
+ {"zgm", NULL, NULL, NULL, "Minz Zhuang"},
+ {"zgn", NULL, NULL, NULL, "Guibian Zhuang"},
+ {"zgr", NULL, NULL, NULL, "Magori"},
+ {"zha", "zha", "zha", "za", "Zhuang"},
+ {"zhb", NULL, NULL, NULL, "Zhaba"},
+ {"zhd", NULL, NULL, NULL, "Dai Zhuang"},
+ {"zhi", NULL, NULL, NULL, "Zhire"},
+ {"zhn", NULL, NULL, NULL, "Nong Zhuang"},
+ {"zho", "chi", "zho", "zh", "Chinese"},
+ {"zhw", NULL, NULL, NULL, "Zhoa"},
+ {"zia", NULL, NULL, NULL, "Zia"},
+ {"zib", NULL, NULL, NULL, "Zimbabwe Sign Language"},
+ {"zik", NULL, NULL, NULL, "Zimakani"},
+ {"zil", NULL, NULL, NULL, "Zialo"},
+ {"zim", NULL, NULL, NULL, "Mesme"},
+ {"zin", NULL, NULL, NULL, "Zinza"},
+ {"ziw", NULL, NULL, NULL, "Zigula"},
+ {"ziz", NULL, NULL, NULL, "Zizilivakan"},
+ {"zka", NULL, NULL, NULL, "Kaimbulawa"},
+ {"zkb", NULL, NULL, NULL, "Koibal"},
+ {"zkd", NULL, NULL, NULL, "Kadu"},
+ {"zkg", NULL, NULL, NULL, "Koguryo"},
+ {"zkh", NULL, NULL, NULL, "Khorezmian"},
+ {"zkk", NULL, NULL, NULL, "Karankawa"},
+ {"zkn", NULL, NULL, NULL, "Kanan"},
+ {"zko", NULL, NULL, NULL, "Kott"},
+ {"zkp", NULL, NULL, NULL, "São Paulo Kaingáng"},
+ {"zkr", NULL, NULL, NULL, "Zakhring"},
+ {"zkt", NULL, NULL, NULL, "Kitan"},
+ {"zku", NULL, NULL, NULL, "Kaurna"},
+ {"zkv", NULL, NULL, NULL, "Krevinian"},
+ {"zkz", NULL, NULL, NULL, "Khazar"},
+ {"zla", NULL, NULL, NULL, "Zula"},
+ {"zlj", NULL, NULL, NULL, "Liujiang Zhuang"},
+ {"zlm", NULL, NULL, NULL, "Malay (individual language)"},
+ {"zln", NULL, NULL, NULL, "Lianshan Zhuang"},
+ {"zlq", NULL, NULL, NULL, "Liuqian Zhuang"},
+ {"zma", NULL, NULL, NULL, "Manda (Australia)"},
+ {"zmb", NULL, NULL, NULL, "Zimba"},
+ {"zmc", NULL, NULL, NULL, "Margany"},
+ {"zmd", NULL, NULL, NULL, "Maridan"},
+ {"zme", NULL, NULL, NULL, "Mangerr"},
+ {"zmf", NULL, NULL, NULL, "Mfinu"},
+ {"zmg", NULL, NULL, NULL, "Marti Ke"},
+ {"zmh", NULL, NULL, NULL, "Makolkol"},
+ {"zmi", NULL, NULL, NULL, "Negeri Sembilan Malay"},
+ {"zmj", NULL, NULL, NULL, "Maridjabin"},
+ {"zmk", NULL, NULL, NULL, "Mandandanyi"},
+ {"zml", NULL, NULL, NULL, "Matngala"},
+ {"zmm", NULL, NULL, NULL, "Marimanindji"},
+ {"zmn", NULL, NULL, NULL, "Mbangwe"},
+ {"zmo", NULL, NULL, NULL, "Molo"},
+ {"zmp", NULL, NULL, NULL, "Mpuono"},
+ {"zmq", NULL, NULL, NULL, "Mituku"},
+ {"zmr", NULL, NULL, NULL, "Maranunggu"},
+ {"zms", NULL, NULL, NULL, "Mbesa"},
+ {"zmt", NULL, NULL, NULL, "Maringarr"},
+ {"zmu", NULL, NULL, NULL, "Muruwari"},
+ {"zmv", NULL, NULL, NULL, "Mbariman-Gudhinma"},
+ {"zmw", NULL, NULL, NULL, "Mbo (Democratic Republic of Congo)"},
+ {"zmx", NULL, NULL, NULL, "Bomitaba"},
+ {"zmy", NULL, NULL, NULL, "Mariyedi"},
+ {"zmz", NULL, NULL, NULL, "Mbandja"},
+ {"zna", NULL, NULL, NULL, "Zan Gula"},
+ {"zne", NULL, NULL, NULL, "Zande (individual language)"},
+ {"zng", NULL, NULL, NULL, "Mang"},
+ {"znk", NULL, NULL, NULL, "Manangkari"},
+ {"zns", NULL, NULL, NULL, "Mangas"},
+ {"zoc", NULL, NULL, NULL, "Copainalá Zoque"},
+ {"zoh", NULL, NULL, NULL, "Chimalapa Zoque"},
+ {"zom", NULL, NULL, NULL, "Zou"},
+ {"zoo", NULL, NULL, NULL, "Asunción Mixtepec Zapotec"},
+ {"zoq", NULL, NULL, NULL, "Tabasco Zoque"},
+ {"zor", NULL, NULL, NULL, "Rayón Zoque"},
+ {"zos", NULL, NULL, NULL, "Francisco León Zoque"},
+ {"zpa", NULL, NULL, NULL, "Lachiguiri Zapotec"},
+ {"zpb", NULL, NULL, NULL, "Yautepec Zapotec"},
+ {"zpc", NULL, NULL, NULL, "Choapan Zapotec"},
+ {"zpd", NULL, NULL, NULL, "Southeastern Ixtlán Zapotec"},
+ {"zpe", NULL, NULL, NULL, "Petapa Zapotec"},
+ {"zpf", NULL, NULL, NULL, "San Pedro Quiatoni Zapotec"},
+ {"zpg", NULL, NULL, NULL, "Guevea De Humboldt Zapotec"},
+ {"zph", NULL, NULL, NULL, "Totomachapan Zapotec"},
+ {"zpi", NULL, NULL, NULL, "Santa María Quiegolani Zapotec"},
+ {"zpj", NULL, NULL, NULL, "Quiavicuzas Zapotec"},
+ {"zpk", NULL, NULL, NULL, "Tlacolulita Zapotec"},
+ {"zpl", NULL, NULL, NULL, "Lachixío Zapotec"},
+ {"zpm", NULL, NULL, NULL, "Mixtepec Zapotec"},
+ {"zpn", NULL, NULL, NULL, "Santa Inés Yatzechi Zapotec"},
+ {"zpo", NULL, NULL, NULL, "Amatlán Zapotec"},
+ {"zpp", NULL, NULL, NULL, "El Alto Zapotec"},
+ {"zpq", NULL, NULL, NULL, "Zoogocho Zapotec"},
+ {"zpr", NULL, NULL, NULL, "Santiago Xanica Zapotec"},
+ {"zps", NULL, NULL, NULL, "Coatlán Zapotec"},
+ {"zpt", NULL, NULL, NULL, "San Vicente Coatlán Zapotec"},
+ {"zpu", NULL, NULL, NULL, "Yalálag Zapotec"},
+ {"zpv", NULL, NULL, NULL, "Chichicapan Zapotec"},
+ {"zpw", NULL, NULL, NULL, "Zaniza Zapotec"},
+ {"zpx", NULL, NULL, NULL, "San Baltazar Loxicha Zapotec"},
+ {"zpy", NULL, NULL, NULL, "Mazaltepec Zapotec"},
+ {"zpz", NULL, NULL, NULL, "Texmelucan Zapotec"},
+ {"zqe", NULL, NULL, NULL, "Qiubei Zhuang"},
+ {"zra", NULL, NULL, NULL, "Kara (Korea)"},
+ {"zrg", NULL, NULL, NULL, "Mirgan"},
+ {"zrn", NULL, NULL, NULL, "Zerenkel"},
+ {"zro", NULL, NULL, NULL, "Záparo"},
+ {"zrp", NULL, NULL, NULL, "Zarphatic"},
+ {"zrs", NULL, NULL, NULL, "Mairasi"},
+ {"zsa", NULL, NULL, NULL, "Sarasira"},
+ {"zsk", NULL, NULL, NULL, "Kaskean"},
+ {"zsl", NULL, NULL, NULL, "Zambian Sign Language"},
+ {"zsm", NULL, NULL, NULL, "Standard Malay"},
+ {"zsr", NULL, NULL, NULL, "Southern Rincon Zapotec"},
+ {"zsu", NULL, NULL, NULL, "Sukurum"},
+ {"zte", NULL, NULL, NULL, "Elotepec Zapotec"},
+ {"ztg", NULL, NULL, NULL, "Xanaguía Zapotec"},
+ {"ztl", NULL, NULL, NULL, "Lapaguía-Guivini Zapotec"},
+ {"ztm", NULL, NULL, NULL, "San Agustín Mixtepec Zapotec"},
+ {"ztn", NULL, NULL, NULL, "Santa Catarina Albarradas Zapotec"},
+ {"ztp", NULL, NULL, NULL, "Loxicha Zapotec"},
+ {"ztq", NULL, NULL, NULL, "Quioquitani-Quierí Zapotec"},
+ {"zts", NULL, NULL, NULL, "Tilquiapan Zapotec"},
+ {"ztt", NULL, NULL, NULL, "Tejalapan Zapotec"},
+ {"ztu", NULL, NULL, NULL, "Güilá Zapotec"},
+ {"ztx", NULL, NULL, NULL, "Zaachila Zapotec"},
+ {"zty", NULL, NULL, NULL, "Yatee Zapotec"},
+ {"zua", NULL, NULL, NULL, "Zeem"},
+ {"zuh", NULL, NULL, NULL, "Tokano"},
+ {"zul", "zul", "zul", "zu", "Zulu"},
+ {"zum", NULL, NULL, NULL, "Kumzari"},
+ {"zun", "zun", "zun", NULL, "Zuni"},
+ {"zuy", NULL, NULL, NULL, "Zumaya"},
+ {"zwa", NULL, NULL, NULL, "Zay"},
+ {"zxx", "zxx", "zxx", NULL, "No linguistic content"},
+ {"zyb", NULL, NULL, NULL, "Yongbei Zhuang"},
+ {"zyg", NULL, NULL, NULL, "Yang Zhuang"},
+ {"zyj", NULL, NULL, NULL, "Youjiang Zhuang"},
+ {"zyn", NULL, NULL, NULL, "Yongnan Zhuang"},
+ {"zyp", NULL, NULL, NULL, "Zyphe Chin"},
+ {"zza", "zza", "zza", NULL, "Zaza"},
+ {"zzj", NULL, NULL, NULL, "Zuojiang Zhuang"},
+};
+
diff --git a/crengine/src/locale_data/iso-639-3_data.h b/crengine/src/locale_data/iso-639-3_data.h
new file mode 100644
index 0000000000..be18eb9f09
--- /dev/null
+++ b/crengine/src/locale_data/iso-639-3_data.h
@@ -0,0 +1,47 @@
+// ISO-639-3 Language registry.
+// License: Public Domain
+// This file is autogenerated.
+// Based on data from https://iso639-3.sil.org/code_tables/download_tables
+// file: iso-639-3.tab
+// url: https://iso639-3.sil.org/sites/iso639-3/files/downloads/iso-639-3.tab
+
+#ifndef ISO639_3_DATA_H
+#define ISO639_3_DATA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ISO639_3_DATA_SZ 7893
+#define ISO639_3_UND_INDEX 6780
+
+struct iso639_3_rec {
+ /**
+ * The three-letter 639-3 identifier.
+ */
+ const char* id;
+ /**
+ * Equivalent 639-2 identifier of the bibliographic application code set, if there is one.
+ */
+ const char* part2b;
+ /**
+ * Equivalent 639-2 identifier of the terminology application code set, if there is one.
+ */
+ const char* part2t;
+ /**
+ * Equivalent 639-1 identifier, if there is one.
+ */
+ const char* part1;
+ /**
+ * Reference language name.
+ */
+ const char* ref_name;
+};
+
+extern const struct iso639_3_rec iso639_3_data[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ISO639_3_DATA_H
diff --git a/crengine/src/lvfont/lvfreetypeface.cpp b/crengine/src/lvfont/lvfreetypeface.cpp
index 7ed50fba98..ea7beabed2 100644
--- a/crengine/src/lvfont/lvfreetypeface.cpp
+++ b/crengine/src/lvfont/lvfreetypeface.cpp
@@ -28,8 +28,11 @@
#include "gammatbl.h"
+#if USE_LOCALE_DATA==1
// fc-lang database
-#include "fc-lang-cat.h"
+#include "fc-lang-data.h"
+#include "crlocaledata.h"
+#endif
#if COLOR_BACKBUFFER == 0
//#define USE_BITMAP_FONT
@@ -1597,24 +1600,34 @@ bool LVFreeTypeFace::getGlyphExtraMetric( glyph_extra_metric_t metric, lUInt32 c
return false;
}
-bool LVFreeTypeFace::checkFontLangCompat(const lString8 &langCode) {
-#define FC_LANG_START_INTERVAL_CODE 2
+font_lang_compat LVFreeTypeFace::checkFontLangCompat(const lString8 &langCode) {
+ font_lang_compat res = font_lang_compat_invalid_tag;
+#if USE_LOCALE_DATA==1
+#define FC_LANG_START_INTERVAL_CODE 0xF0F0FFFF
+ // find corresponding fc_lang record
+ CRLocaleData loc(langCode);
+ const struct fc_lang_rec* rec = NULL;
+ if (loc.isValid()) {
+ const struct fc_lang_rec* ptr = get_fc_lang_data();
+ int max_match = 0;
+ for (unsigned int i = 0; i < get_fc_lang_data_size(); i++) {
+ CRLocaleData fc_loc(ptr->lang_code);
+ int match = loc.calcMatch(fc_loc);
+ if (match > max_match) {
+ max_match = match;
+ rec = ptr;
+ }
+ ptr++;
+ }
+ }
+ // Check compatibility
bool fullSupport = false;
bool partialSupport = false;
- struct fc_lang_catalog *lang_ptr = fc_lang_cat;
- unsigned int i;
- bool found = false;
- for (i = 0; i < fc_lang_cat_sz; i++) {
- if (langCode.compare(lang_ptr->lang_code) == 0) {
- found = true;
- break;
- }
- lang_ptr++;
- }
- if (found) {
+ if (rec) {
unsigned int codePoint = 0;
unsigned int tmp;
unsigned int first, second = 0;
+ unsigned int i;
bool inRange = false;
FT_UInt glyphIndex;
fullSupport = true;
@@ -1623,22 +1636,20 @@ bool LVFreeTypeFace::checkFontLangCompat(const lString8 &langCode) {
if (inRange && codePoint < second) {
codePoint++;
} else {
- if (i >= lang_ptr->char_set_sz)
+ if (i >= rec->char_set_sz)
break;
- tmp = lang_ptr->char_set[i];
- if (FC_LANG_START_INTERVAL_CODE == tmp) // code of start interval
- {
- if (i + 2 < lang_ptr->char_set_sz) {
+ tmp = rec->char_set[i];
+ if (FC_LANG_START_INTERVAL_CODE == tmp) { // code of start interval
+ if (i + 2 < rec->char_set_sz) {
i++;
- first = lang_ptr->char_set[i];
+ first = rec->char_set[i];
i++;
- second = lang_ptr->char_set[i];
+ second = rec->char_set[i];
inRange = true;
codePoint = first;
i++;
} else {
// broken language char set
- //qDebug() << "broken language char set";
fullSupport = false;
break;
}
@@ -1656,18 +1667,23 @@ bool LVFreeTypeFace::checkFontLangCompat(const lString8 &langCode) {
partialSupport = true;
}
}
- if (fullSupport)
+ if (fullSupport) {
+ res = font_lang_compat_full;
CRLog::debug("checkFontLangCompat(): Font have full support of language %s",
langCode.c_str());
- else if (partialSupport)
+ } else if (partialSupport) {
+ res = font_lang_compat_partial;
CRLog::debug("checkFontLangCompat(): Font have partial support of language %s",
langCode.c_str());
- else
+ } else {
+ res = font_lang_compat_none;
CRLog::debug("checkFontLangCompat(): Font DON'T have support of language %s",
langCode.c_str());
+ }
} else
CRLog::debug("checkFontLangCompat(): Unsupported language code: %s", langCode.c_str());
- return fullSupport;
+#endif
+ return res;
}
lUInt16 LVFreeTypeFace::measureText(const lChar32 *text,
diff --git a/crengine/src/lvfont/lvfreetypeface.h b/crengine/src/lvfont/lvfreetypeface.h
index 78de4b6707..42fbb0a5ec 100644
--- a/crengine/src/lvfont/lvfreetypeface.h
+++ b/crengine/src/lvfont/lvfreetypeface.h
@@ -278,7 +278,7 @@ class LVFreeTypeFace : public LVFont {
* @param langCode language code, for example, "en" - English, "ru" - Russian
* @return true if font contains all glyphs for given language, false otherwise.
*/
- virtual bool checkFontLangCompat(const lString8 &langCode);
+ virtual font_lang_compat checkFontLangCompat(const lString8 &langCode);
/** \brief measure text
\param text is text string pointer
diff --git a/crengine/src/lvfont/lvfreetypefontman.cpp b/crengine/src/lvfont/lvfreetypefontman.cpp
index 4c837fb98b..57d6f577e4 100644
--- a/crengine/src/lvfont/lvfreetypefontman.cpp
+++ b/crengine/src/lvfont/lvfreetypefontman.cpp
@@ -965,13 +965,13 @@ bool LVFreeTypeFontManager::checkCharSet(FT_Face face) {
return true;
}
-bool LVFreeTypeFontManager::checkFontLangCompat(const lString8 &typeface, const lString8 &langCode) {
- LVFontRef fntRef = GetFont(10, 400, false, css_ff_inherit, typeface, -1);
+font_lang_compat LVFreeTypeFontManager::checkFontLangCompat(const lString8 &typeface, const lString8 &langCode) {
+ LVFontRef fntRef = GetFont(-1, 400, false, css_ff_inherit, typeface, -1);
if (!fntRef.isNull())
return fntRef->checkFontLangCompat(langCode);
else
CRLog::debug("checkFontLangCompat(): typeface not found: %s", typeface.c_str());
- return true;
+ return font_lang_compat_invalid_tag;
}
/*
diff --git a/crengine/src/lvfont/lvfreetypefontman.h b/crengine/src/lvfont/lvfreetypefontman.h
index 79e3a79802..adbc28cd23 100644
--- a/crengine/src/lvfont/lvfreetypefontman.h
+++ b/crengine/src/lvfont/lvfreetypefontman.h
@@ -122,7 +122,7 @@ class LVFreeTypeFontManager : public LVFontManager {
bool checkCharSet(FT_Face face);
- virtual bool checkFontLangCompat(const lString8 &typeface, const lString8 &langCode);
+ virtual font_lang_compat checkFontLangCompat(const lString8 &typeface, const lString8 &langCode);
//bool isMonoSpaced( FT_Face face );
/// registers document font
diff --git a/crengine/src/lvstring.cpp b/crengine/src/lvstring.cpp
index a1e632c6b0..9b2b5313cd 100644
--- a/crengine/src/lvstring.cpp
+++ b/crengine/src/lvstring.cpp
@@ -5936,6 +5936,16 @@ lString8 & lString8::replace(size_type p0, size_type n0, const lString8 & str) {
return *this;
}
+lString8 & lString8::replace(value_type before, value_type after) {
+ value_type* ptr = modify();
+ while (*ptr) {
+ if (*ptr == before)
+ *ptr = after;
+ ++ptr;
+ }
+ return *this;
+}
+
lString32 & lString32::replace(size_type p0, size_type n0, const lString32 & str)
{
lString32 s1 = substr( 0, p0 );