diff --git a/android/app/CMakeLists.txt b/android/app/CMakeLists.txt index 9ad36c8046..9d41e596af 100644 --- a/android/app/CMakeLists.txt +++ b/android/app/CMakeLists.txt @@ -13,7 +13,6 @@ set(CR3_ROOT ${PROJECT_SOURCE_DIR}/../..) include(${CR3_ROOT}/thirdparty_repo/repo_srcdirs.cmake) include_directories(${CR3_ROOT}/crengine/include) -include_directories(${CR3_ROOT}/crengine/fc-lang) include_directories(${CR3_ROOT}/thirdparty/${REPO_LIBPNG_SRCDIR}) include_directories(thirdparty_libs/libpng/lib) include_directories(${CR3_ROOT}/thirdparty/${REPO_FREETYPE_SRCDIR}) @@ -155,7 +154,8 @@ set(CRENGINE_SRC_FILES ${CR3_ROOT}/crengine/src/lvxml/lvhtmlparser.cpp ${CR3_ROOT}/crengine/src/lvxml/fb2coverpageparsercallback.cpp ${CR3_ROOT}/crengine/src/lvxml/lvxmlutils.cpp - ${CR3_ROOT}/crengine/fc-lang/fc-lang-cat.c + ${CR3_ROOT}/crengine/src/locale_data/fc-lang-data.c + ${CR3_ROOT}/crengine/src/locale_data/crlocaledata.cpp ) # ${CR3_ROOT}/crengine/src/cri18n.cpp # ${CR3_ROOT}/crengine/src/crgui.cpp diff --git a/android/app/build.gradle b/android/app/build.gradle index 8e21813053..043622cb15 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -10,7 +10,7 @@ android { // for compatibility with ABI versioning of split apk (see below). versionCode 32540 versionName "3.2.54-1" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_static" @@ -165,7 +165,5 @@ dependencies { implementation project(path: ':eink-onyx-reflections') testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support:support-annotations:28.0.0' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + androidTestImplementation 'androidx.test:runner:1.4.0' } diff --git a/android/app/src/androidTest/AndroidManifest.xml b/android/app/src/androidTest/AndroidManifest.xml index 9ff0d4b8d8..38705a4121 100644 --- a/android/app/src/androidTest/AndroidManifest.xml +++ b/android/app/src/androidTest/AndroidManifest.xml @@ -4,6 +4,8 @@ package="org.coolreader" android:installLocation="auto"> - + diff --git a/android/app/src/androidTest/java/org/coolreader/crengine/EngineTests.java b/android/app/src/androidTest/java/org/coolreader/crengine/EngineTests.java new file mode 100644 index 0000000000..c1a5522206 --- /dev/null +++ b/android/app/src/androidTest/java/org/coolreader/crengine/EngineTests.java @@ -0,0 +1,123 @@ +package org.coolreader.crengine; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +public class EngineTests { + @Test + public void testGetHumanReadableLocaleName() + { + // English codes variants + String localeName = Engine.getHumanReadableLocaleName("English"); + assertEquals("English", localeName); + + localeName = Engine.getHumanReadableLocaleName("english"); + assertEquals("English", localeName); + + localeName = Engine.getHumanReadableLocaleName("eng"); + assertEquals("English", localeName); + + localeName = Engine.getHumanReadableLocaleName("Eng"); + assertEquals("English", localeName); + + localeName = Engine.getHumanReadableLocaleName("en-US"); + assertEquals("English (USA)", localeName); + + localeName = Engine.getHumanReadableLocaleName("eng-US"); + assertEquals("English (USA)", localeName); + + localeName = Engine.getHumanReadableLocaleName("en-USA"); + assertEquals("English (USA)", localeName); + + localeName = Engine.getHumanReadableLocaleName("eng-USA"); + assertEquals("English (USA)", localeName); + + localeName = Engine.getHumanReadableLocaleName("en-GB"); + assertEquals("English (GBR)", localeName); + + localeName = Engine.getHumanReadableLocaleName("eng-GB"); + assertEquals("English (GBR)", localeName); + + localeName = Engine.getHumanReadableLocaleName("en-GBR"); + assertEquals("English (GBR)", localeName); + + localeName = Engine.getHumanReadableLocaleName("eng-GBR"); + assertEquals("English (GBR)", localeName); + + localeName = Engine.getHumanReadableLocaleName("en_gb"); + assertEquals("English (GBR)", localeName); + + localeName = Engine.getHumanReadableLocaleName("en"); + assertEquals("English", localeName); + + // Russian codes variants + localeName = Engine.getHumanReadableLocaleName("Russian"); + assertEquals("Russian", localeName); + + localeName = Engine.getHumanReadableLocaleName("russian"); + assertEquals("Russian", localeName); + + localeName = Engine.getHumanReadableLocaleName("Rus"); + assertEquals("Russian", localeName); + + localeName = Engine.getHumanReadableLocaleName("rus"); + assertEquals("Russian", localeName); + + localeName = Engine.getHumanReadableLocaleName("ru-RU"); + assertEquals("Russian (RUS)", localeName); + + localeName = Engine.getHumanReadableLocaleName("rus-RU"); + assertEquals("Russian (RUS)", localeName); + + localeName = Engine.getHumanReadableLocaleName("ru-RUS"); + assertEquals("Russian (RUS)", localeName); + + localeName = Engine.getHumanReadableLocaleName("rus-RUS"); + assertEquals("Russian (RUS)", localeName); + + localeName = Engine.getHumanReadableLocaleName("ru_ru"); + assertEquals("Russian (RUS)", localeName); + + localeName = Engine.getHumanReadableLocaleName("ru"); + assertEquals("Russian", localeName); + + // Chinese variants + localeName = Engine.getHumanReadableLocaleName("zh-CN"); + assertEquals("Chinese (CHN)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zho-CN"); + assertEquals("Chinese (CHN)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zh-CHN"); + assertEquals("Chinese (CHN)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zho-CHN"); + assertEquals("Chinese (CHN)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zh-HK"); + assertEquals("Chinese (HKG)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zho-HK"); + assertEquals("Chinese (HKG)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zh-HKG"); + assertEquals("Chinese (HKG)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zho-HKG"); + assertEquals("Chinese (HKG)", localeName); + + localeName = Engine.getHumanReadableLocaleName("zh_hk"); + assertEquals("Chinese (HKG)", localeName); + + // invalid langTag + localeName = Engine.getHumanReadableLocaleName("abcd"); + assertNull(localeName); + } +} diff --git a/android/app/src/androidTest/java/org/coolreader/crengine/FindFcLangCodeTest.java b/android/app/src/androidTest/java/org/coolreader/crengine/FindFcLangCodeTest.java deleted file mode 100644 index 90c4ecc443..0000000000 --- a/android/app/src/androidTest/java/org/coolreader/crengine/FindFcLangCodeTest.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.coolreader.crengine; - -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class FindFcLangCodeTest { - @Test - public void testFindCompatibleFcLangCode() - { - // English codes variants - String langCode = Engine.findCompatibleFcLangCode("English"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("english"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("eng"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("Eng"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en-US"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("eng-US"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en-USA"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("eng-USA"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en-GB"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("eng-GB"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en-GBR"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("eng-GBR"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en_gb"); - assertEquals("en", langCode); - - langCode = Engine.findCompatibleFcLangCode("en"); - assertEquals("en", langCode); - - // Russian codes variants - langCode = Engine.findCompatibleFcLangCode("Russian"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("russian"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("Rus"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("rus"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("ru-RU"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("rus-RU"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("ru-RUS"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("rus-RUS"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("ru_ru"); - assertEquals("ru", langCode); - - langCode = Engine.findCompatibleFcLangCode("ru"); - assertEquals("ru", langCode); - - // Chinese variants - langCode = Engine.findCompatibleFcLangCode("zh-CN"); - assertEquals("zh_cn", langCode); - - langCode = Engine.findCompatibleFcLangCode("zho-CN"); - assertEquals("zh_cn", langCode); - - langCode = Engine.findCompatibleFcLangCode("zh-CHN"); - assertEquals("zh_cn", langCode); - - langCode = Engine.findCompatibleFcLangCode("zho-CHN"); - assertEquals("zh_cn", langCode); - - langCode = Engine.findCompatibleFcLangCode("zh-HK"); - assertEquals("zh_hk", langCode); - - langCode = Engine.findCompatibleFcLangCode("zho-HK"); - assertEquals("zh_hk", langCode); - - langCode = Engine.findCompatibleFcLangCode("zh-HKG"); - assertEquals("zh_hk", langCode); - - langCode = Engine.findCompatibleFcLangCode("zho-HKG"); - assertEquals("zh_hk", langCode); - - langCode = Engine.findCompatibleFcLangCode("zh_hk"); - assertEquals("zh_hk", langCode); - - // invalid variant - langCode = Engine.findCompatibleFcLangCode("abcd"); - assertNull(langCode); - } -} diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 366cf39b58..53a5e93c1f 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -26,7 +26,6 @@ include $(CR3_ROOT)/thirdparty_repo/repo_srcdirs.mk LOCAL_C_INCLUDES := \ $(CR3_ROOT)/crengine/include \ - $(CR3_ROOT)/crengine/fc-lang \ $(CR3_ROOT)/thirdparty/$(REPO_LIBPNG_SRCDIR) \ $(CR3_ROOT)/thirdparty/$(REPO_FREETYPE_SRCDIR)/include \ $(CR3_ROOT)/thirdparty/$(REPO_FREETYPE_SRCDIR) \ @@ -150,7 +149,8 @@ CRENGINE_SRC_FILES := \ ../../crengine/src/lvxml/lvhtmlparser.cpp \ ../../crengine/src/lvxml/fb2coverpageparsercallback.cpp \ ../../crengine/src/lvxml/lvxmlutils.cpp \ - ../../crengine/fc-lang/fc-lang-cat.c + ../../crengine/src/locale_data/fc-lang-data.c \ + ../../crengine/src/locale_data/crlocaledata.cpp # ../../crengine/src/cri18n.cpp # ../../crengine/src/crgui.cpp \ diff --git a/android/jni/cr3engine.cpp b/android/jni/cr3engine.cpp index 157855021c..dfc10876e7 100644 --- a/android/jni/cr3engine.cpp +++ b/android/jni/cr3engine.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "org_coolreader_crengine_Engine.h" #include "org_coolreader_crengine_DocView.h" @@ -20,7 +21,6 @@ #include "../../crengine/include/crengine.h" #include "../../crengine/include/epubfmt.h" #include "../../crengine/include/pdbfmt.h" -#include "../../crengine/include/lvopc.h" #include "../../crengine/include/fb3fmt.h" #include "../../crengine/include/docxfmt.h" #include "../../crengine/include/odtfmt.h" @@ -28,14 +28,12 @@ #include "../../crengine/include/lvxmlparser.h" #include "../../crengine/include/lvxmlutils.h" - #include <../../crengine/include/fb2def.h> -#include "fc-lang-cat.h" - #define XS_IMPLEMENT_SCHEME 1 #include <../../crengine/include/fb2def.h> -#include + +#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 );