diff --git a/.github/workflows/data-update.yml b/.github/workflows/data-update.yml index d20cd6c63..281340477 100644 --- a/.github/workflows/data-update.yml +++ b/.github/workflows/data-update.yml @@ -17,7 +17,7 @@ jobs: - update_currencies.py - update_external_bangs.py - update_firefox_version.py - - update_languages.py + - update_engine_data.py - update_wikidata_units.py - update_engine_descriptions.py steps: diff --git a/manage b/manage index 414d9cff7..90d54bca4 100755 --- a/manage +++ b/manage @@ -57,7 +57,7 @@ PYLINT_SEARXNG_DISABLE_OPTION="\ I,C,R,\ W0105,W0212,W0511,W0603,W0613,W0621,W0702,W0703,W1401,\ E1136" -PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES="supported_properties,supported_languages,language_aliases,logger,categories" +PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES="engine_data,supported_languages,language_aliases,logger,categories" PYLINT_OPTIONS="-m pylint -j 0 --rcfile .pylintrc" help() { @@ -698,7 +698,7 @@ test.pyright() { | grep -v '/engines/.*.py.* - warning: "logger" is not defined'\ | grep -v '/plugins/.*.py.* - error: "logger" is not defined'\ | grep -v '/engines/.*.py.* - warning: "supported_languages" is not defined' \ - | grep -v '/engines/.*.py.* - warning: "supported_properties" is not defined' \ + | grep -v '/engines/.*.py.* - warning: "engine_data" is not defined' \ | grep -v '/engines/.*.py.* - warning: "language_aliases" is not defined' \ | grep -v '/engines/.*.py.* - warning: "categories" is not defined' dump_return $? diff --git a/searx/autocomplete.py b/searx/autocomplete.py index 5ecd54176..85b9ce391 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -15,9 +15,6 @@ from searx.network import get as http_get from searx.exceptions import SearxEngineResponseException from searx.engines import engines -# a _fetch_supported_properites() for XPath engines isn't available right now -# _brave = ENGINES_LANGUAGES['brave'].keys() - def get(*args, **kwargs): if 'timeout' not in kwargs: diff --git a/searx/data/__init__.py b/searx/data/__init__.py index 424440a71..dea31fd6e 100644 --- a/searx/data/__init__.py +++ b/searx/data/__init__.py @@ -7,7 +7,7 @@ """ __all__ = [ - 'ENGINES_LANGUAGES', + 'ENGINES_DATAS', 'CURRENCIES', 'USER_AGENTS', 'EXTERNAL_URLS', @@ -42,7 +42,7 @@ def ahmia_blacklist_loader(): return f.read().split() -ENGINES_LANGUAGES = _load('engines_languages.json') +ENGINES_DATAS = _load('engines_datas.json') CURRENCIES = _load('currencies.json') USER_AGENTS = _load('useragents.json') EXTERNAL_URLS = _load('external_urls.json') diff --git a/searx/data/engines_datas.json b/searx/data/engines_datas.json new file mode 100644 index 000000000..0999545b4 --- /dev/null +++ b/searx/data/engines_datas.json @@ -0,0 +1,4351 @@ +{ + "bing": { + "data_type": "supported_languages", + "languages": [ + "af", + "am", + "ar", + "as", + "az-latn", + "be", + "bg", + "bn", + "bs-latn", + "ca", + "ca-es-valencia", + "chr-cher", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fa", + "fi", + "fil", + "fr", + "ga", + "gd", + "gl", + "gu", + "ha-latn", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "ig", + "is", + "it", + "ja", + "ka", + "kk", + "km", + "kn", + "ko", + "kok", + "ku-arab", + "ky", + "lb", + "lo", + "lt", + "lv", + "mi", + "mk", + "ml", + "mn-Cyrl-MN", + "mr", + "ms", + "mt", + "nb", + "ne", + "nl", + "nn", + "nso", + "or", + "pa-arab", + "pa-guru", + "pl", + "prs", + "pt-BR", + "pt-PT", + "quc", + "quz", + "ro", + "ru", + "rw", + "sd-arab", + "si", + "sk", + "sl", + "sq", + "sr-cyrl", + "sr-latn", + "sv", + "sw", + "ta", + "te", + "tg-cyrl", + "th", + "ti", + "tk", + "tn", + "tr", + "tt", + "ug", + "uk", + "ur", + "uz-latn", + "vi", + "wo", + "xh", + "yo", + "zh-Hans", + "zh-Hant", + "zu" + ], + "regions": {} + }, + "bing images": { + "data_type": "supported_languages", + "languages": [ + "af", + "am", + "ar", + "as", + "az-latn", + "be", + "bg", + "bn", + "bs-latn", + "ca", + "ca-es-valencia", + "chr-cher", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fa", + "fi", + "fil", + "fr", + "ga", + "gd", + "gl", + "gu", + "ha-latn", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "ig", + "is", + "it", + "ja", + "ka", + "kk", + "km", + "kn", + "ko", + "kok", + "ku-arab", + "ky", + "lb", + "lo", + "lt", + "lv", + "mi", + "mk", + "ml", + "mn-Cyrl-MN", + "mr", + "ms", + "mt", + "nb", + "ne", + "nl", + "nn", + "nso", + "or", + "pa-arab", + "pa-guru", + "pl", + "prs", + "pt-BR", + "pt-PT", + "quc", + "quz", + "ro", + "ru", + "rw", + "sd-arab", + "si", + "sk", + "sl", + "sq", + "sr-cyrl", + "sr-latn", + "sv", + "sw", + "ta", + "te", + "tg-cyrl", + "th", + "ti", + "tk", + "tn", + "tr", + "tt", + "ug", + "uk", + "ur", + "uz-latn", + "vi", + "wo", + "xh", + "yo", + "zh-Hans", + "zh-Hant", + "zu" + ], + "regions": {} + }, + "bing news": { + "data_type": "supported_languages", + "languages": [ + "af", + "am", + "ar", + "as", + "az-latn", + "be", + "bg", + "bn", + "bs-latn", + "ca", + "ca-es-valencia", + "chr-cher", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fa", + "fi", + "fil", + "fr", + "ga", + "gd", + "gl", + "gu", + "ha-latn", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "ig", + "is", + "it", + "ja", + "ka", + "kk", + "km", + "kn", + "ko", + "kok", + "ku-arab", + "ky", + "lb", + "lo", + "lt", + "lv", + "mi", + "mk", + "ml", + "mn-Cyrl-MN", + "mr", + "ms", + "mt", + "nb", + "ne", + "nl", + "nn", + "nso", + "or", + "pa-arab", + "pa-guru", + "pl", + "prs", + "pt-BR", + "pt-PT", + "quc", + "quz", + "ro", + "ru", + "rw", + "sd-arab", + "si", + "sk", + "sl", + "sq", + "sr-cyrl", + "sr-latn", + "sv", + "sw", + "ta", + "te", + "tg-cyrl", + "th", + "ti", + "tk", + "tn", + "tr", + "tt", + "ug", + "uk", + "ur", + "uz-latn", + "vi", + "wo", + "xh", + "yo", + "zh-Hans", + "zh-Hant", + "zu" + ], + "regions": {} + }, + "bing videos": { + "data_type": "supported_languages", + "languages": [ + "af", + "am", + "ar", + "as", + "az-latn", + "be", + "bg", + "bn", + "bs-latn", + "ca", + "ca-es-valencia", + "chr-cher", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fa", + "fi", + "fil", + "fr", + "ga", + "gd", + "gl", + "gu", + "ha-latn", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "ig", + "is", + "it", + "ja", + "ka", + "kk", + "km", + "kn", + "ko", + "kok", + "ku-arab", + "ky", + "lb", + "lo", + "lt", + "lv", + "mi", + "mk", + "ml", + "mn-Cyrl-MN", + "mr", + "ms", + "mt", + "nb", + "ne", + "nl", + "nn", + "nso", + "or", + "pa-arab", + "pa-guru", + "pl", + "prs", + "pt-BR", + "pt-PT", + "quc", + "quz", + "ro", + "ru", + "rw", + "sd-arab", + "si", + "sk", + "sl", + "sq", + "sr-cyrl", + "sr-latn", + "sv", + "sw", + "ta", + "te", + "tg-cyrl", + "th", + "ti", + "tk", + "tn", + "tr", + "tt", + "ug", + "uk", + "ur", + "uz-latn", + "vi", + "wo", + "xh", + "yo", + "zh-Hans", + "zh-Hant", + "zu" + ], + "regions": {} + }, + "dailymotion": { + "data_type": "supported_languages", + "languages": [ + "ar_AA", + "ar_AE", + "ar_EG", + "ar_SA", + "de_AT", + "de_CH", + "de_DE", + "el_GR", + "en_AU", + "en_CA", + "en_EN", + "en_GB", + "en_HK", + "en_IE", + "en_IN", + "en_NG", + "en_PH", + "en_PK", + "en_SG", + "en_US", + "en_ZA", + "es_AR", + "es_ES", + "es_MX", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_CI", + "fr_FR", + "fr_MA", + "fr_SN", + "fr_TN", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "ko_KR", + "ms_MY", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "th_TH", + "tr_TR", + "vi_VN", + "zh_CN", + "zh_TW" + ], + "regions": {} + }, + "ddg definitions": { + "data_type": "supported_languages", + "languages": [ + "ar-XA", + "bg-BG", + "ca-CT", + "ca-ES", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-ID", + "en-IE", + "en-IL", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-PK", + "en-SG", + "en-TH", + "en-UK", + "en-US", + "en-VN", + "en-ZA", + "es-AR", + "es-CL", + "es-CO", + "es-ES", + "es-MX", + "es-PE", + "es-US", + "et-EE", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "hr-HR", + "hu-HU", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "tr-TR", + "tzh-HK", + "tzh-TW", + "uk-UA", + "wt-WT", + "zh-CN" + ], + "regions": {} + }, + "duckduckgo": { + "data_type": "supported_languages", + "languages": [ + "ar-XA", + "bg-BG", + "ca-CT", + "ca-ES", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-ID", + "en-IE", + "en-IL", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-PK", + "en-SG", + "en-TH", + "en-UK", + "en-US", + "en-VN", + "en-ZA", + "es-AR", + "es-CL", + "es-CO", + "es-ES", + "es-MX", + "es-PE", + "es-US", + "et-EE", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "hr-HR", + "hu-HU", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "tr-TR", + "tzh-HK", + "tzh-TW", + "uk-UA", + "wt-WT", + "zh-CN" + ], + "regions": {} + }, + "duckduckgo images": { + "data_type": "supported_languages", + "languages": [ + "ar-XA", + "bg-BG", + "ca-CT", + "ca-ES", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-ID", + "en-IE", + "en-IL", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-PK", + "en-SG", + "en-TH", + "en-UK", + "en-US", + "en-VN", + "en-ZA", + "es-AR", + "es-CL", + "es-CO", + "es-ES", + "es-MX", + "es-PE", + "es-US", + "et-EE", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "hr-HR", + "hu-HU", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "tr-TR", + "tzh-HK", + "tzh-TW", + "uk-UA", + "wt-WT", + "zh-CN" + ], + "regions": {} + }, + "google": { + "data_type": "supported_languages", + "languages": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "catal\u00e0" + }, + "cs": { + "name": "\u010de\u0161tina" + }, + "da": { + "name": "dansk" + }, + "de": { + "name": "Deutsch" + }, + "el": { + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "en": { + "name": "English" + }, + "eo": { + "name": "esperanto" + }, + "es": { + "name": "espa\u00f1ol" + }, + "et": { + "name": "eesti" + }, + "fa": { + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "fi": { + "name": "suomi" + }, + "fr": { + "name": "fran\u00e7ais" + }, + "hi": { + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hr": { + "name": "hrvatski" + }, + "hu": { + "name": "magyar" + }, + "hy": { + "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00edslenska" + }, + "it": { + "name": "italiano" + }, + "iw": { + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "ja": { + "name": "\u65e5\u672c\u8a9e" + }, + "ko": { + "name": "\ud55c\uad6d\uc5b4" + }, + "lt": { + "name": "lietuvi\u0173" + }, + "lv": { + "name": "latvie\u0161u" + }, + "nl": { + "name": "Nederlands" + }, + "no": { + "name": "norsk" + }, + "pl": { + "name": "polski" + }, + "pt": { + "name": "portugu\u00eas" + }, + "ro": { + "name": "rom\u00e2n\u0103" + }, + "ru": { + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "sloven\u010dina" + }, + "sl": { + "name": "sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sv": { + "name": "svenska" + }, + "sw": { + "name": "Kiswahili" + }, + "th": { + "name": "\u0e44\u0e17\u0e22" + }, + "tl": { + "name": "Filipino" + }, + "tr": { + "name": "T\u00fcrk\u00e7e" + }, + "uk": { + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "vi": { + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "zh-CN": { + "name": "\u4e2d\u6587 (\u7b80\u4f53)" + }, + "zh-TW": { + "name": "\u4e2d\u6587 (\u7e41\u9ad4)" + } + }, + "regions": {} + }, + "google images": { + "data_type": "supported_languages", + "languages": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "catal\u00e0" + }, + "cs": { + "name": "\u010de\u0161tina" + }, + "da": { + "name": "dansk" + }, + "de": { + "name": "Deutsch" + }, + "el": { + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "en": { + "name": "English" + }, + "eo": { + "name": "esperanto" + }, + "es": { + "name": "espa\u00f1ol" + }, + "et": { + "name": "eesti" + }, + "fa": { + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "fi": { + "name": "suomi" + }, + "fr": { + "name": "fran\u00e7ais" + }, + "hi": { + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hr": { + "name": "hrvatski" + }, + "hu": { + "name": "magyar" + }, + "hy": { + "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00edslenska" + }, + "it": { + "name": "italiano" + }, + "iw": { + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "ja": { + "name": "\u65e5\u672c\u8a9e" + }, + "ko": { + "name": "\ud55c\uad6d\uc5b4" + }, + "lt": { + "name": "lietuvi\u0173" + }, + "lv": { + "name": "latvie\u0161u" + }, + "nl": { + "name": "Nederlands" + }, + "no": { + "name": "norsk" + }, + "pl": { + "name": "polski" + }, + "pt": { + "name": "portugu\u00eas" + }, + "ro": { + "name": "rom\u00e2n\u0103" + }, + "ru": { + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "sloven\u010dina" + }, + "sl": { + "name": "sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sv": { + "name": "svenska" + }, + "sw": { + "name": "Kiswahili" + }, + "th": { + "name": "\u0e44\u0e17\u0e22" + }, + "tl": { + "name": "Filipino" + }, + "tr": { + "name": "T\u00fcrk\u00e7e" + }, + "uk": { + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "vi": { + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "zh-CN": { + "name": "\u4e2d\u6587 (\u7b80\u4f53)" + }, + "zh-TW": { + "name": "\u4e2d\u6587 (\u7e41\u9ad4)" + } + }, + "regions": {} + }, + "google news": { + "data_type": "supported_languages", + "languages": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "catal\u00e0" + }, + "cs": { + "name": "\u010de\u0161tina" + }, + "da": { + "name": "dansk" + }, + "de": { + "name": "Deutsch" + }, + "el": { + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "en": { + "name": "English" + }, + "eo": { + "name": "esperanto" + }, + "es": { + "name": "espa\u00f1ol" + }, + "et": { + "name": "eesti" + }, + "fa": { + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "fi": { + "name": "suomi" + }, + "fr": { + "name": "fran\u00e7ais" + }, + "hi": { + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hr": { + "name": "hrvatski" + }, + "hu": { + "name": "magyar" + }, + "hy": { + "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00edslenska" + }, + "it": { + "name": "italiano" + }, + "iw": { + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "ja": { + "name": "\u65e5\u672c\u8a9e" + }, + "ko": { + "name": "\ud55c\uad6d\uc5b4" + }, + "lt": { + "name": "lietuvi\u0173" + }, + "lv": { + "name": "latvie\u0161u" + }, + "nl": { + "name": "Nederlands" + }, + "no": { + "name": "norsk" + }, + "pl": { + "name": "polski" + }, + "pt": { + "name": "portugu\u00eas" + }, + "ro": { + "name": "rom\u00e2n\u0103" + }, + "ru": { + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "sloven\u010dina" + }, + "sl": { + "name": "sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sv": { + "name": "svenska" + }, + "sw": { + "name": "Kiswahili" + }, + "th": { + "name": "\u0e44\u0e17\u0e22" + }, + "tl": { + "name": "Filipino" + }, + "tr": { + "name": "T\u00fcrk\u00e7e" + }, + "uk": { + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "vi": { + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "zh-CN": { + "name": "\u4e2d\u6587 (\u7b80\u4f53)" + }, + "zh-TW": { + "name": "\u4e2d\u6587 (\u7e41\u9ad4)" + } + }, + "regions": {} + }, + "google scholar": { + "data_type": "supported_languages", + "languages": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "catal\u00e0" + }, + "cs": { + "name": "\u010de\u0161tina" + }, + "da": { + "name": "dansk" + }, + "de": { + "name": "Deutsch" + }, + "el": { + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "en": { + "name": "English" + }, + "eo": { + "name": "esperanto" + }, + "es": { + "name": "espa\u00f1ol" + }, + "et": { + "name": "eesti" + }, + "fa": { + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "fi": { + "name": "suomi" + }, + "fr": { + "name": "fran\u00e7ais" + }, + "hi": { + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hr": { + "name": "hrvatski" + }, + "hu": { + "name": "magyar" + }, + "hy": { + "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00edslenska" + }, + "it": { + "name": "italiano" + }, + "iw": { + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "ja": { + "name": "\u65e5\u672c\u8a9e" + }, + "ko": { + "name": "\ud55c\uad6d\uc5b4" + }, + "lt": { + "name": "lietuvi\u0173" + }, + "lv": { + "name": "latvie\u0161u" + }, + "nl": { + "name": "Nederlands" + }, + "no": { + "name": "norsk" + }, + "pl": { + "name": "polski" + }, + "pt": { + "name": "portugu\u00eas" + }, + "ro": { + "name": "rom\u00e2n\u0103" + }, + "ru": { + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "sloven\u010dina" + }, + "sl": { + "name": "sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sv": { + "name": "svenska" + }, + "sw": { + "name": "Kiswahili" + }, + "th": { + "name": "\u0e44\u0e17\u0e22" + }, + "tl": { + "name": "Filipino" + }, + "tr": { + "name": "T\u00fcrk\u00e7e" + }, + "uk": { + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "vi": { + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "zh-CN": { + "name": "\u4e2d\u6587 (\u7b80\u4f53)" + }, + "zh-TW": { + "name": "\u4e2d\u6587 (\u7e41\u9ad4)" + } + }, + "regions": {} + }, + "google videos": { + "data_type": "supported_languages", + "languages": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "catal\u00e0" + }, + "cs": { + "name": "\u010de\u0161tina" + }, + "da": { + "name": "dansk" + }, + "de": { + "name": "Deutsch" + }, + "el": { + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "en": { + "name": "English" + }, + "eo": { + "name": "esperanto" + }, + "es": { + "name": "espa\u00f1ol" + }, + "et": { + "name": "eesti" + }, + "fa": { + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "fi": { + "name": "suomi" + }, + "fr": { + "name": "fran\u00e7ais" + }, + "hi": { + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hr": { + "name": "hrvatski" + }, + "hu": { + "name": "magyar" + }, + "hy": { + "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00edslenska" + }, + "it": { + "name": "italiano" + }, + "iw": { + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "ja": { + "name": "\u65e5\u672c\u8a9e" + }, + "ko": { + "name": "\ud55c\uad6d\uc5b4" + }, + "lt": { + "name": "lietuvi\u0173" + }, + "lv": { + "name": "latvie\u0161u" + }, + "nl": { + "name": "Nederlands" + }, + "no": { + "name": "norsk" + }, + "pl": { + "name": "polski" + }, + "pt": { + "name": "portugu\u00eas" + }, + "ro": { + "name": "rom\u00e2n\u0103" + }, + "ru": { + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "sloven\u010dina" + }, + "sl": { + "name": "sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sv": { + "name": "svenska" + }, + "sw": { + "name": "Kiswahili" + }, + "th": { + "name": "\u0e44\u0e17\u0e22" + }, + "tl": { + "name": "Filipino" + }, + "tr": { + "name": "T\u00fcrk\u00e7e" + }, + "uk": { + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "vi": { + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "zh-CN": { + "name": "\u4e2d\u6587 (\u7b80\u4f53)" + }, + "zh-TW": { + "name": "\u4e2d\u6587 (\u7e41\u9ad4)" + } + }, + "regions": {} + }, + "peertube": { + "data_type": "supported_languages", + "languages": [ + "ca", + "cs", + "de", + "el", + "en", + "eo", + "es", + "eu", + "fi", + "fr", + "gd", + "it", + "ja", + "nl", + "oc", + "pl", + "pt", + "ru", + "sv", + "zh" + ], + "regions": {} + }, + "qwant": { + "data_type": "engine_data", + "languages": {}, + "regions": { + "bg-BG": "bg_BG", + "ca-ES": "ca_ES", + "cs-CZ": "cs_CZ", + "da-DK": "da_DK", + "de-AT": "de_AT", + "de-CH": "de_CH", + "de-DE": "de_DE", + "el-GR": "el_GR", + "en-AU": "en_AU", + "en-CA": "en_CA", + "en-GB": "en_GB", + "en-IE": "en_IE", + "en-MY": "en_MY", + "en-NZ": "en_NZ", + "en-US": "en_US", + "es-AR": "es_AR", + "es-CL": "es_CL", + "es-ES": "es_ES", + "es-MX": "es_MX", + "et-EE": "et_EE", + "fi-FI": "fi_FI", + "fr-BE": "fr_BE", + "fr-CA": "fr_CA", + "fr-CH": "fr_CH", + "fr-FR": "fr_FR", + "hu-HU": "hu_HU", + "it-CH": "it_CH", + "it-IT": "it_IT", + "ko-KR": "ko_KR", + "nb-NO": "nb_NO", + "nl-BE": "nl_BE", + "nl-NL": "nl_NL", + "pl-PL": "pl_PL", + "pt-PT": "pt_PT", + "ro-RO": "ro_RO", + "sv-SE": "sv_SE", + "th-TH": "th_TH", + "zh-CN": "zh_CN", + "zh-HK": "zh_HK" + } + }, + "qwant images": { + "data_type": "engine_data", + "languages": {}, + "regions": { + "bg-BG": "bg_BG", + "ca-ES": "ca_ES", + "cs-CZ": "cs_CZ", + "da-DK": "da_DK", + "de-AT": "de_AT", + "de-CH": "de_CH", + "de-DE": "de_DE", + "el-GR": "el_GR", + "en-AU": "en_AU", + "en-CA": "en_CA", + "en-GB": "en_GB", + "en-IE": "en_IE", + "en-MY": "en_MY", + "en-NZ": "en_NZ", + "en-US": "en_US", + "es-AR": "es_AR", + "es-CL": "es_CL", + "es-ES": "es_ES", + "es-MX": "es_MX", + "et-EE": "et_EE", + "fi-FI": "fi_FI", + "fr-BE": "fr_BE", + "fr-CA": "fr_CA", + "fr-CH": "fr_CH", + "fr-FR": "fr_FR", + "hu-HU": "hu_HU", + "it-CH": "it_CH", + "it-IT": "it_IT", + "ko-KR": "ko_KR", + "nb-NO": "nb_NO", + "nl-BE": "nl_BE", + "nl-NL": "nl_NL", + "pl-PL": "pl_PL", + "pt-PT": "pt_PT", + "ro-RO": "ro_RO", + "sv-SE": "sv_SE", + "th-TH": "th_TH", + "zh-CN": "zh_CN", + "zh-HK": "zh_HK" + } + }, + "qwant news": { + "data_type": "engine_data", + "languages": {}, + "regions": { + "ca-ES": "ca_ES", + "de-AT": "de_AT", + "de-CH": "de_CH", + "de-DE": "de_DE", + "en-AU": "en_AU", + "en-CA": "en_CA", + "en-GB": "en_GB", + "en-IE": "en_IE", + "en-MY": "en_MY", + "en-NZ": "en_NZ", + "en-US": "en_US", + "es-AR": "es_AR", + "es-CL": "es_CL", + "es-ES": "es_ES", + "es-MX": "es_MX", + "fr-BE": "fr_BE", + "fr-CA": "fr_CA", + "fr-CH": "fr_CH", + "fr-FR": "fr_FR", + "it-CH": "it_CH", + "it-IT": "it_IT", + "nl-BE": "nl_BE", + "nl-NL": "nl_NL", + "pt-PT": "pt_PT" + } + }, + "qwant videos": { + "data_type": "engine_data", + "languages": {}, + "regions": { + "bg-BG": "bg_BG", + "ca-ES": "ca_ES", + "cs-CZ": "cs_CZ", + "da-DK": "da_DK", + "de-AT": "de_AT", + "de-CH": "de_CH", + "de-DE": "de_DE", + "el-GR": "el_GR", + "en-AU": "en_AU", + "en-CA": "en_CA", + "en-GB": "en_GB", + "en-IE": "en_IE", + "en-MY": "en_MY", + "en-NZ": "en_NZ", + "en-US": "en_US", + "es-AR": "es_AR", + "es-CL": "es_CL", + "es-ES": "es_ES", + "es-MX": "es_MX", + "et-EE": "et_EE", + "fi-FI": "fi_FI", + "fr-BE": "fr_BE", + "fr-CA": "fr_CA", + "fr-CH": "fr_CH", + "fr-FR": "fr_FR", + "hu-HU": "hu_HU", + "it-CH": "it_CH", + "it-IT": "it_IT", + "ko-KR": "ko_KR", + "nb-NO": "nb_NO", + "nl-BE": "nl_BE", + "nl-NL": "nl_NL", + "pl-PL": "pl_PL", + "pt-PT": "pt_PT", + "ro-RO": "ro_RO", + "sv-SE": "sv_SE", + "th-TH": "th_TH", + "zh-CN": "zh_CN", + "zh-HK": "zh_HK" + } + }, + "startpage": { + "data_type": "engine_data", + "languages": { + "af": "afrikaans", + "am": "amharic", + "ar": "arabic", + "az": "azerbaijani", + "be": "belarusian", + "bg": "bulgarian", + "bn": "bengali", + "bs": "bosnian", + "ca": "catalan", + "cs": "czech", + "cy": "welsh", + "da": "dansk", + "de": "deutsch", + "el": "greek", + "en": "english_uk", + "eo": "esperanto", + "es": "espanol", + "et": "estonian", + "eu": "basque", + "fa": "persian", + "fi": "suomi", + "fo": "faroese", + "fr": "francais", + "fy": "frisian", + "ga": "irish", + "gd": "gaelic", + "gl": "galician", + "gu": "gujarati", + "he": "hebrew", + "hi": "hindi", + "hr": "croatian", + "hu": "hungarian", + "ia": "interlingua", + "id": "indonesian", + "is": "icelandic", + "it": "italiano", + "ja": "nihongo", + "jv": "javanese", + "ka": "georgian", + "kn": "kannada", + "ko": "hangul", + "la": "latin", + "lt": "lithuanian", + "lv": "latvian", + "mai": "bihari", + "mk": "macedonian", + "ml": "malayalam", + "mr": "marathi", + "ms": "malay", + "mt": "maltese", + "nb": "norsk", + "ne": "nepali", + "nl": "nederlands", + "oc": "occitan", + "pa": "punjabi", + "pl": "polski", + "pt": "portugues", + "ro": "romanian", + "ru": "russian", + "si": "sinhalese", + "sk": "slovak", + "sl": "slovenian", + "sq": "albanian", + "sr": "serbian", + "su": "sudanese", + "sv": "svenska", + "sw": "swahili", + "ta": "tamil", + "te": "telugu", + "th": "thai", + "ti": "tigrinya", + "tl": "tagalog", + "tr": "turkce", + "uk": "ukrainian", + "ur": "urdu", + "uz": "uzbek", + "vi": "vietnamese", + "xh": "xhosa", + "zh": "jiantizhongwen", + "zh_Hant": "fantizhengwen", + "zu": "zulu" + }, + "regions": { + "ar-EG": "ar_EG", + "bg-BG": "bg_BG", + "ca-ES": "ca_ES", + "cs-CZ": "cs_CZ", + "da-DK": "da_DK", + "de-AT": "de_AT", + "de-CH": "de_CH", + "de-DE": "de_DE", + "el-GR": "el_GR", + "en-AU": "en_AU", + "en-CA": "en_CA", + "en-GB": "en-GB_GB", + "en-IE": "en_IE", + "en-MY": "en_MY", + "en-NZ": "en_NZ", + "en-US": "en_US", + "en-ZA": "en_ZA", + "es-AR": "es_AR", + "es-CL": "es_CL", + "es-ES": "es_ES", + "es-US": "es_US", + "es-UY": "es_UY", + "fi-FI": "fi_FI", + "fil-PH": "fil_PH", + "fr-BE": "fr_BE", + "fr-CA": "fr_CA", + "fr-CH": "fr_CH", + "fr-FR": "fr_FR", + "hi-IN": "hi_IN", + "it-CH": "it_CH", + "it-IT": "it_IT", + "ja-JP": "ja_JP", + "ko-KR": "ko_KR", + "ms-MY": "ms_MY", + "nb-NO": "no_NO", + "nl-BE": "nl_BE", + "nl-NL": "nl_NL", + "pl-PL": "pl_PL", + "pt-BR": "pt-BR_BR", + "pt-PT": "pt_PT", + "ro-RO": "ro_RO", + "ru-BY": "ru_BY", + "ru-RU": "ru_RU", + "sv-SE": "sv_SE", + "tr-TR": "tr_TR", + "uk-UA": "uk_UA", + "zh-CN": "zh-CN_CN", + "zh-HK": "zh-TW_HK", + "zh-TW": "zh-TW_TW" + } + }, + "wikidata": { + "data_type": "supported_languages", + "languages": { + "ab": { + "english_name": "Abkhazian", + "name": "\u0410\u0525\u0441\u0443\u0430" + }, + "ace": { + "english_name": "Acehnese", + "name": "Basa Ac\u00e8h" + }, + "ady": { + "english_name": "Adyghe", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" + }, + "af": { + "english_name": "Afrikaans", + "name": "Afrikaans" + }, + "ak": { + "english_name": "Akan", + "name": "Akana" + }, + "als": { + "english_name": "Alemannic", + "name": "Alemannisch" + }, + "alt": { + "english_name": "Southern Altai", + "name": "\u0410\u043b\u0442\u0430\u0439" + }, + "am": { + "english_name": "Amharic", + "name": "\u12a0\u121b\u122d\u129b" + }, + "ami": { + "english_name": "Amis", + "name": "Pangcah" + }, + "an": { + "english_name": "Aragonese", + "name": "Aragon\u00e9s" + }, + "ang": { + "english_name": "Anglo-Saxon", + "name": "\u00c6nglisc" + }, + "ar": { + "english_name": "Arabic", + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "arc": { + "english_name": "Aramaic", + "name": "\u0710\u072a\u0721\u071d\u0710" + }, + "ary": { + "english_name": "Moroccan Arabic", + "name": "\u062f\u0627\u0631\u064a\u062c\u0629" + }, + "arz": { + "english_name": "Egyptian Arabic", + "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" + }, + "as": { + "english_name": "Assamese", + "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" + }, + "ast": { + "english_name": "Asturian", + "name": "Asturianu" + }, + "atj": { + "english_name": "Atikamekw", + "name": "Atikamekw" + }, + "av": { + "english_name": "Avar", + "name": "\u0410\u0432\u0430\u0440" + }, + "avk": { + "english_name": "Kotava", + "name": "Kotava" + }, + "awa": { + "english_name": "Awadhi", + "name": "\u0905\u0935\u0927\u0940" + }, + "ay": { + "english_name": "Aymara", + "name": "Aymar" + }, + "az": { + "english_name": "Azerbaijani", + "name": "Az\u0259rbaycanca" + }, + "azb": { + "english_name": "South Azerbaijani", + "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" + }, + "ba": { + "english_name": "Bashkir", + "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" + }, + "ban": { + "english_name": "Balinese", + "name": "Bali" + }, + "bar": { + "english_name": "Bavarian", + "name": "Boarisch" + }, + "bat-smg": { + "english_name": "Samogitian", + "name": "\u017demait\u0117\u0161ka" + }, + "bcl": { + "english_name": "Central Bicolano", + "name": "Bikol" + }, + "be": { + "english_name": "Belarusian", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "be-tarask": { + "english_name": "Belarusian (Tara\u0161kievica)", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f (\u0442\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0456\u0446\u0430)" + }, + "bg": { + "english_name": "Bulgarian", + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "bh": { + "english_name": "Bhojpuri", + "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" + }, + "bi": { + "english_name": "Bislama", + "name": "Bislama" + }, + "bjn": { + "english_name": "Banjar", + "name": "Bahasa Banjar" + }, + "blk": { + "english_name": "Pa'O", + "name": "\u1015\u1021\u102d\u102f\u101d\u103a\u108f\u1018\u102c\u108f\u101e\u102c\u108f" + }, + "bm": { + "english_name": "Bambara", + "name": "Bamanankan" + }, + "bn": { + "english_name": "Bengali", + "name": "\u09ac\u09be\u0982\u09b2\u09be" + }, + "bo": { + "english_name": "Tibetan", + "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" + }, + "bpy": { + "english_name": "Bishnupriya Manipuri", + "name": "\u0987\u09ae\u09be\u09b0 \u09a0\u09be\u09b0/\u09ac\u09bf\u09b7\u09cd\u09a3\u09c1\u09aa\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0" + }, + "br": { + "english_name": "Breton", + "name": "Brezhoneg" + }, + "bs": { + "english_name": "Bosnian", + "name": "Bosanski" + }, + "bug": { + "english_name": "Buginese", + "name": "Basa Ugi" + }, + "bxr": { + "english_name": "Buryat", + "name": "\u0411\u0443\u0440\u044f\u0430\u0434" + }, + "ca": { + "english_name": "Catalan", + "name": "Catal\u00e0" + }, + "cbk-zam": { + "english_name": "Zamboanga Chavacano", + "name": "Chavacano de Zamboanga" + }, + "cdo": { + "english_name": "Min Dong", + "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" + }, + "ce": { + "english_name": "Chechen", + "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" + }, + "ceb": { + "english_name": "Cebuano", + "name": "Sinugboanong Binisaya" + }, + "ch": { + "english_name": "Chamorro", + "name": "Chamoru" + }, + "chr": { + "english_name": "Cherokee", + "name": "\u13e3\u13b3\u13a9" + }, + "chy": { + "english_name": "Cheyenne", + "name": "Tsets\u00eahest\u00e2hese" + }, + "ckb": { + "english_name": "Sorani", + "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" + }, + "co": { + "english_name": "Corsican", + "name": "Corsu" + }, + "cr": { + "english_name": "Cree", + "name": "Nehiyaw" + }, + "crh": { + "english_name": "Crimean Tatar", + "name": "Q\u0131r\u0131mtatarca" + }, + "cs": { + "english_name": "Czech", + "name": "\u010ce\u0161tina" + }, + "csb": { + "english_name": "Kashubian", + "name": "Kasz\u00ebbsczi" + }, + "cu": { + "english_name": "Old Church Slavonic", + "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" + }, + "cv": { + "english_name": "Chuvash", + "name": "\u0427\u0103\u0432\u0430\u0448" + }, + "cy": { + "english_name": "Welsh", + "name": "Cymraeg" + }, + "da": { + "english_name": "Danish", + "name": "Dansk" + }, + "dag": { + "english_name": "Dagbani", + "name": "Dagbanli" + }, + "de": { + "english_name": "German", + "name": "Deutsch" + }, + "din": { + "english_name": "Dinka", + "name": "Thu\u0254\u014bj\u00e4\u014b" + }, + "diq": { + "english_name": "Zazaki", + "name": "Zazaki" + }, + "dsb": { + "english_name": "Lower Sorbian", + "name": "Dolnoserbski" + }, + "dty": { + "english_name": "Doteli", + "name": "\u0921\u094b\u091f\u0947\u0932\u0940" + }, + "dv": { + "english_name": "Divehi", + "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" + }, + "dz": { + "english_name": "Dzongkha", + "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" + }, + "ee": { + "english_name": "Ewe", + "name": "E\u028begbe" + }, + "el": { + "english_name": "Greek", + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "eml": { + "english_name": "Emilian-Romagnol", + "name": "Emili\u00e0n e rumagn\u00f2l" + }, + "en": { + "english_name": "English", + "name": "English" + }, + "eo": { + "english_name": "Esperanto", + "name": "Esperanto" + }, + "es": { + "english_name": "Spanish", + "name": "Espa\u00f1ol" + }, + "et": { + "english_name": "Estonian", + "name": "Eesti" + }, + "eu": { + "english_name": "Basque", + "name": "Euskara" + }, + "ext": { + "english_name": "Extremaduran", + "name": "Estreme\u00f1u" + }, + "fa": { + "english_name": "Persian", + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "ff": { + "english_name": "Fula", + "name": "Fulfulde" + }, + "fi": { + "english_name": "Finnish", + "name": "Suomi" + }, + "fiu-vro": { + "english_name": "V\u00f5ro", + "name": "V\u00f5ro" + }, + "fj": { + "english_name": "Fijian", + "name": "Na Vosa Vakaviti" + }, + "fo": { + "english_name": "Faroese", + "name": "F\u00f8royskt" + }, + "fr": { + "english_name": "French", + "name": "Fran\u00e7ais" + }, + "frp": { + "english_name": "Franco-Proven\u00e7al", + "name": "Arpetan" + }, + "frr": { + "english_name": "North Frisian", + "name": "Nordfrasch" + }, + "fur": { + "english_name": "Friulian", + "name": "Furlan" + }, + "fy": { + "english_name": "West Frisian", + "name": "Frysk" + }, + "ga": { + "english_name": "Irish", + "name": "Gaeilge" + }, + "gag": { + "english_name": "Gagauz", + "name": "Gagauz" + }, + "gan": { + "english_name": "Gan", + "name": "\u8d1b\u8a9e" + }, + "gcr": { + "english_name": "Guianan Creole", + "name": "Kriy\u00f2l Gwiyannen" + }, + "gd": { + "english_name": "Scottish Gaelic", + "name": "G\u00e0idhlig" + }, + "gl": { + "english_name": "Galician", + "name": "Galego" + }, + "glk": { + "english_name": "Gilaki", + "name": "\u06af\u06cc\u0644\u06a9\u06cc" + }, + "gn": { + "english_name": "Guarani", + "name": "Ava\u00f1e'\u1ebd" + }, + "gom": { + "english_name": "Goan Konkani", + "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" + }, + "gor": { + "english_name": "Gorontalo", + "name": "Hulontalo" + }, + "got": { + "english_name": "Gothic", + "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" + }, + "gu": { + "english_name": "Gujarati", + "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" + }, + "guw": { + "english_name": "Gun", + "name": "Gungbe" + }, + "gv": { + "english_name": "Manx", + "name": "Gaelg" + }, + "ha": { + "english_name": "Hausa", + "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" + }, + "hak": { + "english_name": "Hakka", + "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" + }, + "haw": { + "english_name": "Hawaiian", + "name": "Hawai\u02bbi" + }, + "he": { + "english_name": "Hebrew", + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "hi": { + "english_name": "Hindi", + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hif": { + "english_name": "Fiji Hindi", + "name": "Fiji Hindi" + }, + "hr": { + "english_name": "Croatian", + "name": "Hrvatski" + }, + "hsb": { + "english_name": "Upper Sorbian", + "name": "Hornjoserbsce" + }, + "ht": { + "english_name": "Haitian", + "name": "Kr\u00e8yol ayisyen" + }, + "hu": { + "english_name": "Hungarian", + "name": "Magyar" + }, + "hy": { + "english_name": "Armenian", + "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "hyw": { + "english_name": "Western Armenian", + "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" + }, + "ia": { + "english_name": "Interlingua", + "name": "Interlingua" + }, + "id": { + "english_name": "Indonesian", + "name": "Bahasa Indonesia" + }, + "ie": { + "english_name": "Interlingue", + "name": "Interlingue" + }, + "ig": { + "english_name": "Igbo", + "name": "\u00ccgb\u00f2" + }, + "ik": { + "english_name": "Inupiak", + "name": "I\u00f1upiatun" + }, + "ilo": { + "english_name": "Ilokano", + "name": "Ilokano" + }, + "inh": { + "english_name": "Ingush", + "name": "\u0413\u04c0\u0430\u043b\u0433\u04c0\u0430\u0439" + }, + "io": { + "english_name": "Ido", + "name": "Ido" + }, + "is": { + "english_name": "Icelandic", + "name": "\u00cdslenska" + }, + "it": { + "english_name": "Italian", + "name": "Italiano" + }, + "iu": { + "english_name": "Inuktitut", + "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" + }, + "ja": { + "english_name": "Japanese", + "name": "\u65e5\u672c\u8a9e" + }, + "jam": { + "english_name": "Jamaican Patois", + "name": "Jumiekan Kryuol" + }, + "jbo": { + "english_name": "Lojban", + "name": "Lojban" + }, + "jv": { + "english_name": "Javanese", + "name": "Basa Jawa" + }, + "ka": { + "english_name": "Georgian", + "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" + }, + "kaa": { + "english_name": "Karakalpak", + "name": "Qaraqalpaqsha" + }, + "kab": { + "english_name": "Kabyle", + "name": "Taqbaylit" + }, + "kbd": { + "english_name": "Kabardian Circassian", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" + }, + "kbp": { + "english_name": "Kabiye", + "name": "Kab\u0269y\u025b" + }, + "kcg": { + "english_name": "Tyap", + "name": "Tyap" + }, + "kg": { + "english_name": "Kongo", + "name": "Kik\u00f4ngo" + }, + "ki": { + "english_name": "Kikuyu", + "name": "G\u0129k\u0169y\u0169" + }, + "kk": { + "english_name": "Kazakh", + "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" + }, + "kl": { + "english_name": "Greenlandic", + "name": "Kalaallisut" + }, + "km": { + "english_name": "Khmer", + "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" + }, + "kn": { + "english_name": "Kannada", + "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" + }, + "ko": { + "english_name": "Korean", + "name": "\ud55c\uad6d\uc5b4" + }, + "koi": { + "english_name": "Komi-Permyak", + "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" + }, + "krc": { + "english_name": "Karachay-Balkar", + "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" + }, + "ks": { + "english_name": "Kashmiri", + "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" + }, + "ksh": { + "english_name": "Ripuarian", + "name": "Ripoarisch" + }, + "ku": { + "english_name": "Kurdish", + "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" + }, + "kv": { + "english_name": "Komi", + "name": "\u041a\u043e\u043c\u0438" + }, + "kw": { + "english_name": "Cornish", + "name": "Kernowek/Karnuack" + }, + "ky": { + "english_name": "Kyrgyz", + "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" + }, + "la": { + "english_name": "Latin", + "name": "Latina" + }, + "lad": { + "english_name": "Ladino", + "name": "Dzhudezmo" + }, + "lb": { + "english_name": "Luxembourgish", + "name": "L\u00ebtzebuergesch" + }, + "lbe": { + "english_name": "Lak", + "name": "\u041b\u0430\u043a\u043a\u0443" + }, + "lez": { + "english_name": "Lezgian", + "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" + }, + "lfn": { + "english_name": "Lingua Franca Nova", + "name": "Lingua franca nova" + }, + "lg": { + "english_name": "Luganda", + "name": "Luganda" + }, + "li": { + "english_name": "Limburgish", + "name": "Limburgs" + }, + "lij": { + "english_name": "Ligurian", + "name": "L\u00ecgure" + }, + "lld": { + "english_name": "Ladin", + "name": "Lingaz" + }, + "lmo": { + "english_name": "Lombard", + "name": "Lumbaart" + }, + "ln": { + "english_name": "Lingala", + "name": "Lingala" + }, + "lo": { + "english_name": "Lao", + "name": "\u0ea5\u0eb2\u0ea7" + }, + "lt": { + "english_name": "Lithuanian", + "name": "Lietuvi\u0173" + }, + "ltg": { + "english_name": "Latgalian", + "name": "Latga\u013cu" + }, + "lv": { + "english_name": "Latvian", + "name": "Latvie\u0161u" + }, + "mad": { + "english_name": "Madurese", + "name": "Madhur\u00e2" + }, + "mai": { + "english_name": "Maithili", + "name": "\u092e\u0948\u0925\u093f\u0932\u0940" + }, + "map-bms": { + "english_name": "Banyumasan", + "name": "Basa Banyumasan" + }, + "mdf": { + "english_name": "Moksha", + "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" + }, + "mg": { + "english_name": "Malagasy", + "name": "Malagasy" + }, + "mhr": { + "english_name": "Meadow Mari", + "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" + }, + "mi": { + "english_name": "Maori", + "name": "M\u0101ori" + }, + "min": { + "english_name": "Minangkabau", + "name": "Minangkabau" + }, + "mk": { + "english_name": "Macedonian", + "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" + }, + "ml": { + "english_name": "Malayalam", + "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" + }, + "mn": { + "english_name": "Mongolian", + "name": "\u041c\u043e\u043d\u0433\u043e\u043b" + }, + "mni": { + "english_name": "Meitei", + "name": "\uabc3\uabe4\uabc7\uabe9\uabc2\uabe3\uabdf" + }, + "mnw": { + "english_name": "Mon", + "name": "\u1019\u1014\u103a" + }, + "mr": { + "english_name": "Marathi", + "name": "\u092e\u0930\u093e\u0920\u0940" + }, + "mrj": { + "english_name": "Hill Mari", + "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" + }, + "ms": { + "english_name": "Malay", + "name": "Bahasa Melayu" + }, + "mt": { + "english_name": "Maltese", + "name": "Malti" + }, + "mwl": { + "english_name": "Mirandese", + "name": "Mirand\u00e9s" + }, + "my": { + "english_name": "Burmese", + "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" + }, + "myv": { + "english_name": "Erzya", + "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" + }, + "mzn": { + "english_name": "Mazandarani", + "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" + }, + "na": { + "english_name": "Nauruan", + "name": "dorerin Naoero" + }, + "nah": { + "english_name": "Nahuatl", + "name": "N\u0101huatl" + }, + "nap": { + "english_name": "Neapolitan", + "name": "Nnapulitano" + }, + "nds": { + "english_name": "Low Saxon", + "name": "Plattd\u00fc\u00fctsch" + }, + "nds-nl": { + "english_name": "Dutch Low Saxon", + "name": "Nedersaksisch" + }, + "ne": { + "english_name": "Nepali", + "name": "\u0928\u0947\u092a\u093e\u0932\u0940" + }, + "new": { + "english_name": "Newar", + "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" + }, + "nia": { + "english_name": "Nias", + "name": "Li Niha" + }, + "nl": { + "english_name": "Dutch", + "name": "Nederlands" + }, + "nn": { + "english_name": "Norwegian (Nynorsk)", + "name": "Nynorsk" + }, + "no": { + "english_name": "Norwegian (Bokm\u00e5l)", + "name": "Norsk (Bokm\u00e5l)" + }, + "nov": { + "english_name": "Novial", + "name": "Novial" + }, + "nqo": { + "english_name": "N\u2019Ko", + "name": "\u07d2\u07de\u07cf" + }, + "nrm": { + "english_name": "Norman", + "name": "Nouormand/Normaund" + }, + "nso": { + "english_name": "Northern Sotho", + "name": "Sepedi" + }, + "nv": { + "english_name": "Navajo", + "name": "Din\u00e9 bizaad" + }, + "ny": { + "english_name": "Chichewa", + "name": "Chichewa" + }, + "oc": { + "english_name": "Occitan", + "name": "Occitan" + }, + "olo": { + "english_name": "Livvi-Karelian", + "name": "Karjalan" + }, + "om": { + "english_name": "Oromo", + "name": "Oromoo" + }, + "or": { + "english_name": "Oriya", + "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" + }, + "os": { + "english_name": "Ossetian", + "name": "\u0418\u0440\u043e\u043d\u0430\u0443" + }, + "pa": { + "english_name": "Punjabi", + "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" + }, + "pag": { + "english_name": "Pangasinan", + "name": "Pangasinan" + }, + "pam": { + "english_name": "Kapampangan", + "name": "Kapampangan" + }, + "pap": { + "english_name": "Papiamentu", + "name": "Papiamentu" + }, + "pcd": { + "english_name": "Picard", + "name": "Picard" + }, + "pcm": { + "english_name": "Nigerian Pidgin", + "name": "Naij\u00e1" + }, + "pdc": { + "english_name": "Pennsylvania German", + "name": "Deitsch" + }, + "pfl": { + "english_name": "Palatinate German", + "name": "P\u00e4lzisch" + }, + "pi": { + "english_name": "Pali", + "name": "\u092a\u093e\u0934\u093f" + }, + "pih": { + "english_name": "Norfolk", + "name": "Norfuk" + }, + "pl": { + "english_name": "Polish", + "name": "Polski" + }, + "pms": { + "english_name": "Piedmontese", + "name": "Piemont\u00e8is" + }, + "pnb": { + "english_name": "Western Punjabi", + "name": "\u0634\u0627\u06c1 \u0645\u06a9\u06be\u06cc \u067e\u0646\u062c\u0627\u0628\u06cc (Sh\u0101hmukh\u012b Pa\u00f1j\u0101b\u012b)" + }, + "pnt": { + "english_name": "Pontic", + "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" + }, + "ps": { + "english_name": "Pashto", + "name": "\u067e\u069a\u062a\u0648" + }, + "pt": { + "english_name": "Portuguese", + "name": "Portugu\u00eas" + }, + "pwn": { + "english_name": "Paiwan", + "name": "Paiwan" + }, + "qu": { + "english_name": "Quechua", + "name": "Qichwa simi" + }, + "rm": { + "english_name": "Romansh", + "name": "Rumantsch" + }, + "rmy": { + "english_name": "Romani", + "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" + }, + "rn": { + "english_name": "Kirundi", + "name": "Ikirundi" + }, + "ro": { + "english_name": "Romanian", + "name": "Rom\u00e2n\u0103" + }, + "roa-rup": { + "english_name": "Aromanian", + "name": "Arm\u00e3neashce" + }, + "roa-tara": { + "english_name": "Tarantino", + "name": "Tarand\u00edne" + }, + "ru": { + "english_name": "Russian", + "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "rue": { + "english_name": "Rusyn", + "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" + }, + "rw": { + "english_name": "Kinyarwanda", + "name": "Ikinyarwanda" + }, + "sa": { + "english_name": "Sanskrit", + "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" + }, + "sah": { + "english_name": "Sakha", + "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" + }, + "sat": { + "english_name": "Santali", + "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" + }, + "sc": { + "english_name": "Sardinian", + "name": "Sardu" + }, + "scn": { + "english_name": "Sicilian", + "name": "Sicilianu" + }, + "sco": { + "english_name": "Scots", + "name": "Scots" + }, + "sd": { + "english_name": "Sindhi", + "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" + }, + "se": { + "english_name": "Northern Sami", + "name": "S\u00e1megiella" + }, + "sg": { + "english_name": "Sango", + "name": "S\u00e4ng\u00f6" + }, + "sh": { + "english_name": "Serbo-Croatian", + "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" + }, + "shi": { + "english_name": "Tachelhit", + "name": "Tacl\u1e25it" + }, + "shn": { + "english_name": "Shan", + "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" + }, + "si": { + "english_name": "Sinhalese", + "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" + }, + "simple": { + "english_name": "Simple English", + "name": "Simple English" + }, + "sk": { + "english_name": "Slovak", + "name": "Sloven\u010dina" + }, + "skr": { + "english_name": "Saraiki", + "name": "\u0633\u0631\u0627\u0626\u06cc\u06a9\u06cc" + }, + "sl": { + "english_name": "Slovenian", + "name": "Sloven\u0161\u010dina" + }, + "sm": { + "english_name": "Samoan", + "name": "Gagana Samoa" + }, + "smn": { + "english_name": "Inari Sami", + "name": "Anar\u00e2\u0161kiel\u00e2" + }, + "sn": { + "english_name": "Shona", + "name": "chiShona" + }, + "so": { + "english_name": "Somali", + "name": "Soomaali" + }, + "sq": { + "english_name": "Albanian", + "name": "Shqip" + }, + "sr": { + "english_name": "Serbian", + "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" + }, + "srn": { + "english_name": "Sranan", + "name": "Sranantongo" + }, + "ss": { + "english_name": "Swati", + "name": "SiSwati" + }, + "st": { + "english_name": "Sesotho", + "name": "Sesotho" + }, + "stq": { + "english_name": "Saterland Frisian", + "name": "Seeltersk" + }, + "su": { + "english_name": "Sundanese", + "name": "Basa Sunda" + }, + "sv": { + "english_name": "Swedish", + "name": "Svenska" + }, + "sw": { + "english_name": "Swahili", + "name": "Kiswahili" + }, + "szl": { + "english_name": "Silesian", + "name": "\u015al\u016fnski" + }, + "szy": { + "english_name": "Sakizaya", + "name": "Sakizaya" + }, + "ta": { + "english_name": "Tamil", + "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" + }, + "tay": { + "english_name": "Atayal", + "name": "Tayal" + }, + "tcy": { + "english_name": "Tulu", + "name": "\u0ca4\u0cc1\u0cb3\u0cc1" + }, + "te": { + "english_name": "Telugu", + "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" + }, + "tet": { + "english_name": "Tetum", + "name": "Tetun" + }, + "tg": { + "english_name": "Tajik", + "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" + }, + "th": { + "english_name": "Thai", + "name": "\u0e44\u0e17\u0e22" + }, + "ti": { + "english_name": "Tigrinya", + "name": "\u1275\u130d\u122d\u129b" + }, + "tk": { + "english_name": "Turkmen", + "name": "T\u00fcrkmen" + }, + "tl": { + "english_name": "Tagalog", + "name": "Tagalog" + }, + "tn": { + "english_name": "Tswana", + "name": "Setswana" + }, + "to": { + "english_name": "Tongan", + "name": "faka Tonga" + }, + "tpi": { + "english_name": "Tok Pisin", + "name": "Tok Pisin" + }, + "tr": { + "english_name": "Turkish", + "name": "T\u00fcrk\u00e7e" + }, + "trv": { + "english_name": "Seediq", + "name": "Taroko" + }, + "ts": { + "english_name": "Tsonga", + "name": "Xitsonga" + }, + "tt": { + "english_name": "Tatar", + "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" + }, + "tum": { + "english_name": "Tumbuka", + "name": "chiTumbuka" + }, + "tw": { + "english_name": "Twi", + "name": "Twi" + }, + "ty": { + "english_name": "Tahitian", + "name": "Reo M\u0101`ohi" + }, + "tyv": { + "english_name": "Tuvan", + "name": "\u0422\u044b\u0432\u0430" + }, + "udm": { + "english_name": "Udmurt", + "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" + }, + "ug": { + "english_name": "Uyghur", + "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" + }, + "uk": { + "english_name": "Ukrainian", + "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "ur": { + "english_name": "Urdu", + "name": "\u0627\u0631\u062f\u0648" + }, + "uz": { + "english_name": "Uzbek", + "name": "O\u2018zbek" + }, + "ve": { + "english_name": "Venda", + "name": "Tshivenda" + }, + "vec": { + "english_name": "Venetian", + "name": "V\u00e8neto" + }, + "vep": { + "english_name": "Vepsian", + "name": "Veps\u00e4n" + }, + "vi": { + "english_name": "Vietnamese", + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "vls": { + "english_name": "West Flemish", + "name": "West-Vlams" + }, + "vo": { + "english_name": "Volap\u00fck", + "name": "Volap\u00fck" + }, + "wa": { + "english_name": "Walloon", + "name": "Walon" + }, + "war": { + "english_name": "Waray-Waray", + "name": "Winaray" + }, + "wo": { + "english_name": "Wolof", + "name": "Wolof" + }, + "wuu": { + "english_name": "Wu", + "name": "\u5434\u8bed" + }, + "xal": { + "english_name": "Kalmyk", + "name": "\u0425\u0430\u043b\u044c\u043c\u0433" + }, + "xh": { + "english_name": "Xhosa", + "name": "isiXhosa" + }, + "xmf": { + "english_name": "Mingrelian", + "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" + }, + "yi": { + "english_name": "Yiddish", + "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" + }, + "yo": { + "english_name": "Yoruba", + "name": "Yor\u00f9b\u00e1" + }, + "za": { + "english_name": "Zhuang", + "name": "Cuengh" + }, + "zea": { + "english_name": "Zeelandic", + "name": "Ze\u00eauws" + }, + "zh": { + "english_name": "Chinese", + "name": "\u4e2d\u6587" + }, + "zh-classical": { + "english_name": "Classical Chinese", + "name": "\u53e4\u6587 / \u6587\u8a00\u6587" + }, + "zh-min-nan": { + "english_name": "Min Nan", + "name": "B\u00e2n-l\u00e2m-g\u00fa" + }, + "zh-yue": { + "english_name": "Cantonese", + "name": "\u7cb5\u8a9e" + }, + "zu": { + "english_name": "Zulu", + "name": "isiZulu" + } + }, + "regions": {} + }, + "wikipedia": { + "data_type": "supported_languages", + "languages": { + "ab": { + "english_name": "Abkhazian", + "name": "\u0410\u0525\u0441\u0443\u0430" + }, + "ace": { + "english_name": "Acehnese", + "name": "Basa Ac\u00e8h" + }, + "ady": { + "english_name": "Adyghe", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" + }, + "af": { + "english_name": "Afrikaans", + "name": "Afrikaans" + }, + "ak": { + "english_name": "Akan", + "name": "Akana" + }, + "als": { + "english_name": "Alemannic", + "name": "Alemannisch" + }, + "alt": { + "english_name": "Southern Altai", + "name": "\u0410\u043b\u0442\u0430\u0439" + }, + "am": { + "english_name": "Amharic", + "name": "\u12a0\u121b\u122d\u129b" + }, + "ami": { + "english_name": "Amis", + "name": "Pangcah" + }, + "an": { + "english_name": "Aragonese", + "name": "Aragon\u00e9s" + }, + "ang": { + "english_name": "Anglo-Saxon", + "name": "\u00c6nglisc" + }, + "ar": { + "english_name": "Arabic", + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "arc": { + "english_name": "Aramaic", + "name": "\u0710\u072a\u0721\u071d\u0710" + }, + "ary": { + "english_name": "Moroccan Arabic", + "name": "\u062f\u0627\u0631\u064a\u062c\u0629" + }, + "arz": { + "english_name": "Egyptian Arabic", + "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" + }, + "as": { + "english_name": "Assamese", + "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" + }, + "ast": { + "english_name": "Asturian", + "name": "Asturianu" + }, + "atj": { + "english_name": "Atikamekw", + "name": "Atikamekw" + }, + "av": { + "english_name": "Avar", + "name": "\u0410\u0432\u0430\u0440" + }, + "avk": { + "english_name": "Kotava", + "name": "Kotava" + }, + "awa": { + "english_name": "Awadhi", + "name": "\u0905\u0935\u0927\u0940" + }, + "ay": { + "english_name": "Aymara", + "name": "Aymar" + }, + "az": { + "english_name": "Azerbaijani", + "name": "Az\u0259rbaycanca" + }, + "azb": { + "english_name": "South Azerbaijani", + "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" + }, + "ba": { + "english_name": "Bashkir", + "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" + }, + "ban": { + "english_name": "Balinese", + "name": "Bali" + }, + "bar": { + "english_name": "Bavarian", + "name": "Boarisch" + }, + "bat-smg": { + "english_name": "Samogitian", + "name": "\u017demait\u0117\u0161ka" + }, + "bcl": { + "english_name": "Central Bicolano", + "name": "Bikol" + }, + "be": { + "english_name": "Belarusian", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "be-tarask": { + "english_name": "Belarusian (Tara\u0161kievica)", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f (\u0442\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0456\u0446\u0430)" + }, + "bg": { + "english_name": "Bulgarian", + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "bh": { + "english_name": "Bhojpuri", + "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" + }, + "bi": { + "english_name": "Bislama", + "name": "Bislama" + }, + "bjn": { + "english_name": "Banjar", + "name": "Bahasa Banjar" + }, + "blk": { + "english_name": "Pa'O", + "name": "\u1015\u1021\u102d\u102f\u101d\u103a\u108f\u1018\u102c\u108f\u101e\u102c\u108f" + }, + "bm": { + "english_name": "Bambara", + "name": "Bamanankan" + }, + "bn": { + "english_name": "Bengali", + "name": "\u09ac\u09be\u0982\u09b2\u09be" + }, + "bo": { + "english_name": "Tibetan", + "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" + }, + "bpy": { + "english_name": "Bishnupriya Manipuri", + "name": "\u0987\u09ae\u09be\u09b0 \u09a0\u09be\u09b0/\u09ac\u09bf\u09b7\u09cd\u09a3\u09c1\u09aa\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0" + }, + "br": { + "english_name": "Breton", + "name": "Brezhoneg" + }, + "bs": { + "english_name": "Bosnian", + "name": "Bosanski" + }, + "bug": { + "english_name": "Buginese", + "name": "Basa Ugi" + }, + "bxr": { + "english_name": "Buryat", + "name": "\u0411\u0443\u0440\u044f\u0430\u0434" + }, + "ca": { + "english_name": "Catalan", + "name": "Catal\u00e0" + }, + "cbk-zam": { + "english_name": "Zamboanga Chavacano", + "name": "Chavacano de Zamboanga" + }, + "cdo": { + "english_name": "Min Dong", + "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" + }, + "ce": { + "english_name": "Chechen", + "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" + }, + "ceb": { + "english_name": "Cebuano", + "name": "Sinugboanong Binisaya" + }, + "ch": { + "english_name": "Chamorro", + "name": "Chamoru" + }, + "chr": { + "english_name": "Cherokee", + "name": "\u13e3\u13b3\u13a9" + }, + "chy": { + "english_name": "Cheyenne", + "name": "Tsets\u00eahest\u00e2hese" + }, + "ckb": { + "english_name": "Sorani", + "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" + }, + "co": { + "english_name": "Corsican", + "name": "Corsu" + }, + "cr": { + "english_name": "Cree", + "name": "Nehiyaw" + }, + "crh": { + "english_name": "Crimean Tatar", + "name": "Q\u0131r\u0131mtatarca" + }, + "cs": { + "english_name": "Czech", + "name": "\u010ce\u0161tina" + }, + "csb": { + "english_name": "Kashubian", + "name": "Kasz\u00ebbsczi" + }, + "cu": { + "english_name": "Old Church Slavonic", + "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" + }, + "cv": { + "english_name": "Chuvash", + "name": "\u0427\u0103\u0432\u0430\u0448" + }, + "cy": { + "english_name": "Welsh", + "name": "Cymraeg" + }, + "da": { + "english_name": "Danish", + "name": "Dansk" + }, + "dag": { + "english_name": "Dagbani", + "name": "Dagbanli" + }, + "de": { + "english_name": "German", + "name": "Deutsch" + }, + "din": { + "english_name": "Dinka", + "name": "Thu\u0254\u014bj\u00e4\u014b" + }, + "diq": { + "english_name": "Zazaki", + "name": "Zazaki" + }, + "dsb": { + "english_name": "Lower Sorbian", + "name": "Dolnoserbski" + }, + "dty": { + "english_name": "Doteli", + "name": "\u0921\u094b\u091f\u0947\u0932\u0940" + }, + "dv": { + "english_name": "Divehi", + "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" + }, + "dz": { + "english_name": "Dzongkha", + "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" + }, + "ee": { + "english_name": "Ewe", + "name": "E\u028begbe" + }, + "el": { + "english_name": "Greek", + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "eml": { + "english_name": "Emilian-Romagnol", + "name": "Emili\u00e0n e rumagn\u00f2l" + }, + "en": { + "english_name": "English", + "name": "English" + }, + "eo": { + "english_name": "Esperanto", + "name": "Esperanto" + }, + "es": { + "english_name": "Spanish", + "name": "Espa\u00f1ol" + }, + "et": { + "english_name": "Estonian", + "name": "Eesti" + }, + "eu": { + "english_name": "Basque", + "name": "Euskara" + }, + "ext": { + "english_name": "Extremaduran", + "name": "Estreme\u00f1u" + }, + "fa": { + "english_name": "Persian", + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "ff": { + "english_name": "Fula", + "name": "Fulfulde" + }, + "fi": { + "english_name": "Finnish", + "name": "Suomi" + }, + "fiu-vro": { + "english_name": "V\u00f5ro", + "name": "V\u00f5ro" + }, + "fj": { + "english_name": "Fijian", + "name": "Na Vosa Vakaviti" + }, + "fo": { + "english_name": "Faroese", + "name": "F\u00f8royskt" + }, + "fr": { + "english_name": "French", + "name": "Fran\u00e7ais" + }, + "frp": { + "english_name": "Franco-Proven\u00e7al", + "name": "Arpetan" + }, + "frr": { + "english_name": "North Frisian", + "name": "Nordfrasch" + }, + "fur": { + "english_name": "Friulian", + "name": "Furlan" + }, + "fy": { + "english_name": "West Frisian", + "name": "Frysk" + }, + "ga": { + "english_name": "Irish", + "name": "Gaeilge" + }, + "gag": { + "english_name": "Gagauz", + "name": "Gagauz" + }, + "gan": { + "english_name": "Gan", + "name": "\u8d1b\u8a9e" + }, + "gcr": { + "english_name": "Guianan Creole", + "name": "Kriy\u00f2l Gwiyannen" + }, + "gd": { + "english_name": "Scottish Gaelic", + "name": "G\u00e0idhlig" + }, + "gl": { + "english_name": "Galician", + "name": "Galego" + }, + "glk": { + "english_name": "Gilaki", + "name": "\u06af\u06cc\u0644\u06a9\u06cc" + }, + "gn": { + "english_name": "Guarani", + "name": "Ava\u00f1e'\u1ebd" + }, + "gom": { + "english_name": "Goan Konkani", + "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" + }, + "gor": { + "english_name": "Gorontalo", + "name": "Hulontalo" + }, + "got": { + "english_name": "Gothic", + "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" + }, + "gu": { + "english_name": "Gujarati", + "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" + }, + "guw": { + "english_name": "Gun", + "name": "Gungbe" + }, + "gv": { + "english_name": "Manx", + "name": "Gaelg" + }, + "ha": { + "english_name": "Hausa", + "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" + }, + "hak": { + "english_name": "Hakka", + "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" + }, + "haw": { + "english_name": "Hawaiian", + "name": "Hawai\u02bbi" + }, + "he": { + "english_name": "Hebrew", + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "hi": { + "english_name": "Hindi", + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hif": { + "english_name": "Fiji Hindi", + "name": "Fiji Hindi" + }, + "hr": { + "english_name": "Croatian", + "name": "Hrvatski" + }, + "hsb": { + "english_name": "Upper Sorbian", + "name": "Hornjoserbsce" + }, + "ht": { + "english_name": "Haitian", + "name": "Kr\u00e8yol ayisyen" + }, + "hu": { + "english_name": "Hungarian", + "name": "Magyar" + }, + "hy": { + "english_name": "Armenian", + "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "hyw": { + "english_name": "Western Armenian", + "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" + }, + "ia": { + "english_name": "Interlingua", + "name": "Interlingua" + }, + "id": { + "english_name": "Indonesian", + "name": "Bahasa Indonesia" + }, + "ie": { + "english_name": "Interlingue", + "name": "Interlingue" + }, + "ig": { + "english_name": "Igbo", + "name": "\u00ccgb\u00f2" + }, + "ik": { + "english_name": "Inupiak", + "name": "I\u00f1upiatun" + }, + "ilo": { + "english_name": "Ilokano", + "name": "Ilokano" + }, + "inh": { + "english_name": "Ingush", + "name": "\u0413\u04c0\u0430\u043b\u0433\u04c0\u0430\u0439" + }, + "io": { + "english_name": "Ido", + "name": "Ido" + }, + "is": { + "english_name": "Icelandic", + "name": "\u00cdslenska" + }, + "it": { + "english_name": "Italian", + "name": "Italiano" + }, + "iu": { + "english_name": "Inuktitut", + "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" + }, + "ja": { + "english_name": "Japanese", + "name": "\u65e5\u672c\u8a9e" + }, + "jam": { + "english_name": "Jamaican Patois", + "name": "Jumiekan Kryuol" + }, + "jbo": { + "english_name": "Lojban", + "name": "Lojban" + }, + "jv": { + "english_name": "Javanese", + "name": "Basa Jawa" + }, + "ka": { + "english_name": "Georgian", + "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" + }, + "kaa": { + "english_name": "Karakalpak", + "name": "Qaraqalpaqsha" + }, + "kab": { + "english_name": "Kabyle", + "name": "Taqbaylit" + }, + "kbd": { + "english_name": "Kabardian Circassian", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" + }, + "kbp": { + "english_name": "Kabiye", + "name": "Kab\u0269y\u025b" + }, + "kcg": { + "english_name": "Tyap", + "name": "Tyap" + }, + "kg": { + "english_name": "Kongo", + "name": "Kik\u00f4ngo" + }, + "ki": { + "english_name": "Kikuyu", + "name": "G\u0129k\u0169y\u0169" + }, + "kk": { + "english_name": "Kazakh", + "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" + }, + "kl": { + "english_name": "Greenlandic", + "name": "Kalaallisut" + }, + "km": { + "english_name": "Khmer", + "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" + }, + "kn": { + "english_name": "Kannada", + "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" + }, + "ko": { + "english_name": "Korean", + "name": "\ud55c\uad6d\uc5b4" + }, + "koi": { + "english_name": "Komi-Permyak", + "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" + }, + "krc": { + "english_name": "Karachay-Balkar", + "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" + }, + "ks": { + "english_name": "Kashmiri", + "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" + }, + "ksh": { + "english_name": "Ripuarian", + "name": "Ripoarisch" + }, + "ku": { + "english_name": "Kurdish", + "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" + }, + "kv": { + "english_name": "Komi", + "name": "\u041a\u043e\u043c\u0438" + }, + "kw": { + "english_name": "Cornish", + "name": "Kernowek/Karnuack" + }, + "ky": { + "english_name": "Kyrgyz", + "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" + }, + "la": { + "english_name": "Latin", + "name": "Latina" + }, + "lad": { + "english_name": "Ladino", + "name": "Dzhudezmo" + }, + "lb": { + "english_name": "Luxembourgish", + "name": "L\u00ebtzebuergesch" + }, + "lbe": { + "english_name": "Lak", + "name": "\u041b\u0430\u043a\u043a\u0443" + }, + "lez": { + "english_name": "Lezgian", + "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" + }, + "lfn": { + "english_name": "Lingua Franca Nova", + "name": "Lingua franca nova" + }, + "lg": { + "english_name": "Luganda", + "name": "Luganda" + }, + "li": { + "english_name": "Limburgish", + "name": "Limburgs" + }, + "lij": { + "english_name": "Ligurian", + "name": "L\u00ecgure" + }, + "lld": { + "english_name": "Ladin", + "name": "Lingaz" + }, + "lmo": { + "english_name": "Lombard", + "name": "Lumbaart" + }, + "ln": { + "english_name": "Lingala", + "name": "Lingala" + }, + "lo": { + "english_name": "Lao", + "name": "\u0ea5\u0eb2\u0ea7" + }, + "lt": { + "english_name": "Lithuanian", + "name": "Lietuvi\u0173" + }, + "ltg": { + "english_name": "Latgalian", + "name": "Latga\u013cu" + }, + "lv": { + "english_name": "Latvian", + "name": "Latvie\u0161u" + }, + "mad": { + "english_name": "Madurese", + "name": "Madhur\u00e2" + }, + "mai": { + "english_name": "Maithili", + "name": "\u092e\u0948\u0925\u093f\u0932\u0940" + }, + "map-bms": { + "english_name": "Banyumasan", + "name": "Basa Banyumasan" + }, + "mdf": { + "english_name": "Moksha", + "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" + }, + "mg": { + "english_name": "Malagasy", + "name": "Malagasy" + }, + "mhr": { + "english_name": "Meadow Mari", + "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" + }, + "mi": { + "english_name": "Maori", + "name": "M\u0101ori" + }, + "min": { + "english_name": "Minangkabau", + "name": "Minangkabau" + }, + "mk": { + "english_name": "Macedonian", + "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" + }, + "ml": { + "english_name": "Malayalam", + "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" + }, + "mn": { + "english_name": "Mongolian", + "name": "\u041c\u043e\u043d\u0433\u043e\u043b" + }, + "mni": { + "english_name": "Meitei", + "name": "\uabc3\uabe4\uabc7\uabe9\uabc2\uabe3\uabdf" + }, + "mnw": { + "english_name": "Mon", + "name": "\u1019\u1014\u103a" + }, + "mr": { + "english_name": "Marathi", + "name": "\u092e\u0930\u093e\u0920\u0940" + }, + "mrj": { + "english_name": "Hill Mari", + "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" + }, + "ms": { + "english_name": "Malay", + "name": "Bahasa Melayu" + }, + "mt": { + "english_name": "Maltese", + "name": "Malti" + }, + "mwl": { + "english_name": "Mirandese", + "name": "Mirand\u00e9s" + }, + "my": { + "english_name": "Burmese", + "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" + }, + "myv": { + "english_name": "Erzya", + "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" + }, + "mzn": { + "english_name": "Mazandarani", + "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" + }, + "na": { + "english_name": "Nauruan", + "name": "dorerin Naoero" + }, + "nah": { + "english_name": "Nahuatl", + "name": "N\u0101huatl" + }, + "nap": { + "english_name": "Neapolitan", + "name": "Nnapulitano" + }, + "nds": { + "english_name": "Low Saxon", + "name": "Plattd\u00fc\u00fctsch" + }, + "nds-nl": { + "english_name": "Dutch Low Saxon", + "name": "Nedersaksisch" + }, + "ne": { + "english_name": "Nepali", + "name": "\u0928\u0947\u092a\u093e\u0932\u0940" + }, + "new": { + "english_name": "Newar", + "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" + }, + "nia": { + "english_name": "Nias", + "name": "Li Niha" + }, + "nl": { + "english_name": "Dutch", + "name": "Nederlands" + }, + "nn": { + "english_name": "Norwegian (Nynorsk)", + "name": "Nynorsk" + }, + "no": { + "english_name": "Norwegian (Bokm\u00e5l)", + "name": "Norsk (Bokm\u00e5l)" + }, + "nov": { + "english_name": "Novial", + "name": "Novial" + }, + "nqo": { + "english_name": "N\u2019Ko", + "name": "\u07d2\u07de\u07cf" + }, + "nrm": { + "english_name": "Norman", + "name": "Nouormand/Normaund" + }, + "nso": { + "english_name": "Northern Sotho", + "name": "Sepedi" + }, + "nv": { + "english_name": "Navajo", + "name": "Din\u00e9 bizaad" + }, + "ny": { + "english_name": "Chichewa", + "name": "Chichewa" + }, + "oc": { + "english_name": "Occitan", + "name": "Occitan" + }, + "olo": { + "english_name": "Livvi-Karelian", + "name": "Karjalan" + }, + "om": { + "english_name": "Oromo", + "name": "Oromoo" + }, + "or": { + "english_name": "Oriya", + "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" + }, + "os": { + "english_name": "Ossetian", + "name": "\u0418\u0440\u043e\u043d\u0430\u0443" + }, + "pa": { + "english_name": "Punjabi", + "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" + }, + "pag": { + "english_name": "Pangasinan", + "name": "Pangasinan" + }, + "pam": { + "english_name": "Kapampangan", + "name": "Kapampangan" + }, + "pap": { + "english_name": "Papiamentu", + "name": "Papiamentu" + }, + "pcd": { + "english_name": "Picard", + "name": "Picard" + }, + "pcm": { + "english_name": "Nigerian Pidgin", + "name": "Naij\u00e1" + }, + "pdc": { + "english_name": "Pennsylvania German", + "name": "Deitsch" + }, + "pfl": { + "english_name": "Palatinate German", + "name": "P\u00e4lzisch" + }, + "pi": { + "english_name": "Pali", + "name": "\u092a\u093e\u0934\u093f" + }, + "pih": { + "english_name": "Norfolk", + "name": "Norfuk" + }, + "pl": { + "english_name": "Polish", + "name": "Polski" + }, + "pms": { + "english_name": "Piedmontese", + "name": "Piemont\u00e8is" + }, + "pnb": { + "english_name": "Western Punjabi", + "name": "\u0634\u0627\u06c1 \u0645\u06a9\u06be\u06cc \u067e\u0646\u062c\u0627\u0628\u06cc (Sh\u0101hmukh\u012b Pa\u00f1j\u0101b\u012b)" + }, + "pnt": { + "english_name": "Pontic", + "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" + }, + "ps": { + "english_name": "Pashto", + "name": "\u067e\u069a\u062a\u0648" + }, + "pt": { + "english_name": "Portuguese", + "name": "Portugu\u00eas" + }, + "pwn": { + "english_name": "Paiwan", + "name": "Paiwan" + }, + "qu": { + "english_name": "Quechua", + "name": "Qichwa simi" + }, + "rm": { + "english_name": "Romansh", + "name": "Rumantsch" + }, + "rmy": { + "english_name": "Romani", + "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" + }, + "rn": { + "english_name": "Kirundi", + "name": "Ikirundi" + }, + "ro": { + "english_name": "Romanian", + "name": "Rom\u00e2n\u0103" + }, + "roa-rup": { + "english_name": "Aromanian", + "name": "Arm\u00e3neashce" + }, + "roa-tara": { + "english_name": "Tarantino", + "name": "Tarand\u00edne" + }, + "ru": { + "english_name": "Russian", + "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "rue": { + "english_name": "Rusyn", + "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" + }, + "rw": { + "english_name": "Kinyarwanda", + "name": "Ikinyarwanda" + }, + "sa": { + "english_name": "Sanskrit", + "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" + }, + "sah": { + "english_name": "Sakha", + "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" + }, + "sat": { + "english_name": "Santali", + "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" + }, + "sc": { + "english_name": "Sardinian", + "name": "Sardu" + }, + "scn": { + "english_name": "Sicilian", + "name": "Sicilianu" + }, + "sco": { + "english_name": "Scots", + "name": "Scots" + }, + "sd": { + "english_name": "Sindhi", + "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" + }, + "se": { + "english_name": "Northern Sami", + "name": "S\u00e1megiella" + }, + "sg": { + "english_name": "Sango", + "name": "S\u00e4ng\u00f6" + }, + "sh": { + "english_name": "Serbo-Croatian", + "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" + }, + "shi": { + "english_name": "Tachelhit", + "name": "Tacl\u1e25it" + }, + "shn": { + "english_name": "Shan", + "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" + }, + "si": { + "english_name": "Sinhalese", + "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" + }, + "simple": { + "english_name": "Simple English", + "name": "Simple English" + }, + "sk": { + "english_name": "Slovak", + "name": "Sloven\u010dina" + }, + "skr": { + "english_name": "Saraiki", + "name": "\u0633\u0631\u0627\u0626\u06cc\u06a9\u06cc" + }, + "sl": { + "english_name": "Slovenian", + "name": "Sloven\u0161\u010dina" + }, + "sm": { + "english_name": "Samoan", + "name": "Gagana Samoa" + }, + "smn": { + "english_name": "Inari Sami", + "name": "Anar\u00e2\u0161kiel\u00e2" + }, + "sn": { + "english_name": "Shona", + "name": "chiShona" + }, + "so": { + "english_name": "Somali", + "name": "Soomaali" + }, + "sq": { + "english_name": "Albanian", + "name": "Shqip" + }, + "sr": { + "english_name": "Serbian", + "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" + }, + "srn": { + "english_name": "Sranan", + "name": "Sranantongo" + }, + "ss": { + "english_name": "Swati", + "name": "SiSwati" + }, + "st": { + "english_name": "Sesotho", + "name": "Sesotho" + }, + "stq": { + "english_name": "Saterland Frisian", + "name": "Seeltersk" + }, + "su": { + "english_name": "Sundanese", + "name": "Basa Sunda" + }, + "sv": { + "english_name": "Swedish", + "name": "Svenska" + }, + "sw": { + "english_name": "Swahili", + "name": "Kiswahili" + }, + "szl": { + "english_name": "Silesian", + "name": "\u015al\u016fnski" + }, + "szy": { + "english_name": "Sakizaya", + "name": "Sakizaya" + }, + "ta": { + "english_name": "Tamil", + "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" + }, + "tay": { + "english_name": "Atayal", + "name": "Tayal" + }, + "tcy": { + "english_name": "Tulu", + "name": "\u0ca4\u0cc1\u0cb3\u0cc1" + }, + "te": { + "english_name": "Telugu", + "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" + }, + "tet": { + "english_name": "Tetum", + "name": "Tetun" + }, + "tg": { + "english_name": "Tajik", + "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" + }, + "th": { + "english_name": "Thai", + "name": "\u0e44\u0e17\u0e22" + }, + "ti": { + "english_name": "Tigrinya", + "name": "\u1275\u130d\u122d\u129b" + }, + "tk": { + "english_name": "Turkmen", + "name": "T\u00fcrkmen" + }, + "tl": { + "english_name": "Tagalog", + "name": "Tagalog" + }, + "tn": { + "english_name": "Tswana", + "name": "Setswana" + }, + "to": { + "english_name": "Tongan", + "name": "faka Tonga" + }, + "tpi": { + "english_name": "Tok Pisin", + "name": "Tok Pisin" + }, + "tr": { + "english_name": "Turkish", + "name": "T\u00fcrk\u00e7e" + }, + "trv": { + "english_name": "Seediq", + "name": "Taroko" + }, + "ts": { + "english_name": "Tsonga", + "name": "Xitsonga" + }, + "tt": { + "english_name": "Tatar", + "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" + }, + "tum": { + "english_name": "Tumbuka", + "name": "chiTumbuka" + }, + "tw": { + "english_name": "Twi", + "name": "Twi" + }, + "ty": { + "english_name": "Tahitian", + "name": "Reo M\u0101`ohi" + }, + "tyv": { + "english_name": "Tuvan", + "name": "\u0422\u044b\u0432\u0430" + }, + "udm": { + "english_name": "Udmurt", + "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" + }, + "ug": { + "english_name": "Uyghur", + "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" + }, + "uk": { + "english_name": "Ukrainian", + "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "ur": { + "english_name": "Urdu", + "name": "\u0627\u0631\u062f\u0648" + }, + "uz": { + "english_name": "Uzbek", + "name": "O\u2018zbek" + }, + "ve": { + "english_name": "Venda", + "name": "Tshivenda" + }, + "vec": { + "english_name": "Venetian", + "name": "V\u00e8neto" + }, + "vep": { + "english_name": "Vepsian", + "name": "Veps\u00e4n" + }, + "vi": { + "english_name": "Vietnamese", + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "vls": { + "english_name": "West Flemish", + "name": "West-Vlams" + }, + "vo": { + "english_name": "Volap\u00fck", + "name": "Volap\u00fck" + }, + "wa": { + "english_name": "Walloon", + "name": "Walon" + }, + "war": { + "english_name": "Waray-Waray", + "name": "Winaray" + }, + "wo": { + "english_name": "Wolof", + "name": "Wolof" + }, + "wuu": { + "english_name": "Wu", + "name": "\u5434\u8bed" + }, + "xal": { + "english_name": "Kalmyk", + "name": "\u0425\u0430\u043b\u044c\u043c\u0433" + }, + "xh": { + "english_name": "Xhosa", + "name": "isiXhosa" + }, + "xmf": { + "english_name": "Mingrelian", + "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" + }, + "yi": { + "english_name": "Yiddish", + "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" + }, + "yo": { + "english_name": "Yoruba", + "name": "Yor\u00f9b\u00e1" + }, + "za": { + "english_name": "Zhuang", + "name": "Cuengh" + }, + "zea": { + "english_name": "Zeelandic", + "name": "Ze\u00eauws" + }, + "zh": { + "english_name": "Chinese", + "name": "\u4e2d\u6587" + }, + "zh-classical": { + "english_name": "Classical Chinese", + "name": "\u53e4\u6587 / \u6587\u8a00\u6587" + }, + "zh-min-nan": { + "english_name": "Min Nan", + "name": "B\u00e2n-l\u00e2m-g\u00fa" + }, + "zh-yue": { + "english_name": "Cantonese", + "name": "\u7cb5\u8a9e" + }, + "zu": { + "english_name": "Zulu", + "name": "isiZulu" + } + }, + "regions": {} + }, + "yahoo": { + "data_type": "supported_languages", + "languages": [ + "ar", + "bg", + "cs", + "da", + "de", + "el", + "en", + "es", + "et", + "fi", + "fr", + "he", + "hr", + "hu", + "it", + "ja", + "ko", + "lt", + "lv", + "nl", + "no", + "pl", + "pt", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tr", + "zh_chs", + "zh_cht" + ], + "regions": {} + } +} \ No newline at end of file diff --git a/searx/data/engines_languages.json b/searx/data/engines_languages.json deleted file mode 100644 index ec5ed0f4e..000000000 --- a/searx/data/engines_languages.json +++ /dev/null @@ -1,4283 +0,0 @@ -{ - "bing": [ - "af", - "am", - "ar", - "as", - "az-latn", - "be", - "bg", - "bn", - "bs-latn", - "ca", - "ca-es-valencia", - "chr-cher", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fa", - "fi", - "fil", - "fr", - "ga", - "gd", - "gl", - "gu", - "ha-latn", - "he", - "hi", - "hr", - "hu", - "hy", - "id", - "ig", - "is", - "it", - "ja", - "ka", - "kk", - "km", - "kn", - "ko", - "kok", - "ku-arab", - "ky", - "lb", - "lo", - "lt", - "lv", - "mi", - "mk", - "ml", - "mn-Cyrl-MN", - "mr", - "ms", - "mt", - "nb", - "ne", - "nl", - "nn", - "nso", - "or", - "pa-arab", - "pa-guru", - "pl", - "prs", - "pt-BR", - "pt-PT", - "quc", - "quz", - "ro", - "ru", - "rw", - "sd-arab", - "si", - "sk", - "sl", - "sq", - "sr-cyrl", - "sr-latn", - "sv", - "sw", - "ta", - "te", - "tg-cyrl", - "th", - "ti", - "tk", - "tn", - "tr", - "tt", - "ug", - "uk", - "ur", - "uz-latn", - "vi", - "wo", - "xh", - "yo", - "zh-Hans", - "zh-Hant", - "zu" - ], - "bing images": [ - "af", - "am", - "ar", - "as", - "az-latn", - "be", - "bg", - "bn", - "bs-latn", - "ca", - "ca-es-valencia", - "chr-cher", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fa", - "fi", - "fil", - "fr", - "ga", - "gd", - "gl", - "gu", - "ha-latn", - "he", - "hi", - "hr", - "hu", - "hy", - "id", - "ig", - "is", - "it", - "ja", - "ka", - "kk", - "km", - "kn", - "ko", - "kok", - "ku-arab", - "ky", - "lb", - "lo", - "lt", - "lv", - "mi", - "mk", - "ml", - "mn-Cyrl-MN", - "mr", - "ms", - "mt", - "nb", - "ne", - "nl", - "nn", - "nso", - "or", - "pa-arab", - "pa-guru", - "pl", - "prs", - "pt-BR", - "pt-PT", - "quc", - "quz", - "ro", - "ru", - "rw", - "sd-arab", - "si", - "sk", - "sl", - "sq", - "sr-cyrl", - "sr-latn", - "sv", - "sw", - "ta", - "te", - "tg-cyrl", - "th", - "ti", - "tk", - "tn", - "tr", - "tt", - "ug", - "uk", - "ur", - "uz-latn", - "vi", - "wo", - "xh", - "yo", - "zh-Hans", - "zh-Hant", - "zu" - ], - "bing news": [ - "af", - "am", - "ar", - "as", - "az-latn", - "be", - "bg", - "bn", - "bs-latn", - "ca", - "ca-es-valencia", - "chr-cher", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fa", - "fi", - "fil", - "fr", - "ga", - "gd", - "gl", - "gu", - "ha-latn", - "he", - "hi", - "hr", - "hu", - "hy", - "id", - "ig", - "is", - "it", - "ja", - "ka", - "kk", - "km", - "kn", - "ko", - "kok", - "ku-arab", - "ky", - "lb", - "lo", - "lt", - "lv", - "mi", - "mk", - "ml", - "mn-Cyrl-MN", - "mr", - "ms", - "mt", - "nb", - "ne", - "nl", - "nn", - "nso", - "or", - "pa-arab", - "pa-guru", - "pl", - "prs", - "pt-BR", - "pt-PT", - "quc", - "quz", - "ro", - "ru", - "rw", - "sd-arab", - "si", - "sk", - "sl", - "sq", - "sr-cyrl", - "sr-latn", - "sv", - "sw", - "ta", - "te", - "tg-cyrl", - "th", - "ti", - "tk", - "tn", - "tr", - "tt", - "ug", - "uk", - "ur", - "uz-latn", - "vi", - "wo", - "xh", - "yo", - "zh-Hans", - "zh-Hant", - "zu" - ], - "bing videos": [ - "af", - "am", - "ar", - "as", - "az-latn", - "be", - "bg", - "bn", - "bs-latn", - "ca", - "ca-es-valencia", - "chr-cher", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fa", - "fi", - "fil", - "fr", - "ga", - "gd", - "gl", - "gu", - "ha-latn", - "he", - "hi", - "hr", - "hu", - "hy", - "id", - "ig", - "is", - "it", - "ja", - "ka", - "kk", - "km", - "kn", - "ko", - "kok", - "ku-arab", - "ky", - "lb", - "lo", - "lt", - "lv", - "mi", - "mk", - "ml", - "mn-Cyrl-MN", - "mr", - "ms", - "mt", - "nb", - "ne", - "nl", - "nn", - "nso", - "or", - "pa-arab", - "pa-guru", - "pl", - "prs", - "pt-BR", - "pt-PT", - "quc", - "quz", - "ro", - "ru", - "rw", - "sd-arab", - "si", - "sk", - "sl", - "sq", - "sr-cyrl", - "sr-latn", - "sv", - "sw", - "ta", - "te", - "tg-cyrl", - "th", - "ti", - "tk", - "tn", - "tr", - "tt", - "ug", - "uk", - "ur", - "uz-latn", - "vi", - "wo", - "xh", - "yo", - "zh-Hans", - "zh-Hant", - "zu" - ], - "dailymotion": [ - "ar_AA", - "ar_AE", - "ar_EG", - "ar_SA", - "de_AT", - "de_CH", - "de_DE", - "el_GR", - "en_AU", - "en_CA", - "en_EN", - "en_GB", - "en_HK", - "en_IE", - "en_IN", - "en_NG", - "en_PH", - "en_PK", - "en_SG", - "en_US", - "en_ZA", - "es_AR", - "es_ES", - "es_MX", - "fr_BE", - "fr_CA", - "fr_CH", - "fr_CI", - "fr_FR", - "fr_MA", - "fr_SN", - "fr_TN", - "id_ID", - "it_CH", - "it_IT", - "ja_JP", - "ko_KR", - "ms_MY", - "nl_BE", - "nl_NL", - "pl_PL", - "pt_BR", - "pt_PT", - "ro_RO", - "ru_RU", - "th_TH", - "tr_TR", - "vi_VN", - "zh_CN", - "zh_TW" - ], - "ddg definitions": [ - "ar-XA", - "bg-BG", - "ca-CT", - "ca-ES", - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-ID", - "en-IE", - "en-IL", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-PK", - "en-SG", - "en-TH", - "en-UK", - "en-US", - "en-VN", - "en-ZA", - "es-AR", - "es-CL", - "es-CO", - "es-ES", - "es-MX", - "es-PE", - "es-US", - "et-EE", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "hr-HR", - "hu-HU", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "tr-TR", - "tzh-HK", - "tzh-TW", - "uk-UA", - "wt-WT", - "zh-CN" - ], - "duckduckgo": [ - "ar-XA", - "bg-BG", - "ca-CT", - "ca-ES", - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-ID", - "en-IE", - "en-IL", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-PK", - "en-SG", - "en-TH", - "en-UK", - "en-US", - "en-VN", - "en-ZA", - "es-AR", - "es-CL", - "es-CO", - "es-ES", - "es-MX", - "es-PE", - "es-US", - "et-EE", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "hr-HR", - "hu-HU", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "tr-TR", - "tzh-HK", - "tzh-TW", - "uk-UA", - "wt-WT", - "zh-CN" - ], - "duckduckgo images": [ - "ar-XA", - "bg-BG", - "ca-CT", - "ca-ES", - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-ID", - "en-IE", - "en-IL", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-PK", - "en-SG", - "en-TH", - "en-UK", - "en-US", - "en-VN", - "en-ZA", - "es-AR", - "es-CL", - "es-CO", - "es-ES", - "es-MX", - "es-PE", - "es-US", - "et-EE", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "hr-HR", - "hu-HU", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "tr-TR", - "tzh-HK", - "tzh-TW", - "uk-UA", - "wt-WT", - "zh-CN" - ], - "google": { - "af": { - "name": "Afrikaans" - }, - "ar": { - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "be": { - "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "bg": { - "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "ca": { - "name": "catal\u00e0" - }, - "cs": { - "name": "\u010de\u0161tina" - }, - "da": { - "name": "dansk" - }, - "de": { - "name": "Deutsch" - }, - "el": { - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "en": { - "name": "English" - }, - "eo": { - "name": "esperanto" - }, - "es": { - "name": "espa\u00f1ol" - }, - "et": { - "name": "eesti" - }, - "fa": { - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "fi": { - "name": "suomi" - }, - "fr": { - "name": "fran\u00e7ais" - }, - "hi": { - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hr": { - "name": "hrvatski" - }, - "hu": { - "name": "magyar" - }, - "hy": { - "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "id": { - "name": "Indonesia" - }, - "is": { - "name": "\u00edslenska" - }, - "it": { - "name": "italiano" - }, - "iw": { - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "ja": { - "name": "\u65e5\u672c\u8a9e" - }, - "ko": { - "name": "\ud55c\uad6d\uc5b4" - }, - "lt": { - "name": "lietuvi\u0173" - }, - "lv": { - "name": "latvie\u0161u" - }, - "nl": { - "name": "Nederlands" - }, - "no": { - "name": "norsk" - }, - "pl": { - "name": "polski" - }, - "pt": { - "name": "portugu\u00eas" - }, - "ro": { - "name": "rom\u00e2n\u0103" - }, - "ru": { - "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "sk": { - "name": "sloven\u010dina" - }, - "sl": { - "name": "sloven\u0161\u010dina" - }, - "sr": { - "name": "\u0441\u0440\u043f\u0441\u043a\u0438" - }, - "sv": { - "name": "svenska" - }, - "sw": { - "name": "Kiswahili" - }, - "th": { - "name": "\u0e44\u0e17\u0e22" - }, - "tl": { - "name": "Filipino" - }, - "tr": { - "name": "T\u00fcrk\u00e7e" - }, - "uk": { - "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "vi": { - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "zh-CN": { - "name": "\u4e2d\u6587 (\u7b80\u4f53)" - }, - "zh-TW": { - "name": "\u4e2d\u6587 (\u7e41\u9ad4)" - } - }, - "google images": { - "af": { - "name": "Afrikaans" - }, - "ar": { - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "be": { - "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "bg": { - "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "ca": { - "name": "catal\u00e0" - }, - "cs": { - "name": "\u010de\u0161tina" - }, - "da": { - "name": "dansk" - }, - "de": { - "name": "Deutsch" - }, - "el": { - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "en": { - "name": "English" - }, - "eo": { - "name": "esperanto" - }, - "es": { - "name": "espa\u00f1ol" - }, - "et": { - "name": "eesti" - }, - "fa": { - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "fi": { - "name": "suomi" - }, - "fr": { - "name": "fran\u00e7ais" - }, - "hi": { - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hr": { - "name": "hrvatski" - }, - "hu": { - "name": "magyar" - }, - "hy": { - "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "id": { - "name": "Indonesia" - }, - "is": { - "name": "\u00edslenska" - }, - "it": { - "name": "italiano" - }, - "iw": { - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "ja": { - "name": "\u65e5\u672c\u8a9e" - }, - "ko": { - "name": "\ud55c\uad6d\uc5b4" - }, - "lt": { - "name": "lietuvi\u0173" - }, - "lv": { - "name": "latvie\u0161u" - }, - "nl": { - "name": "Nederlands" - }, - "no": { - "name": "norsk" - }, - "pl": { - "name": "polski" - }, - "pt": { - "name": "portugu\u00eas" - }, - "ro": { - "name": "rom\u00e2n\u0103" - }, - "ru": { - "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "sk": { - "name": "sloven\u010dina" - }, - "sl": { - "name": "sloven\u0161\u010dina" - }, - "sr": { - "name": "\u0441\u0440\u043f\u0441\u043a\u0438" - }, - "sv": { - "name": "svenska" - }, - "sw": { - "name": "Kiswahili" - }, - "th": { - "name": "\u0e44\u0e17\u0e22" - }, - "tl": { - "name": "Filipino" - }, - "tr": { - "name": "T\u00fcrk\u00e7e" - }, - "uk": { - "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "vi": { - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "zh-CN": { - "name": "\u4e2d\u6587 (\u7b80\u4f53)" - }, - "zh-TW": { - "name": "\u4e2d\u6587 (\u7e41\u9ad4)" - } - }, - "google news": { - "af": { - "name": "Afrikaans" - }, - "ar": { - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "be": { - "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "bg": { - "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "ca": { - "name": "catal\u00e0" - }, - "cs": { - "name": "\u010de\u0161tina" - }, - "da": { - "name": "dansk" - }, - "de": { - "name": "Deutsch" - }, - "el": { - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "en": { - "name": "English" - }, - "eo": { - "name": "esperanto" - }, - "es": { - "name": "espa\u00f1ol" - }, - "et": { - "name": "eesti" - }, - "fa": { - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "fi": { - "name": "suomi" - }, - "fr": { - "name": "fran\u00e7ais" - }, - "hi": { - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hr": { - "name": "hrvatski" - }, - "hu": { - "name": "magyar" - }, - "hy": { - "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "id": { - "name": "Indonesia" - }, - "is": { - "name": "\u00edslenska" - }, - "it": { - "name": "italiano" - }, - "iw": { - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "ja": { - "name": "\u65e5\u672c\u8a9e" - }, - "ko": { - "name": "\ud55c\uad6d\uc5b4" - }, - "lt": { - "name": "lietuvi\u0173" - }, - "lv": { - "name": "latvie\u0161u" - }, - "nl": { - "name": "Nederlands" - }, - "no": { - "name": "norsk" - }, - "pl": { - "name": "polski" - }, - "pt": { - "name": "portugu\u00eas" - }, - "ro": { - "name": "rom\u00e2n\u0103" - }, - "ru": { - "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "sk": { - "name": "sloven\u010dina" - }, - "sl": { - "name": "sloven\u0161\u010dina" - }, - "sr": { - "name": "\u0441\u0440\u043f\u0441\u043a\u0438" - }, - "sv": { - "name": "svenska" - }, - "sw": { - "name": "Kiswahili" - }, - "th": { - "name": "\u0e44\u0e17\u0e22" - }, - "tl": { - "name": "Filipino" - }, - "tr": { - "name": "T\u00fcrk\u00e7e" - }, - "uk": { - "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "vi": { - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "zh-CN": { - "name": "\u4e2d\u6587 (\u7b80\u4f53)" - }, - "zh-TW": { - "name": "\u4e2d\u6587 (\u7e41\u9ad4)" - } - }, - "google scholar": { - "af": { - "name": "Afrikaans" - }, - "ar": { - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "be": { - "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "bg": { - "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "ca": { - "name": "catal\u00e0" - }, - "cs": { - "name": "\u010de\u0161tina" - }, - "da": { - "name": "dansk" - }, - "de": { - "name": "Deutsch" - }, - "el": { - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "en": { - "name": "English" - }, - "eo": { - "name": "esperanto" - }, - "es": { - "name": "espa\u00f1ol" - }, - "et": { - "name": "eesti" - }, - "fa": { - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "fi": { - "name": "suomi" - }, - "fr": { - "name": "fran\u00e7ais" - }, - "hi": { - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hr": { - "name": "hrvatski" - }, - "hu": { - "name": "magyar" - }, - "hy": { - "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "id": { - "name": "Indonesia" - }, - "is": { - "name": "\u00edslenska" - }, - "it": { - "name": "italiano" - }, - "iw": { - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "ja": { - "name": "\u65e5\u672c\u8a9e" - }, - "ko": { - "name": "\ud55c\uad6d\uc5b4" - }, - "lt": { - "name": "lietuvi\u0173" - }, - "lv": { - "name": "latvie\u0161u" - }, - "nl": { - "name": "Nederlands" - }, - "no": { - "name": "norsk" - }, - "pl": { - "name": "polski" - }, - "pt": { - "name": "portugu\u00eas" - }, - "ro": { - "name": "rom\u00e2n\u0103" - }, - "ru": { - "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "sk": { - "name": "sloven\u010dina" - }, - "sl": { - "name": "sloven\u0161\u010dina" - }, - "sr": { - "name": "\u0441\u0440\u043f\u0441\u043a\u0438" - }, - "sv": { - "name": "svenska" - }, - "sw": { - "name": "Kiswahili" - }, - "th": { - "name": "\u0e44\u0e17\u0e22" - }, - "tl": { - "name": "Filipino" - }, - "tr": { - "name": "T\u00fcrk\u00e7e" - }, - "uk": { - "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "vi": { - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "zh-CN": { - "name": "\u4e2d\u6587 (\u7b80\u4f53)" - }, - "zh-TW": { - "name": "\u4e2d\u6587 (\u7e41\u9ad4)" - } - }, - "google videos": { - "af": { - "name": "Afrikaans" - }, - "ar": { - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "be": { - "name": "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "bg": { - "name": "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "ca": { - "name": "catal\u00e0" - }, - "cs": { - "name": "\u010de\u0161tina" - }, - "da": { - "name": "dansk" - }, - "de": { - "name": "Deutsch" - }, - "el": { - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "en": { - "name": "English" - }, - "eo": { - "name": "esperanto" - }, - "es": { - "name": "espa\u00f1ol" - }, - "et": { - "name": "eesti" - }, - "fa": { - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "fi": { - "name": "suomi" - }, - "fr": { - "name": "fran\u00e7ais" - }, - "hi": { - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hr": { - "name": "hrvatski" - }, - "hu": { - "name": "magyar" - }, - "hy": { - "name": "\u0570\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "id": { - "name": "Indonesia" - }, - "is": { - "name": "\u00edslenska" - }, - "it": { - "name": "italiano" - }, - "iw": { - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "ja": { - "name": "\u65e5\u672c\u8a9e" - }, - "ko": { - "name": "\ud55c\uad6d\uc5b4" - }, - "lt": { - "name": "lietuvi\u0173" - }, - "lv": { - "name": "latvie\u0161u" - }, - "nl": { - "name": "Nederlands" - }, - "no": { - "name": "norsk" - }, - "pl": { - "name": "polski" - }, - "pt": { - "name": "portugu\u00eas" - }, - "ro": { - "name": "rom\u00e2n\u0103" - }, - "ru": { - "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "sk": { - "name": "sloven\u010dina" - }, - "sl": { - "name": "sloven\u0161\u010dina" - }, - "sr": { - "name": "\u0441\u0440\u043f\u0441\u043a\u0438" - }, - "sv": { - "name": "svenska" - }, - "sw": { - "name": "Kiswahili" - }, - "th": { - "name": "\u0e44\u0e17\u0e22" - }, - "tl": { - "name": "Filipino" - }, - "tr": { - "name": "T\u00fcrk\u00e7e" - }, - "uk": { - "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "vi": { - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "zh-CN": { - "name": "\u4e2d\u6587 (\u7b80\u4f53)" - }, - "zh-TW": { - "name": "\u4e2d\u6587 (\u7e41\u9ad4)" - } - }, - "peertube": [ - "ca", - "cs", - "de", - "el", - "en", - "eo", - "es", - "eu", - "fi", - "fr", - "gd", - "it", - "ja", - "nl", - "oc", - "pl", - "pt", - "ru", - "sv", - "zh" - ], - "qwant": { - "languages": {}, - "regions": { - "bg-BG": "bg_BG", - "ca-ES": "ca_ES", - "cs-CZ": "cs_CZ", - "da-DK": "da_DK", - "de-AT": "de_AT", - "de-CH": "de_CH", - "de-DE": "de_DE", - "el-GR": "el_GR", - "en-AU": "en_AU", - "en-CA": "en_CA", - "en-GB": "en_GB", - "en-IE": "en_IE", - "en-MY": "en_MY", - "en-NZ": "en_NZ", - "en-US": "en_US", - "es-AR": "es_AR", - "es-CL": "es_CL", - "es-ES": "es_ES", - "es-MX": "es_MX", - "et-EE": "et_EE", - "fi-FI": "fi_FI", - "fr-BE": "fr_BE", - "fr-CA": "fr_CA", - "fr-CH": "fr_CH", - "fr-FR": "fr_FR", - "hu-HU": "hu_HU", - "it-CH": "it_CH", - "it-IT": "it_IT", - "ko-KR": "ko_KR", - "nb-NO": "nb_NO", - "nl-BE": "nl_BE", - "nl-NL": "nl_NL", - "pl-PL": "pl_PL", - "pt-PT": "pt_PT", - "ro-RO": "ro_RO", - "sv-SE": "sv_SE", - "th-TH": "th_TH", - "zh-CN": "zh_CN", - "zh-HK": "zh_HK" - }, - "type": "engine_properties" - }, - "qwant images": { - "languages": {}, - "regions": { - "bg-BG": "bg_BG", - "ca-ES": "ca_ES", - "cs-CZ": "cs_CZ", - "da-DK": "da_DK", - "de-AT": "de_AT", - "de-CH": "de_CH", - "de-DE": "de_DE", - "el-GR": "el_GR", - "en-AU": "en_AU", - "en-CA": "en_CA", - "en-GB": "en_GB", - "en-IE": "en_IE", - "en-MY": "en_MY", - "en-NZ": "en_NZ", - "en-US": "en_US", - "es-AR": "es_AR", - "es-CL": "es_CL", - "es-ES": "es_ES", - "es-MX": "es_MX", - "et-EE": "et_EE", - "fi-FI": "fi_FI", - "fr-BE": "fr_BE", - "fr-CA": "fr_CA", - "fr-CH": "fr_CH", - "fr-FR": "fr_FR", - "hu-HU": "hu_HU", - "it-CH": "it_CH", - "it-IT": "it_IT", - "ko-KR": "ko_KR", - "nb-NO": "nb_NO", - "nl-BE": "nl_BE", - "nl-NL": "nl_NL", - "pl-PL": "pl_PL", - "pt-PT": "pt_PT", - "ro-RO": "ro_RO", - "sv-SE": "sv_SE", - "th-TH": "th_TH", - "zh-CN": "zh_CN", - "zh-HK": "zh_HK" - }, - "type": "engine_properties" - }, - "qwant news": { - "languages": {}, - "regions": { - "ca-ES": "ca_ES", - "de-AT": "de_AT", - "de-CH": "de_CH", - "de-DE": "de_DE", - "en-AU": "en_AU", - "en-CA": "en_CA", - "en-GB": "en_GB", - "en-IE": "en_IE", - "en-MY": "en_MY", - "en-NZ": "en_NZ", - "en-US": "en_US", - "es-AR": "es_AR", - "es-CL": "es_CL", - "es-ES": "es_ES", - "es-MX": "es_MX", - "fr-BE": "fr_BE", - "fr-CA": "fr_CA", - "fr-CH": "fr_CH", - "fr-FR": "fr_FR", - "it-CH": "it_CH", - "it-IT": "it_IT", - "nl-BE": "nl_BE", - "nl-NL": "nl_NL", - "pt-PT": "pt_PT" - }, - "type": "engine_properties" - }, - "qwant videos": { - "languages": {}, - "regions": { - "bg-BG": "bg_BG", - "ca-ES": "ca_ES", - "cs-CZ": "cs_CZ", - "da-DK": "da_DK", - "de-AT": "de_AT", - "de-CH": "de_CH", - "de-DE": "de_DE", - "el-GR": "el_GR", - "en-AU": "en_AU", - "en-CA": "en_CA", - "en-GB": "en_GB", - "en-IE": "en_IE", - "en-MY": "en_MY", - "en-NZ": "en_NZ", - "en-US": "en_US", - "es-AR": "es_AR", - "es-CL": "es_CL", - "es-ES": "es_ES", - "es-MX": "es_MX", - "et-EE": "et_EE", - "fi-FI": "fi_FI", - "fr-BE": "fr_BE", - "fr-CA": "fr_CA", - "fr-CH": "fr_CH", - "fr-FR": "fr_FR", - "hu-HU": "hu_HU", - "it-CH": "it_CH", - "it-IT": "it_IT", - "ko-KR": "ko_KR", - "nb-NO": "nb_NO", - "nl-BE": "nl_BE", - "nl-NL": "nl_NL", - "pl-PL": "pl_PL", - "pt-PT": "pt_PT", - "ro-RO": "ro_RO", - "sv-SE": "sv_SE", - "th-TH": "th_TH", - "zh-CN": "zh_CN", - "zh-HK": "zh_HK" - }, - "type": "engine_properties" - }, - "startpage": { - "languages": { - "af": "afrikaans", - "am": "amharic", - "ar": "arabic", - "az": "azerbaijani", - "be": "belarusian", - "bg": "bulgarian", - "bn": "bengali", - "bs": "bosnian", - "ca": "catalan", - "cs": "czech", - "cy": "welsh", - "da": "dansk", - "de": "deutsch", - "el": "greek", - "en": "english_uk", - "eo": "esperanto", - "es": "espanol", - "et": "estonian", - "eu": "basque", - "fa": "persian", - "fi": "suomi", - "fo": "faroese", - "fr": "francais", - "fy": "frisian", - "ga": "irish", - "gd": "gaelic", - "gl": "galician", - "gu": "gujarati", - "he": "hebrew", - "hi": "hindi", - "hr": "croatian", - "hu": "hungarian", - "ia": "interlingua", - "id": "indonesian", - "is": "icelandic", - "it": "italiano", - "ja": "nihongo", - "jv": "javanese", - "ka": "georgian", - "kn": "kannada", - "ko": "hangul", - "la": "latin", - "lt": "lithuanian", - "lv": "latvian", - "mai": "bihari", - "mk": "macedonian", - "ml": "malayalam", - "mr": "marathi", - "ms": "malay", - "mt": "maltese", - "nb": "norsk", - "ne": "nepali", - "nl": "nederlands", - "oc": "occitan", - "pa": "punjabi", - "pl": "polski", - "pt": "portugues", - "ro": "romanian", - "ru": "russian", - "si": "sinhalese", - "sk": "slovak", - "sl": "slovenian", - "sq": "albanian", - "sr": "serbian", - "su": "sudanese", - "sv": "svenska", - "sw": "swahili", - "ta": "tamil", - "te": "telugu", - "th": "thai", - "ti": "tigrinya", - "tl": "tagalog", - "tr": "turkce", - "uk": "ukrainian", - "ur": "urdu", - "uz": "uzbek", - "vi": "vietnamese", - "xh": "xhosa", - "zh": "jiantizhongwen", - "zh_Hant": "fantizhengwen", - "zu": "zulu" - }, - "regions": { - "ar-EG": "ar_EG", - "bg-BG": "bg_BG", - "ca-ES": "ca_ES", - "cs-CZ": "cs_CZ", - "da-DK": "da_DK", - "de-AT": "de_AT", - "de-CH": "de_CH", - "de-DE": "de_DE", - "el-GR": "el_GR", - "en-AU": "en_AU", - "en-CA": "en_CA", - "en-GB": "en-GB_GB", - "en-IE": "en_IE", - "en-MY": "en_MY", - "en-NZ": "en_NZ", - "en-US": "en_US", - "en-ZA": "en_ZA", - "es-AR": "es_AR", - "es-CL": "es_CL", - "es-ES": "es_ES", - "es-US": "es_US", - "es-UY": "es_UY", - "fi-FI": "fi_FI", - "fil-PH": "fil_PH", - "fr-BE": "fr_BE", - "fr-CA": "fr_CA", - "fr-CH": "fr_CH", - "fr-FR": "fr_FR", - "hi-IN": "hi_IN", - "it-CH": "it_CH", - "it-IT": "it_IT", - "ja-JP": "ja_JP", - "ko-KR": "ko_KR", - "ms-MY": "ms_MY", - "nb-NO": "no_NO", - "nl-BE": "nl_BE", - "nl-NL": "nl_NL", - "pl-PL": "pl_PL", - "pt-BR": "pt-BR_BR", - "pt-PT": "pt_PT", - "ro-RO": "ro_RO", - "ru-BY": "ru_BY", - "ru-RU": "ru_RU", - "sv-SE": "sv_SE", - "tr-TR": "tr_TR", - "uk-UA": "uk_UA", - "zh-CN": "zh-CN_CN", - "zh-HK": "zh-TW_HK", - "zh-TW": "zh-TW_TW" - }, - "type": "engine_properties" - }, - "wikidata": { - "ab": { - "english_name": "Abkhazian", - "name": "\u0410\u0525\u0441\u0443\u0430" - }, - "ace": { - "english_name": "Acehnese", - "name": "Basa Ac\u00e8h" - }, - "ady": { - "english_name": "Adyghe", - "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" - }, - "af": { - "english_name": "Afrikaans", - "name": "Afrikaans" - }, - "ak": { - "english_name": "Akan", - "name": "Akana" - }, - "als": { - "english_name": "Alemannic", - "name": "Alemannisch" - }, - "alt": { - "english_name": "Southern Altai", - "name": "\u0410\u043b\u0442\u0430\u0439" - }, - "am": { - "english_name": "Amharic", - "name": "\u12a0\u121b\u122d\u129b" - }, - "ami": { - "english_name": "Amis", - "name": "Pangcah" - }, - "an": { - "english_name": "Aragonese", - "name": "Aragon\u00e9s" - }, - "ang": { - "english_name": "Anglo-Saxon", - "name": "\u00c6nglisc" - }, - "ar": { - "english_name": "Arabic", - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "arc": { - "english_name": "Aramaic", - "name": "\u0710\u072a\u0721\u071d\u0710" - }, - "ary": { - "english_name": "Moroccan Arabic", - "name": "\u062f\u0627\u0631\u064a\u062c\u0629" - }, - "arz": { - "english_name": "Egyptian Arabic", - "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" - }, - "as": { - "english_name": "Assamese", - "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" - }, - "ast": { - "english_name": "Asturian", - "name": "Asturianu" - }, - "atj": { - "english_name": "Atikamekw", - "name": "Atikamekw" - }, - "av": { - "english_name": "Avar", - "name": "\u0410\u0432\u0430\u0440" - }, - "avk": { - "english_name": "Kotava", - "name": "Kotava" - }, - "awa": { - "english_name": "Awadhi", - "name": "\u0905\u0935\u0927\u0940" - }, - "ay": { - "english_name": "Aymara", - "name": "Aymar" - }, - "az": { - "english_name": "Azerbaijani", - "name": "Az\u0259rbaycanca" - }, - "azb": { - "english_name": "South Azerbaijani", - "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" - }, - "ba": { - "english_name": "Bashkir", - "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" - }, - "ban": { - "english_name": "Balinese", - "name": "Bali" - }, - "bar": { - "english_name": "Bavarian", - "name": "Boarisch" - }, - "bat-smg": { - "english_name": "Samogitian", - "name": "\u017demait\u0117\u0161ka" - }, - "bcl": { - "english_name": "Central Bicolano", - "name": "Bikol" - }, - "be": { - "english_name": "Belarusian", - "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "be-tarask": { - "english_name": "Belarusian (Tara\u0161kievica)", - "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f (\u0442\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0456\u0446\u0430)" - }, - "bg": { - "english_name": "Bulgarian", - "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "bh": { - "english_name": "Bhojpuri", - "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" - }, - "bi": { - "english_name": "Bislama", - "name": "Bislama" - }, - "bjn": { - "english_name": "Banjar", - "name": "Bahasa Banjar" - }, - "blk": { - "english_name": "Pa'O", - "name": "\u1015\u1021\u102d\u102f\u101d\u103a\u108f\u1018\u102c\u108f\u101e\u102c\u108f" - }, - "bm": { - "english_name": "Bambara", - "name": "Bamanankan" - }, - "bn": { - "english_name": "Bengali", - "name": "\u09ac\u09be\u0982\u09b2\u09be" - }, - "bo": { - "english_name": "Tibetan", - "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" - }, - "bpy": { - "english_name": "Bishnupriya Manipuri", - "name": "\u0987\u09ae\u09be\u09b0 \u09a0\u09be\u09b0/\u09ac\u09bf\u09b7\u09cd\u09a3\u09c1\u09aa\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0" - }, - "br": { - "english_name": "Breton", - "name": "Brezhoneg" - }, - "bs": { - "english_name": "Bosnian", - "name": "Bosanski" - }, - "bug": { - "english_name": "Buginese", - "name": "Basa Ugi" - }, - "bxr": { - "english_name": "Buryat", - "name": "\u0411\u0443\u0440\u044f\u0430\u0434" - }, - "ca": { - "english_name": "Catalan", - "name": "Catal\u00e0" - }, - "cbk-zam": { - "english_name": "Zamboanga Chavacano", - "name": "Chavacano de Zamboanga" - }, - "cdo": { - "english_name": "Min Dong", - "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" - }, - "ce": { - "english_name": "Chechen", - "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" - }, - "ceb": { - "english_name": "Cebuano", - "name": "Sinugboanong Binisaya" - }, - "ch": { - "english_name": "Chamorro", - "name": "Chamoru" - }, - "chr": { - "english_name": "Cherokee", - "name": "\u13e3\u13b3\u13a9" - }, - "chy": { - "english_name": "Cheyenne", - "name": "Tsets\u00eahest\u00e2hese" - }, - "ckb": { - "english_name": "Sorani", - "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" - }, - "co": { - "english_name": "Corsican", - "name": "Corsu" - }, - "cr": { - "english_name": "Cree", - "name": "Nehiyaw" - }, - "crh": { - "english_name": "Crimean Tatar", - "name": "Q\u0131r\u0131mtatarca" - }, - "cs": { - "english_name": "Czech", - "name": "\u010ce\u0161tina" - }, - "csb": { - "english_name": "Kashubian", - "name": "Kasz\u00ebbsczi" - }, - "cu": { - "english_name": "Old Church Slavonic", - "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" - }, - "cv": { - "english_name": "Chuvash", - "name": "\u0427\u0103\u0432\u0430\u0448" - }, - "cy": { - "english_name": "Welsh", - "name": "Cymraeg" - }, - "da": { - "english_name": "Danish", - "name": "Dansk" - }, - "dag": { - "english_name": "Dagbani", - "name": "Dagbanli" - }, - "de": { - "english_name": "German", - "name": "Deutsch" - }, - "din": { - "english_name": "Dinka", - "name": "Thu\u0254\u014bj\u00e4\u014b" - }, - "diq": { - "english_name": "Zazaki", - "name": "Zazaki" - }, - "dsb": { - "english_name": "Lower Sorbian", - "name": "Dolnoserbski" - }, - "dty": { - "english_name": "Doteli", - "name": "\u0921\u094b\u091f\u0947\u0932\u0940" - }, - "dv": { - "english_name": "Divehi", - "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" - }, - "dz": { - "english_name": "Dzongkha", - "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" - }, - "ee": { - "english_name": "Ewe", - "name": "E\u028begbe" - }, - "el": { - "english_name": "Greek", - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "eml": { - "english_name": "Emilian-Romagnol", - "name": "Emili\u00e0n e rumagn\u00f2l" - }, - "en": { - "english_name": "English", - "name": "English" - }, - "eo": { - "english_name": "Esperanto", - "name": "Esperanto" - }, - "es": { - "english_name": "Spanish", - "name": "Espa\u00f1ol" - }, - "et": { - "english_name": "Estonian", - "name": "Eesti" - }, - "eu": { - "english_name": "Basque", - "name": "Euskara" - }, - "ext": { - "english_name": "Extremaduran", - "name": "Estreme\u00f1u" - }, - "fa": { - "english_name": "Persian", - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "ff": { - "english_name": "Fula", - "name": "Fulfulde" - }, - "fi": { - "english_name": "Finnish", - "name": "Suomi" - }, - "fiu-vro": { - "english_name": "V\u00f5ro", - "name": "V\u00f5ro" - }, - "fj": { - "english_name": "Fijian", - "name": "Na Vosa Vakaviti" - }, - "fo": { - "english_name": "Faroese", - "name": "F\u00f8royskt" - }, - "fr": { - "english_name": "French", - "name": "Fran\u00e7ais" - }, - "frp": { - "english_name": "Franco-Proven\u00e7al", - "name": "Arpetan" - }, - "frr": { - "english_name": "North Frisian", - "name": "Nordfrasch" - }, - "fur": { - "english_name": "Friulian", - "name": "Furlan" - }, - "fy": { - "english_name": "West Frisian", - "name": "Frysk" - }, - "ga": { - "english_name": "Irish", - "name": "Gaeilge" - }, - "gag": { - "english_name": "Gagauz", - "name": "Gagauz" - }, - "gan": { - "english_name": "Gan", - "name": "\u8d1b\u8a9e" - }, - "gcr": { - "english_name": "Guianan Creole", - "name": "Kriy\u00f2l Gwiyannen" - }, - "gd": { - "english_name": "Scottish Gaelic", - "name": "G\u00e0idhlig" - }, - "gl": { - "english_name": "Galician", - "name": "Galego" - }, - "glk": { - "english_name": "Gilaki", - "name": "\u06af\u06cc\u0644\u06a9\u06cc" - }, - "gn": { - "english_name": "Guarani", - "name": "Ava\u00f1e'\u1ebd" - }, - "gom": { - "english_name": "Goan Konkani", - "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" - }, - "gor": { - "english_name": "Gorontalo", - "name": "Hulontalo" - }, - "got": { - "english_name": "Gothic", - "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" - }, - "gu": { - "english_name": "Gujarati", - "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" - }, - "guw": { - "english_name": "Gun", - "name": "Gungbe" - }, - "gv": { - "english_name": "Manx", - "name": "Gaelg" - }, - "ha": { - "english_name": "Hausa", - "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" - }, - "hak": { - "english_name": "Hakka", - "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" - }, - "haw": { - "english_name": "Hawaiian", - "name": "Hawai\u02bbi" - }, - "he": { - "english_name": "Hebrew", - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "hi": { - "english_name": "Hindi", - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hif": { - "english_name": "Fiji Hindi", - "name": "Fiji Hindi" - }, - "hr": { - "english_name": "Croatian", - "name": "Hrvatski" - }, - "hsb": { - "english_name": "Upper Sorbian", - "name": "Hornjoserbsce" - }, - "ht": { - "english_name": "Haitian", - "name": "Kr\u00e8yol ayisyen" - }, - "hu": { - "english_name": "Hungarian", - "name": "Magyar" - }, - "hy": { - "english_name": "Armenian", - "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "hyw": { - "english_name": "Western Armenian", - "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" - }, - "ia": { - "english_name": "Interlingua", - "name": "Interlingua" - }, - "id": { - "english_name": "Indonesian", - "name": "Bahasa Indonesia" - }, - "ie": { - "english_name": "Interlingue", - "name": "Interlingue" - }, - "ig": { - "english_name": "Igbo", - "name": "\u00ccgb\u00f2" - }, - "ik": { - "english_name": "Inupiak", - "name": "I\u00f1upiatun" - }, - "ilo": { - "english_name": "Ilokano", - "name": "Ilokano" - }, - "inh": { - "english_name": "Ingush", - "name": "\u0413\u04c0\u0430\u043b\u0433\u04c0\u0430\u0439" - }, - "io": { - "english_name": "Ido", - "name": "Ido" - }, - "is": { - "english_name": "Icelandic", - "name": "\u00cdslenska" - }, - "it": { - "english_name": "Italian", - "name": "Italiano" - }, - "iu": { - "english_name": "Inuktitut", - "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" - }, - "ja": { - "english_name": "Japanese", - "name": "\u65e5\u672c\u8a9e" - }, - "jam": { - "english_name": "Jamaican Patois", - "name": "Jumiekan Kryuol" - }, - "jbo": { - "english_name": "Lojban", - "name": "Lojban" - }, - "jv": { - "english_name": "Javanese", - "name": "Basa Jawa" - }, - "ka": { - "english_name": "Georgian", - "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" - }, - "kaa": { - "english_name": "Karakalpak", - "name": "Qaraqalpaqsha" - }, - "kab": { - "english_name": "Kabyle", - "name": "Taqbaylit" - }, - "kbd": { - "english_name": "Kabardian Circassian", - "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" - }, - "kbp": { - "english_name": "Kabiye", - "name": "Kab\u0269y\u025b" - }, - "kcg": { - "english_name": "Tyap", - "name": "Tyap" - }, - "kg": { - "english_name": "Kongo", - "name": "Kik\u00f4ngo" - }, - "ki": { - "english_name": "Kikuyu", - "name": "G\u0129k\u0169y\u0169" - }, - "kk": { - "english_name": "Kazakh", - "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" - }, - "kl": { - "english_name": "Greenlandic", - "name": "Kalaallisut" - }, - "km": { - "english_name": "Khmer", - "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" - }, - "kn": { - "english_name": "Kannada", - "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" - }, - "ko": { - "english_name": "Korean", - "name": "\ud55c\uad6d\uc5b4" - }, - "koi": { - "english_name": "Komi-Permyak", - "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" - }, - "krc": { - "english_name": "Karachay-Balkar", - "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" - }, - "ks": { - "english_name": "Kashmiri", - "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" - }, - "ksh": { - "english_name": "Ripuarian", - "name": "Ripoarisch" - }, - "ku": { - "english_name": "Kurdish", - "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" - }, - "kv": { - "english_name": "Komi", - "name": "\u041a\u043e\u043c\u0438" - }, - "kw": { - "english_name": "Cornish", - "name": "Kernowek/Karnuack" - }, - "ky": { - "english_name": "Kyrgyz", - "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" - }, - "la": { - "english_name": "Latin", - "name": "Latina" - }, - "lad": { - "english_name": "Ladino", - "name": "Dzhudezmo" - }, - "lb": { - "english_name": "Luxembourgish", - "name": "L\u00ebtzebuergesch" - }, - "lbe": { - "english_name": "Lak", - "name": "\u041b\u0430\u043a\u043a\u0443" - }, - "lez": { - "english_name": "Lezgian", - "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" - }, - "lfn": { - "english_name": "Lingua Franca Nova", - "name": "Lingua franca nova" - }, - "lg": { - "english_name": "Luganda", - "name": "Luganda" - }, - "li": { - "english_name": "Limburgish", - "name": "Limburgs" - }, - "lij": { - "english_name": "Ligurian", - "name": "L\u00ecgure" - }, - "lld": { - "english_name": "Ladin", - "name": "Lingaz" - }, - "lmo": { - "english_name": "Lombard", - "name": "Lumbaart" - }, - "ln": { - "english_name": "Lingala", - "name": "Lingala" - }, - "lo": { - "english_name": "Lao", - "name": "\u0ea5\u0eb2\u0ea7" - }, - "lt": { - "english_name": "Lithuanian", - "name": "Lietuvi\u0173" - }, - "ltg": { - "english_name": "Latgalian", - "name": "Latga\u013cu" - }, - "lv": { - "english_name": "Latvian", - "name": "Latvie\u0161u" - }, - "mad": { - "english_name": "Madurese", - "name": "Madhur\u00e2" - }, - "mai": { - "english_name": "Maithili", - "name": "\u092e\u0948\u0925\u093f\u0932\u0940" - }, - "map-bms": { - "english_name": "Banyumasan", - "name": "Basa Banyumasan" - }, - "mdf": { - "english_name": "Moksha", - "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" - }, - "mg": { - "english_name": "Malagasy", - "name": "Malagasy" - }, - "mhr": { - "english_name": "Meadow Mari", - "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" - }, - "mi": { - "english_name": "Maori", - "name": "M\u0101ori" - }, - "min": { - "english_name": "Minangkabau", - "name": "Minangkabau" - }, - "mk": { - "english_name": "Macedonian", - "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" - }, - "ml": { - "english_name": "Malayalam", - "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" - }, - "mn": { - "english_name": "Mongolian", - "name": "\u041c\u043e\u043d\u0433\u043e\u043b" - }, - "mni": { - "english_name": "Meitei", - "name": "\uabc3\uabe4\uabc7\uabe9\uabc2\uabe3\uabdf" - }, - "mnw": { - "english_name": "Mon", - "name": "\u1019\u1014\u103a" - }, - "mr": { - "english_name": "Marathi", - "name": "\u092e\u0930\u093e\u0920\u0940" - }, - "mrj": { - "english_name": "Hill Mari", - "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" - }, - "ms": { - "english_name": "Malay", - "name": "Bahasa Melayu" - }, - "mt": { - "english_name": "Maltese", - "name": "Malti" - }, - "mwl": { - "english_name": "Mirandese", - "name": "Mirand\u00e9s" - }, - "my": { - "english_name": "Burmese", - "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" - }, - "myv": { - "english_name": "Erzya", - "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" - }, - "mzn": { - "english_name": "Mazandarani", - "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" - }, - "na": { - "english_name": "Nauruan", - "name": "dorerin Naoero" - }, - "nah": { - "english_name": "Nahuatl", - "name": "N\u0101huatl" - }, - "nap": { - "english_name": "Neapolitan", - "name": "Nnapulitano" - }, - "nds": { - "english_name": "Low Saxon", - "name": "Plattd\u00fc\u00fctsch" - }, - "nds-nl": { - "english_name": "Dutch Low Saxon", - "name": "Nedersaksisch" - }, - "ne": { - "english_name": "Nepali", - "name": "\u0928\u0947\u092a\u093e\u0932\u0940" - }, - "new": { - "english_name": "Newar", - "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" - }, - "nia": { - "english_name": "Nias", - "name": "Li Niha" - }, - "nl": { - "english_name": "Dutch", - "name": "Nederlands" - }, - "nn": { - "english_name": "Norwegian (Nynorsk)", - "name": "Nynorsk" - }, - "no": { - "english_name": "Norwegian (Bokm\u00e5l)", - "name": "Norsk (Bokm\u00e5l)" - }, - "nov": { - "english_name": "Novial", - "name": "Novial" - }, - "nqo": { - "english_name": "N\u2019Ko", - "name": "\u07d2\u07de\u07cf" - }, - "nrm": { - "english_name": "Norman", - "name": "Nouormand/Normaund" - }, - "nso": { - "english_name": "Northern Sotho", - "name": "Sepedi" - }, - "nv": { - "english_name": "Navajo", - "name": "Din\u00e9 bizaad" - }, - "ny": { - "english_name": "Chichewa", - "name": "Chichewa" - }, - "oc": { - "english_name": "Occitan", - "name": "Occitan" - }, - "olo": { - "english_name": "Livvi-Karelian", - "name": "Karjalan" - }, - "om": { - "english_name": "Oromo", - "name": "Oromoo" - }, - "or": { - "english_name": "Oriya", - "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" - }, - "os": { - "english_name": "Ossetian", - "name": "\u0418\u0440\u043e\u043d\u0430\u0443" - }, - "pa": { - "english_name": "Punjabi", - "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" - }, - "pag": { - "english_name": "Pangasinan", - "name": "Pangasinan" - }, - "pam": { - "english_name": "Kapampangan", - "name": "Kapampangan" - }, - "pap": { - "english_name": "Papiamentu", - "name": "Papiamentu" - }, - "pcd": { - "english_name": "Picard", - "name": "Picard" - }, - "pcm": { - "english_name": "Nigerian Pidgin", - "name": "Naij\u00e1" - }, - "pdc": { - "english_name": "Pennsylvania German", - "name": "Deitsch" - }, - "pfl": { - "english_name": "Palatinate German", - "name": "P\u00e4lzisch" - }, - "pi": { - "english_name": "Pali", - "name": "\u092a\u093e\u0934\u093f" - }, - "pih": { - "english_name": "Norfolk", - "name": "Norfuk" - }, - "pl": { - "english_name": "Polish", - "name": "Polski" - }, - "pms": { - "english_name": "Piedmontese", - "name": "Piemont\u00e8is" - }, - "pnb": { - "english_name": "Western Punjabi", - "name": "\u0634\u0627\u06c1 \u0645\u06a9\u06be\u06cc \u067e\u0646\u062c\u0627\u0628\u06cc (Sh\u0101hmukh\u012b Pa\u00f1j\u0101b\u012b)" - }, - "pnt": { - "english_name": "Pontic", - "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" - }, - "ps": { - "english_name": "Pashto", - "name": "\u067e\u069a\u062a\u0648" - }, - "pt": { - "english_name": "Portuguese", - "name": "Portugu\u00eas" - }, - "pwn": { - "english_name": "Paiwan", - "name": "Paiwan" - }, - "qu": { - "english_name": "Quechua", - "name": "Qichwa simi" - }, - "rm": { - "english_name": "Romansh", - "name": "Rumantsch" - }, - "rmy": { - "english_name": "Romani", - "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" - }, - "rn": { - "english_name": "Kirundi", - "name": "Ikirundi" - }, - "ro": { - "english_name": "Romanian", - "name": "Rom\u00e2n\u0103" - }, - "roa-rup": { - "english_name": "Aromanian", - "name": "Arm\u00e3neashce" - }, - "roa-tara": { - "english_name": "Tarantino", - "name": "Tarand\u00edne" - }, - "ru": { - "english_name": "Russian", - "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "rue": { - "english_name": "Rusyn", - "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" - }, - "rw": { - "english_name": "Kinyarwanda", - "name": "Ikinyarwanda" - }, - "sa": { - "english_name": "Sanskrit", - "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" - }, - "sah": { - "english_name": "Sakha", - "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" - }, - "sat": { - "english_name": "Santali", - "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" - }, - "sc": { - "english_name": "Sardinian", - "name": "Sardu" - }, - "scn": { - "english_name": "Sicilian", - "name": "Sicilianu" - }, - "sco": { - "english_name": "Scots", - "name": "Scots" - }, - "sd": { - "english_name": "Sindhi", - "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" - }, - "se": { - "english_name": "Northern Sami", - "name": "S\u00e1megiella" - }, - "sg": { - "english_name": "Sango", - "name": "S\u00e4ng\u00f6" - }, - "sh": { - "english_name": "Serbo-Croatian", - "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" - }, - "shi": { - "english_name": "Tachelhit", - "name": "Tacl\u1e25it" - }, - "shn": { - "english_name": "Shan", - "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" - }, - "si": { - "english_name": "Sinhalese", - "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" - }, - "simple": { - "english_name": "Simple English", - "name": "Simple English" - }, - "sk": { - "english_name": "Slovak", - "name": "Sloven\u010dina" - }, - "skr": { - "english_name": "Saraiki", - "name": "\u0633\u0631\u0627\u0626\u06cc\u06a9\u06cc" - }, - "sl": { - "english_name": "Slovenian", - "name": "Sloven\u0161\u010dina" - }, - "sm": { - "english_name": "Samoan", - "name": "Gagana Samoa" - }, - "smn": { - "english_name": "Inari Sami", - "name": "Anar\u00e2\u0161kiel\u00e2" - }, - "sn": { - "english_name": "Shona", - "name": "chiShona" - }, - "so": { - "english_name": "Somali", - "name": "Soomaali" - }, - "sq": { - "english_name": "Albanian", - "name": "Shqip" - }, - "sr": { - "english_name": "Serbian", - "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" - }, - "srn": { - "english_name": "Sranan", - "name": "Sranantongo" - }, - "ss": { - "english_name": "Swati", - "name": "SiSwati" - }, - "st": { - "english_name": "Sesotho", - "name": "Sesotho" - }, - "stq": { - "english_name": "Saterland Frisian", - "name": "Seeltersk" - }, - "su": { - "english_name": "Sundanese", - "name": "Basa Sunda" - }, - "sv": { - "english_name": "Swedish", - "name": "Svenska" - }, - "sw": { - "english_name": "Swahili", - "name": "Kiswahili" - }, - "szl": { - "english_name": "Silesian", - "name": "\u015al\u016fnski" - }, - "szy": { - "english_name": "Sakizaya", - "name": "Sakizaya" - }, - "ta": { - "english_name": "Tamil", - "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" - }, - "tay": { - "english_name": "Atayal", - "name": "Tayal" - }, - "tcy": { - "english_name": "Tulu", - "name": "\u0ca4\u0cc1\u0cb3\u0cc1" - }, - "te": { - "english_name": "Telugu", - "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" - }, - "tet": { - "english_name": "Tetum", - "name": "Tetun" - }, - "tg": { - "english_name": "Tajik", - "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" - }, - "th": { - "english_name": "Thai", - "name": "\u0e44\u0e17\u0e22" - }, - "ti": { - "english_name": "Tigrinya", - "name": "\u1275\u130d\u122d\u129b" - }, - "tk": { - "english_name": "Turkmen", - "name": "T\u00fcrkmen" - }, - "tl": { - "english_name": "Tagalog", - "name": "Tagalog" - }, - "tn": { - "english_name": "Tswana", - "name": "Setswana" - }, - "to": { - "english_name": "Tongan", - "name": "faka Tonga" - }, - "tpi": { - "english_name": "Tok Pisin", - "name": "Tok Pisin" - }, - "tr": { - "english_name": "Turkish", - "name": "T\u00fcrk\u00e7e" - }, - "trv": { - "english_name": "Seediq", - "name": "Taroko" - }, - "ts": { - "english_name": "Tsonga", - "name": "Xitsonga" - }, - "tt": { - "english_name": "Tatar", - "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" - }, - "tum": { - "english_name": "Tumbuka", - "name": "chiTumbuka" - }, - "tw": { - "english_name": "Twi", - "name": "Twi" - }, - "ty": { - "english_name": "Tahitian", - "name": "Reo M\u0101`ohi" - }, - "tyv": { - "english_name": "Tuvan", - "name": "\u0422\u044b\u0432\u0430" - }, - "udm": { - "english_name": "Udmurt", - "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" - }, - "ug": { - "english_name": "Uyghur", - "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" - }, - "uk": { - "english_name": "Ukrainian", - "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "ur": { - "english_name": "Urdu", - "name": "\u0627\u0631\u062f\u0648" - }, - "uz": { - "english_name": "Uzbek", - "name": "O\u2018zbek" - }, - "ve": { - "english_name": "Venda", - "name": "Tshivenda" - }, - "vec": { - "english_name": "Venetian", - "name": "V\u00e8neto" - }, - "vep": { - "english_name": "Vepsian", - "name": "Veps\u00e4n" - }, - "vi": { - "english_name": "Vietnamese", - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "vls": { - "english_name": "West Flemish", - "name": "West-Vlams" - }, - "vo": { - "english_name": "Volap\u00fck", - "name": "Volap\u00fck" - }, - "wa": { - "english_name": "Walloon", - "name": "Walon" - }, - "war": { - "english_name": "Waray-Waray", - "name": "Winaray" - }, - "wo": { - "english_name": "Wolof", - "name": "Wolof" - }, - "wuu": { - "english_name": "Wu", - "name": "\u5434\u8bed" - }, - "xal": { - "english_name": "Kalmyk", - "name": "\u0425\u0430\u043b\u044c\u043c\u0433" - }, - "xh": { - "english_name": "Xhosa", - "name": "isiXhosa" - }, - "xmf": { - "english_name": "Mingrelian", - "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" - }, - "yi": { - "english_name": "Yiddish", - "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" - }, - "yo": { - "english_name": "Yoruba", - "name": "Yor\u00f9b\u00e1" - }, - "za": { - "english_name": "Zhuang", - "name": "Cuengh" - }, - "zea": { - "english_name": "Zeelandic", - "name": "Ze\u00eauws" - }, - "zh": { - "english_name": "Chinese", - "name": "\u4e2d\u6587" - }, - "zh-classical": { - "english_name": "Classical Chinese", - "name": "\u53e4\u6587 / \u6587\u8a00\u6587" - }, - "zh-min-nan": { - "english_name": "Min Nan", - "name": "B\u00e2n-l\u00e2m-g\u00fa" - }, - "zh-yue": { - "english_name": "Cantonese", - "name": "\u7cb5\u8a9e" - }, - "zu": { - "english_name": "Zulu", - "name": "isiZulu" - } - }, - "wikipedia": { - "ab": { - "english_name": "Abkhazian", - "name": "\u0410\u0525\u0441\u0443\u0430" - }, - "ace": { - "english_name": "Acehnese", - "name": "Basa Ac\u00e8h" - }, - "ady": { - "english_name": "Adyghe", - "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" - }, - "af": { - "english_name": "Afrikaans", - "name": "Afrikaans" - }, - "ak": { - "english_name": "Akan", - "name": "Akana" - }, - "als": { - "english_name": "Alemannic", - "name": "Alemannisch" - }, - "alt": { - "english_name": "Southern Altai", - "name": "\u0410\u043b\u0442\u0430\u0439" - }, - "am": { - "english_name": "Amharic", - "name": "\u12a0\u121b\u122d\u129b" - }, - "ami": { - "english_name": "Amis", - "name": "Pangcah" - }, - "an": { - "english_name": "Aragonese", - "name": "Aragon\u00e9s" - }, - "ang": { - "english_name": "Anglo-Saxon", - "name": "\u00c6nglisc" - }, - "ar": { - "english_name": "Arabic", - "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" - }, - "arc": { - "english_name": "Aramaic", - "name": "\u0710\u072a\u0721\u071d\u0710" - }, - "ary": { - "english_name": "Moroccan Arabic", - "name": "\u062f\u0627\u0631\u064a\u062c\u0629" - }, - "arz": { - "english_name": "Egyptian Arabic", - "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" - }, - "as": { - "english_name": "Assamese", - "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" - }, - "ast": { - "english_name": "Asturian", - "name": "Asturianu" - }, - "atj": { - "english_name": "Atikamekw", - "name": "Atikamekw" - }, - "av": { - "english_name": "Avar", - "name": "\u0410\u0432\u0430\u0440" - }, - "avk": { - "english_name": "Kotava", - "name": "Kotava" - }, - "awa": { - "english_name": "Awadhi", - "name": "\u0905\u0935\u0927\u0940" - }, - "ay": { - "english_name": "Aymara", - "name": "Aymar" - }, - "az": { - "english_name": "Azerbaijani", - "name": "Az\u0259rbaycanca" - }, - "azb": { - "english_name": "South Azerbaijani", - "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" - }, - "ba": { - "english_name": "Bashkir", - "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" - }, - "ban": { - "english_name": "Balinese", - "name": "Bali" - }, - "bar": { - "english_name": "Bavarian", - "name": "Boarisch" - }, - "bat-smg": { - "english_name": "Samogitian", - "name": "\u017demait\u0117\u0161ka" - }, - "bcl": { - "english_name": "Central Bicolano", - "name": "Bikol" - }, - "be": { - "english_name": "Belarusian", - "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" - }, - "be-tarask": { - "english_name": "Belarusian (Tara\u0161kievica)", - "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f (\u0442\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0456\u0446\u0430)" - }, - "bg": { - "english_name": "Bulgarian", - "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" - }, - "bh": { - "english_name": "Bhojpuri", - "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" - }, - "bi": { - "english_name": "Bislama", - "name": "Bislama" - }, - "bjn": { - "english_name": "Banjar", - "name": "Bahasa Banjar" - }, - "blk": { - "english_name": "Pa'O", - "name": "\u1015\u1021\u102d\u102f\u101d\u103a\u108f\u1018\u102c\u108f\u101e\u102c\u108f" - }, - "bm": { - "english_name": "Bambara", - "name": "Bamanankan" - }, - "bn": { - "english_name": "Bengali", - "name": "\u09ac\u09be\u0982\u09b2\u09be" - }, - "bo": { - "english_name": "Tibetan", - "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" - }, - "bpy": { - "english_name": "Bishnupriya Manipuri", - "name": "\u0987\u09ae\u09be\u09b0 \u09a0\u09be\u09b0/\u09ac\u09bf\u09b7\u09cd\u09a3\u09c1\u09aa\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0" - }, - "br": { - "english_name": "Breton", - "name": "Brezhoneg" - }, - "bs": { - "english_name": "Bosnian", - "name": "Bosanski" - }, - "bug": { - "english_name": "Buginese", - "name": "Basa Ugi" - }, - "bxr": { - "english_name": "Buryat", - "name": "\u0411\u0443\u0440\u044f\u0430\u0434" - }, - "ca": { - "english_name": "Catalan", - "name": "Catal\u00e0" - }, - "cbk-zam": { - "english_name": "Zamboanga Chavacano", - "name": "Chavacano de Zamboanga" - }, - "cdo": { - "english_name": "Min Dong", - "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" - }, - "ce": { - "english_name": "Chechen", - "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" - }, - "ceb": { - "english_name": "Cebuano", - "name": "Sinugboanong Binisaya" - }, - "ch": { - "english_name": "Chamorro", - "name": "Chamoru" - }, - "chr": { - "english_name": "Cherokee", - "name": "\u13e3\u13b3\u13a9" - }, - "chy": { - "english_name": "Cheyenne", - "name": "Tsets\u00eahest\u00e2hese" - }, - "ckb": { - "english_name": "Sorani", - "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" - }, - "co": { - "english_name": "Corsican", - "name": "Corsu" - }, - "cr": { - "english_name": "Cree", - "name": "Nehiyaw" - }, - "crh": { - "english_name": "Crimean Tatar", - "name": "Q\u0131r\u0131mtatarca" - }, - "cs": { - "english_name": "Czech", - "name": "\u010ce\u0161tina" - }, - "csb": { - "english_name": "Kashubian", - "name": "Kasz\u00ebbsczi" - }, - "cu": { - "english_name": "Old Church Slavonic", - "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" - }, - "cv": { - "english_name": "Chuvash", - "name": "\u0427\u0103\u0432\u0430\u0448" - }, - "cy": { - "english_name": "Welsh", - "name": "Cymraeg" - }, - "da": { - "english_name": "Danish", - "name": "Dansk" - }, - "dag": { - "english_name": "Dagbani", - "name": "Dagbanli" - }, - "de": { - "english_name": "German", - "name": "Deutsch" - }, - "din": { - "english_name": "Dinka", - "name": "Thu\u0254\u014bj\u00e4\u014b" - }, - "diq": { - "english_name": "Zazaki", - "name": "Zazaki" - }, - "dsb": { - "english_name": "Lower Sorbian", - "name": "Dolnoserbski" - }, - "dty": { - "english_name": "Doteli", - "name": "\u0921\u094b\u091f\u0947\u0932\u0940" - }, - "dv": { - "english_name": "Divehi", - "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" - }, - "dz": { - "english_name": "Dzongkha", - "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" - }, - "ee": { - "english_name": "Ewe", - "name": "E\u028begbe" - }, - "el": { - "english_name": "Greek", - "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" - }, - "eml": { - "english_name": "Emilian-Romagnol", - "name": "Emili\u00e0n e rumagn\u00f2l" - }, - "en": { - "english_name": "English", - "name": "English" - }, - "eo": { - "english_name": "Esperanto", - "name": "Esperanto" - }, - "es": { - "english_name": "Spanish", - "name": "Espa\u00f1ol" - }, - "et": { - "english_name": "Estonian", - "name": "Eesti" - }, - "eu": { - "english_name": "Basque", - "name": "Euskara" - }, - "ext": { - "english_name": "Extremaduran", - "name": "Estreme\u00f1u" - }, - "fa": { - "english_name": "Persian", - "name": "\u0641\u0627\u0631\u0633\u06cc" - }, - "ff": { - "english_name": "Fula", - "name": "Fulfulde" - }, - "fi": { - "english_name": "Finnish", - "name": "Suomi" - }, - "fiu-vro": { - "english_name": "V\u00f5ro", - "name": "V\u00f5ro" - }, - "fj": { - "english_name": "Fijian", - "name": "Na Vosa Vakaviti" - }, - "fo": { - "english_name": "Faroese", - "name": "F\u00f8royskt" - }, - "fr": { - "english_name": "French", - "name": "Fran\u00e7ais" - }, - "frp": { - "english_name": "Franco-Proven\u00e7al", - "name": "Arpetan" - }, - "frr": { - "english_name": "North Frisian", - "name": "Nordfrasch" - }, - "fur": { - "english_name": "Friulian", - "name": "Furlan" - }, - "fy": { - "english_name": "West Frisian", - "name": "Frysk" - }, - "ga": { - "english_name": "Irish", - "name": "Gaeilge" - }, - "gag": { - "english_name": "Gagauz", - "name": "Gagauz" - }, - "gan": { - "english_name": "Gan", - "name": "\u8d1b\u8a9e" - }, - "gcr": { - "english_name": "Guianan Creole", - "name": "Kriy\u00f2l Gwiyannen" - }, - "gd": { - "english_name": "Scottish Gaelic", - "name": "G\u00e0idhlig" - }, - "gl": { - "english_name": "Galician", - "name": "Galego" - }, - "glk": { - "english_name": "Gilaki", - "name": "\u06af\u06cc\u0644\u06a9\u06cc" - }, - "gn": { - "english_name": "Guarani", - "name": "Ava\u00f1e'\u1ebd" - }, - "gom": { - "english_name": "Goan Konkani", - "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" - }, - "gor": { - "english_name": "Gorontalo", - "name": "Hulontalo" - }, - "got": { - "english_name": "Gothic", - "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" - }, - "gu": { - "english_name": "Gujarati", - "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" - }, - "guw": { - "english_name": "Gun", - "name": "Gungbe" - }, - "gv": { - "english_name": "Manx", - "name": "Gaelg" - }, - "ha": { - "english_name": "Hausa", - "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" - }, - "hak": { - "english_name": "Hakka", - "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" - }, - "haw": { - "english_name": "Hawaiian", - "name": "Hawai\u02bbi" - }, - "he": { - "english_name": "Hebrew", - "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" - }, - "hi": { - "english_name": "Hindi", - "name": "\u0939\u093f\u0928\u094d\u0926\u0940" - }, - "hif": { - "english_name": "Fiji Hindi", - "name": "Fiji Hindi" - }, - "hr": { - "english_name": "Croatian", - "name": "Hrvatski" - }, - "hsb": { - "english_name": "Upper Sorbian", - "name": "Hornjoserbsce" - }, - "ht": { - "english_name": "Haitian", - "name": "Kr\u00e8yol ayisyen" - }, - "hu": { - "english_name": "Hungarian", - "name": "Magyar" - }, - "hy": { - "english_name": "Armenian", - "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" - }, - "hyw": { - "english_name": "Western Armenian", - "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" - }, - "ia": { - "english_name": "Interlingua", - "name": "Interlingua" - }, - "id": { - "english_name": "Indonesian", - "name": "Bahasa Indonesia" - }, - "ie": { - "english_name": "Interlingue", - "name": "Interlingue" - }, - "ig": { - "english_name": "Igbo", - "name": "\u00ccgb\u00f2" - }, - "ik": { - "english_name": "Inupiak", - "name": "I\u00f1upiatun" - }, - "ilo": { - "english_name": "Ilokano", - "name": "Ilokano" - }, - "inh": { - "english_name": "Ingush", - "name": "\u0413\u04c0\u0430\u043b\u0433\u04c0\u0430\u0439" - }, - "io": { - "english_name": "Ido", - "name": "Ido" - }, - "is": { - "english_name": "Icelandic", - "name": "\u00cdslenska" - }, - "it": { - "english_name": "Italian", - "name": "Italiano" - }, - "iu": { - "english_name": "Inuktitut", - "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" - }, - "ja": { - "english_name": "Japanese", - "name": "\u65e5\u672c\u8a9e" - }, - "jam": { - "english_name": "Jamaican Patois", - "name": "Jumiekan Kryuol" - }, - "jbo": { - "english_name": "Lojban", - "name": "Lojban" - }, - "jv": { - "english_name": "Javanese", - "name": "Basa Jawa" - }, - "ka": { - "english_name": "Georgian", - "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" - }, - "kaa": { - "english_name": "Karakalpak", - "name": "Qaraqalpaqsha" - }, - "kab": { - "english_name": "Kabyle", - "name": "Taqbaylit" - }, - "kbd": { - "english_name": "Kabardian Circassian", - "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" - }, - "kbp": { - "english_name": "Kabiye", - "name": "Kab\u0269y\u025b" - }, - "kcg": { - "english_name": "Tyap", - "name": "Tyap" - }, - "kg": { - "english_name": "Kongo", - "name": "Kik\u00f4ngo" - }, - "ki": { - "english_name": "Kikuyu", - "name": "G\u0129k\u0169y\u0169" - }, - "kk": { - "english_name": "Kazakh", - "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" - }, - "kl": { - "english_name": "Greenlandic", - "name": "Kalaallisut" - }, - "km": { - "english_name": "Khmer", - "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" - }, - "kn": { - "english_name": "Kannada", - "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" - }, - "ko": { - "english_name": "Korean", - "name": "\ud55c\uad6d\uc5b4" - }, - "koi": { - "english_name": "Komi-Permyak", - "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" - }, - "krc": { - "english_name": "Karachay-Balkar", - "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" - }, - "ks": { - "english_name": "Kashmiri", - "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" - }, - "ksh": { - "english_name": "Ripuarian", - "name": "Ripoarisch" - }, - "ku": { - "english_name": "Kurdish", - "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" - }, - "kv": { - "english_name": "Komi", - "name": "\u041a\u043e\u043c\u0438" - }, - "kw": { - "english_name": "Cornish", - "name": "Kernowek/Karnuack" - }, - "ky": { - "english_name": "Kyrgyz", - "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" - }, - "la": { - "english_name": "Latin", - "name": "Latina" - }, - "lad": { - "english_name": "Ladino", - "name": "Dzhudezmo" - }, - "lb": { - "english_name": "Luxembourgish", - "name": "L\u00ebtzebuergesch" - }, - "lbe": { - "english_name": "Lak", - "name": "\u041b\u0430\u043a\u043a\u0443" - }, - "lez": { - "english_name": "Lezgian", - "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" - }, - "lfn": { - "english_name": "Lingua Franca Nova", - "name": "Lingua franca nova" - }, - "lg": { - "english_name": "Luganda", - "name": "Luganda" - }, - "li": { - "english_name": "Limburgish", - "name": "Limburgs" - }, - "lij": { - "english_name": "Ligurian", - "name": "L\u00ecgure" - }, - "lld": { - "english_name": "Ladin", - "name": "Lingaz" - }, - "lmo": { - "english_name": "Lombard", - "name": "Lumbaart" - }, - "ln": { - "english_name": "Lingala", - "name": "Lingala" - }, - "lo": { - "english_name": "Lao", - "name": "\u0ea5\u0eb2\u0ea7" - }, - "lt": { - "english_name": "Lithuanian", - "name": "Lietuvi\u0173" - }, - "ltg": { - "english_name": "Latgalian", - "name": "Latga\u013cu" - }, - "lv": { - "english_name": "Latvian", - "name": "Latvie\u0161u" - }, - "mad": { - "english_name": "Madurese", - "name": "Madhur\u00e2" - }, - "mai": { - "english_name": "Maithili", - "name": "\u092e\u0948\u0925\u093f\u0932\u0940" - }, - "map-bms": { - "english_name": "Banyumasan", - "name": "Basa Banyumasan" - }, - "mdf": { - "english_name": "Moksha", - "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" - }, - "mg": { - "english_name": "Malagasy", - "name": "Malagasy" - }, - "mhr": { - "english_name": "Meadow Mari", - "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" - }, - "mi": { - "english_name": "Maori", - "name": "M\u0101ori" - }, - "min": { - "english_name": "Minangkabau", - "name": "Minangkabau" - }, - "mk": { - "english_name": "Macedonian", - "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" - }, - "ml": { - "english_name": "Malayalam", - "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" - }, - "mn": { - "english_name": "Mongolian", - "name": "\u041c\u043e\u043d\u0433\u043e\u043b" - }, - "mni": { - "english_name": "Meitei", - "name": "\uabc3\uabe4\uabc7\uabe9\uabc2\uabe3\uabdf" - }, - "mnw": { - "english_name": "Mon", - "name": "\u1019\u1014\u103a" - }, - "mr": { - "english_name": "Marathi", - "name": "\u092e\u0930\u093e\u0920\u0940" - }, - "mrj": { - "english_name": "Hill Mari", - "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" - }, - "ms": { - "english_name": "Malay", - "name": "Bahasa Melayu" - }, - "mt": { - "english_name": "Maltese", - "name": "Malti" - }, - "mwl": { - "english_name": "Mirandese", - "name": "Mirand\u00e9s" - }, - "my": { - "english_name": "Burmese", - "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" - }, - "myv": { - "english_name": "Erzya", - "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" - }, - "mzn": { - "english_name": "Mazandarani", - "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" - }, - "na": { - "english_name": "Nauruan", - "name": "dorerin Naoero" - }, - "nah": { - "english_name": "Nahuatl", - "name": "N\u0101huatl" - }, - "nap": { - "english_name": "Neapolitan", - "name": "Nnapulitano" - }, - "nds": { - "english_name": "Low Saxon", - "name": "Plattd\u00fc\u00fctsch" - }, - "nds-nl": { - "english_name": "Dutch Low Saxon", - "name": "Nedersaksisch" - }, - "ne": { - "english_name": "Nepali", - "name": "\u0928\u0947\u092a\u093e\u0932\u0940" - }, - "new": { - "english_name": "Newar", - "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" - }, - "nia": { - "english_name": "Nias", - "name": "Li Niha" - }, - "nl": { - "english_name": "Dutch", - "name": "Nederlands" - }, - "nn": { - "english_name": "Norwegian (Nynorsk)", - "name": "Nynorsk" - }, - "no": { - "english_name": "Norwegian (Bokm\u00e5l)", - "name": "Norsk (Bokm\u00e5l)" - }, - "nov": { - "english_name": "Novial", - "name": "Novial" - }, - "nqo": { - "english_name": "N\u2019Ko", - "name": "\u07d2\u07de\u07cf" - }, - "nrm": { - "english_name": "Norman", - "name": "Nouormand/Normaund" - }, - "nso": { - "english_name": "Northern Sotho", - "name": "Sepedi" - }, - "nv": { - "english_name": "Navajo", - "name": "Din\u00e9 bizaad" - }, - "ny": { - "english_name": "Chichewa", - "name": "Chichewa" - }, - "oc": { - "english_name": "Occitan", - "name": "Occitan" - }, - "olo": { - "english_name": "Livvi-Karelian", - "name": "Karjalan" - }, - "om": { - "english_name": "Oromo", - "name": "Oromoo" - }, - "or": { - "english_name": "Oriya", - "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" - }, - "os": { - "english_name": "Ossetian", - "name": "\u0418\u0440\u043e\u043d\u0430\u0443" - }, - "pa": { - "english_name": "Punjabi", - "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" - }, - "pag": { - "english_name": "Pangasinan", - "name": "Pangasinan" - }, - "pam": { - "english_name": "Kapampangan", - "name": "Kapampangan" - }, - "pap": { - "english_name": "Papiamentu", - "name": "Papiamentu" - }, - "pcd": { - "english_name": "Picard", - "name": "Picard" - }, - "pcm": { - "english_name": "Nigerian Pidgin", - "name": "Naij\u00e1" - }, - "pdc": { - "english_name": "Pennsylvania German", - "name": "Deitsch" - }, - "pfl": { - "english_name": "Palatinate German", - "name": "P\u00e4lzisch" - }, - "pi": { - "english_name": "Pali", - "name": "\u092a\u093e\u0934\u093f" - }, - "pih": { - "english_name": "Norfolk", - "name": "Norfuk" - }, - "pl": { - "english_name": "Polish", - "name": "Polski" - }, - "pms": { - "english_name": "Piedmontese", - "name": "Piemont\u00e8is" - }, - "pnb": { - "english_name": "Western Punjabi", - "name": "\u0634\u0627\u06c1 \u0645\u06a9\u06be\u06cc \u067e\u0646\u062c\u0627\u0628\u06cc (Sh\u0101hmukh\u012b Pa\u00f1j\u0101b\u012b)" - }, - "pnt": { - "english_name": "Pontic", - "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" - }, - "ps": { - "english_name": "Pashto", - "name": "\u067e\u069a\u062a\u0648" - }, - "pt": { - "english_name": "Portuguese", - "name": "Portugu\u00eas" - }, - "pwn": { - "english_name": "Paiwan", - "name": "Paiwan" - }, - "qu": { - "english_name": "Quechua", - "name": "Qichwa simi" - }, - "rm": { - "english_name": "Romansh", - "name": "Rumantsch" - }, - "rmy": { - "english_name": "Romani", - "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" - }, - "rn": { - "english_name": "Kirundi", - "name": "Ikirundi" - }, - "ro": { - "english_name": "Romanian", - "name": "Rom\u00e2n\u0103" - }, - "roa-rup": { - "english_name": "Aromanian", - "name": "Arm\u00e3neashce" - }, - "roa-tara": { - "english_name": "Tarantino", - "name": "Tarand\u00edne" - }, - "ru": { - "english_name": "Russian", - "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" - }, - "rue": { - "english_name": "Rusyn", - "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" - }, - "rw": { - "english_name": "Kinyarwanda", - "name": "Ikinyarwanda" - }, - "sa": { - "english_name": "Sanskrit", - "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" - }, - "sah": { - "english_name": "Sakha", - "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" - }, - "sat": { - "english_name": "Santali", - "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" - }, - "sc": { - "english_name": "Sardinian", - "name": "Sardu" - }, - "scn": { - "english_name": "Sicilian", - "name": "Sicilianu" - }, - "sco": { - "english_name": "Scots", - "name": "Scots" - }, - "sd": { - "english_name": "Sindhi", - "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" - }, - "se": { - "english_name": "Northern Sami", - "name": "S\u00e1megiella" - }, - "sg": { - "english_name": "Sango", - "name": "S\u00e4ng\u00f6" - }, - "sh": { - "english_name": "Serbo-Croatian", - "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" - }, - "shi": { - "english_name": "Tachelhit", - "name": "Tacl\u1e25it" - }, - "shn": { - "english_name": "Shan", - "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" - }, - "si": { - "english_name": "Sinhalese", - "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" - }, - "simple": { - "english_name": "Simple English", - "name": "Simple English" - }, - "sk": { - "english_name": "Slovak", - "name": "Sloven\u010dina" - }, - "skr": { - "english_name": "Saraiki", - "name": "\u0633\u0631\u0627\u0626\u06cc\u06a9\u06cc" - }, - "sl": { - "english_name": "Slovenian", - "name": "Sloven\u0161\u010dina" - }, - "sm": { - "english_name": "Samoan", - "name": "Gagana Samoa" - }, - "smn": { - "english_name": "Inari Sami", - "name": "Anar\u00e2\u0161kiel\u00e2" - }, - "sn": { - "english_name": "Shona", - "name": "chiShona" - }, - "so": { - "english_name": "Somali", - "name": "Soomaali" - }, - "sq": { - "english_name": "Albanian", - "name": "Shqip" - }, - "sr": { - "english_name": "Serbian", - "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" - }, - "srn": { - "english_name": "Sranan", - "name": "Sranantongo" - }, - "ss": { - "english_name": "Swati", - "name": "SiSwati" - }, - "st": { - "english_name": "Sesotho", - "name": "Sesotho" - }, - "stq": { - "english_name": "Saterland Frisian", - "name": "Seeltersk" - }, - "su": { - "english_name": "Sundanese", - "name": "Basa Sunda" - }, - "sv": { - "english_name": "Swedish", - "name": "Svenska" - }, - "sw": { - "english_name": "Swahili", - "name": "Kiswahili" - }, - "szl": { - "english_name": "Silesian", - "name": "\u015al\u016fnski" - }, - "szy": { - "english_name": "Sakizaya", - "name": "Sakizaya" - }, - "ta": { - "english_name": "Tamil", - "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" - }, - "tay": { - "english_name": "Atayal", - "name": "Tayal" - }, - "tcy": { - "english_name": "Tulu", - "name": "\u0ca4\u0cc1\u0cb3\u0cc1" - }, - "te": { - "english_name": "Telugu", - "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" - }, - "tet": { - "english_name": "Tetum", - "name": "Tetun" - }, - "tg": { - "english_name": "Tajik", - "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" - }, - "th": { - "english_name": "Thai", - "name": "\u0e44\u0e17\u0e22" - }, - "ti": { - "english_name": "Tigrinya", - "name": "\u1275\u130d\u122d\u129b" - }, - "tk": { - "english_name": "Turkmen", - "name": "T\u00fcrkmen" - }, - "tl": { - "english_name": "Tagalog", - "name": "Tagalog" - }, - "tn": { - "english_name": "Tswana", - "name": "Setswana" - }, - "to": { - "english_name": "Tongan", - "name": "faka Tonga" - }, - "tpi": { - "english_name": "Tok Pisin", - "name": "Tok Pisin" - }, - "tr": { - "english_name": "Turkish", - "name": "T\u00fcrk\u00e7e" - }, - "trv": { - "english_name": "Seediq", - "name": "Taroko" - }, - "ts": { - "english_name": "Tsonga", - "name": "Xitsonga" - }, - "tt": { - "english_name": "Tatar", - "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" - }, - "tum": { - "english_name": "Tumbuka", - "name": "chiTumbuka" - }, - "tw": { - "english_name": "Twi", - "name": "Twi" - }, - "ty": { - "english_name": "Tahitian", - "name": "Reo M\u0101`ohi" - }, - "tyv": { - "english_name": "Tuvan", - "name": "\u0422\u044b\u0432\u0430" - }, - "udm": { - "english_name": "Udmurt", - "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" - }, - "ug": { - "english_name": "Uyghur", - "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" - }, - "uk": { - "english_name": "Ukrainian", - "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" - }, - "ur": { - "english_name": "Urdu", - "name": "\u0627\u0631\u062f\u0648" - }, - "uz": { - "english_name": "Uzbek", - "name": "O\u2018zbek" - }, - "ve": { - "english_name": "Venda", - "name": "Tshivenda" - }, - "vec": { - "english_name": "Venetian", - "name": "V\u00e8neto" - }, - "vep": { - "english_name": "Vepsian", - "name": "Veps\u00e4n" - }, - "vi": { - "english_name": "Vietnamese", - "name": "Ti\u1ebfng Vi\u1ec7t" - }, - "vls": { - "english_name": "West Flemish", - "name": "West-Vlams" - }, - "vo": { - "english_name": "Volap\u00fck", - "name": "Volap\u00fck" - }, - "wa": { - "english_name": "Walloon", - "name": "Walon" - }, - "war": { - "english_name": "Waray-Waray", - "name": "Winaray" - }, - "wo": { - "english_name": "Wolof", - "name": "Wolof" - }, - "wuu": { - "english_name": "Wu", - "name": "\u5434\u8bed" - }, - "xal": { - "english_name": "Kalmyk", - "name": "\u0425\u0430\u043b\u044c\u043c\u0433" - }, - "xh": { - "english_name": "Xhosa", - "name": "isiXhosa" - }, - "xmf": { - "english_name": "Mingrelian", - "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" - }, - "yi": { - "english_name": "Yiddish", - "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" - }, - "yo": { - "english_name": "Yoruba", - "name": "Yor\u00f9b\u00e1" - }, - "za": { - "english_name": "Zhuang", - "name": "Cuengh" - }, - "zea": { - "english_name": "Zeelandic", - "name": "Ze\u00eauws" - }, - "zh": { - "english_name": "Chinese", - "name": "\u4e2d\u6587" - }, - "zh-classical": { - "english_name": "Classical Chinese", - "name": "\u53e4\u6587 / \u6587\u8a00\u6587" - }, - "zh-min-nan": { - "english_name": "Min Nan", - "name": "B\u00e2n-l\u00e2m-g\u00fa" - }, - "zh-yue": { - "english_name": "Cantonese", - "name": "\u7cb5\u8a9e" - }, - "zu": { - "english_name": "Zulu", - "name": "isiZulu" - } - }, - "yahoo": [ - "ar", - "bg", - "cs", - "da", - "de", - "el", - "en", - "es", - "et", - "fi", - "fr", - "he", - "hr", - "hu", - "it", - "ja", - "ko", - "lt", - "lv", - "nl", - "no", - "pl", - "pt", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "zh_chs", - "zh_cht" - ] -} diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index 3e56e430b..9852bb315 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -12,19 +12,22 @@ usage:: """ import sys +import json import copy +import pathlib import dataclasses from typing import Dict, List, Optional from os.path import realpath, dirname from babel.localedata import locale_identifiers from searx import logger, settings -from searx.data import ENGINES_LANGUAGES from searx.utils import load_module, match_language - +from searx.data import data_dir, ENGINES_DATAS logger = logger.getChild('engines') -ENGINE_DIR = dirname(realpath(__file__)) + +ENGINE_DIR = pathlib.Path(__file__).parent + BABEL_LANGS = [ lang_parts[0] + '-' + lang_parts[-1] if len(lang_parts) > 1 else lang_parts[0] for lang_parts in (lang_code.split('_') for lang_code in locale_identifiers()) @@ -52,32 +55,58 @@ OTHER_CATEGORY = 'other' @dataclasses.dataclass -class EngineProperties(dict): - """ - - The class is intended to be instanciated for each engine. - """ +class EngineData: + """The class is intended to be instanciated for each engine.""" regions: Dict[str, str] = dataclasses.field(default_factory=dict) """ - { - 'fr-BE' : - }, + .. code:: python + + { + 'fr-BE' : , + } """ languages: Dict[str, str] = dataclasses.field(default_factory=dict) """ - { - 'ca' : - }, + .. code:: python + + { + 'ca' : , + } """ - def asdict(self): - return { - 'type': 'engine_properties', - 'regions': self.regions, - 'languages': self.languages, - } + data_type: str = 'engine_data' + """Data type, default is 'engine_data' for vintage use 'supported_languages'""" + + +class EngineDataEncoder(json.JSONEncoder): + """Encodes :class:`EngineData` to a serializable object, see + :class:`json.JSONEncoder`.""" + + def default(self, o): + """Return dictionary of a :class:`EngineData` object.""" + if isinstance(o, EngineData): + return o.__dict__ + return super().default(o) + + +class EngineDataDict(dict): + """A python dictionary to map :class:`EngineData` by engine name.""" + + ENGINE_DATA_FILE = (data_dir / 'engines_datas.json').resolve() + + def save_data(self): + with open(self.ENGINE_DATA_FILE, 'w', encoding='utf-8') as f: + json.dump(self, f, indent=2, sort_keys=True, cls=EngineDataEncoder) + + @classmethod + def from_data(cls): + """Instantiate :class:`EngineDataDict` object from :py:obj:`ENGINES_DATAS`""" + obj = EngineDataDict() + for k, v in ENGINES_DATAS.items(): + obj[k] = EngineData(**v) + return obj class Engine: # pylint: disable=too-few-public-methods @@ -96,7 +125,7 @@ class Engine: # pylint: disable=too-few-public-methods safesearch: bool time_range_support: bool timeout: float - properties: EngineProperties + engine_data: EngineData # Defaults for the namespace of an engine module, see :py:func:`load_engine` @@ -110,18 +139,19 @@ engine_shortcuts = {} engine_shortcuts[engine.shortcut] = engine.name +:meta hide-value: """ -def load_engine(engine_data: dict) -> Optional[Engine]: - """Load engine from ``engine_data``. +def load_engine(engine_setting: dict) -> Optional[Engine]: + """Load engine from ``engine_setting``. - :param dict engine_data: Attributes from YAML ``settings:engines/`` + :param dict engine_setting: Attributes from YAML ``settings:engines/`` :return: initialized namespace of the ````. 1. create a namespace and load module of the ```` 2. update namespace with the defaults from :py:obj:`ENGINE_DEFAULT_ARGS` - 3. update namespace with values from ``engine_data`` + 3. update namespace with values from ``engine_setting`` If engine *is active*, return namespace of the engine, otherwise return ``None``. @@ -135,7 +165,7 @@ def load_engine(engine_data: dict) -> Optional[Engine]: """ - engine_name = engine_data['name'] + engine_name = engine_setting['name'] if '_' in engine_name: logger.error('Engine name contains underscore: "{}"'.format(engine_name)) return None @@ -143,10 +173,10 @@ def load_engine(engine_data: dict) -> Optional[Engine]: if engine_name.lower() != engine_name: logger.warn('Engine name is not lowercase: "{}", converting to lowercase'.format(engine_name)) engine_name = engine_name.lower() - engine_data['name'] = engine_name + engine_setting['name'] = engine_name # load_module - engine_module = engine_data['engine'] + engine_module = engine_setting['engine'] try: engine = load_module(engine_module + '.py', ENGINE_DIR) except (SyntaxError, KeyboardInterrupt, SystemExit, SystemError, ImportError, RuntimeError): @@ -156,7 +186,7 @@ def load_engine(engine_data: dict) -> Optional[Engine]: logger.exception('Cannot load engine "{}"'.format(engine_module)) return None - update_engine_attributes(engine, engine_data) + update_engine_attributes(engine, engine_setting) set_language_attributes(engine) update_attributes_for_tor(engine) @@ -193,15 +223,15 @@ def set_loggers(engine, engine_name): module.logger = logger.getChild(module_engine_name) -def update_engine_attributes(engine: Engine, engine_data): - # set engine attributes from engine_data - for param_name, param_value in engine_data.items(): +def update_engine_attributes(engine: Engine, engine_setting): + # set engine attributes from engine_setting + for param_name, param_value in engine_setting.items(): if param_name == 'categories': if isinstance(param_value, str): param_value = list(map(str.strip, param_value.split(','))) engine.categories = param_value elif hasattr(engine, 'about') and param_name == 'about': - engine.about = {**engine.about, **engine_data['about']} + engine.about = {**engine.about, **engine_setting['about']} else: setattr(engine, param_name, param_value) @@ -211,33 +241,36 @@ def update_engine_attributes(engine: Engine, engine_data): setattr(engine, arg_name, copy.deepcopy(arg_value)) -def set_language_attributes(engine: Engine): +def set_language_attributes(engine: Engine): # pylint: disable=too-many-branches # assign supported languages from json file - supported_properties = None + engine_data_dict = EngineDataDict.from_data() + engine_data = None - if engine.name in ENGINES_LANGUAGES: - supported_properties = ENGINES_LANGUAGES[engine.name] + if engine.name in engine_data_dict: + engine_data = engine_data_dict[engine.name] - elif engine.engine in ENGINES_LANGUAGES: - # The key of the dictionary ENGINES_LANGUAGES is the *engine name* + elif engine.engine in engine_data_dict: + # The key of the dictionary engine_data_dict is the *engine name* # configured in settings.xml. When multiple engines are configured in # settings.yml to use the same origin engine (python module) these # additional engines can use the languages from the origin engine. # For this use the configured ``engine: ...`` from settings.yml - supported_properties = ENGINES_LANGUAGES[engine.engine] + engine_data = engine_data_dict[engine.engine] - if not supported_properties: + if not engine_data: return - if isinstance(supported_properties, dict) and supported_properties.get('type') == 'engine_properties': - engine.supported_properties = supported_properties - engine.language_support = len(supported_properties['languages']) or len(supported_properties['regions']) + if engine_data.data_type == 'engine_data': + engine.engine_data = engine_data + engine.language_support = len(engine_data.languages) or len(engine_data.regions) + + elif engine_data.data_type == 'supported_languages': + # vintage - else: # depricated: does not work for engines that do support languages # based on a region. - engine.supported_languages = supported_properties + engine.supported_languages = engine_data.languages engine.language_support = len(engine.supported_languages) > 0 if hasattr(engine, 'language'): @@ -268,6 +301,9 @@ def set_language_attributes(engine: Engine): ): engine.language_aliases[iso_lang] = engine_lang + else: + raise TypeError('unknown type of engine data: %s' % engine_data.data_type) + def update_attributes_for_tor(engine: Engine) -> bool: if using_tor_proxy(engine) and hasattr(engine, 'onion_url'): diff --git a/searx/engines/google.py b/searx/engines/google.py index 9cb936ccf..d5f12bfcc 100644 --- a/searx/engines/google.py +++ b/searx/engines/google.py @@ -136,7 +136,7 @@ def get_lang_info(params, lang_list, custom_aliases, supported_any_language): :param dict param: request parameters of the engine :param list lang_list: list of supported languages of the engine - :py:obj:`ENGINES_LANGUAGES[engine-name] ` + :py:obj:`ENGINES_DATAS[engine-name].languages ` :param dict lang_list: custom aliases for non standard language codes (used when calling :py:func:`searx.utils.match_language`) diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py index 19b30631f..e8ddf249c 100644 --- a/searx/engines/qwant.py +++ b/searx/engines/qwant.py @@ -49,7 +49,7 @@ about = { # engine dependent config categories = [] paging = True -supported_properties_url = about['website'] +engine_data_url = about['website'] qwant_categ = None # web|news|inages|videos safesearch = True @@ -95,7 +95,7 @@ def request(query, params): ) # add quant's locale - q_locale = get_engine_locale(params['language'], supported_properties['regions'], default='en_US') + q_locale = get_engine_locale(params['language'], engine_data.regions, default='en_US') params['url'] += '&locale=' + q_locale # add safesearch option @@ -243,7 +243,7 @@ def response(resp): return results -def _fetch_engine_properties(resp, engine_properties): +def _fetch_engine_data(resp, engine_data): text = resp.text text = text[text.find('INITIAL_PROPS') :] @@ -270,7 +270,7 @@ def _fetch_engine_properties(resp, engine_properties): print("ERROR: can't determine babel locale of quant's locale %s" % q_locale) continue - # note: engine_properties.regions (dict) + # note: engine_data.regions (dict) # # dict's key is a string build up from a babel.Locale object / the # notation 'xx-XX' (and 'xx') conforms to SearXNG's locale (and @@ -278,6 +278,6 @@ def _fetch_engine_properties(resp, engine_properties): # the engine. searxng_locale = locale.language + '-' + locale.territory # --> params['language'] - engine_properties.regions[searxng_locale] = q_locale + engine_data.regions[searxng_locale] = q_locale - return engine_properties + return engine_data diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py index 09b46018c..1211cc02e 100644 --- a/searx/engines/startpage.py +++ b/searx/engines/startpage.py @@ -48,7 +48,7 @@ filter_mapping = {0: '0', 1: '1', 2: '1'} time_range_support = True time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm', 'year': 'y'} -supported_properties_url = 'https://www.startpage.com/do/settings' +engine_data_url = 'https://www.startpage.com/do/settings' # search-url base_url = 'https://www.startpage.com/' @@ -249,7 +249,7 @@ def response(resp): return results -def _fetch_engine_properties(resp, engine_properties): +def _fetch_engine_data(resp, engine_data): # startpage's language & region selectors are a mess. # @@ -341,7 +341,7 @@ def _fetch_engine_properties(resp, engine_properties): region_tag = locale.language + '-' + locale.territory # print("SearXNG locale tag: %s --> Engine tag: %s" % (region_tag, engine_region_tag)) - engine_properties.regions[region_tag] = engine_region_tag + engine_data.regions[region_tag] = engine_region_tag # languages @@ -385,6 +385,6 @@ def _fetch_engine_properties(resp, engine_properties): lang_code = catalog_engine2code[name] # print("SearXNG language tag: %s --> Engine tag: %s" % (lang_code, engine_lang)) - engine_properties.languages[lang_code] = engine_lang + engine_data.languages[lang_code] = engine_lang - return engine_properties + return engine_data diff --git a/searx/languages.py b/searx/languages.py index 377e7495b..fa5b0d4ef 100644 --- a/searx/languages.py +++ b/searx/languages.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # list of language codes -# this file is generated automatically by utils/fetch_languages.py +# this file is generated automatically by: +# +# ./manage pyenv.cmd searxng_extra/update/update_languages.py language_codes = ( ('af-ZA', 'Afrikaans', 'Suid-Afrika', 'Afrikaans', '\U0001f1ff\U0001f1e6'), ('ar-EG', 'العربية', 'مصر', 'Arabic', '\U0001f1ea\U0001f1ec'), diff --git a/searx/locales.py b/searx/locales.py index 0e57c91b0..545a3c88e 100644 --- a/searx/locales.py +++ b/searx/locales.py @@ -19,13 +19,14 @@ from searx import logger logger = logger.getChild('locales') +LANGUAGES_FILE = pathlib.Path(__file__).parent / 'languages.py' # safe before monkey patching flask_babel.get_translations _flask_babel_get_translations = flask_babel.get_translations LOCALE_NAMES = {} -"""Mapping of locales and their description. Locales e.g. 'fr' or 'pt-BR' (see -:py:obj:`locales_initialize`).""" +"""Mapping of locales and their description. Locales e.g. ``fr`` or ``pt-BR`` +(see :py:obj:`locales_initialize`).""" RTL_LOCALES: Set[str] = set() """List of *Right-To-Left* locales e.g. 'he' or 'fa-IR' (see @@ -161,6 +162,8 @@ def get_engine_locale(searxng_locale, engine_locales, default=None): Argument ``engine_locales`` is a python dict that maps *SearXNG locales* to corresponding *engine locales*: + .. code:: python + : { # SearXNG string : engine-string 'ca-ES' : 'ca_ES', diff --git a/searxng_extra/update/update_languages.py b/searxng_extra/update/update_engine_data.py similarity index 70% rename from searxng_extra/update/update_languages.py rename to searxng_extra/update/update_engine_data.py index 9bdb90e90..86f2dee98 100755 --- a/searxng_extra/update/update_languages.py +++ b/searxng_extra/update/update_engine_data.py @@ -1,53 +1,56 @@ #!/usr/bin/env python -# lint: pylint # SPDX-License-Identifier: AGPL-3.0-or-later -"""This script generates :origin:`searx/languages.py` from intersecting each -engine's supported properites. The script checks all engines about a function:: +# lint: pylint +"""This script fetches engine data from engines `engine_data_url`` and updates: - def _fetch_engine_properties(resp, engine_properties): - ... - -and a variable named ``supported_properties_url``. The HTTP get response of -``supported_properties_url`` is passed to the ``_fetch_engine_properties`` -function including a instance of :py:obj:`searx.engines.EngineProperties`. - -Output files: :origin:`searx/data/engines_languages.json` and -:origin:`searx/languages.py` (:origin:`CI Update data ... -<.github/workflows/data-update.yml>`). - -.. hint:: - - This implementation is backward compatible and supports the (depricated) - ``_fetch_supported_languages`` interface. - - On the long term the depricated implementations in the engines will be - replaced by ``_fetch_engine_properties``. +- :py:obj:`write_languages_file` updates :origin:`searx/languages.py` +- :py:obj:`fetch_engine_data` updates :origin:`searx/data/engines_datas.json` +This script is triggered by CI in job :origin:`updateData +<.github/workflows/data-update.yml>`. """ # pylint: disable=invalid-name from unicodedata import lookup -import json -from pathlib import Path from pprint import pformat from babel import Locale, UnknownLocaleError from babel.languages import get_global from babel.core import parse_locale -from searx import settings, searx_dir +from searx import settings from searx import network -from searx.engines import load_engines, engines, EngineProperties +from searx.engines import ( + load_engines, + engines, + EngineData, + EngineDataDict, +) +from searx.locales import LANGUAGES_FILE from searx.utils import gen_useragent -# Output files. -engines_languages_file = Path(searx_dir) / 'data' / 'engines_languages.json' -languages_file = Path(searx_dir) / 'languages.py' +def fetch_engine_data(): + """Fetch :class:`EngineData` for each engine and persist JSON in file. + + The script checks all engines about a function:: + + def _fetch_engine_data(resp, engine_data): + ... + + and a variable named ``engine_data_url``. The HTTP GET response of + ``engine_data_url`` is passed to the ``_fetch_engine_data`` function including a + instance of :py:obj:`searx.engines.EngineData`. + + .. hint:: + + This implementation is backward compatible and supports the (depricated) + ``_fetch_supported_languages`` interface. + + On the long term the depricated implementations in the engines will be + replaced by ``_fetch_engine_data``.""" -def fetch_supported_languages(): - """Fetchs supported languages for each engine and writes json file with those.""" network.set_timeout_for_thread(10.0) - engines_languages = {} + engine_data_dict = EngineDataDict() names = list(engines) names.sort() @@ -64,42 +67,46 @@ def fetch_supported_languages(): for engine_name in names: engine = engines[engine_name] + + fetch_data = getattr(engine, '_fetch_engine_data', None) + + # depricated: _fetch_supported_languages fetch_languages = getattr(engine, '_fetch_supported_languages', None) - fetch_properties = getattr(engine, '_fetch_engine_properties', None) - if fetch_properties is not None: - resp = network.get(engine.supported_properties_url, headers=headers) - engine_properties = EngineProperties() + if fetch_data is not None: + # data_type = 'engine_data' - fetch_properties(resp, engine_properties) - print("%s: %s languages" % (engine_name, len(engine_properties.languages))) - print("%s: %s regions" % (engine_name, len(engine_properties.regions))) + engine_data = EngineData() + resp = network.get(engine.engine_data_url, headers=headers) + fetch_data(resp, engine_data) - engine_properties = engine_properties.asdict() + print("%s: %s languages" % (engine_name, len(engine_data.languages))) + print("%s: %s regions" % (engine_name, len(engine_data.regions))) elif fetch_languages is not None: - # print("%s: using deepricated _fetch_fetch_languages()" % engine_name) - resp = network.get(engine.supported_languages_url, headers=headers) - engine_properties = fetch_languages(resp) - if isinstance(engine_properties, list): - engine_properties.sort() + # depricated: data_type = 'supported_languages' + print("%s: using deepricated _fetch_supported_languages" % engine_name) + resp = network.get(engine.supported_languages_url, headers=headers) + engine_languages = fetch_languages(resp) + if isinstance(engine_languages, list): + engine_languages.sort() print( "%s: fetched language %s containing %s items" - % (engine_name, engine_properties.__class__.__name__, len(engine_properties)) + % (engine_name, engine_languages.__class__.__name__, len(engine_languages)) ) + engine_data = EngineData(data_type='supported_languages') + engine_data.languages = engine_languages else: continue - engines_languages[engine_name] = engine_properties + engine_data_dict[engine_name] = engine_data - print("fetched properties from %s engines" % len(engines_languages)) - print("write json file: %s" % (engines_languages_file)) + print("fetched properties from %s engines" % len(engine_data_dict)) + print("write json file: %s" % (engine_data_dict.ENGINE_DATA_FILE)) - with open(engines_languages_file, 'w', encoding='utf-8') as f: - json.dump(engines_languages, f, indent=2, sort_keys=True) - - return engines_languages + engine_data_dict.save_data() + return engine_data_dict # Get babel Locale object from lang_code if possible. @@ -173,7 +180,7 @@ def get_territory_name(lang_code): return country_name -def join_language_lists(engines_languages): +def join_language_lists(engine_data_dict): """Join all languages of the engines into one list. The returned language list contains language codes (``zh``) and region codes (``zh-TW``). The codes can be parsed by babel:: @@ -184,28 +191,36 @@ def join_language_lists(engines_languages): # pylint: disable=too-many-branches language_list = {} - for engine_name in engines_languages: + for engine_name in engine_data_dict: engine = engines[engine_name] - engine_properties = engines_languages[engine_name] + engine_data = engine_data_dict[engine_name] - if isinstance(engine_properties, dict) and engine_properties.get('type') == 'engine_properties': - # items of type 'engine_properties' do have regions & languages, the - # list of engine_codes should contain both. - engine_codes = engine_properties.get('regions', {}) - engine_codes.update(engine_properties.get('languages', {})) + if engine_data.data_type == 'engine_data': + # items of type 'engine_data' do have regions & languages, the list + # of engine_codes should contain both. + + engine_codes = engine_data.regions + engine_codes.update(engine_data.languages) engine_codes = engine_codes.keys() + + elif engine_data.data_type == 'supported_languages': # depricated + + engine_languages = engine_data.languages + if isinstance(engine_languages, dict): + engine_languages = engine_languages.keys() + + language_aliases_values = getattr(engine, 'language_aliases', {}).values() + engine_codes = [] + for lang_code in engine_languages: + if lang_code in language_aliases_values: + lang_code = next(lc for lc, alias in engine.language_aliases.items() if lang_code == alias) + engine_codes.append(lang_code) + else: - engine_codes = engine_properties - engine_properties = {} - if isinstance(engine_codes, dict): - engine_codes = engine_codes.keys() + raise TypeError('unknown type of engine data: %s' % engine_data.data_type) for lang_code in engine_codes: - # apply custom fixes if necessary - if lang_code in getattr(engine, 'language_aliases', {}).values(): - lang_code = next(lc for lc, alias in engine.language_aliases.items() if lang_code == alias) - locale = get_locale(lang_code) # ensure that lang_code uses standard language and country codes @@ -219,10 +234,10 @@ def join_language_lists(engines_languages): # get language's data from babel's Locale object language_name = locale.get_language_name().title() english_name = locale.english_name.split(' (')[0] - elif short_code in engines_languages['wikipedia']: + elif short_code in engine_data_dict['wikipedia'].languages: # get language's data from wikipedia if not known by babel - language_name = engines_languages['wikipedia'][short_code]['name'] - english_name = engines_languages['wikipedia'][short_code]['english_name'] + language_name = engine_data_dict['wikipedia'].languages[short_code]['name'] + english_name = engine_data_dict['wikipedia'].languages[short_code]['english_name'] else: language_name = None english_name = None @@ -259,8 +274,10 @@ def join_language_lists(engines_languages): return language_list -# Filter language list so it only includes the most supported languages and countries def filter_language_list(all_languages): + """Filter language list so it only includes the most supported languages and + countries. + """ min_engines_per_lang = 12 min_engines_per_country = 7 # pylint: disable=consider-using-dict-items, consider-iterating-dictionary @@ -336,10 +353,14 @@ class UnicodeEscape(str): # Write languages.py. def write_languages_file(languages): + """Generates :origin:`searx/languages.py`.""" + file_headers = ( "# -*- coding: utf-8 -*-", "# list of language codes", - "# this file is generated automatically by utils/fetch_languages.py", + "# this file is generated automatically by:", + "#", + "# ./manage pyenv.cmd searxng_extra/update/update_languages.py", "language_codes = (\n", ) @@ -365,7 +386,7 @@ def write_languages_file(languages): language_codes = tuple(language_codes) - with open(languages_file, 'w', encoding='utf-8') as new_file: + with open(LANGUAGES_FILE, 'w', encoding='utf-8') as new_file: file_content = "{file_headers} {language_codes},\n)\n".format( # fmt: off file_headers = '\n'.join(file_headers), @@ -378,7 +399,7 @@ def write_languages_file(languages): if __name__ == "__main__": load_engines(settings['engines']) - _engines_languages = fetch_supported_languages() - _all_languages = join_language_lists(_engines_languages) + _engine_data_dict = fetch_engine_data() + _all_languages = join_language_lists(_engine_data_dict) _filtered_languages = filter_language_list(_all_languages) write_languages_file(_filtered_languages)