diff --git a/.dockerignore b/.dockerignore index f4d03376..044460b2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,6 +4,9 @@ */*/*/*~ */*/*/*/*~ +# +local/ + # Git .git .gitignore @@ -36,6 +39,11 @@ robot_report.html test_basic/ setup.cfg +# node_modules node_modules/ +*/node_modules/ +*/*/node_modules/ +*/*/*/node_modules/ +*/*/*/*/node_modules/ .tx/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 828856f4..1c82be41 100644 --- a/.gitignore +++ b/.gitignore @@ -15,9 +15,12 @@ setup.cfg */*.pyc *~ -node_modules/ +/node_modules .tx/ +build/ +dist/ local/ +gh-pages/ searx.egg-info/ diff --git a/.travis.yml b/.travis.yml index e37b6586..f6fa9c98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,26 +1,24 @@ +os: linux +dist: bionic language: python -sudo: false cache: - - pip - - npm - directories: - $HOME/.cache/pip - addons: firefox: "latest" install: - - ./manage.sh install_geckodriver ~/drivers - - export PATH=~/drivers:$PATH - - ./manage.sh npm_packages - - ./manage.sh update_dev_packages - - pip install codecov + - env + - which python; python --version + - make V=1 install + - make V=1 gecko.driver + - make V=1 node.env + - make V=1 travis.codecov script: - - ./manage.sh styles - - ./manage.sh grunt_build - - ./manage.sh tests + - make V=1 themes + - make V=1 test after_success: - - ./manage.sh py_test_coverage + - make V=1 test.coverage - codecov stages: @@ -31,10 +29,13 @@ stages: jobs: include: - python: "2.7" + env: PY=2 - python: "3.5" - python: "3.6" + - python: "3.7" + - python: "3.8" - stage: docker - python: "3.6" + python: "3.8" git: depth: false services: @@ -44,7 +45,7 @@ jobs: install: true script: - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - - ./manage.sh docker_build push + - make -e GIT_URL=$(git remote get-url origin) docker.push after_success: true notifications: diff --git a/AUTHORS.rst b/AUTHORS.rst index 2a2f1921..462b1701 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -100,3 +100,27 @@ generally made searx better: - @ZEROF - Ivan Skytte Jørgensen @isj-privacore - @miicha +- Étienne Deparis @milouse +- @pelag0s +- Denis Wernert @d-tux +- Robin Hallabro-Kokko @hallabro +- Jonas Zohren @jfowl +- Elias Ojala @theel0ja +- @brunob +- Nick Espig @nachtalb +- Rachmadani Haryono @rachmadaniHaryono +- Frank de Lange @yetangitu +- Émilien Devos @unifox +- Nicolas Gelot @nfk +- @volth +- Mathieu Brunot @madmath03 +- @lorddavidiii +- @x250 +- Robby O'Connor @robbyoconnor +- Finn @0xhtml +- @tmikaeld +- @hobbestigrou +- Vipul @finn0 +- @CaffeinatedTech +- Robin Schneider @ypid +- @splintah diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 70e9e415..b921788c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,41 @@ +0.16.0 2020.01.30 +================= + +- New engines + + - Splash + - Apkmirror + - NPM search + - Invidious + - Seedpeer +- New languages + + - Estonian + - Interlingua + - Lithuanian + - Tibetian + - Occitan + - Tamil +- Engine fixes (wolframalpha, google scholar, youtube, google images, seznam, google, soundcloud, google cloud, duden, btdigg, google play, bing images, flickr noapi, wikidata, dailymotion, google videos, arxiv, dictzone, fdroid, etymonline, bing, duckduckgo, startpage, voat, 1x, deviantart, digg, gigablast, mojeek, duckduckgo definitions, spotify, libgen, qwant, openstreetmap, wikipedia, ina, microsoft academic, scanr structures) +- Dependency updates +- Speed optimizations +- Initial support for offline engines +- Image format display +- Inline js scripts removed +- Infinite scroll plugin fix +- Simple theme bugfixes +- Docker image updates +- Bang expression fixes +- Result merging fixes +- New environment variable added: SEARX_BIND_ADDRESS + + +News +~~~~ + +- @return42 joined the maintainer team +- This is the last release with Python2 support + 0.15.0 2019.01.06 ================= diff --git a/Dockerfile b/Dockerfile index b0b5a609..700a21ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,7 @@ EXPOSE 8080 VOLUME /etc/searx VOLUME /var/log/uwsgi +ARG GIT_URL=unknown ARG VERSION_GITCOMMIT=unknown ARG SEARX_GIT_VERSION=unknown @@ -66,7 +67,7 @@ RUN su searx -c "/usr/bin/python3 -m compileall -q searx"; \ # Keep this argument at the end since it change each time ARG LABEL_DATE= -LABEL maintainer="searx " \ +LABEL maintainer="searx <${GIT_URL}>" \ description="A privacy-respecting, hackable metasearch engine." \ version="${SEARX_GIT_VERSION}" \ org.label-schema.schema-version="1.0" \ @@ -76,4 +77,11 @@ LABEL maintainer="searx " \ org.label-schema.vcs-ref=${LABEL_VCS_REF} \ org.label-schema.vcs-url=${LABEL_VCS_URL} \ org.label-schema.build-date="${LABEL_DATE}" \ - org.label-schema.usage="https://github.com/searx/searx-docker" + org.label-schema.usage="https://github.com/searx/searx-docker" \ + org.opencontainers.image.title="searx" \ + org.opencontainers.image.version="${SEARX_GIT_VERSION}" \ + org.opencontainers.image.url="${LABEL_VCS_URL}" \ + org.opencontainers.image.revision=${LABEL_VCS_REF} \ + org.opencontainers.image.source=${LABEL_VCS_URL} \ + org.opencontainers.image.created="${LABEL_DATE}" \ + org.opencontainers.image.documentation="https://github.com/searx/searx-docker" diff --git a/Makefile b/Makefile index 77ffe489..abd0eddb 100644 --- a/Makefile +++ b/Makefile @@ -1,36 +1,54 @@ # -*- coding: utf-8; mode: makefile-gmake -*- +export GIT_URL=https://github.com/asciimoo/searx +export SEARX_URL=https://searx.me +export DOCS_URL=https://asciimoo.github.io/searx + PYOBJECTS = searx +DOC = docs PY_SETUP_EXTRAS ?= \[test\] +PYDIST=./dist/py +PYBUILD=./build/py + include utils/makefile.include include utils/makefile.python +include utils/makefile.sphinx all: clean install PHONY += help help: @echo ' test - run developer tests' + @echo ' docs - build documentation' + @echo ' docs-live - autobuild HTML documentation while editing' @echo ' run - run developer instance' @echo ' install - developer install (./local)' @echo ' uninstall - uninstall (./local)' + @echo ' gh-pages - build docs & deploy on gh-pages branch' + @echo ' clean - drop builds and environments' + @echo ' project - re-build generic files of the searx project' + @echo ' buildenv - re-build environment files (aka brand)' + @echo ' themes - re-build build the source of the themes' + @echo ' docker - build Docker image' + @echo ' node.env - download & install npm dependencies locally' @echo '' @$(MAKE) -s -f utils/makefile.include make-help @echo '' @$(MAKE) -s -f utils/makefile.python python-help PHONY += install -install: pyenvinstall +install: buildenv pyenvinstall PHONY += uninstall uninstall: pyenvuninstall PHONY += clean -clean: pyclean +clean: pyclean node.clean test.clean $(call cmd,common_clean) PHONY += run -run: pyenvinstall +run: buildenv pyenvinstall $(Q) ( \ sed -i -e "s/debug : False/debug : True/g" ./searx/settings.yml ; \ sleep 2 ; \ @@ -40,23 +58,178 @@ run: pyenvinstall ) & $(PY_ENV)/bin/python ./searx/webapp.py +# docs +# ---- + +PHONY += docs +docs: buildenv pyenvinstall sphinx-doc + $(call cmd,sphinx,html,docs,docs) + +PHONY += docs-live +docs-live: buildenv pyenvinstall sphinx-live + $(call cmd,sphinx_autobuild,html,docs,docs) + +$(GH_PAGES):: + @echo "doc available at --> $(DOCS_URL)" + +# update project files +# -------------------- + +PHONY += project engines.languages useragents.update buildenv + +project: buildenv useragents.update engines.languages + +engines.languages: pyenvinstall + $(Q)echo "fetch languages .." + $(Q)$(PY_ENV_ACT); python utils/fetch_languages.py + $(Q)echo "update searx/data/engines_languages.json" + $(Q)mv engines_languages.json searx/data/engines_languages.json + $(Q)echo "update searx/languages.py" + $(Q)mv languages.py searx/languages.py + +useragents.update: pyenvinstall + $(Q)echo "Update searx/data/useragents.json with the most recent versions of Firefox." + $(Q)$(PY_ENV_ACT); python utils/fetch_firefox_version.py + +buildenv: + $(Q)echo "build searx/brand.py" + $(Q)echo "GIT_URL = '$(GIT_URL)'" > searx/brand.py + $(Q)echo "ISSUE_URL = 'https://github.com/asciimoo/searx/issues'" >> searx/brand.py + $(Q)echo "SEARX_URL = '$(SEARX_URL)'" >> searx/brand.py + $(Q)echo "DOCS_URL = '$(DOCS_URL)'" >> searx/brand.py + $(Q)echo "PUBLIC_INSTANCES = 'https://searx.space'" >> searx/brand.py + $(Q)echo "build utils/brand.env" + $(Q)echo "export GIT_URL='$(GIT_URL)'" > utils/brand.env + $(Q)echo "export ISSUE_URL='https://github.com/asciimoo/searx/issues'" >> utils/brand.env + $(Q)echo "export SEARX_URL='$(SEARX_URL)'" >> utils/brand.env + $(Q)echo "export DOCS_URL='$(DOCS_URL)'" >> utils/brand.env + $(Q)echo "export PUBLIC_INSTANCES='https://searx.space'" >> utils/brand.env + + +# node / npm +# ---------- + +node.env: buildenv + $(Q)./manage.sh npm_packages + +node.clean: + $(Q)echo "CLEAN locally installed npm dependencies" + $(Q)rm -rf \ + ./node_modules \ + ./package-lock.json \ + ./searx/static/themes/oscar/package-lock.json \ + ./searx/static/themes/oscar/node_modules \ + ./searx/static/themes/simple/package-lock.json \ + ./searx/static/themes/simple/node_modules + +# build themes +# ------------ + +PHONY += themes.bootstrap themes themes.oscar themes.simple themes.legacy themes.courgette themes.pixart +themes: buildenv themes.bootstrap themes.oscar themes.simple themes.legacy themes.courgette themes.pixart + +quiet_cmd_lessc = LESSC $3 + cmd_lessc = PATH="$$(npm bin):$$PATH" \ + lessc --clean-css="--s1 --advanced --compatibility=ie9" "searx/static/$2" "searx/static/$3" + +quiet_cmd_grunt = GRUNT $2 + cmd_grunt = PATH="$$(npm bin):$$PATH" \ + grunt --gruntfile "$2" + +themes.oscar: + $(Q)echo '[!] build oscar theme' + $(call cmd,grunt,searx/static/themes/oscar/gruntfile.js) + +themes.simple: + $(Q)echo '[!] build simple theme' + $(call cmd,grunt,searx/static/themes/simple/gruntfile.js) + +themes.legacy: + $(Q)echo '[!] build legacy theme' + $(call cmd,lessc,themes/legacy/less/style-rtl.less,themes/legacy/css/style-rtl.css) + $(call cmd,lessc,themes/legacy/less/style.less,themes/legacy/css/style.css) + +themes.courgette: + $(Q)echo '[!] build courgette theme' + $(call cmd,lessc,themes/courgette/less/style.less,themes/courgette/css/style.css) + $(call cmd,lessc,themes/courgette/less/style-rtl.less,themes/courgette/css/style-rtl.css) + +themes.pixart: + $(Q)echo '[!] build pixart theme' + $(call cmd,lessc,themes/pix-art/less/style.less,themes/pix-art/css/style.css) + +themes.bootstrap: + $(call cmd,lessc,less/bootstrap/bootstrap.less,css/bootstrap.min.css) + + +# docker +# ------ + +PHONY += docker +docker: buildenv + $(Q)./manage.sh docker_build + +docker.push: buildenv + $(Q)./manage.sh docker_build push + +# gecko +# ----- + +PHONY += gecko.driver +gecko.driver: + $(PY_ENV_ACT); ./manage.sh install_geckodriver + # test # ---- -PHONY += test test.pylint test.pep8 test.unit test.robot +PHONY += test test.pylint test.pep8 test.unit test.coverage test.robot +test: buildenv test.pylint test.pep8 test.unit gecko.driver test.robot + +ifeq ($(PY),2) +test.pylint: + @echo "LINT skip liniting py2" +else # TODO: balance linting with pylint -test: test.pep8 test.unit test.robot - - make pylint +test.pylint: pyenvinstall + $(call cmd,pylint,\ + searx/preferences.py \ + searx/testing.py \ + ) +endif + +# ignored rules: +# E402 module level import not at top of file +# W503 line break before binary operator test.pep8: pyenvinstall - $(PY_ENV_ACT); ./manage.sh pep8_check + @echo "TEST pep8" + $(Q)$(PY_ENV_ACT); pep8 --exclude=searx/static --max-line-length=120 --ignore "E402,W503" searx tests test.unit: pyenvinstall - $(PY_ENV_ACT); ./manage.sh unit_tests + @echo "TEST tests/unit" + $(Q)$(PY_ENV_ACT); python -m nose2 -s tests/unit -test.robot: pyenvinstall - $(PY_ENV_ACT); ./manage.sh install_geckodriver - $(PY_ENV_ACT); ./manage.sh robot_tests +test.coverage: pyenvinstall + @echo "TEST unit test coverage" + $(Q)$(PY_ENV_ACT); \ + python -m nose2 -C --log-capture --with-coverage --coverage searx -s tests/unit \ + && coverage report \ + && coverage html \ + +test.robot: pyenvinstall gecko.driver + @echo "TEST robot" + $(Q)$(PY_ENV_ACT); PYTHONPATH=. python searx/testing.py robot + +test.clean: + @echo "CLEAN intermediate test stuff" + $(Q)rm -rf geckodriver.log .coverage coverage/ + + +# travis +# ------ + +travis.codecov: + $(Q)$(PY_ENV_BIN)/python -m pip install codecov .PHONY: $(PHONY) diff --git a/README.rst b/README.rst index ab16a828..a7b75d6e 100644 --- a/README.rst +++ b/README.rst @@ -7,7 +7,7 @@ engine `__. Pronunciation: səːks List of `running -instances `__. +instances `__. See the `documentation `__ and the `wiki `__ for more information. @@ -18,18 +18,18 @@ Installation ~~~~~~~~~~~~ With Docker ------- +----------- Go to the `searx-docker `__ project. Without Docker ------- -For all the details, follow this `step by step installation `__. +-------------- +For all of the details, follow this `step by step installation `__. Note: the documentation needs to be updated. -If you are in hurry ------- -- clone source: +If you are in a hurry +--------------------- +- clone the source: ``git clone https://github.com/asciimoo/searx.git && cd searx`` - install dependencies: ``./manage.sh update_packages`` - edit your diff --git a/dockerfiles/uwsgi.ini b/dockerfiles/uwsgi.ini index fa2fd630..ecc4b394 100644 --- a/dockerfiles/uwsgi.ini +++ b/dockerfiles/uwsgi.ini @@ -31,3 +31,7 @@ touch-logrotate = /run/uwsgi-logrotate unique-cron = 15 0 -1 -1 -1 { touch /run/uwsgi-logrotate } log-backupname = /var/log/uwsgi/uwsgi.log.1 logto = /var/log/uwsgi/uwsgi.log + +# No keep alive +# See https://github.com/searx/searx-docker/issues/24 +add-header = Connection: close diff --git a/docs/_themes/searx/static/searx.css b/docs/_themes/searx/static/searx.css new file mode 100644 index 00000000..d6a664f0 --- /dev/null +++ b/docs/_themes/searx/static/searx.css @@ -0,0 +1,130 @@ +@import url("pocoo.css"); + +a, a.reference, a.footnote-reference { + color: #004b6b; + border-color: #004b6b; +} + +a:hover { + color: #6d4100; + border-color: #6d4100; +} + +p.version-warning { + background-color: #004b6b; +} + +div.sidebar { + background-color: whitesmoke; + border-color: lightsteelblue; + border-radius: 3pt; +} + +p.sidebar-title, .sidebar p { + margin: 6pt; +} + +.sidebar li, +.hlist li { + list-style-type: disclosure-closed; +} + + +/* admonitions +*/ + +div.admonition, div.topic { + background-color: #fafafa; + margin: 8px 0px; + padding: 1em; + border-radius: 3pt 0 0 3pt; + border-top: none; + border-right: none; + border-bottom: none; + border-left: 5pt solid #ccc; +} + +p.admonition-title:after { + content: none; +} + +.admonition.hint { border-color: #416dc0b0; } +.admonition.note { border-color: #6c856cb0; } +.admonition.tip { border-color: #85c5c2b0; } +.admonition.attention { border-color: #ecec97b0; } +.admonition.caution { border-color: #a6c677b0; } +.admonition.danger { border-color: #d46262b0; } +.admonition.important { border-color: #dfa3a3b0; } +.admonition.error { border-color: red; } +.admonition.warning { border-color: darkred; } + +.admonition.admonition-generic-admonition-title { + border-color: #416dc0b0; +} + + +/* admonitions with (rendered) reST markup examples (:class: rst-example) + * + * .. admonition:: title of the example + * :class: rst-example + * .... +*/ + +div.rst-example { + background-color: inherit; + margin: 0; + border-top: none; + border-right: 1px solid #ccc; + border-bottom: none; + border-left: none; + border-radius: none; + padding: 0; +} + +div.rst-example > p.admonition-title { + font-family: Sans Serif; + font-style: italic; + font-size: 0.8em; + display: block; + border-bottom: 1px solid #ccc; + padding: 0.5em 1em; + text-align: right; +} + +/* code block in figures + */ + +div.highlight pre { + text-align: left; +} + +/* Table theme +*/ + +thead, tfoot { + background-color: #fff; +} + +th:hover, td:hover { + background-color: #ffc; +} + +thead th, tfoot th, tfoot td, tbody th { + background-color: #fffaef; +} + +tbody tr:nth-child(odd) { + background-color: #fff; +} + +tbody tr:nth-child(even) { + background-color: #fafafa; +} + +caption { + font-family: Sans Serif; + padding: 0.5em; + margin: 0.5em 0 0.5em 0; + caption-side: top; + text-align: left; +} diff --git a/docs/_themes/searx/theme.conf b/docs/_themes/searx/theme.conf new file mode 100644 index 00000000..2d5f72e7 --- /dev/null +++ b/docs/_themes/searx/theme.conf @@ -0,0 +1,6 @@ +[theme] +inherit = pocoo +stylesheet = searx.css + +[options] +touch_icon = diff --git a/docs/admin/api.rst b/docs/admin/api.rst new file mode 100644 index 00000000..7804a866 --- /dev/null +++ b/docs/admin/api.rst @@ -0,0 +1,96 @@ +.. _adminapi: + +================== +Administration API +================== + +Get configuration data +====================== + +.. code:: http + + GET /config HTTP/1.1 + +Sample response +--------------- + +.. code:: json + + { + "autocomplete": "", + "categories": [ + "map", + "it", + "images", + ], + "default_locale": "", + "default_theme": "oscar", + "engines": [ + { + "categories": [ + "map" + ], + "enabled": true, + "name": "openstreetmap", + "shortcut": "osm" + }, + { + "categories": [ + "it" + ], + "enabled": true, + "name": "arch linux wiki", + "shortcut": "al" + }, + { + "categories": [ + "images" + ], + "enabled": true, + "name": "google images", + "shortcut": "goi" + }, + { + "categories": [ + "it" + ], + "enabled": false, + "name": "bitbucket", + "shortcut": "bb" + }, + ], + "instance_name": "searx", + "locales": { + "de": "Deutsch (German)", + "en": "English", + "eo": "Esperanto (Esperanto)", + }, + "plugins": [ + { + "enabled": true, + "name": "HTTPS rewrite" + }, + { + "enabled": false, + "name": "Vim-like hotkeys" + } + ], + "safe_search": 0 + } + + +Embed search bar +================ + +The search bar can be embedded into websites. Just paste the example into the +HTML of the site. URL of the searx instance and values are customizable. + +.. code:: html + +
+ + + + + +
diff --git a/docs/admin/arch_public.dot b/docs/admin/arch_public.dot new file mode 100644 index 00000000..a46c96de --- /dev/null +++ b/docs/admin/arch_public.dot @@ -0,0 +1,33 @@ +digraph G { + + node [style=filled, shape=box, fillcolor="#ffffcc", fontname="Sans"]; + edge [fontname="Sans"]; + + browser [label="Browser", shape=Mdiamond]; + rp [label="Reverse Proxy", href="url to configure reverse proxy"]; + filtron [label="Filtron", href="https://github.com/asciimoo/filtron"]; + morty [label="Morty", href="https://github.com/asciimoo/morty"]; + static [label="Static files", href="url to configure static files"]; + uwsgi [label="uwsgi", href="url to configure uwsgi"] + searx1 [label="Searx #1"]; + searx2 [label="Searx #2"]; + searx3 [label="Searx #3"]; + searx4 [label="Searx #4"]; + + browser -> rp [label="HTTPS"] + + subgraph cluster_searx { + label = "Searx instance" fontname="Sans"; + bgcolor="#fafafa"; + { rank=same; static rp }; + rp -> morty [label="optional: images and HTML pages proxy"]; + rp -> static [label="optional: reverse proxy serves directly static files"]; + rp -> filtron [label="HTTP"]; + filtron -> uwsgi [label="HTTP"]; + uwsgi -> searx1; + uwsgi -> searx2; + uwsgi -> searx3; + uwsgi -> searx4; + } + +} diff --git a/docs/admin/architecture.rst b/docs/admin/architecture.rst new file mode 100644 index 00000000..7064a294 --- /dev/null +++ b/docs/admin/architecture.rst @@ -0,0 +1,24 @@ +.. _architecture: + +============ +Architecture +============ + +.. sidebar:: Needs work! + + This article needs some work / Searx is a collaborative effort. If you have + any contribution, feel welcome to send us your :pull:`PR <../pulls>`, see + :ref:`how to contribute`. + +Herein you will find some hints and suggestions about typical architectures of +searx infrastructures. + +We start with a contribution from :pull:`@dalf <1776#issuecomment-567917320>`. +It shows a *reference* setup for public searx instances. + +.. _arch public: + +.. kernel-figure:: arch_public.dot + :alt: arch_public.dot + + Reference architecture of a public searx setup. diff --git a/docs/admin/buildhosts.rst b/docs/admin/buildhosts.rst new file mode 100644 index 00000000..5260da03 --- /dev/null +++ b/docs/admin/buildhosts.rst @@ -0,0 +1,103 @@ +.. _buildhosts: + +========== +Buildhosts +========== + +.. sidebar:: This article needs some work + + If you have any contribution send us your :pull:`PR <../pulls>`, see + :ref:`how to contribute`. + +To get best results from build, its recommend to install additional packages +on build hosts. + +.. _docs build: + +Build docs +========== + +.. _Graphviz: https://graphviz.gitlab.io +.. _ImageMagick: https://www.imagemagick.org +.. _XeTeX: https://tug.org/xetex/ +.. _dvisvgm: https://dvisvgm.de/ + +.. sidebar:: Sphinx build needs + + - ImageMagick_ + - Graphviz_ + - XeTeX_ + - dvisvgm_ + +Most of the sphinx requirements are installed from :origin:`setup.py` and the +docs can be build from scratch with ``make docs``. For better math and image +processing additional packages are needed. The XeTeX_ needed not only for PDF +creation, its also needed for :ref:`math` when HTML output is build. + +To be able to do :ref:`sphinx:math-support` without CDNs, the math are rendered +as images (``sphinx.ext.imgmath`` extension). If your docs build (``make +docs``) shows warnings like this:: + + WARNING: dot(1) not found, for better output quality install \ + graphviz from http://www.graphviz.org + .. + WARNING: LaTeX command 'latex' cannot be run (needed for math \ + display), check the imgmath_latex setting + +you need to install additional packages on your build host, to get better HTML +output. + +.. _system requirements: + +.. tabs:: + + .. group-tab:: Ubuntu / debian + + .. code-block:: sh + + $ sudo apt install graphviz imagemagick texlive-xetex librsvg2-bin + + .. group-tab:: Arch Linux + + .. code-block:: sh + + $ sudo pacman -S graphviz imagemagick texlive-bin extra/librsvg + + .. group-tab:: Fedora / RHEL + + .. code-block:: sh + + $ sudo dnf install graphviz graphviz-gd texlive-xetex-bin librsvg2-tools + + +For PDF output you also need: + +.. tabs:: + + .. group-tab:: Ubuntu / debian + + .. code:: sh + + $ sudo apt texlive-latex-recommended texlive-extra-utils ttf-dejavu + + .. group-tab:: Arch Linux + + .. code:: sh + + $ sudo pacman -S texlive-core texlive-latexextra ttf-dejavu + + .. group-tab:: Fedora / RHEL + + .. code:: sh + + $ sudo dnf install \ + texlive-collection-fontsrecommended texlive-collection-latex \ + dejavu-sans-fonts dejavu-serif-fonts dejavu-sans-mono-fonts + +.. _system requirements END: + +.. literalinclude:: ../conf.py + :language: python + :start-after: # sphinx.ext.imgmath setup + :end-before: # sphinx.ext.imgmath setup END + diff --git a/docs/admin/engines.rst b/docs/admin/engines.rst new file mode 100644 index 00000000..4b78c8c2 --- /dev/null +++ b/docs/admin/engines.rst @@ -0,0 +1,71 @@ +.. _engines generic: + +======= +Engines +======= + +.. sidebar:: Further reading .. + + - :ref:`settings engine` + - :ref:`engine settings` + - :ref:`engine file` + +============= =========== ==================== ============ +:ref:`engine settings` :ref:`engine file` +------------------------- --------------------------------- +Name (cfg) Categories +------------------------- --------------------------------- +Engine .. Paging support **P** +------------------------- -------------------- ------------ +Shortcut **S** Language support **L** +Timeout **TO** Time range support **TR** +Disabled **D** Offline **O** +------------- ----------- -------------------- ------------ +Safe search **SS** +------------- ----------- --------------------------------- +Weigth **W** +------------- ----------- --------------------------------- +Disabled **D** +============= =========== ================================= + +Configuration defaults (at built time): + +.. _configured engines: + +.. jinja:: webapp + + .. flat-table:: Engines configured at built time (defaults) + :header-rows: 1 + :stub-columns: 2 + + * - Name (cfg) + - S + - Engine + - TO + - Categories + - P + - L + - SS + - D + - TR + - O + - W + - D + + {% for name, mod in engines.items() %} + + * - {{name}} + - !{{mod.shortcut}} + - {{mod.__name__}} + - {{mod.timeout}} + - {{", ".join(mod.categories)}} + - {{(mod.paging and "y") or ""}} + - {{(mod.language_support and "y") or ""}} + - {{(mod.safesearch and "y") or ""}} + - {{(mod.disabled and "y") or ""}} + - {{(mod.time_range_support and "y") or ""}} + - {{(mod.offline and "y") or ""}} + - {{mod.weight or 1 }} + - {{(mod.disabled and "y") or ""}} + + {% endfor %} diff --git a/docs/admin/filtron.rst b/docs/admin/filtron.rst new file mode 100644 index 00000000..07dcb9bc --- /dev/null +++ b/docs/admin/filtron.rst @@ -0,0 +1,148 @@ +========================== +How to protect an instance +========================== + +Searx depens on external search services. To avoid the abuse of these services +it is advised to limit the number of requests processed by searx. + +An application firewall, ``filtron`` solves exactly this problem. Information +on how to install it can be found at the `project page of filtron +`__. + + +Sample configuration of filtron +=============================== + +An example configuration can be find below. This configuration limits the access +of: + +- scripts or applications (roboagent limit) +- webcrawlers (botlimit) +- IPs which send too many requests (IP limit) +- too many json, csv, etc. requests (rss/json limit) +- the same UserAgent of if too many requests (useragent limit) + +.. code:: json + + [{ + "name":"search request", + "filters":[ + "Param:q", + "Path=^(/|/search)$" + ], + "interval":"", + "limit":"", + "subrules":[ + { + "name":"roboagent limit", + "interval":"", + "limit":"", + "filters":[ + "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)" + ], + "actions":[ + { + "name":"block", + "params":{ + "message":"Rate limit exceeded" + } + } + ] + }, + { + "name":"botlimit", + "limit":0, + "stop":true, + "filters":[ + "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)" + ], + "actions":[ + { + "name":"block", + "params":{ + "message":"Rate limit exceeded" + } + } + ] + }, + { + "name":"IP limit", + "interval":"", + "limit":"", + "stop":true, + "aggregations":[ + "Header:X-Forwarded-For" + ], + "actions":[ + { + "name":"block", + "params":{ + "message":"Rate limit exceeded" + } + } + ] + }, + { + "name":"rss/json limit", + "interval":"", + "limit":"", + "stop":true, + "filters":[ + "Param:format=(csv|json|rss)" + ], + "actions":[ + { + "name":"block", + "params":{ + "message":"Rate limit exceeded" + } + } + ] + }, + { + "name":"useragent limit", + "interval":"", + "limit":"", + "aggregations":[ + "Header:User-Agent" + ], + "actions":[ + { + "name":"block", + "params":{ + "message":"Rate limit exceeded" + } + } + ] + } + ] + }] + + + +Route request through filtron +============================= + +Filtron can be started using the following command: + +.. code:: sh + + $ filtron -rules rules.json + +It listens on ``127.0.0.1:4004`` and forwards filtered requests to +``127.0.0.1:8888`` by default. + +Use it along with ``nginx`` with the following example configuration. + +.. code:: nginx + + location / { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Scheme $scheme; + proxy_pass http://127.0.0.1:4004/; + } + +Requests are coming from port 4004 going through filtron and then forwarded to +port 8888 where a searx is being run. diff --git a/docs/admin/index.rst b/docs/admin/index.rst new file mode 100644 index 00000000..b3c7f511 --- /dev/null +++ b/docs/admin/index.rst @@ -0,0 +1,16 @@ +=========================== +Administrator documentation +=========================== + +.. toctree:: + :maxdepth: 1 + + installation + settings + api + architecture + filtron + morty + engines + plugins + buildhosts diff --git a/docs/admin/installation.rst b/docs/admin/installation.rst new file mode 100644 index 00000000..15800fc0 --- /dev/null +++ b/docs/admin/installation.rst @@ -0,0 +1,349 @@ +.. _installation: + +============ +Installation +============ + +.. contents:: + :depth: 3 + +Basic installation +================== + +Step by step installation for Debian/Ubuntu with virtualenv. For Ubuntu, be sure +to have enable universe repository. + +Install packages: + +.. code:: sh + + $ sudo -H apt-get install \ + git build-essential libxslt-dev \ + python-dev python-virtualenv python-babel \ + zlib1g-dev libffi-dev libssl-dev + +Install searx: + +.. code:: sh + + cd /usr/local + sudo -H git clone https://github.com/asciimoo/searx.git + sudo -H useradd searx -d /usr/local/searx + sudo -H chown searx:searx -R /usr/local/searx + +Install dependencies in a virtualenv: + +.. code:: sh + + cd /usr/local/searx + sudo -H -u searx -i + +.. code:: sh + + (searx)$ virtualenv searx-ve + (searx)$ . ./searx-ve/bin/activate + (searx)$ ./manage.sh update_packages + +Configuration +============== + +.. code:: sh + + sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml + +Edit searx/settings.yml if necessary. + +Check +===== + +Start searx: + +.. code:: sh + + python searx/webapp.py + +Go to http://localhost:8888 + +If everything works fine, disable the debug option in settings.yml: + +.. code:: sh + + sed -i -e "s/debug : True/debug : False/g" searx/settings.yml + +At this point searx is not demonized ; uwsgi allows this. + +You can exit the virtualenv and the searx user bash (enter exit command +twice). + +uwsgi +===== + +Install packages: + +.. code:: sh + + sudo -H apt-get install \ + uwsgi uwsgi-plugin-python + +Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this +content: + +.. code:: ini + + [uwsgi] + # Who will run the code + uid = searx + gid = searx + + # disable logging for privacy + disable-logging = true + + # Number of workers (usually CPU count) + workers = 4 + + # The right granted on the created socket + chmod-socket = 666 + + # Plugin to use and interpretor config + single-interpreter = true + master = true + plugin = python + lazy-apps = true + enable-threads = true + + # Module to import + module = searx.webapp + + # Support running the module from a webserver subdirectory. + route-run = fixpathinfo: + + # Virtualenv and python path + virtualenv = /usr/local/searx/searx-ve/ + pythonpath = /usr/local/searx/ + chdir = /usr/local/searx/searx/ + +Activate the uwsgi application and restart: + +.. code:: sh + + cd /etc/uwsgi/apps-enabled + ln -s ../apps-available/searx.ini + /etc/init.d/uwsgi restart + +Web server +========== + +with nginx +---------- + +If nginx is not installed (uwsgi will not work with the package +nginx-light): + +.. code:: sh + + sudo -H apt-get install nginx + +Hosted at / +~~~~~~~~~~~ + +Create the configuration file ``/etc/nginx/sites-available/searx`` with this +content: + +.. code:: nginx + + server { + listen 80; + server_name searx.example.com; + root /usr/local/searx/searx; + + location /static { + } + + location / { + include uwsgi_params; + uwsgi_pass unix:/run/uwsgi/app/searx/socket; + } + } + +Create a symlink to sites-enabled: + +.. code:: sh + + sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx + +Restart service: + +.. code:: sh + + sudo -H service nginx restart + sudo -H service uwsgi restart + +from subdirectory URL (/searx) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add this configuration in the server config file +``/etc/nginx/sites-enabled/default``: + +.. code:: nginx + + location /searx/static { + alias /usr/local/searx/searx/static; + } + + location /searx { + uwsgi_param SCRIPT_NAME /searx; + include uwsgi_params; + uwsgi_pass unix:/run/uwsgi/app/searx/socket; + } + + +**OR** using reverse proxy (Please, note that reverse proxy advised to be used +in case of single-user or low-traffic instances.) + +.. code:: nginx + + location /searx/static { + alias /usr/local/searx/searx/static; + } + + location /searx { + proxy_pass http://127.0.0.1:8888; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Script-Name /searx; + proxy_buffering off; + } + + +Enable ``base_url`` in ``searx/settings.yml`` + +.. code:: yaml + + base_url : http://your.domain.tld/searx/ + +Restart service: + +.. code:: sh + + sudo -H service nginx restart + sudo -H service uwsgi restart + +disable logs +^^^^^^^^^^^^ + +for better privacy you can disable nginx logs about searx. + +how to proceed: below ``uwsgi_pass`` in ``/etc/nginx/sites-available/default`` +add: + +.. code:: nginx + + access_log /dev/null; + error_log /dev/null; + +Restart service: + +.. code:: sh + + sudo -H service nginx restart + +with apache +----------- + +Add wsgi mod: + +.. code:: sh + + sudo -H apt-get install libapache2-mod-uwsgi + sudo -H a2enmod uwsgi + +Add this configuration in the file ``/etc/apache2/apache2.conf``: + +.. code:: apache + + + Options FollowSymLinks Indexes + SetHandler uwsgi-handler + uWSGISocket /run/uwsgi/app/searx/socket + + +Note that if your instance of searx is not at the root, you should change +```` by the location of your instance, like ````. + +Restart Apache: + +.. code:: sh + + sudo -H /etc/init.d/apache2 restart + +disable logs +~~~~~~~~~~~~ + +For better privacy you can disable Apache logs. + +.. warning:: + + You can only disable logs for the whole (virtual) server not for a specific + path. + +Go back to ``/etc/apache2/apache2.conf`` and above ```` add: + +.. code:: apache + + CustomLog /dev/null combined + +Restart Apache: + +.. code:: sh + + sudo -H /etc/init.d/apache2 restart + +How to update +============= + +.. code:: sh + + cd /usr/local/searx + sudo -H -u searx -i + +.. code:: sh + + (searx)$ . ./searx-ve/bin/activate + (searx)$ git stash + (searx)$ git pull origin master + (searx)$ git stash apply + (searx)$ ./manage.sh update_packages + +.. code:: sh + + sudo -H service uwsgi restart + +Docker +====== + +Make sure you have installed Docker. For instance, you can deploy searx like this: + +.. code:: sh + + docker pull wonderfall/searx + docker run -d --name searx -p $PORT:8888 wonderfall/searx + +Go to ``http://localhost:$PORT``. + +See https://hub.docker.com/r/wonderfall/searx/ for more informations. It's also +possible to build searx from the embedded Dockerfile. + +.. code:: sh + + git clone https://github.com/asciimoo/searx.git + cd searx + docker build -t whatever/searx . + +References +========== + +* https://about.okhin.fr/posts/Searx/ with some additions + +* How to: `Setup searx in a couple of hours with a free SSL certificate + `__ diff --git a/docs/admin/morty.rst b/docs/admin/morty.rst new file mode 100644 index 00000000..7d7b3449 --- /dev/null +++ b/docs/admin/morty.rst @@ -0,0 +1,26 @@ +========================= +How to setup result proxy +========================= + +.. _morty: https://github.com/asciimoo/morty +.. _morty's README: https://github.com/asciimoo/morty + +By default searx can only act as an image proxy for result images, but it is +possible to proxify all the result URLs with an external service, morty_. + +To use this feature, morty has to be installed and activated in searx's +``settings.yml``. + +Add the following snippet to your ``settings.yml`` and restart searx: + +.. code:: yaml + + result_proxy: + url : http://127.0.0.1:3000/ + key : your_morty_proxy_key + +``url`` + Is the address of the running morty service. + +``key`` + Is an optional argument, see `morty's README`_ for more information. diff --git a/docs/admin/plugins.rst b/docs/admin/plugins.rst new file mode 100644 index 00000000..4ed9066f --- /dev/null +++ b/docs/admin/plugins.rst @@ -0,0 +1,39 @@ +.. _plugins generic: + +=============== +Plugins builtin +=============== + +.. sidebar:: Further reading .. + + - :ref:`dev plugin` + +Configuration defaults (at built time): + +:DO: Default on + +.. _configured plugins: + +.. jinja:: webapp + + .. flat-table:: Plugins configured at built time (defaults) + :header-rows: 1 + :stub-columns: 1 + :widths: 3 1 9 + + * - Name + - DO + - Description + + JS & CSS dependencies + + {% for plgin in plugins %} + + * - {{plgin.name}} + - {{(plgin.default_on and "y") or ""}} + - {{plgin.description}} + + {% for dep in (plgin.js_dependencies + plgin.css_dependencies) %} + | ``{{dep}}`` {% endfor %} + + {% endfor %} diff --git a/docs/admin/settings.rst b/docs/admin/settings.rst new file mode 100644 index 00000000..0bfdcc6c --- /dev/null +++ b/docs/admin/settings.rst @@ -0,0 +1,181 @@ +.. _settings.yml: + +================ +``settings.yml`` +================ + +.. sidebar:: Further reading .. + + - :ref:`search API` + +This page describe the options possibilities of the settings.yml file. + +.. _settings global: + +Global Settings +=============== + +.. code:: yaml + + server: + port : 8888 + secret_key : "ultrasecretkey" # change this! + debug : False # debug mode, only for development + request_timeout : 2.0 # seconds + base_url : False # set custom base_url (or False) + themes_path : "" # custom ui themes path + default_theme : oscar # ui theme + useragent_suffix : "" # suffix of searx_useragent, could contain + # informations like admins email address + image_proxy : False # proxying image results through searx + default_locale : "" # default interface locale + + # uncomment below section if you want to use a proxy + + #outgoing_proxies : + # http : http://127.0.0.1:8080 + # https: http://127.0.0.1:8080 + + # uncomment below section only if you have more than one network interface + # which can be the source of outgoing search requests + + #source_ips: + # - 1.1.1.1 + # - 1.1.1.2 + + locales: + en : English + de : Deutsch + he : Hebrew + hu : Magyar + fr : Français + es : Español + it : Italiano + nl : Nederlands + ja : 日本語 (Japanese) + tr : Türkçe + ru : Russian + ro : Romanian + + +``port`` : + Port number of the searx web application if you run it directly using ``python + searx/webapp.py``. Doesn't apply to searx running on Apache or Nginx. + +``secret_key`` : + Used for cryptography purpose. + +``debug`` : + Allow a more detailed log if you run searx directly. Display *detailed* error + messages in the browser too, so this must be deactivated in production. + +``request_timeout`` : + Global timeout of the requests made to others engines in seconds. A bigger + timeout will allow to wait for answers from slow engines, but in consequence + will slow searx reactivity (the result page may take the time specified in the + timeout to load) + +``base_url`` : + The base URL where searx is deployed. Used to create correct inbound links. + +``themes_path`` : + Path to where the themes are located. If you didn't develop anything, leave it + blank. + +``default_theme`` : + Name of the theme you want to use by default on you searx instance. + +``useragent_suffix`` : + Suffix to the user-agent searx uses to send requests to others engines. If an + engine wish to block you, a contact info here may be useful to avoid that. + +``image_proxy`` : + Allow your instance of searx of being able to proxy images. Uses memory space. + +``default_locale`` : + Aearx interface language. If blank, the locale is detected by using the + browser language. If it doesn't work, or you are deploying a language + specific instance of searx, a locale can be defined using an ISO language + code, like ``fr``, ``en``, ``de``. + +.. _requests proxies: http://docs.python-requests.org/en/latest/user/advanced/#proxies +.. _PR SOCKS support: https://github.com/kennethreitz/requests/pull/478 + +``outgoing_proxies`` : + Define a proxy you wish to use, see `requests proxies`_. SOCKS proxies are + not supported / see `PR SOCKS support`. + +``source_ips`` : + If you use multiple nework interfaces, define from which IP the requests must + be made. + +``locales`` : + Locales codes and their names. Available translations of searx interface. + + +.. _settings engine: + +Engine settings +=============== + +.. sidebar:: Further reading .. + + - :ref:`engines-dev` + +.. code:: yaml + + - name : bing + engine : bing + shortcut : bi + base_url : 'https://{language}.wikipedia.org/' + categories : general + timeout : 3.0 + api_key : 'apikey' + disabled : True + language : en_US + +``name`` : + Name that will be used accross searx to define this engine. In settings, on + the result page... + +``engine`` : + Name of the python file used to handle requests and responses to and from this + search engine. + +``shortcut`` : + Code used to execute bang requests (in this case using ``!bi`` or ``?bi``) + +``base_url`` : optional + Part of the URL that should be stable accross every request. Can be useful to + use multiple sites using only one engine, or updating the site URL without + touching at the code. + +``categories`` : optional + Define in which categories this engine will be active. Most of the time, it is + defined in the code of the engine, but in a few cases it is useful, like when + describing multiple search engine using the same code. + +``timeout`` : optional + Timeout of the search with the current search engine. **Be careful, it will + modify the global timeout of searx.** + +``api_key`` : optional + In a few cases, using an API needs the use of a secret key. How to obtain them + is described in the file. + +``disabled`` : optional + To disable by default the engine, but not deleting it. It will allow the user + to manually activate it in the settings. + +``language`` : optional + If you want to use another language for a specific engine, you can define it + by using the full ISO code of language and country, like ``fr_FR``, ``en_US``, + ``de_DE``. + +``weigth`` : default ``1`` + Weighting of the results of this engine. + +.. note:: + + A few more options are possible, but they are pretty specific to some + engines, and so won't be described here. diff --git a/docs/blog/admin.rst b/docs/blog/admin.rst new file mode 100644 index 00000000..e9531619 --- /dev/null +++ b/docs/blog/admin.rst @@ -0,0 +1,43 @@ +============================================================= +Searx admin interface +============================================================= + +.. _searx-admin: https://github.com/kvch/searx-admin#searx-admin +.. _NLnet Foundation: https://nlnet.nl/ + + manage your instance from your browser + +.. sidebar:: Installation + + Installation guide can be found in the repository of searx-admin_. + +One of the biggest advantages of searx is being extremely customizable. But at +first it can be daunting to newcomers. A barrier of taking advantage of this +feature is our ugly settings file which is sometimes hard to understand and +edit. + +To make self-hosting searx more accessible a new tool is introduced, called +``searx-admin``. It is a web application which is capable of managing your +instance and manipulating its settings via a web UI. It aims to replace editing +of ``settings.yml`` for less experienced administrators or people who prefer +graphical admin interfaces. + +.. figure:: searx-admin-engines.png + :alt: Screenshot of engine list + + Configuration page of engines + +Since ``searx-admin`` acts as a supervisor for searx, we have decided to +implement it as a standalone tool instead of part of searx. Another reason for +making it a standalone tool is that the codebase and dependencies of searx +should not grow because of a fully optional feature, which does not affect +existing instances. + + +Acknowledgements +================ + +This development was sponsored by `NLnet Foundation`_. + +| Happy hacking. +| kvch // 2017.08.22 21:25 diff --git a/docs/blog/index.rst b/docs/blog/index.rst new file mode 100644 index 00000000..94847ad6 --- /dev/null +++ b/docs/blog/index.rst @@ -0,0 +1,11 @@ +==== +Blog +==== + +.. toctree:: + :maxdepth: 1 + + python3 + admin + intro-offline + private-engines diff --git a/docs/blog/intro-offline.rst b/docs/blog/intro-offline.rst new file mode 100644 index 00000000..f6e90de3 --- /dev/null +++ b/docs/blog/intro-offline.rst @@ -0,0 +1,77 @@ +=============================== +Preparation for offline engines +=============================== + +Offline engines +=============== + +To extend the functionality of searx, offline engines are going to be +introduced. An offline engine is an engine which does not need Internet +connection to perform a search and does not use HTTP to communicate. + +Offline engines can be configured as online engines, by adding those to the +`engines` list of :origin:`settings.yml `. Thus, searx +finds the engine file and imports it. + +Example skeleton for the new engines: + +.. code:: python + + from subprocess import PIPE, Popen + + categories = ['general'] + offline = True + + def init(settings): + pass + + def search(query, params): + process = Popen(['ls', query], stdout=PIPE) + return_code = process.wait() + if return_code != 0: + raise RuntimeError('non-zero return code', return_code) + + results = [] + line = process.stdout.readline() + while line: + result = parse_line(line) + results.append(results) + + line = process.stdout.readline() + + return results + + +Development progress +==================== + +First, a proposal has been created as a Github issue. Then it was moved to the +wiki as a design document. You can read it here: :wiki:`Offline-engines`. + +In this development step, searx core was prepared to accept and perform offline +searches. Offline search requests are scheduled together with regular offline +requests. + +As offline searches can return arbitrary results depending on the engine, the +current result templates were insufficient to present such results. Thus, a new +template is introduced which is caplable of presenting arbitrary key value pairs +as a table. You can check out the pull request for more details see +:pull:`1700`. + +Next steps +========== + +Today, it is possible to create/run an offline engine. However, it is going to be publicly available for everyone who knows the searx instance. So the next step is to introduce token based access for engines. This way administrators are able to limit the access to private engines. + +Acknowledgement +=============== + +This development was sponsored by `Search and Discovery Fund`_ of `NLnet Foundation`_ . + +.. _Search and Discovery Fund: https://nlnet.nl/discovery +.. _NLnet Foundation: https://nlnet.nl/ + + +| Happy hacking. +| kvch // 2019.10.21 17:03 + diff --git a/docs/blog/private-engines.rst b/docs/blog/private-engines.rst new file mode 100644 index 00000000..c26b3ed1 --- /dev/null +++ b/docs/blog/private-engines.rst @@ -0,0 +1,63 @@ +================================== +Limit access to your searx engines +================================== + +Administrators might find themselves wanting to limit access to some of the +enabled engines on their instances. It might be because they do not want to +expose some private information through an offline engine. Or they +would rather share engines only with their trusted friends or colleagues. + +Private engines +=============== + +To solve this issue private engines were introduced in :pull:`1823`. +A new option was added to engines named `tokens`. It expects a list +of strings. If the user making a request presents one of the tokens +of an engine, he/she is able to access information about the engine +and make search requests. + +Example configuration to restrict access to the Arch Linux Wiki engine: + +.. code:: yaml + + - name : arch linux wiki + engine : archlinux + shortcut : al + tokens : [ 'my-secret-token' ] + + +Unless a user has configured the right token, the engine is going +to be hidden from him/her. It is not going to be included in the +list of engines on the Preferences page and in the output of +`/config` REST API call. + +Tokens can be added to one's configuration on the Preferences page +under "Engine tokens". The input expects a comma separated list of +strings. + +The distribution of the tokens from the administrator to the users +is not carved in stone. As providing access to such engines +implies that the admin knows and trusts the user, we do not see +necessary to come up with a strict process. Instead, +we would like to add guidelines to the documentation of the feature. + +Next steps +========== + +Now that searx has support for both offline engines and private engines, +it is possible to add concrete engines which benefit from these features. +For example engines which search on the local host running the instance. +Be it searching your file system or querying a private database. Be creative +and come up with new solutions which fit your use case. + +Acknowledgement +=============== + +This development was sponsored by `Search and Discovery Fund`_ of `NLnet Foundation`_ . + +.. _Search and Discovery Fund: https://nlnet.nl/discovery +.. _NLnet Foundation: https://nlnet.nl/ + + +| Happy hacking. +| kvch // 2020.02.28 22:26 diff --git a/docs/blog/python3.rst b/docs/blog/python3.rst new file mode 100644 index 00000000..5bb7f1c8 --- /dev/null +++ b/docs/blog/python3.rst @@ -0,0 +1,68 @@ +============================ +Introducing Python 3 support +============================ + +.. _Python 2.7 clock: https://pythonclock.org/ + +.. sidebar:: Python 2.7 to 3 upgrade + + This chapter exists of historical reasons. Python 2.7 release schedule ends + (`Python 2.7 clock`_) after 11 years Python 3 exists + +As most operation systems are coming with Python3 installed by default. So it is +time for searx to support Python3. But don't worry support of Python2.7 won't be +dropped. + +.. image:: searxpy3.png + :scale: 50 % + :alt: hurray + :align: center + + +How to run searx using Python 3 +=============================== + +Please make sure that you run at least Python 3.5. + +To run searx, first a Python3 virtualenv should be created. After entering the +virtualenv, dependencies must be installed. Then run searx with python3 instead +of the usual python command. + +.. code:: sh + + virtualenv -p python3 venv3 + source venv3/bin/activate + pip3 install -r requirements.txt + python3 searx/webapp.py + + +If you want to run searx using Python2.7, you don't have to do anything +differently as before. + +Fun facts +========= + +- 115 files were changed when implementing the support for both Python versions. + +- All of the dependencies was compatible except for the robotframework used for + browser tests. Thus, these tests were migrated to splinter. So from now on + both versions are being tested on Travis and can be tested locally. + +If you found bugs +================= + +Please open an issue on `GitHub`_. Make sure that you mention your Python +version in your issue, so we can investigate it properly. + +.. _GitHub: https://github.com/asciimoo/searx/issues + +Acknowledgment +============== + +This development was sponsored by `NLnet Foundation`_. + +.. _NLnet Foundation: https://nlnet.nl/ + + +| Happy hacking. +| kvch // 2017.05.13 22:57 diff --git a/docs/blog/searx-admin-engines.png b/docs/blog/searx-admin-engines.png new file mode 100644 index 00000000..610bacdf Binary files /dev/null and b/docs/blog/searx-admin-engines.png differ diff --git a/docs/blog/searxpy3.png b/docs/blog/searxpy3.png new file mode 100644 index 00000000..8eeaeec5 Binary files /dev/null and b/docs/blog/searxpy3.png differ diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..03e977ab --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- + +import sys, os +from searx.version import VERSION_STRING +from pallets_sphinx_themes import ProjectLink + +from searx.brand import GIT_URL +from searx.brand import SEARX_URL +from searx.brand import DOCS_URL + +# Project -------------------------------------------------------------- + +project = u'searx' +copyright = u'2015-2020, Adam Tauber, Noémi Ványi' +author = u'Adam Tauber' +release, version = VERSION_STRING, VERSION_STRING +highlight_language = 'none' + +# General -------------------------------------------------------------- + +master_doc = "index" +source_suffix = '.rst' +numfig = True + +from searx import webapp +jinja_contexts = { + 'webapp': dict(**webapp.__dict__) +} + +# usage:: lorem :patch:`f373169` ipsum +extlinks = {} + +# upstream links +extlinks['wiki'] = ('https://github.com/asciimoo/searx/wiki/%s', ' ') +extlinks['pull'] = ('https://github.com/asciimoo/searx/pull/%s', 'PR ') + +# links to custom brand +extlinks['origin'] = (GIT_URL + '/blob/master/%s', 'git://') +extlinks['patch'] = (GIT_URL + '/commit/%s', '#') +extlinks['search'] = (SEARX_URL + '/%s', '#') +extlinks['docs'] = (DOCS_URL + '/%s', 'docs: ') +extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: ') +extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '') +#extlinks['role'] = ( +# 'https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-%s', '') +extlinks['duref'] = ( + 'http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#%s', '') +extlinks['durole'] = ( + 'http://docutils.sourceforge.net/docs/ref/rst/roles.html#%s', '') +extlinks['dudir'] = ( + 'http://docutils.sourceforge.net/docs/ref/rst/directives.html#%s', '') +extlinks['ctan'] = ( + 'https://ctan.org/pkg/%s', 'CTAN: ') + +extensions = [ + 'sphinx.ext.imgmath', + 'sphinx.ext.extlinks', + 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.intersphinx", + "pallets_sphinx_themes", + "sphinx_issues", # https://github.com/sloria/sphinx-issues/blob/master/README.rst + "sphinxcontrib.jinja", # https://github.com/tardyp/sphinx-jinja + 'linuxdoc.rstFlatTable', # Implementation of the 'flat-table' reST-directive. + 'linuxdoc.kfigure', # Sphinx extension which implements scalable image handling. + "sphinx_tabs.tabs", # https://github.com/djungelorm/sphinx-tabs +] + +intersphinx_mapping = { + "python": ("https://docs.python.org/3/", None), + "flask": ("https://flask.palletsprojects.com/", None), + # "werkzeug": ("https://werkzeug.palletsprojects.com/", None), + "jinja": ("https://jinja.palletsprojects.com/", None), + "linuxdoc" : ("https://return42.github.io/linuxdoc/", None), + "sphinx" : ("https://www.sphinx-doc.org/en/master/", None), +} + +issues_github_path = "asciimoo/searx" + +# HTML ----------------------------------------------------------------- + +sys.path.append(os.path.abspath('_themes')) +html_theme_path = ['_themes'] +html_theme = "searx" + +# sphinx.ext.imgmath setup +html_math_renderer = 'imgmath' +imgmath_image_format = 'svg' +imgmath_font_size = 14 +# sphinx.ext.imgmath setup END + +html_theme_options = {"index_sidebar_logo": True} +html_context = { + "project_links": [ + ProjectLink("Source", GIT_URL), + ProjectLink("Wiki", "https://github.com/asciimoo/searx/wiki"), + ProjectLink("Public instances", "https://searx.space/"), + ProjectLink("Twitter", "https://twitter.com/Searx_engine"), + ] +} +html_sidebars = { + "**": ["project.html", "relations.html", "searchbox.html"], +} +singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]} +html_static_path = ["static"] +html_logo = "static/img/searx_logo_small.png" +html_title = "Searx Documentation ({})".format("Searx-{}.tex".format(VERSION_STRING)) +html_show_sourcelink = False + +# LaTeX ---------------------------------------------------------------- + +latex_documents = [ + (master_doc, "searx-{}.tex".format(VERSION_STRING), html_title, author, "manual") +] diff --git a/docs/dev/contribution_guide.rst b/docs/dev/contribution_guide.rst new file mode 100644 index 00000000..459dfb44 --- /dev/null +++ b/docs/dev/contribution_guide.rst @@ -0,0 +1,180 @@ +.. _how to contribute: + +================= +How to contribute +================= + +Prime directives: Privacy, Hackability +====================================== + +Searx has two prime directives, **privacy-by-design and hackability** . The +hackability comes in three levels: + +- support of search engines +- plugins to alter search behaviour +- hacking searx itself + +Note the lack of "world domination" among the directives. Searx has no +intention of wide mass-adoption, rounded corners, etc. The prime directive +"privacy" deserves a separate chapter, as it's quite uncommon unfortunately. + +Privacy-by-design +----------------- + +Searx was born out of the need for a **privacy-respecting** search tool which +can be extended easily to maximize both, its search and its privacy protecting +capabilities. + +A few widely used features work differently or turned off by default or not +implemented at all **as a consequence of privacy-by-design**. + +If a feature reduces the privacy preserving aspects of searx, it should be +switched off by default or should not implemented at all. There are plenty of +search engines already providing such features. If a feature reduces the +protection of searx, users must be informed about the effect of choosing to +enable it. Features that protect privacy but differ from the expectations of +the user should also be explained. + +Also, if you think that something works weird with searx, it's might be because +of the tool you use is designed in a way to interfere with the privacy respect. +Submitting a bugreport to the vendor of the tool that misbehaves might be a good +feedback to reconsider the disrespect to its customers (e.g. ``GET`` vs ``POST`` +requests in various browsers). + +Remember the other prime directive of searx is to be hackable, so if the above +privacy concerns do not fancy you, simply fork it. + + *Happy hacking.* + +Code +==== + +.. _PEP8: https://www.python.org/dev/peps/pep-0008/ +.. _Conventional Commits: https://www.conventionalcommits.org/ +.. _Git Commit Good Practice: https://wiki.openstack.org/wiki/GitCommitMessages +.. _Structural split of changes: + https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes +.. _gitmoji: https://gitmoji.carloscuesta.me/ +.. _Semantic PR: https://github.com/zeke/semantic-pull-requests + +.. sidebar:: Create good commits! + + - `Structural split of changes`_ + - `Conventional Commits`_ + - `Git Commit Good Practice`_ + - some like to use: gitmoji_ + - not yet active: `Semantic PR`_ + +In order to submit a patch, please follow the steps below: + +- Follow coding conventions. + + - PEP8_ standards apply, except the convention of line length + - Maximum line length is 120 characters + +- The cardinal rule for creating good commits is to ensure there is only one + *logical change* per commit / read `Structural split of changes`_ + +- Check if your code breaks existing tests. If so, update the tests or fix your + code. + +- If your code can be unit-tested, add unit tests. + +- Add yourself to the :origin:`AUTHORS.rst` file. + +- Choose meaning full commit messages, read `Conventional Commits`_ + + .. code:: + + [optional scope]: + + [optional body] + + [optional footer(s)] + +- Create a pull request. + +For more help on getting started with searx development, see :ref:`devquickstart`. + + +Translation +=========== + +Translation currently takes place on :ref:`transifex `. + +.. caution:: + + Please, do not update translation files in the repo. + + +.. _contrib docs: + +Documentation +============= + +.. _Sphinx: http://www.sphinx-doc.org +.. _reST: http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html + +.. sidebar:: The reST sources + + has been moved from ``gh-branch`` into ``master`` (:origin:`docs`). + +The documentation is built using Sphinx_. So in order to be able to generate +the required files, you have to install it on your system. Much easier, use +our :ref:`makefile`. + +Here is an example which makes a complete rebuild: + +.. code:: sh + + $ make docs-clean docs + ... + The HTML pages are in dist/docs. + +.. _make docs-live: + +live build +---------- + +.. sidebar:: docs-clean + + It is recommended to assert a complete rebuild before deploying (use + ``docs-clean``). + +Live build is like WYSIWYG. If you want to edit the documentation, its +recommended to use. The Makefile target ``docs-live`` builds the docs, opens +URL in your favorite browser and rebuilds every time a reST file has been +changed. + +.. code:: sh + + $ make docs-live + ... + The HTML pages are in dist/docs. + ... Serving on http://0.0.0.0:8080 + ... Start watching changes + + +.. _deploy on github.io: + +deploy on github.io +------------------- + +To deploy documentation at :docs:`github.io <.>` use Makefile target +:ref:`make gh-pages`, which will builds the documentation, clones searx into a sub +folder ``gh-pages``, cleans it, copies the doc build into and runs all the +needed git add, commit and push: + +.. code:: sh + + $ make docs-clean gh-pages + ... + SPHINX docs --> file://<...>/dist/docs + The HTML pages are in dist/docs. + ... + Cloning into 'gh-pages' ... + ... + cd gh-pages; git checkout gh-pages >/dev/null + Switched to a new branch 'gh-pages' + ... + doc available at --> https://asciimoo.github.io/searx diff --git a/docs/dev/csv_table.txt b/docs/dev/csv_table.txt new file mode 100644 index 00000000..8a145413 --- /dev/null +++ b/docs/dev/csv_table.txt @@ -0,0 +1,6 @@ +stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy +eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam +voluptua." +stub col row 1, "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", column +stub col row 1, column, column diff --git a/docs/dev/engine_overview.rst b/docs/dev/engine_overview.rst new file mode 100644 index 00000000..449c837a --- /dev/null +++ b/docs/dev/engine_overview.rst @@ -0,0 +1,267 @@ + +.. _engines-dev: + +=============== +Engine overview +=============== + +.. _metasearch-engine: https://en.wikipedia.org/wiki/Metasearch_engine + +searx is a metasearch-engine_, so it uses different search engines to provide +better results. + +Because there is no general search API which could be used for every search +engine, an adapter has to be built between searx and the external search +engines. Adapters are stored under the folder :origin:`searx/engines`. + +.. contents:: + :depth: 3 + :backlinks: entry + +general engine configuration +============================ + +It is required to tell searx the type of results the engine provides. The +arguments can be set in the engine file or in the settings file +(normally ``settings.yml``). The arguments in the settings file override +the ones in the engine file. + +It does not matter if an option is stored in the engine file or in the +settings. However, the standard way is the following: + +.. _engine file: + +engine file +----------- + +======================= =========== =========================================== +argument type information +======================= =========== =========================================== +categories list pages, in which the engine is working +paging boolean support multible pages +language_support boolean support language choosing +time_range_support boolean support search time range +offline boolean engine runs offline +======================= =========== =========================================== + +.. _engine settings: + +settings.yml +------------ + +======================= =========== =========================================== +argument type information +======================= =========== =========================================== +name string name of search-engine +engine string name of searx-engine + (filename without ``.py``) +shortcut string shortcut of search-engine +timeout string specific timeout for search-engine +======================= =========== =========================================== + + +overrides +--------- + +A few of the options have default values in the engine, but are often +overwritten by the settings. If ``None`` is assigned to an option in the engine +file, it has to be redefined in the settings, otherwise searx will not start +with that engine. + +The naming of overrides is arbitrary. But the recommended overrides are the +following: + +======================= =========== =========================================== +argument type information +======================= =========== =========================================== +base_url string base-url, can be overwritten to use same + engine on other URL +number_of_results int maximum number of results per request +language string ISO code of language and country like en_US +api_key string api-key if required by engine +======================= =========== =========================================== + +example code +------------ + +.. code:: python + + # engine dependent config + categories = ['general'] + paging = True + language_support = True + + +making a request +================ + +To perform a search an URL have to be specified. In addition to specifying an +URL, arguments can be passed to the query. + +passed arguments +---------------- + +These arguments can be used to construct the search query. Furthermore, +parameters with default value can be redefined for special purposes. + +====================== ============ ======================================================================== +argument type default-value, information +====================== ============ ======================================================================== +url string ``''`` +method string ``'GET'`` +headers set ``{}`` +data set ``{}`` +cookies set ``{}`` +verify boolean ``True`` +headers.User-Agent string a random User-Agent +category string current category, like ``'general'`` +started datetime current date-time +pageno int current pagenumber +language string specific language code like ``'en_US'``, or ``'all'`` if unspecified +====================== ============ ======================================================================== + +parsed arguments +---------------- + +The function ``def request(query, params):`` always returns the ``params`` +variable. Inside searx, the following paramters can be used to specify a search +request: + +============ =========== ========================================================= +argument type information +============ =========== ========================================================= +url string requested url +method string HTTP request method +headers set HTTP header information +data set HTTP data information (parsed if ``method != 'GET'``) +cookies set HTTP cookies +verify boolean Performing SSL-Validity check +============ =========== ========================================================= + + +example code +------------ + +.. code:: python + + # search-url + base_url = 'https://example.com/' + search_string = 'search?{query}&page={page}' + + # do search-request + def request(query, params): + search_path = search_string.format( + query=urlencode({'q': query}), + page=params['pageno']) + + params['url'] = base_url + search_path + + return params + + +returned results +================ + +Searx is able to return results of different media-types. Currently the +following media-types are supported: + +- default_ +- images_ +- videos_ +- torrent_ +- map_ + +To set another media-type as default, the parameter ``template`` must be set to +the desired type. + +default +------- + +========================= ===================================================== +result-parameter information +========================= ===================================================== +url string, url of the result +title string, title of the result +content string, general result-text +publishedDate :py:class:`datetime.datetime`, time of publish +========================= ===================================================== + +images +------ + +To use this template, the parameter: + +========================= ===================================================== +result-parameter information +========================= ===================================================== +template is set to ``images.html`` +url string, url to the result site +title string, title of the result *(partly implemented)* +content *(partly implemented)* +publishedDate :py:class:`datetime.datetime`, + time of publish *(partly implemented)* +img\_src string, url to the result image +thumbnail\_src string, url to a small-preview image +========================= ===================================================== + +videos +------ + +========================= ===================================================== +result-parameter information +========================= ===================================================== +template is set to ``videos.html`` +url string, url of the result +title string, title of the result +content *(not implemented yet)* +publishedDate :py:class:`datetime.datetime`, time of publish +thumbnail string, url to a small-preview image +========================= ===================================================== + +torrent +------- + +.. _magnetlink: https://en.wikipedia.org/wiki/Magnet_URI_scheme + +========================= ===================================================== +result-parameter information +========================= ===================================================== +template is set to ``torrent.html`` +url string, url of the result +title string, title of the result +content string, general result-text +publishedDate :py:class:`datetime.datetime`, + time of publish *(not implemented yet)* +seed int, number of seeder +leech int, number of leecher +filesize int, size of file in bytes +files int, number of files +magnetlink string, magnetlink_ of the result +torrentfile string, torrentfile of the result +========================= ===================================================== + + +map +--- + +========================= ===================================================== +result-parameter information +========================= ===================================================== +url string, url of the result +title string, title of the result +content string, general result-text +publishedDate :py:class:`datetime.datetime`, time of publish +latitude latitude of result (in decimal format) +longitude longitude of result (in decimal format) +boundingbox boundingbox of result (array of 4. values + ``[lat-min, lat-max, lon-min, lon-max]``) +geojson geojson of result (http://geojson.org) +osm.type type of osm-object (if OSM-Result) +osm.id id of osm-object (if OSM-Result) +address.name name of object +address.road street name of object +address.house_number house number of object +address.locality city, place of object +address.postcode postcode of object +address.country country of object +========================= ===================================================== diff --git a/docs/dev/hello.dot b/docs/dev/hello.dot new file mode 100644 index 00000000..504621df --- /dev/null +++ b/docs/dev/hello.dot @@ -0,0 +1,3 @@ +graph G { + Hello -- World +} diff --git a/docs/dev/index.rst b/docs/dev/index.rst new file mode 100644 index 00000000..cb913a82 --- /dev/null +++ b/docs/dev/index.rst @@ -0,0 +1,15 @@ +======================= +Developer documentation +======================= + +.. toctree:: + :maxdepth: 1 + + quickstart + contribution_guide + engine_overview + search_api + plugins + translation + makefile + reST diff --git a/docs/dev/makefile.rst b/docs/dev/makefile.rst new file mode 100644 index 00000000..f5957001 --- /dev/null +++ b/docs/dev/makefile.rst @@ -0,0 +1,221 @@ +.. _makefile: + +================ +Makefile Targets +================ + +.. _gnu-make: https://www.gnu.org/software/make/manual/make.html#Introduction + +.. sidebar:: build environment + + Before looking deeper at the targets, first read about :ref:`makefile setup` + and :ref:`make pyenv`. + +With the aim to simplify development cycles, started with :pull:`1756` a +``Makefile`` based boilerplate was added. If you are not familiar with +Makefiles, we recommend to read gnu-make_ introduction. + +The usage is simple, just type ``make {target-name}`` to *build* a target. +Calling the ``help`` target gives a first overview:: + + $ make help + test - run developer tests + docs - build documentation + docs-live - autobuild HTML documentation while editing + run - run developer instance + install - developer install (./local) + uninstall - uninstall (./local) + gh-pages - build docs & deploy on gh-pages branch + clean - drop builds and environments + ... + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: entry + + +.. _makefile setup: + +Setup +===== + +.. _git stash: https://git-scm.com/docs/git-stash + +The main setup is done in the :origin:`Makefile`:: + + export GIT_URL=https://github.com/asciimoo/searx + export SEARX_URL=https://searx.me + export DOCS_URL=https://asciimoo.github.io/searx + +.. sidebar:: fork & upstream + + Commit changes in your (local) branch, fork or whatever, but do not push them + upstream / `git stash`_ is your friend. + +:GIT_URL: Changes this, to point to your searx fork. + +:SEARX_URL: Changes this, to point to your searx instance. + +:DOCS_URL: If you host your own (branded) documentation, change this URL. + +.. _make pyenv: + +Python environment +================== + +.. sidebar:: activate environment + + ``source ./local/py3/bin/activate`` + +With Makefile we do no longer need to build up the virualenv manually (as +described in the :ref:`devquickstart` guide). Jump into your git working tree +and release a ``make pyenv``: + +.. code:: sh + + $ cd ~/searx-clone + $ make pyenv + PYENV usage: source ./local/py3/bin/activate + ... + +With target ``pyenv`` a development environment (aka virtualenv) was build up in +``./local/py3/``. To make a *developer install* of searx (:origin:`setup.py`) +into this environment, use make target ``install``: + +.. code:: sh + + $ make install + PYENV usage: source ./local/py3/bin/activate + PYENV using virtualenv from ./local/py3 + PYENV install . + +You have never to think about intermediate targets like ``pyenv`` or +``install``, the ``Makefile`` chains them as requisites. Just run your main +target. + +.. sidebar:: drop environment + + To get rid of the existing environment before re-build use :ref:`clean target + ` first. + +If you think, something goes wrong with your ./local environment or you change +the :origin:`setup.py` file (or the requirements listed in +:origin:`requirements-dev.txt` and :origin:`requirements.txt`), you have to call +:ref:`make clean`. + + +.. _make run: + +``make run`` +============ + +To get up a running a developer instance simply call ``make run``. This enables +*debug* option in :origin:`searx/settings.yml`, starts a ``./searx/webapp.py`` +instance, disables *debug* option again and opens the URL in your favorite WEB +browser (:man:`xdg-open`): + +.. code:: sh + + $ make run + PYENV usage: source ./local/py3/bin/activate + PYENV install . + ./local/py3/bin/python ./searx/webapp.py + ... + INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit) + ... + +.. _make clean: + +``make clean`` +============== + +Drop all intermediate files, all builds, but keep sources untouched. Includes +target ``pyclean`` which drops ./local environment. Before calling ``make +clean`` stop all processes using :ref:`make pyenv`. + +.. code:: sh + + $ make clean + CLEAN pyclean + CLEAN clean + +.. _make docs: + +``make docs docs-live docs-clean`` +================================== + +We describe the usage of the ``doc*`` targets in the :ref:`How to contribute / +Documentation ` section. If you want to edit the documentation +read our :ref:`make docs-live` section. If you are working in your own brand, +adjust your :ref:`Makefile setup `. + + +.. _make gh-pages: + +``make gh-pages`` +================= + +To deploy on github.io first adjust your :ref:`Makefile setup `. For any further read :ref:`deploy on github.io`. + +.. _make test: + +``make test`` +============= + +Runs a series of tests: ``test.pep8``, ``test.unit``, ``test.robot`` and does +additional :ref:`pylint checks `. You can run tests selective, +e.g.: + +.. code:: sh + + $ make test.pep8 test.unit + . ./local/py3/bin/activate; ./manage.sh pep8_check + [!] Running pep8 check + . ./local/py3/bin/activate; ./manage.sh unit_tests + [!] Running unit tests + +.. _make pylint: + +``make pylint`` +=============== + +.. _Pylint: https://www.pylint.org/ + +Before commiting its recommend to do some (more) linting. Pylint_ is known as +one of the best source-code, bug and quality checker for the Python programming +language. Pylint_ is not yet a quality gate within our searx project (like +:ref:`test.pep8 ` it is), but Pylint_ can help to improve code +quality anyway. The pylint profile we use at searx project is found in +project's root folder :origin:`.pylintrc`. + +Code quality is a ongoing process. Don't try to fix all messages from Pylint, +run Pylint and check if your changed lines are bringing up new messages. If so, +fix it. By this, code quality gets incremental better and if there comes the +day, the linting is balanced out, we might decide to add Pylint as a quality +gate. + + +``make pybuild`` +================ + +.. _PyPi: https://pypi.org/ +.. _twine: https://twine.readthedocs.io/en/latest/ + +Build Python packages in ``./dist/py``. + +.. code:: sh + + $ make pybuild + ... + BUILD pybuild + running sdist + running egg_info + ... + $ ls ./dist/py/ + searx-0.15.0-py3-none-any.whl searx-0.15.0.tar.gz + +To upload packages to PyPi_, there is also a ``upload-pypi`` target. It needs +twine_ to be installed. Since you are not the owner of :pypi:`searx` you will +never need the latter. diff --git a/docs/dev/plugins.rst b/docs/dev/plugins.rst new file mode 100644 index 00000000..2bf44f18 --- /dev/null +++ b/docs/dev/plugins.rst @@ -0,0 +1,54 @@ +.. _dev plugin: + +======= +Plugins +======= + +.. sidebar:: Further reading .. + + - :ref:`plugins generic` + +Plugins can extend or replace functionality of various components of searx. + +Example plugin +============== + +.. code:: python + + name = 'Example plugin' + description = 'This plugin extends the suggestions with the word "example"' + default_on = False # disabled by default + + js_dependencies = tuple() # optional, list of static js files + css_dependencies = tuple() # optional, list of static css files + + + # attach callback to the post search hook + # request: flask request object + # ctx: the whole local context of the post search hook + def post_search(request, ctx): + ctx['search'].suggestions.add('example') + return True + +Plugin entry points +=================== + +Entry points (hooks) define when a plugin runs. Right now only three hooks are +implemented. So feel free to implement a hook if it fits the behaviour of your +plugin. + +Pre search hook +--------------- + +Runs BEFORE the search request. Function to implement: ``pre_search`` + +Post search hook +---------------- + +Runs AFTER the search request. Function to implement: ``post_search`` + +Result hook +----------- + +Runs when a new result is added to the result list. Function to implement: +``on_result`` diff --git a/docs/dev/quickstart.rst b/docs/dev/quickstart.rst new file mode 100644 index 00000000..a786eda6 --- /dev/null +++ b/docs/dev/quickstart.rst @@ -0,0 +1,132 @@ +.. _devquickstart: + +====================== +Development Quickstart +====================== + +.. sidebar:: :ref:`makefile` + + For additional developer purpose there are :ref:`makefile`. + +This quickstart guide gets your environment set up with searx. Furthermore, it +gives a short introduction to the ``manage.sh`` script. + +How to setup your development environment +========================================= + +.. sidebar:: :ref:`make pyenv ` + + Alternatively use the :ref:`make pyenv`. + +First, clone the source code of searx to the desired folder. In this case the +source is cloned to ``~/myprojects/searx``. Then create and activate the +searx-ve virtualenv and install the required packages using ``manage.sh``. + +.. code:: sh + + cd ~/myprojects + git clone https://github.com/asciimoo/searx.git + cd searx + virtualenv searx-ve + . ./searx-ve/bin/activate + ./manage.sh update_dev_packages + + +How to run tests +================ + +.. sidebar:: :ref:`make test.unit ` + + Alternatively use the ``test.pep8``, ``test.unit``, ``test.robot`` targets. + +Tests can be run using the ``manage.sh`` script. Following tests and checks are +available: + +- Unit tests +- Selenium tests +- PEP8 validation +- Unit test coverage check + +For example unit tests are run with the command below: + +.. code:: sh + + ./manage.sh unit_tests + +For further test options, please consult the help of the ``manage.sh`` script or +read :ref:`make test`. + + +How to compile styles and javascript +==================================== + +.. _less: http://lesscss.org/ +.. _NodeJS: https://nodejs.org + +How to build styles +------------------- + +Less_ is required to build the styles of searx. Less_ can be installed using +either NodeJS_ or Apt. + +.. code:: sh + + sudo -H apt-get install nodejs + sudo -H npm install -g less + +OR + +.. code:: sh + + sudo -H apt-get install node-less + +After satisfying the requirements styles can be build using ``manage.sh`` + +.. code:: sh + + ./manage.sh styles + + +How to build the source of the themes +===================================== + +.. _grunt: https://gruntjs.com/ + +Grunt_ must be installed in order to build the javascript sources. It depends on +NodeJS, so first Node has to be installed. + +.. code:: sh + + sudo -H apt-get install nodejs + make node.env + +After installing grunt, the files can be built using the following command: + +.. code:: sh + + make themes + + +Tips for debugging/development +============================== + +.. sidebar:: :ref:`make run` + + Makefile target ``run`` already enables debug option for your developer + session / see :ref:`make run`. + +Turn on debug logging + Whether you are working on a new engine or trying to eliminate a bug, it is + always a good idea to turn on debug logging. When debug logging is enabled a + stack trace appears, instead of the cryptic ``Internal Server Error`` + message. It can be turned on by setting ``debug: False`` to ``debug: True`` in + :origin:`settings.yml `. + +.. sidebar:: :ref:`make test` + + Alternatively use the :ref:`make test` targets. + +Run ``./manage.sh tests`` before creating a PR. + Failing build on Travis is common because of PEP8 checks. So a new commit + must be created containing these format fixes. This phase can be skipped if + ``./manage.sh tests`` is run locally before creating a PR. diff --git a/docs/dev/reST.rst b/docs/dev/reST.rst new file mode 100644 index 00000000..4835cbbc --- /dev/null +++ b/docs/dev/reST.rst @@ -0,0 +1,1428 @@ +.. _reST primer: + +=========== +reST primer +=========== + +.. sidebar:: KISS_ and readability_ + + Instead of defining more and more roles, we at searx encourage our + contributors to follow principles like KISS_ and readability_. + +We at searx are using reStructuredText (aka reST_) markup for all kind of +documentation, with the builders from the Sphinx_ project a HTML output is +generated and deployed at :docs:`github.io <.>`. For build prerequisites read +:ref:`docs build`. + +The source files of Searx's documentation are located at :origin:`docs`. Sphinx +assumes source files to be encoded in UTF-8 by defaul. Run :ref:`make docs-live +` to build HTML while editing. + +.. sidebar:: Further reading + + - Sphinx-Primer_ + - `Sphinx markup constructs`_ + - reST_, docutils_, `docutils FAQ`_ + - Sphinx_, `sphinx-doc FAQ`_ + - `sphinx config`_, doctree_ + - `sphinx cross references`_ + - linuxdoc_ + - intersphinx_ + - sphinx-jinja_ + - `Sphinx's autodoc`_ + - `Sphinx's Python domain`_, `Sphinx's C domain`_ + - SVG_, ImageMagick_ + - DOT_, `Graphviz's dot`_, Graphviz_ + + +.. contents:: Contents + :depth: 3 + :local: + :backlinks: entry + +Sphinx_ and reST_ have their place in the python ecosystem. Over that reST is +used in popular projects, e.g the Linux kernel documentation `[kernel doc]`_. + +.. _[kernel doc]: https://www.kernel.org/doc/html/latest/doc-guide/sphinx.html + +.. sidebar:: Content matters + + The readability_ of the reST sources has its value, therefore we recommend to + make sparse usage of reST markup / .. content matters! + +**reST** is a plaintext markup language, its markup is *mostly* intuitive and +you will not need to learn much to produce well formed articles with. I use the +word *mostly*: like everything in live, reST has its advantages and +disadvantages, some markups feel a bit grumpy (especially if you are used to +other plaintext markups). + +Soft skills +=========== + +Before going any deeper into the markup let's face on some **soft skills** a +trained author brings with, to reach a well feedback from readers: + +- Documentation is dedicated to an audience and answers questions from the + audience point of view. +- Don't detail things which are general knowledge from the audience point of + view. +- Limit the subject, use cross links for any further reading. + +To be more concrete what a *point of view* means. In the (:origin:`docs`) +folder we have three sections (and the *blog* folder), each dedicate to a +different group of audience. + +User's POV: :origin:`docs/user` + A typical user knows about search engines and might have heard about + meta crawlers and privacy. + +Admin's POV: :origin:`docs/admin` + A typical Admin knows about setting up services on a linux system, but he does + not know all the pros and cons of a searx setup. + +Developer's POV: :origin:`docs/dev` + Depending on the readability_ of code, a typical developer is able to read and + understand source code. Describe what a item aims to do (e.g. a function). + If the chronological order matters, describe it. Name the *out-of-limits + conditions* and all the side effects a external developer will not know. + +.. _reST inline markup: + +Basic inline markup +=================== + +.. sidebar:: Inline markup + + - :ref:`reST roles` + - :ref:`reST smart ref` + +Basic inline markup is done with asterisks and backquotes. If asterisks or +backquotes appear in running text and could be confused with inline markup +delimiters, they have to be escaped with a backslash (``\*pointer``). + +.. table:: basic inline markup + :widths: 4 3 7 + + ================================================ ==================== ======================== + description rendered markup + ================================================ ==================== ======================== + one asterisk for emphasis *italics* ``*italics*`` + two asterisks for strong emphasis **boldface** ``**boldface**`` + backquotes for code samples and literals ``foo()`` ````foo()```` + quote asterisks or backquotes \*foo is a pointer ``\*foo is a pointer`` + ================================================ ==================== ======================== + +.. _reST basic structure: + +Basic article structure +======================= + +The basic structure of an article makes use of heading adornments to markup +chapter, sections and subsections. + +.. _reST template: + +reST template +------------- + +reST template for an simple article: + +.. code:: reST + + .. _doc refname: + + ============== + Document title + ============== + + Lorem ipsum dolor sit amet, consectetur adipisici elit .. Further read + :ref:`chapter refname`. + + .. _chapter refname: + + Chapter + ======= + + Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut + aliquid ex ea commodi consequat ... + + .. _section refname: + + Section + ------- + + lorem .. + + .. _subsection refname: + + Subsection + ~~~~~~~~~~ + + lorem .. + + +Headings +-------- + +#. title - with overline for document title: + + .. code:: reST + + ============== + Document title + ============== + + +#. chapter - with anchor named ``anchor name``: + + .. code:: reST + + .. _anchor name: + + Chapter + ======= + +#. section + + .. code:: reST + + Section + ------- + +#. subsection + + .. code:: reST + + Subsection + ~~~~~~~~~~ + + + +Anchors & Links +=============== + +.. _reST anchor: + +Anchors +------- + +.. _ref role: + https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref + +To refer a point in the documentation a anchor is needed. The :ref:`reST +template ` shows an example where a chapter titled *"Chapters"* +gets an anchor named ``chapter title``. Another example from *this* document, +where the anchor named ``reST anchor``: + +.. code:: reST + + .. _reST anchor: + + Anchors + ------- + + To refer a point in the documentation a anchor is needed ... + +To refer anchors use the `ref role`_ markup: + +.. code:: reST + + Visit chapter :ref:`reST anchor`. Or set hyperlink text manualy :ref:`foo + bar `. + +.. admonition:: ``:ref:`` role + :class: rst-example + + Visist chapter :ref:`reST anchor`. Or set hyperlink text manualy :ref:`foo + bar `. + +.. _reST ordinary ref: + +Link ordinary URL +----------------- + +If you need to reference external URLs use *named* hyperlinks to maintain +readability of reST sources. Here is a example taken from *this* article: + +.. code:: reST + + .. _Sphinx Field Lists: + https://www.sphinx-doc.org/en/master/usage/restructuredtext/field-lists.html + + With the *named* hyperlink `Sphinx Field Lists`_, the raw text is much more + readable. + + And this shows the alternative (less readable) hyperlink markup `Sphinx Field + Lists + `__. + +.. admonition:: Named hyperlink + :class: rst-example + + With the *named* hyperlink `Sphinx Field Lists`_, the raw text is much more + readable. + + And this shows the alternative (less readable) hyperlink markup `Sphinx Field + Lists + `__. + + +.. _reST smart ref: + +Smart refs +---------- + +With the power of sphinx.ext.extlinks_ and intersphinx_ referencing external +content becomes smart. + +.. table:: smart refs with sphinx.ext.extlinks_ and intersphinx_ + :widths: 4 3 7 + + ========================== ================================== ==================================== + refer ... rendered example markup + ========================== ================================== ==================================== + :rst:role:`rfc` :rfc:`822` ``:rfc:`822``` + :rst:role:`pep` :pep:`8` ``:pep:`8``` + sphinx.ext.extlinks_ + -------------------------------------------------------------------------------------------------- + project's wiki article :wiki:`Offline-engines` ``:wiki:`Offline-engines``` + to docs public URL :docs:`dev/reST.html` ``:docs:`dev/reST.html``` + files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst``` + pull request :pull:`1756` ``:pull:`1756``` + patch :patch:`af2cae6` ``:patch:`af2cae6``` + PyPi package :pypi:`searx` ``:pypi:`searx``` + manual page man :man:`bash` ``:man:`bash``` + intersphinx_ + -------------------------------------------------------------------------------------------------- + external anchor :ref:`python:and` ``:ref:`python:and``` + external doc anchor :doc:`jinja:templates` ``:doc:`jinja:templates``` + python code object :py:obj:`datetime.datetime` ``:py:obj:`datetime.datetime``` + flask code object :py:obj:`flask.Flask` ``:py:obj:`flask.Flask``` + ========================== ================================== ==================================== + + +Intersphinx is configured in :origin:`docs/conf.py`: + +.. code:: python + + intersphinx_mapping = { + "python": ("https://docs.python.org/3/", None), + "flask": ("https://flask.palletsprojects.com/", None), + "jinja": ("https://jinja.palletsprojects.com/", None), + "linuxdoc" : ("https://return42.github.io/linuxdoc/", None), + "sphinx" : ("https://www.sphinx-doc.org/en/master/", None), + } + + +To list all anchors of the inventory (e.g. ``python``) use: + +.. code:: sh + + $ python -m sphinx.ext.intersphinx https://docs.python.org/3/objects.inv + +Literal blocks +============== + +The simplest form of :duref:`literal-blocks` is a indented block introduced by +two colons (``::``). For highlighting use :dudir:`highlight` or :ref:`reST +code` directive. To include literals from external files use directive +:dudir:`literalinclude`. + +.. _reST literal: + +``::`` +------ + +.. code:: reST + + :: + + Literal block + + Lorem ipsum dolor:: + + Literal block + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore :: + + Literal block + +.. admonition:: Literal block + :class: rst-example + + :: + + Literal block + + Lorem ipsum dolor:: + + Literal block + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore :: + + Literal block + + +.. _reST code: + +``code-block`` +-------------- + +.. _pygments: https://pygments.org/languages/ + +.. sidebar:: Syntax highlighting + + is handled by pygments_. + +The :rst:dir:`code-block` directive is a variant of the :dudir:`code` directive +with additional options. To learn more about code literals visit +:ref:`sphinx:code-examples`. + +.. code-block:: reST + + The URL ``/stats`` handle is shown in :ref:`stats-handle` + + .. code-block:: Python + :caption: python code block + :name: stats-handle + + @app.route('/stats', methods=['GET']) + def stats(): + """Render engine statistics page.""" + stats = get_engines_stats() + return render( + 'stats.html' + , stats = stats ) + +.. code-block:: reST + +.. admonition:: Code block + :class: rst-example + + The URL ``/stats`` handle is shown in :ref:`stats-handle` + + .. code-block:: Python + :caption: python code block + :name: stats-handle + + @app.route('/stats', methods=['GET']) + def stats(): + """Render engine statistics page.""" + stats = get_engines_stats() + return render( + 'stats.html' + , stats = stats ) + +Unicode substitution +==================== + +The :dudir:`unicode directive ` converts Unicode +character codes (numerical values) to characters. This directive can only be +used within a substitution definition. + +.. code-block:: reST + + .. |copy| unicode:: 0xA9 .. copyright sign + .. |(TM)| unicode:: U+2122 + + Trademark |(TM)| and copyright |copy| glyphs. + +.. admonition:: Unicode + :class: rst-example + + .. |copy| unicode:: 0xA9 .. copyright sign + .. |(TM)| unicode:: U+2122 + + Trademark |(TM)| and copyright |copy| glyphs. + + +.. _reST roles: + +Roles +===== + +.. sidebar:: Further reading + + - `Sphinx Roles`_ + - :doc:`sphinx:usage/restructuredtext/domains` + + +A *custom interpreted text role* (:duref:`ref `) is an inline piece of +explicit markup. It signifies that that the enclosed text should be interpreted +in a specific way. + +The general markup is one of: + +.. code:: reST + + :rolename:`ref-name` + :rolename:`ref text ` + +.. table:: smart refs with sphinx.ext.extlinks_ and intersphinx_ + :widths: 4 3 7 + + ========================== ================================== ==================================== + role rendered example markup + ========================== ================================== ==================================== + :rst:role:`guilabel` :guilabel:`&Cancel` ``:guilabel:`&Cancel``` + :rst:role:`kbd` :kbd:`C-x C-f` ``:kbd:`C-x C-f``` + :rst:role:`menuselection` :menuselection:`Open --> File` ``:menuselection:`Open --> File``` + :rst:role:`download` :download:`this file ` ``:download:`this file ``` + math_ :math:`a^2 + b^2 = c^2` ``:math:`a^2 + b^2 = c^2``` + :rst:role:`ref` :ref:`svg image example` ``:ref:`svg image example``` + :rst:role:`command` :command:`ls -la` ``:command:`ls -la``` + :durole:`emphasis` :emphasis:`italic` ``:emphasis:`italic``` + :durole:`strong` :strong:`bold` ``:strong:`bold``` + :durole:`literal` :literal:`foo()` ``:literal:`foo()``` + :durole:`subscript` H\ :sub:`2`\ O ``H\ :sub:`2`\ O`` + :durole:`superscript` E = mc\ :sup:`2` ``E = mc\ :sup:`2``` + :durole:`title-reference` :title:`Time` ``:title:`Time``` + ========================== ================================== ==================================== + +Figures & Images +================ + +.. sidebar:: Image processing + + With the directives from :ref:`linuxdoc ` the build process + is flexible. To get best results in the generated output format, install + ImageMagick_ and Graphviz_. + +Searx's sphinx setup includes: :ref:`linuxdoc:kfigure`. Scaleable here means; +scaleable in sense of the build process. Normally in absence of a converter +tool, the build process will break. From the authors POV it’s annoying to care +about the build process when handling with images, especially since he has no +access to the build process. With :ref:`linuxdoc:kfigure` the build process +continues and scales output quality in dependence of installed image processors. + +If you want to add an image, you should use the ``kernel-figure`` (inheritance +of :dudir:`figure`) and ``kernel-image`` (inheritance of :dudir:`image`) +directives. E.g. to insert a figure with a scaleable image format use SVG +(:ref:`svg image example`): + +.. code:: reST + + .. _svg image example: + + .. kernel-figure:: svg_image.svg + :alt: SVG image example + + Simple SVG image + + To refer the figure, a caption block is needed: :ref:`svg image example`. + +.. _svg image example: + +.. kernel-figure:: svg_image.svg + :alt: SVG image example + + Simple SVG image. + +To refer the figure, a caption block is needed: :ref:`svg image example`. + +DOT files (aka Graphviz) +------------------------ + +With :ref:`linuxdoc:kernel-figure` reST support for **DOT** formatted files is +given. + +- `Graphviz's dot`_ +- DOT_ +- Graphviz_ + +A simple example is shown in :ref:`dot file example`: + +.. code:: reST + + .. _dot file example: + + .. kernel-figure:: hello.dot + :alt: hello world + + DOT's hello world example + +.. admonition:: hello.dot + :class: rst-example + + .. _dot file example: + + .. kernel-figure:: hello.dot + :alt: hello world + + DOT's hello world example + +``kernel-render`` DOT +--------------------- + +Embed *render* markups (or languages) like Graphviz's **DOT** is provided by the +:ref:`linuxdoc:kernel-render` directive. A simple example of embedded DOT_ is +shown in figure :ref:`dot render example`: + +.. code:: reST + + .. _dot render example: + + .. kernel-render:: DOT + :alt: digraph + :caption: Embedded DOT (Graphviz) code + + digraph foo { + "bar" -> "baz"; + } + + Attribute ``caption`` is needed, if you want to refer the figure: :ref:`dot + render example`. + +Please note :ref:`build tools `. If Graphviz_ is +installed, you will see an vector image. If not, the raw markup is inserted as +*literal-block*. + +.. admonition:: kernel-render DOT + :class: rst-example + + .. _dot render example: + + .. kernel-render:: DOT + :alt: digraph + :caption: Embedded DOT (Graphviz) code + + digraph foo { + "bar" -> "baz"; + } + + Attribute ``caption`` is needed, if you want to refer the figure: :ref:`dot + render example`. + +``kernel-render`` SVG +--------------------- + +A simple example of embedded SVG_ is shown in figure :ref:`svg render example`: + +.. code:: reST + + .. _svg render example: + + .. kernel-render:: SVG + :caption: Embedded **SVG** markup + :alt: so-nw-arrow +.. + + .. code:: xml + + + + + + + +.. admonition:: kernel-render SVG + :class: rst-example + + .. _svg render example: + + .. kernel-render:: SVG + :caption: Embedded **SVG** markup + :alt: so-nw-arrow + + + + + + + + + + +.. _reST lists: + +List markups +============ + +Bullet list +----------- + +List markup (:duref:`ref `) is simple: + +.. code:: reST + + - This is a bulleted list. + + 1. Nested lists are possible, but be aware that they must be separated from + the parent list items by blank line + 2. Second item of nested list + + - It has two items, the second + item uses two lines. + + #. This is a numbered list. + #. It has two items too. + +.. admonition:: bullet list + :class: rst-example + + - This is a bulleted list. + + 1. Nested lists are possible, but be aware that they must be separated from + the parent list items by blank line + 2. Second item of nested list + + - It has two items, the second + item uses two lines. + + #. This is a numbered list. + #. It has two items too. + + +Horizontal list +--------------- + +The :rst:dir:`.. hlist:: ` transforms a bullet list into a more compact +list. + +.. code:: reST + + .. hlist:: + + - first list item + - second list item + - third list item + ... + +.. admonition:: hlist + :class: rst-example + + .. hlist:: + + - first list item + - second list item + - third list item + - next list item + - next list item xxxx + - next list item yyyy + - next list item zzzz + + +Definition list +--------------- + +.. sidebar:: Note .. + + - the term cannot have more than one line of text + + - there is **no blank line between term and definition block** // this + distinguishes definition lists (:duref:`ref `) from block + quotes (:duref:`ref `). + +Each definition list (:duref:`ref `) item contains a term, +optional classifiers and a definition. A term is a simple one-line word or +phrase. Optional classifiers may follow the term on the same line, each after +an inline ' : ' (**space, colon, space**). A definition is a block indented +relative to the term, and may contain multiple paragraphs and other body +elements. There may be no blank line between a term line and a definition block +(*this distinguishes definition lists from block quotes*). Blank lines are +required before the first and after the last definition list item, but are +optional in-between. + +Definition lists are created as follows: + +.. code:: reST + + term 1 (up to a line of text) + Definition 1. + + See the typo : this line is not a term! + + And this is not term's definition. **There is a blank line** in between + the line above and this paragraph. That's why this paragraph is taken as + **block quote** (:duref:`ref `) and not as term's definition! + + term 2 + Definition 2, paragraph 1. + + Definition 2, paragraph 2. + + term 3 : classifier + Definition 3. + + term 4 : classifier one : classifier two + Definition 4. + +.. admonition:: definition list + :class: rst-example + + term 1 (up to a line of text) + Definition 1. + + See the typo : this line is not a term! + + And this is not term's definition. **There is a blank line** in between + the line above and this paragraph. That's why this paragraph is taken as + **block quote** (:duref:`ref `) and not as term's definition! + + + term 2 + Definition 2, paragraph 1. + + Definition 2, paragraph 2. + + term 3 : classifier + Definition 3. + + term 4 : classifier one : classifier two + + +Quoted paragraphs +----------------- + +Quoted paragraphs (:duref:`ref `) are created by just indenting +them more than the surrounding paragraphs. Line blocks (:duref:`ref +`) are a way of preserving line breaks: + +.. code:: reST + + normal paragraph ... + lorem ipsum. + + Quoted paragraph ... + lorem ipsum. + + | These lines are + | broken exactly like in + | the source file. + + +.. admonition:: Quoted paragraph and line block + :class: rst-example + + normal paragraph ... + lorem ipsum. + + Quoted paragraph ... + lorem ipsum. + + | These lines are + | broken exactly like in + | the source file. + + +.. _reST field list: + +Field Lists +----------- + +.. _Sphinx Field Lists: + https://www.sphinx-doc.org/en/master/usage/restructuredtext/field-lists.html + +.. sidebar:: bibliographic fields + + First lines fields are bibliographic fields, see `Sphinx Field Lists`_. + +Field lists are used as part of an extension syntax, such as options for +directives, or database-like records meant for further processing. Field lists +are mappings from field names to field bodies. They marked up like this: + +.. code:: reST + + :fieldname: Field content + :foo: first paragraph in field foo + + second paragraph in field foo + + :bar: Field content + +.. admonition:: Field List + :class: rst-example + + :fieldname: Field content + :foo: first paragraph in field foo + + second paragraph in field foo + + :bar: Field content + + +They are commonly used in Python documentation: + +.. code:: python + + def my_function(my_arg, my_other_arg): + """A function just for me. + + :param my_arg: The first of my arguments. + :param my_other_arg: The second of my arguments. + + :returns: A message (just for me, of course). + """ + +Further list blocks +------------------- + +- field lists (:duref:`ref `, with caveats noted in + :ref:`reST field list`) +- option lists (:duref:`ref `) +- quoted literal blocks (:duref:`ref `) +- doctest blocks (:duref:`ref `) + + +Admonitions +=========== + +Sidebar +------- + +Sidebar is an eye catcher, often used for admonitions pointing further stuff or +site effects. Here is the source of the sidebar :ref:`on top of this page `. + +.. code:: reST + + .. sidebar:: KISS_ and readability_ + + Instead of defining more and more roles, we at searx encourage our + contributors to follow principles like KISS_ and readability_. + +Generic admonition +------------------ + +The generic :dudir:`admonition ` needs a title: + +.. code:: reST + + .. admonition:: generic admonition title + + lorem ipsum .. + + +.. admonition:: generic admonition title + + lorem ipsum .. + + +Specific admonitions +-------------------- + +Specific admonitions: :dudir:`hint`, :dudir:`note`, :dudir:`tip` :dudir:`attention`, +:dudir:`caution`, :dudir:`danger`, :dudir:`error`, , :dudir:`important`, and +:dudir:`warning` . + +.. code:: reST + + .. hint:: + + lorem ipsum .. + + .. note:: + + lorem ipsum .. + + .. warning:: + + lorem ipsum .. + + +.. hint:: + + lorem ipsum .. + +.. note:: + + lorem ipsum .. + +.. tip:: + + lorem ipsum .. + +.. attention:: + + lorem ipsum .. + +.. caution:: + + lorem ipsum .. + +.. danger:: + + lorem ipsum .. + +.. important:: + + lorem ipsum .. + +.. error:: + + lorem ipsum .. + +.. warning:: + + lorem ipsum .. + + +Tables +====== + +.. sidebar:: Nested tables + + Nested tables are ugly! Not all builder support nested tables, don't use + them! + +ASCII-art tables like :ref:`reST simple table` and :ref:`reST grid table` might +be comfortable for readers of the text-files, but they have huge disadvantages +in the creation and modifying. First, they are hard to edit. Think about +adding a row or a column to a ASCII-art table or adding a paragraph in a cell, +it is a nightmare on big tables. + + +.. sidebar:: List tables + + For meaningful patch and diff use :ref:`reST flat table`. + +Second the diff of modifying ASCII-art tables is not meaningful, e.g. widening a +cell generates a diff in which also changes are included, which are only +ascribable to the ASCII-art. Anyway, if you prefer ASCII-art for any reason, +here are some helpers: + +* `Emacs Table Mode`_ +* `Online Tables Generator`_ + +.. _reST simple table: + +Simple tables +------------- + +:duref:`Simple tables ` allow *colspan* but not *rowspan*. If +your table need some metadata (e.g. a title) you need to add the ``.. table:: +directive`` :dudir:`(ref) ` in front and place the table in its body: + +.. code:: reST + + .. table:: foo gate truth table + :widths: grid + :align: left + + ====== ====== ====== + Inputs Output + ------------- ------ + A B A or B + ====== ====== ====== + False + -------------------- + True + -------------------- + True False True + (foo) + ------ ------ ------ + False True + (foo) + ====== ============= + +.. admonition:: Simple ASCII table + :class: rst-example + + .. table:: foo gate truth table + :widths: grid + :align: left + + ====== ====== ====== + Inputs Output + ------------- ------ + A B A or B + ====== ====== ====== + False + -------------------- + True + -------------------- + True False True + (foo) + ------ ------ ------ + False True + (foo) + ====== ============= + + + +.. _reST grid table: + +Grid tables +----------- + +:duref:`Grid tables ` allow colspan *colspan* and *rowspan*: + +.. code:: reST + + .. table:: grid table example + :widths: 1 1 5 + + +------------+------------+-----------+ + | Header 1 | Header 2 | Header 3 | + +============+============+===========+ + | body row 1 | column 2 | column 3 | + +------------+------------+-----------+ + | body row 2 | Cells may span columns.| + +------------+------------+-----------+ + | body row 3 | Cells may | - Cells | + +------------+ span rows. | - contain | + | body row 4 | | - blocks. | + +------------+------------+-----------+ + +.. admonition:: ASCII grid table + :class: rst-example + + .. table:: grid table example + :widths: 1 1 5 + + +------------+------------+-----------+ + | Header 1 | Header 2 | Header 3 | + +============+============+===========+ + | body row 1 | column 2 | column 3 | + +------------+------------+-----------+ + | body row 2 | Cells may span columns.| + +------------+------------+-----------+ + | body row 3 | Cells may | - Cells | + +------------+ span rows. | - contain | + | body row 4 | | - blocks. | + +------------+------------+-----------+ + + +.. _reST flat table: + +flat-table +---------- + +The ``flat-table`` is a further developed variant of the :ref:`list tables +`. It is a double-stage list similar to the +:dudir:`list-table` with some additional features: + +column-span: ``cspan`` + with the role ``cspan`` a cell can be extended through additional columns + +row-span: ``rspan`` + with the role ``rspan`` a cell can be extended through additional rows + +auto-span: + spans rightmost cell of a table row over the missing cells on the right side + of that table-row. With Option ``:fill-cells:`` this behavior can changed + from *auto span* to *auto fill*, which automatically inserts (empty) cells + instead of spanning the last cell. + +options: + :header-rows: [int] count of header rows + :stub-columns: [int] count of stub columns + :widths: [[int] [int] ... ] widths of columns + :fill-cells: instead of auto-span missing cells, insert missing cells + +roles: + :cspan: [int] additional columns (*morecols*) + :rspan: [int] additional rows (*morerows*) + +The example below shows how to use this markup. The first level of the staged +list is the *table-row*. In the *table-row* there is only one markup allowed, +the list of the cells in this *table-row*. Exception are *comments* ( ``..`` ) +and *targets* (e.g. a ref to :ref:`row 2 of table's body `). + +.. code:: reST + + .. flat-table:: ``flat-table`` example + :header-rows: 2 + :stub-columns: 1 + :widths: 1 1 1 1 2 + + * - :rspan:`1` head / stub + - :cspan:`3` head 1.1-4 + + * - head 2.1 + - head 2.2 + - head 2.3 + - head 2.4 + + * .. row body 1 / this is a comment + + - row 1 + - :rspan:`2` cell 1-3.1 + - cell 1.2 + - cell 1.3 + - cell 1.4 + + * .. Comments and targets are allowed on *table-row* stage. + .. _`row body 2`: + + - row 2 + - cell 2.2 + - :rspan:`1` :cspan:`1` + cell 2.3 with a span over + + * col 3-4 & + * row 2-3 + + * - row 3 + - cell 3.2 + + * - row 4 + - cell 4.1 + - cell 4.2 + - cell 4.3 + - cell 4.4 + + * - row 5 + - cell 5.1 with automatic span to rigth end + + * - row 6 + - cell 6.1 + - .. + + +.. admonition:: List table + :class: rst-example + + .. flat-table:: ``flat-table`` example + :header-rows: 2 + :stub-columns: 1 + :widths: 1 1 1 1 2 + + * - :rspan:`1` head / stub + - :cspan:`3` head 1.1-4 + + * - head 2.1 + - head 2.2 + - head 2.3 + - head 2.4 + + * .. row body 1 / this is a comment + + - row 1 + - :rspan:`2` cell 1-3.1 + - cell 1.2 + - cell 1.3 + - cell 1.4 + + * .. Comments and targets are allowed on *table-row* stage. + .. _`row body 2`: + + - row 2 + - cell 2.2 + - :rspan:`1` :cspan:`1` + cell 2.3 with a span over + + * col 3-4 & + * row 2-3 + + * - row 3 + - cell 3.2 + + * - row 4 + - cell 4.1 + - cell 4.2 + - cell 4.3 + - cell 4.4 + + * - row 5 + - cell 5.1 with automatic span to rigth end + + * - row 6 + - cell 6.1 + - .. + + +CSV table +--------- + +CSV table might be the choice if you want to include CSV-data from a outstanding +(build) process into your documentation. + +.. code:: reST + + .. csv-table:: CSV table example + :header: .. , Column 1, Column 2 + :widths: 2 5 5 + :stub-columns: 1 + :file: csv_table.txt + +Content of file ``csv_table.txt``: + +.. literalinclude:: csv_table.txt + +.. admonition:: CSV table + :class: rst-example + + .. csv-table:: CSV table example + :header: .. , Column 1, Column 2 + :widths: 3 5 5 + :stub-columns: 1 + :file: csv_table.txt + +Templating +========== + +.. sidebar:: Build environment + + All *generic-doc* tasks are running in the :ref:`build environment `. + +Templating is suitable for documentation which is created generic at the build +time. The sphinx-jinja_ extension evaluates jinja_ templates in the :ref:`build +environment ` (with searx modules installed). We use this e.g. to +build chapter: :ref:`engines generic`. Below the jinja directive from the +:origin:`docs/admin/engines.rst` is shown: + +.. literalinclude:: ../admin/engines.rst + :language: reST + :start-after: .. _configured engines: + +The context for the template is selected in the line ``.. jinja:: webapp``. In +sphinx's build configuration (:origin:`docs/conf.py`) the ``webapp`` context +points to the name space of the python module: ``webapp``. + +.. code:: py + + from searx import webapp + jinja_contexts = { + 'webapp': dict(**webapp.__dict__) + } + + +Tabbed views +============ + +.. _sphinx-tabs: https://github.com/djungelorm/sphinx-tabs +.. _basic-tabs: https://github.com/djungelorm/sphinx-tabs#basic-tabs +.. _group-tabs: https://github.com/djungelorm/sphinx-tabs#group-tabs +.. _code-tabs: https://github.com/djungelorm/sphinx-tabs#code-tabs + +With `sphinx-tabs`_ extension we have *tabbed views*. To provide installation +instructions with one tab per distribution we use the `group-tabs`_ directive, +others are basic-tabs_ and code-tabs_. Below a *group-tab* example from +:ref:`docs build` is shown: + +.. literalinclude:: ../admin/buildhosts.rst + :language: reST + :start-after: .. _system requirements: + :end-before: .. _system requirements END: + + +.. _math: + +Math equations +============== + +.. _Mathematics: https://en.wikibooks.org/wiki/LaTeX/Mathematics +.. _amsmath user guide: + http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/macros/latex/required/amsmath/amsldoc.pdf + +.. sidebar:: About LaTeX + + - `amsmath user guide`_ + - Mathematics_ + - :ref:`docs build` + +The input language for mathematics is LaTeX markup using the :ctan:`amsmath` +package. + +To embed LaTeX markup in reST documents, use role :rst:role:`:math: ` for +inline and directive :rst:dir:`.. math:: ` for block markup. + +.. code:: reST + + In :math:numref:`schroedinger general` the time-dependent Schrödinger equation + is shown. + + .. math:: + :label: schroedinger general + + \mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle = + \hat{H} |\,\psi (t) \rangle. + +.. admonition:: LaTeX math equation + :class: rst-example + + In :math:numref:`schroedinger general` the time-dependent Schrödinger equation + is shown. + + .. math:: + :label: schroedinger general + + \mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle = + \hat{H} |\,\psi (t) \rangle. + + +The next example shows the difference of ``\tfrac`` (*textstyle*) and ``\dfrac`` +(*displaystyle*) used in a inline markup or another fraction. + +.. code:: reST + + ``\tfrac`` **inline example** :math:`\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}` + ``\dfrac`` **inline example** :math:`\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}` + +.. admonition:: Line spacing + :class: rst-example + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam + voluptua. ... + ``\tfrac`` **inline example** :math:`\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}` + At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd + gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam + voluptua. ... + ``\tfrac`` **inline example** :math:`\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}` + At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd + gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + + +.. _KISS: https://en.wikipedia.org/wiki/KISS_principle + +.. _readability: https://docs.python-guide.org/writing/style/ +.. _Sphinx-Primer: + http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html +.. _reST: https://docutils.sourceforge.io/rst.html +.. _Sphinx Roles: + https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html +.. _Sphinx: http://www.sphinx-doc.org +.. _`sphinx-doc FAQ`: http://www.sphinx-doc.org/en/stable/faq.html +.. _Sphinx markup constructs: + http://www.sphinx-doc.org/en/stable/markup/index.html +.. _`sphinx cross references`: + http://www.sphinx-doc.org/en/stable/markup/inline.html#cross-referencing-arbitrary-locations +.. _sphinx.ext.extlinks: + https://www.sphinx-doc.org/en/master/usage/extensions/extlinks.html +.. _intersphinx: http://www.sphinx-doc.org/en/stable/ext/intersphinx.html +.. _sphinx config: http://www.sphinx-doc.org/en/stable/config.html +.. _Sphinx's autodoc: http://www.sphinx-doc.org/en/stable/ext/autodoc.html +.. _Sphinx's Python domain: + http://www.sphinx-doc.org/en/stable/domains.html#the-python-domain +.. _Sphinx's C domain: + http://www.sphinx-doc.org/en/stable/domains.html#cross-referencing-c-constructs +.. _doctree: + http://www.sphinx-doc.org/en/master/extdev/tutorial.html?highlight=doctree#build-phases +.. _docutils: http://docutils.sourceforge.net/docs/index.html +.. _docutils FAQ: http://docutils.sourceforge.net/FAQ.html +.. _linuxdoc: https://return42.github.io/linuxdoc +.. _jinja: https://jinja.palletsprojects.com/ +.. _sphinx-jinja: https://github.com/tardyp/sphinx-jinja +.. _SVG: https://www.w3.org/TR/SVG11/expanded-toc.html +.. _DOT: https://graphviz.gitlab.io/_pages/doc/info/lang.html +.. _`Graphviz's dot`: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf +.. _Graphviz: https://graphviz.gitlab.io +.. _ImageMagick: https://www.imagemagick.org + +.. _`Emacs Table Mode`: https://www.emacswiki.org/emacs/TableMode +.. _`Online Tables Generator`: http://www.tablesgenerator.com/text_tables +.. _`OASIS XML Exchange Table Model`: https://www.oasis-open.org/specs/tm9901.html diff --git a/docs/dev/search_api.rst b/docs/dev/search_api.rst new file mode 100644 index 00000000..922548ff --- /dev/null +++ b/docs/dev/search_api.rst @@ -0,0 +1,120 @@ +.. _search API: + +========== +Search API +========== + +The search supports both ``GET`` and ``POST``. + +Furthermore, two enpoints ``/`` and ``/search`` are available for querying. + + +``GET /`` + +``GET /search`` + +Parameters +========== + +.. sidebar:: Further reading .. + + - :ref:`engines-dev` + - :ref:`settings.yml` + - :ref:`engines generic` + +``q`` : required + The search query. This string is passed to external search services. Thus, + searx supports syntax of each search service. For example, ``site:github.com + searx`` is a valid query for Google. However, if simply the query above is + passed to any search engine which does not filter its results based on this + syntax, you might not get the results you wanted. + + See more at :ref:`search-syntax` + +``categories`` : optional + Comma separated list, specifies the active search categories + +``engines`` : optional + Comma separated list, specifies the active search engines. + +``lang`` : default ``all`` + Code of the language. + +``pageno`` : default ``1`` + Search page number. + +``time_range`` : optional + [ ``day``, ``month``, ``year`` ] + + Time range of search for engines which support it. See if an engine supports + time range search in the preferences page of an instance. + +``format`` : optional + [ ``json``, ``csv``, ``rss`` ] + + Output format of results. + +``results_on_new_tab`` : default ``0`` + [ ``0``, ``1`` ] + + Open search results on new tab. + +``image_proxy`` : default ``False`` + [ ``True``, ``False`` ] + + Proxy image results through searx. + +``autocomplete`` : default *empty* + [ ``google``, ``dbpedia``, ``duckduckgo``, ``startpage``, ``wikipedia`` ] + + Service which completes words as you type. + +``safesearch`` : default ``None`` + [ ``0``, ``1``, ``None`` ] + + Filter search results of engines which support safe search. See if an engine + supports safe search in the preferences page of an instance. + +``theme`` : default ``oscar`` + [ ``oscar``, ``simple``, ``legacy``, ``pix-art``, ``courgette`` ] + + Theme of instance. + + Please note, available themes depend on an instance. It is possible that an + instance administrator deleted, created or renamed themes on his/her instance. + See the available options in the preferences page of the instance. + +``oscar-style`` : default ``logicodev`` + [ ``pointhi``, ``logicodev`` ] + + Style of Oscar theme. It is only parsed if the theme of an instance is + ``oscar``. + + Please note, available styles depend on an instance. It is possible that an + instance administrator deleted, created or renamed styles on his/her + instance. See the available options in the preferences page of the instance. + +``enabled_plugins`` : optional + List of enabled plugins. + + :default: ``HTTPS_rewrite``, ``Self_Informations``, + ``Search_on_category_select``, ``Tracker_URL_remover`` + + :values: [ ``DOAI_rewrite``, ``HTTPS_rewrite``, ``Infinite_scroll``, + ``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``, + ``Search_on_category_select`` ] + +``disabled_plugins``: optional + List of disabled plugins. + + :default: ``DOAI_rewrite``, ``Infinite_scroll``, ``Vim-like_hotkeys`` + :values: ``DOAI_rewrite``, ``HTTPS_rewrite``, ``Infinite_scroll``, + ``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``, + ``Search_on_category_select`` + +``enabled_engines`` : optional : *all* :origin:`engines ` + List of enabled engines. + +``disabled_engines`` : optional : *all* :origin:`engines ` + List of disabled engines. + diff --git a/docs/dev/svg_image.svg b/docs/dev/svg_image.svg new file mode 100644 index 00000000..5405f85b --- /dev/null +++ b/docs/dev/svg_image.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/docs/dev/translation.rst b/docs/dev/translation.rst new file mode 100644 index 00000000..86c4c843 --- /dev/null +++ b/docs/dev/translation.rst @@ -0,0 +1,71 @@ +.. _translation: + +=========== +Translation +=========== + +.. _searx@transifex: https://www.transifex.com/asciimoo/searx/ + +Translation currently takes place on `searx@transifex`_ + +Requirements +============ + +* Transifex account +* Installed CLI tool of Transifex + +Init Transifex project +====================== + +After installing ``transifex`` using pip, run the following command to +initialize the project. + +.. code:: sh + + tx init # Transifex instance: https://www.transifex.com/asciimoo/searx/ + + +After ``$HOME/.transifexrc`` is created, get a Transifex API key and insert it +into the configuration file. + +Create a configuration file for ``tx`` named ``$HOME/.tx/config``. + +.. code:: ini + + [main] + host = https://www.transifex.com + [searx.messagespo] + file_filter = searx/translations//LC_MESSAGES/messages.po + source_file = messages.pot + source_lang = en + type = PO + + +Then run ``tx set``: + +.. code:: shell + + tx set --auto-local -r searx.messagespo 'searx/translations//LC_MESSAGES/messages.po' \ + --source-lang en --type PO --source-file messages.pot --execute + + +Update translations +=================== + +To retrieve the latest translations, pull it from Transifex. + +.. code:: sh + + tx pull -a + +Then check the new languages. If strings translated are not enough, delete those +folders, because those should not be compiled. Call the command below to compile +the ``.po`` files. + +.. code:: shell + + pybabel compile -d searx/translations + + +After the compilation is finished commit the ``.po`` and ``.mo`` files and +create a PR. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..b62f4dc5 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,34 @@ +================ +Welcome to searx +================ + +Search without being tracked. + +.. sidebar:: Features + + - Self hosted + - No user tracking + - No user profiling + - About 70 supported search engines + - Easy integration with any search engine + - Cookies are not used by default + - Secure, encrypted connections (HTTPS/SSL) + - Hosted by organizations, such as *La Quadrature du Net*, which promote + digital rights + +Searx is a free internet metasearch engine which aggregates results from more +than 70 search services. Users are neither tracked nor profiled. Additionally, +searx can be used over Tor for online anonymity. + +Get started with searx by using one of the Searx-instances_. If you don't trust +anyone, you can set up your own, see :ref:`installation`. + +.. toctree:: + :maxdepth: 2 + + user/index + admin/index + dev/index + blog/index + +.. _Searx-instances: https://searx.space diff --git a/docs/static/img/searx_logo_small.png b/docs/static/img/searx_logo_small.png new file mode 100644 index 00000000..08393268 Binary files /dev/null and b/docs/static/img/searx_logo_small.png differ diff --git a/docs/user/index.rst b/docs/user/index.rst new file mode 100644 index 00000000..b13aca21 --- /dev/null +++ b/docs/user/index.rst @@ -0,0 +1,9 @@ +================== +User documentation +================== + +.. toctree:: + :maxdepth: 1 + + search_syntax + own-instance diff --git a/docs/user/own-instance.rst b/docs/user/own-instance.rst new file mode 100644 index 00000000..a2f73656 --- /dev/null +++ b/docs/user/own-instance.rst @@ -0,0 +1,77 @@ +=========================== +Why use a private instance? +=========================== + +"Is it worth to run my own instance?" is a common question among searx users. +Before answering this question, see what options a searx user has. + +Public instances are open to everyone who has access to its URL. Usually, these +are operated by unknown parties (from the users' point of view). Private +instances can be used by a select group of people. It is for example a searx of +group of friends or a company which can be accessed through VPN. Also it can be +single user one which runs on the user's laptop. + +To gain more insight on how these instances work let's dive into how searx +protects its users. + +How does searx protect privacy? +=============================== + +Searx protects the privacy of its users in multiple ways regardless of the type +of the instance (private, public). Removal of private data from search requests +comes in three forms: + + 1. removal of private data from requests going to search services + 2. not forwarding anything from a third party services through search services + (e.g. advertisement) + 3. removal of private data from requests going to the result pages + +Removing private data means not sending cookies to external search engines and +generating a random browser profile for every request. Thus, it does not matter +if a public or private instance handles the request, because it is anonymized in +both cases. IP addresses will be the IP of the instance. But searx can be +configured to use proxy or Tor. `Result proxy +`__ is supported, too. + +Searx does not serve ads or tracking content unlike most search services. So +private data is not forwarded to third parties who might monetize it. Besides +protecting users from search services, both referring page and search query are +hidden from visited result pages. + + +What are the consequences of using public instances? +---------------------------------------------------- + +If someone uses a public instance, he/she has to trust the administrator of that +instance. This means that the user of the public instance does not know whether +his/her requests are logged, aggregated and sent or sold to a third party. + +Also, public instances without proper protection are more vulnerable to abusing +the search service, In this case the external service in exchange returns +CAPTCHAs or bans the IP of the instance. Thus, search requests return less +results. + +I see. What about private instances? +------------------------------------ + +If users run their own instances, everything is in their control: the source +code, logging settings and private data. Unknown instance administrators do not +have to be trusted. + +Furthermore, as the default settings of their instance is editable, there is no +need to use cookies to tailor searx to their needs. So preferences will not be +reset to defaults when clearing browser cookies. As settings are stored on +their computer, it will not be accessible to others as long as their computer is +not compromised. + +Conclusion +========== + +Always use an instance which is operated by people you trust. The privacy +features of searx are available to users no matter what kind of instance they +use. + +If someone is on the go or just wants to try searx for the first time public +instances are the best choices. Additionally, public instance are making a +world a better place, because those who cannot or do not want to run an +instance, have access to a privacy respecting search service. diff --git a/docs/user/public_instances.rst b/docs/user/public_instances.rst new file mode 100644 index 00000000..f58ab7a0 --- /dev/null +++ b/docs/user/public_instances.rst @@ -0,0 +1,3 @@ +:orphan: + +This page page has been moved to `searx.space `__ diff --git a/docs/user/search_syntax.rst b/docs/user/search_syntax.rst new file mode 100644 index 00000000..b738c727 --- /dev/null +++ b/docs/user/search_syntax.rst @@ -0,0 +1,42 @@ + +.. _search-syntax: + +============= +Search syntax +============= + +Searx allows you to modify the default categories, engines and search language +via the search query. + +Prefix ``!`` + to set Category/engine + +Prefix: ``:`` + to set language + +Prefix: ``?`` + to add engines and categories to the currently selected categories + +Abbrevations of the engines and languages are also accepted. Engine/category +modifiers are chainable and inclusive (e.g. with :search:`!it !ddg !wp qwer +` search in IT category **and** duckduckgo +**and** wikipedia for ``qwer``). + +See the :search:`/preferences page ` for the list of engines, +categories and languages. + +Examples +======== + +Search in wikipedia for ``qwer``: + +- :search:`!wp qwer ` or +- :search:`!wikipedia qwer :search:` + +Image search: + +- :search:`!images Cthulhu ` + +Custom language in wikipedia: + +- :search:`:hu !wp hackerspace ` diff --git a/manage.sh b/manage.sh index db167cab..424d64ea 100755 --- a/manage.sh +++ b/manage.sh @@ -12,6 +12,7 @@ PYTHONPATH="$BASE_DIR" SEARX_DIR="$BASE_DIR/searx" ACTION="$1" +. "${BASE_DIR}/utils/brand.env" # # Python @@ -20,12 +21,12 @@ ACTION="$1" update_packages() { pip install --upgrade pip pip install --upgrade setuptools - pip install -r "$BASE_DIR/requirements.txt" + pip install -Ur "$BASE_DIR/requirements.txt" } update_dev_packages() { update_packages - pip install -r "$BASE_DIR/requirements-dev.txt" + pip install -Ur "$BASE_DIR/requirements-dev.txt" } install_geckodriver() { @@ -72,45 +73,6 @@ locales() { pybabel compile -d "$SEARX_DIR/translations" } -update_useragents() { - echo '[!] Updating user agent versions' - python utils/fetch_firefox_version.py -} - -pep8_check() { - echo '[!] Running pep8 check' - # ignored rules: - # E402 module level import not at top of file - # W503 line break before binary operator - pep8 --exclude=searx/static --max-line-length=120 --ignore "E402,W503" "$SEARX_DIR" "$BASE_DIR/tests" -} - -unit_tests() { - echo '[!] Running unit tests' - python -m nose2 -s "$BASE_DIR/tests/unit" -} - -py_test_coverage() { - echo '[!] Running python test coverage' - PYTHONPATH="`pwd`" python -m nose2 -C --log-capture --with-coverage --coverage "$SEARX_DIR" -s "$BASE_DIR/tests/unit" \ - && coverage report \ - && coverage html -} - -robot_tests() { - echo '[!] Running robot tests' - PYTHONPATH="`pwd`" python "$SEARX_DIR/testing.py" robot -} - -tests() { - set -e - pep8_check - unit_tests - install_geckodriver - robot_tests - set +e -} - # # Web @@ -137,36 +99,6 @@ npm_packages() { npm install } -build_style() { - npm_path_setup - - lessc --clean-css="--s1 --advanced --compatibility=ie9" "$BASE_DIR/searx/static/$1" "$BASE_DIR/searx/static/$2" -} - -styles() { - npm_path_setup - - echo '[!] Building legacy style' - build_style themes/legacy/less/style.less themes/legacy/css/style.css - build_style themes/legacy/less/style-rtl.less themes/legacy/css/style-rtl.css - echo '[!] Building courgette style' - build_style themes/courgette/less/style.less themes/courgette/css/style.css - build_style themes/courgette/less/style-rtl.less themes/courgette/css/style-rtl.css - echo '[!] Building pix-art style' - build_style themes/pix-art/less/style.less themes/pix-art/css/style.css - echo '[!] Building bootstrap style' - build_style less/bootstrap/bootstrap.less css/bootstrap.min.css -} - -grunt_build() { - npm_path_setup - - echo '[!] Grunt build : oscar theme' - grunt --gruntfile "$SEARX_DIR/static/themes/oscar/gruntfile.js" - echo '[!] Grunt build : simple theme' - grunt --gruntfile "$SEARX_DIR/static/themes/simple/gruntfile.js" -} - docker_build() { # Check if it is a git repository if [ ! -d .git ]; then @@ -191,8 +123,9 @@ docker_build() { SEARX_GIT_VERSION=$(git describe --match "v[0-9]*\.[0-9]*\.[0-9]*" HEAD 2>/dev/null | awk -F'-' '{OFS="-"; $1=substr($1, 2); $3=substr($3, 2); print}') # add the suffix "-dirty" if the repository has uncommited change + # /!\ HACK for searx/searx: ignore searx/brand.py and utils/brand.env git update-index -q --refresh - if [ ! -z "$(git diff-index --name-only HEAD --)" ]; then + if [ ! -z "$(git diff-index --name-only HEAD -- | grep -v 'searx/brand.py' | grep -v 'utils/brand.env')" ]; then SEARX_GIT_VERSION="${SEARX_GIT_VERSION}-dirty" fi @@ -213,18 +146,18 @@ docker_build() { fi # define the docker image name - # /!\ HACK to get the user name /!\ - GITHUB_USER=$(git remote get-url origin | sed 's/.*github\.com\/\([^\/]*\).*/\1/') + GITHUB_USER=$(echo "${GIT_URL}" | sed 's/.*github\.com\/\([^\/]*\).*/\1/') SEARX_IMAGE_NAME="${GITHUB_USER:-searx}/searx" # build Docker image echo "Building image ${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}" sudo docker build \ + --build-arg GIT_URL="${GIT_URL}" \ --build-arg SEARX_GIT_VERSION="${SEARX_GIT_VERSION}" \ --build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \ --build-arg LABEL_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \ --build-arg LABEL_VCS_REF=$(git rev-parse HEAD) \ - --build-arg LABEL_VCS_URL=$(git remote get-url origin) \ + --build-arg LABEL_VCS_URL="${GIT_URL}" \ --build-arg TIMESTAMP_SETTINGS=$(git log -1 --format="%cd" --date=unix -- searx/settings.yml) \ --build-arg TIMESTAMP_UWSGI=$(git log -1 --format="%cd" --date=unix -- dockerfiles/uwsgi.ini) \ -t ${SEARX_IMAGE_NAME}:latest -t ${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION} . @@ -253,22 +186,17 @@ Commands update_dev_packages - Check & update development and production dependency changes install_geckodriver - Download & install geckodriver if not already installed (required for robot_tests) npm_packages - Download & install npm dependencies - update_useragents - Update useragents.json with the most recent versions of Firefox Build ----- locales - Compile locales - styles - Build less files - grunt_build - Build files for themes - docker_build - Build Docker image - Tests - ----- - unit_tests - Run unit tests - pep8_check - Pep8 validation - robot_tests - Run selenium tests - tests - Run all python tests (pep8, unit, robot_tests) - py_test_coverage - Unit test coverage +Environment: + GIT_URL: ${GIT_URL} + ISSUE_URL: ${ISSUE_URL} + SEARX_URL: ${SEARX_URL} + DOCS_URL: ${DOCS_URL} + PUBLIC_INSTANCES: ${PUBLIC_INSTANCES} " } diff --git a/requirements-dev.txt b/requirements-dev.txt index 5e015a88..eed7ec3d 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,10 +1,17 @@ +pallets-sphinx-themes +Sphinx +sphinx-issues mock==2.0.0 nose2[coverage_plugin] cov-core==1.15.0 pep8==1.7.0 +pylint plone.testing==5.0.0 splinter==0.11.0 transifex-client==0.12.2 unittest2==1.1.0 zope.testrunner==4.5.1 selenium==3.141.0 +linuxdoc @ git+http://github.com/return42/linuxdoc.git +sphinx-jinja +sphinx-tabs diff --git a/requirements.txt b/requirements.txt index 6e4df37a..5d508d7e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,12 @@ -certifi==2019.3.9 +certifi==2020.4.5.1 babel==2.7.0 -flask-babel==0.12.2 -flask==1.0.2 -idna==2.8 -jinja2==2.10.1 -lxml==4.3.3 +flask-babel==1.0.0 +flask==1.1.2 +idna==2.9 +jinja2==2.11.1 +lxml==4.5.0 pygments==2.1.3 -pyopenssl==19.0.0 +pyopenssl==19.1.0 python-dateutil==2.8.0 -pyyaml==5.1 -requests[socks]==2.22.0 +pyyaml==5.3.1 +requests[socks]==2.23.0 diff --git a/searx/__init__.py b/searx/__init__.py index d32fe006..2f3ebfcf 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -38,6 +38,7 @@ def check_settings_yml(file_name): else: return None + # find location of settings.yml if 'SEARX_SETTINGS_PATH' in environ: # if possible set path to settings using the diff --git a/searx/autocomplete.py b/searx/autocomplete.py index ff895850..00a9f955 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -165,6 +165,14 @@ def startpage(query, lang): return [] +def swisscows(query, lang): + # swisscows autocompleter + url = 'https://swisscows.ch/api/suggest?{query}&itemsCount=5' + + resp = loads(get(url.format(query=urlencode({'query': query}))).text) + return resp + + def qwant(query, lang): # qwant autocompleter (additional parameter : lang=en_en&count=xxx ) url = 'https://api.qwant.com/api/suggest?{query}' @@ -196,6 +204,7 @@ backends = {'dbpedia': dbpedia, 'duckduckgo': duckduckgo, 'google': google, 'startpage': startpage, + 'swisscows': swisscows, 'qwant': qwant, 'wikipedia': wikipedia } diff --git a/searx/brand.py b/searx/brand.py new file mode 100644 index 00000000..d563447f --- /dev/null +++ b/searx/brand.py @@ -0,0 +1,5 @@ +GIT_URL = 'https://github.com/asciimoo/searx' +ISSUE_URL = 'https://github.com/asciimoo/searx/issues' +SEARX_URL = 'https://searx.me' +DOCS_URL = 'https://asciimoo.github.io/searx' +PUBLIC_INSTANCES = 'https://searx.space' diff --git a/searx/data/engines_languages.json b/searx/data/engines_languages.json index 2c9e64e8..83701e6d 100644 --- a/searx/data/engines_languages.json +++ b/searx/data/engines_languages.json @@ -1,27489 +1,28334 @@ { - "qwant news": [ - "bg-BG", - "br-FR", - "ca-AD", - "ca-ES", - "ca-FR", - "co-FR", - "cs-CZ", - "cy-GB", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es-AD", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "et-EE", - "eu-ES", - "eu-FR", - "fi-FI", - "fr-AD", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "gd-GB", - "he-IL", - "hu-HU", - "it-CH", - "it-IT", - "ja-JP", - "ko-KR", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-AD", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sv-SE", - "th-TH", - "tr-TR" - ], - "qwant social": [ - "bg-BG", - "br-FR", - "ca-AD", - "ca-ES", - "ca-FR", - "co-FR", - "cs-CZ", - "cy-GB", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es-AD", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "et-EE", - "eu-ES", - "eu-FR", - "fi-FI", - "fr-AD", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "gd-GB", - "he-IL", - "hu-HU", - "it-CH", - "it-IT", - "ja-JP", - "ko-KR", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-AD", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sv-SE", - "th-TH", - "tr-TR" - ], - "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-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-UK", - "en-US", - "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", - "he-IL", - "hr-HR", - "hu-HU", - "id-ID", - "it-CH", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "th-TH", - "tl-PH", - "tr-TR", - "tzh-HK", - "tzh-TW", - "vi-VN", - "wt-WT", - "zh-CN" - ], - "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-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-UK", - "en-US", - "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", - "he-IL", - "hr-HR", - "hu-HU", - "id-ID", - "it-CH", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "th-TH", - "tl-PH", - "tr-TR", - "tzh-HK", - "tzh-TW", - "vi-VN", - "wt-WT", - "zh-CN" - ], - "bing": [ - "ar", - "bg", - "ca", - "cs", - "da", - "de", - "el", - "en", - "es", - "et", - "fa", - "fi", - "fr", - "he", - "hr", - "hu", - "id", - "is", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "nl", - "no", - "pl", - "pt-BR", - "pt-PT", - "ro", - "ru", - "sk", - "sl", - "sq", - "sr", - "sv", - "th", - "tr", - "uk", - "vi", - "zh-CHS", - "zh-CHT" - ], - "bing videos": [ - "ar-AE", - "ar-EG", - "ar-SA", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "en-AU", - "en-CA", - "en-GB", - "en-ID", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "en-ZA", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "es-US", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "it-IT", - "ja-JP", - "ko-KR", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ru-RU", - "sv-SE", - "tr-TR", - "zh-CN", - "zh-HK", - "zh-TW" - ], - "qwant": [ - "bg-BG", - "br-FR", - "ca-AD", - "ca-ES", - "ca-FR", - "co-FR", - "cs-CZ", - "cy-GB", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es-AD", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "et-EE", - "eu-ES", - "eu-FR", - "fi-FI", - "fr-AD", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "gd-GB", - "he-IL", - "hu-HU", - "it-CH", - "it-IT", - "ja-JP", - "ko-KR", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-AD", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sv-SE", - "th-TH", - "tr-TR" - ], - "gigablast": [], - "google news": { - "nl": { - "name": "Nederlands" - }, - "eo": { - "name": "Esperanto" - }, - "ko": { - "name": "한국어" - }, - "id": { - "name": "Indonesia" - }, - "ca": { - "name": "Català" - }, - "ar": { - "name": "العربية" - }, - "sl": { - "name": "Slovenščina" - }, - "sr": { - "name": "Српски" - }, - "sv": { - "name": "Svenska" - }, - "be": { - "name": "Беларуская" - }, - "et": { - "name": "Eesti" - }, - "sw": { - "name": "Kiswahili" - }, - "is": { - "name": "Íslenska" - }, - "it": { - "name": "Italiano" - }, - "hi": { - "name": "हिन्दी" - }, - "pl": { - "name": "Polski" - }, - "el": { - "name": "Ελληνικά" - }, - "hu": { - "name": "Magyar" - }, - "fr": { - "name": "Français" - }, - "th": { - "name": "ไทย" - }, - "tl": { - "name": "Filipino" - }, - "de": { - "name": "Deutsch" - }, - "ru": { - "name": "Русский" - }, - "sk": { - "name": "Slovenčina" - }, - "lt": { - "name": "Lietuvių" - }, - "vi": { - "name": "Tiếng Việt" - }, - "uk": { - "name": "Українська" - }, - "pt": { - "name": "Português" - }, - "zh-TW": { - "name": "中文 (繁體)" - }, - "cs": { - "name": "Čeština" - }, - "fa": { - "name": "فارسی" - }, - "af": { - "name": "Afrikaans" - }, - "hy": { - "name": "Հայերեն" - }, - "bg": { - "name": "Български" - }, - "hr": { - "name": "Hrvatski" - }, - "en": { - "name": "English" - }, - "tr": { - "name": "Türkçe" - }, - "lv": { - "name": "Latviešu" - }, - "ro": { - "name": "Română" - }, - "zh-CN": { - "name": "中文 (简体)" - }, - "ja": { - "name": "日本語" - }, - "iw": { - "name": "עברית" - }, - "es": { - "name": "Español" - }, - "fi": { - "name": "Suomi" - }, - "no": { - "name": "Norsk" - }, - "da": { - "name": "Dansk" - } + "bing": [ + "af-NA", + "am-ET", + "ar-AE", + "ar-BH", + "ar-DZ", + "ar-EG", + "ar-IQ", + "ar-JO", + "ar-KW", + "ar-LB", + "ar-LY", + "ar-MA", + "ar-MR", + "ar-OM", + "ar-PS", + "ar-QA", + "ar-SA", + "ar-SD", + "ar-SY", + "ar-TN", + "ar-YE", + "az-LATN-AZ", + "be-BY", + "bg-BG", + "bn-BD", + "bo-BT", + "bs-LATN-BA", + "ca-AD", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "de-LI", + "de-LU", + "dv-MV", + "el-GR", + "en-AG", + "en-AI", + "en-AS", + "en-AU", + "en-BB", + "en-BM", + "en-BS", + "en-BW", + "en-BZ", + "en-CA", + "en-CC", + "en-CK", + "en-CX", + "en-CY", + "en-DM", + "en-FJ", + "en-FK", + "en-FM", + "en-GB", + "en-GD", + "en-GG", + "en-GH", + "en-GI", + "en-GM", + "en-GU", + "en-GY", + "en-IE", + "en-IN", + "en-JE", + "en-JM", + "en-KI", + "en-KN", + "en-KY", + "en-LC", + "en-LR", + "en-LS", + "en-MH", + "en-MP", + "en-MS", + "en-MU", + "en-MW", + "en-NF", + "en-NG", + "en-NR", + "en-NU", + "en-NZ", + "en-PG", + "en-PH", + "en-PN", + "en-PW", + "en-SB", + "en-SC", + "en-SG", + "en-SH", + "en-SL", + "en-SS", + "en-SZ", + "en-TC", + "en-TK", + "en-TO", + "en-TT", + "en-TV", + "en-TZ", + "en-UG", + "en-US", + "en-VC", + "en-VG", + "en-VI", + "en-VU", + "en-WS", + "en-ZA", + "en-ZM", + "en-ZW", + "es-AR", + "es-BO", + "es-CL", + "es-CO", + "es-CR", + "es-DO", + "es-EC", + "es-ES", + "es-GQ", + "es-GT", + "es-HN", + "es-MX", + "es-NI", + "es-PA", + "es-PE", + "es-PR", + "es-PY", + "es-SV", + "es-US", + "es-UY", + "es-VE", + "et-EE", + "fa-IR", + "fi-FI", + "fo-FO", + "fr-BE", + "fr-BF", + "fr-BI", + "fr-BJ", + "fr-BL", + "fr-CA", + "fr-CD", + "fr-CF", + "fr-CG", + "fr-CH", + "fr-CI", + "fr-CM", + "fr-DJ", + "fr-FR", + "fr-GA", + "fr-GF", + "fr-GN", + "fr-GP", + "fr-HT", + "fr-KM", + "fr-MC", + "fr-MF", + "fr-MG", + "fr-ML", + "fr-MQ", + "fr-NC", + "fr-NE", + "fr-PF", + "fr-PM", + "fr-RE", + "fr-SN", + "fr-TD", + "fr-TG", + "fr-WF", + "fr-YT", + "he-IL", + "hr-HR", + "hu-HU", + "hy-AM", + "id-ID", + "is-IS", + "it-IT", + "it-SM", + "it-VA", + "ja-JP", + "ka-GE", + "kk-KZ", + "kl-GL", + "km-KH", + "ko-KR", + "ky-KG", + "lo-LA", + "lt-LT", + "lv-LV", + "mk-MK", + "mn-MN", + "ms-BN", + "ms-MY", + "mt-MT", + "nb-NO", + "ne-NP", + "nl-AW", + "nl-BE", + "nl-CW", + "nl-NL", + "nl-SR", + "nl-SX", + "pl-PL", + "prs-AF", + "pt-AO", + "pt-BR", + "pt-CV", + "pt-GW", + "pt-MZ", + "pt-PT", + "pt-ST", + "ro-MD", + "ro-RO", + "ru-RU", + "rw-RW", + "si-LK", + "sk-SK", + "sl-SI", + "so-SO", + "sq-AL", + "sr-LATN-RS", + "sr-ME", + "sv-SE", + "sw-KE", + "tg-CYRL-TJ", + "th-TH", + "ti-ER", + "tk-TM", + "tr-TR", + "uk-UA", + "ur-PK", + "uz-LATN-UZ", + "vi-VN", + "zh-CN", + "zh-HK", + "zh-MO", + "zh-TW" + ], + "bing images": [ + "af-NA", + "am-ET", + "ar-AE", + "ar-BH", + "ar-DZ", + "ar-EG", + "ar-IQ", + "ar-JO", + "ar-KW", + "ar-LB", + "ar-LY", + "ar-MA", + "ar-MR", + "ar-OM", + "ar-PS", + "ar-QA", + "ar-SA", + "ar-SD", + "ar-SY", + "ar-TN", + "ar-YE", + "az-LATN-AZ", + "be-BY", + "bg-BG", + "bn-BD", + "bo-BT", + "bs-LATN-BA", + "ca-AD", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "de-LI", + "de-LU", + "dv-MV", + "el-GR", + "en-AG", + "en-AI", + "en-AS", + "en-AU", + "en-BB", + "en-BM", + "en-BS", + "en-BW", + "en-BZ", + "en-CA", + "en-CC", + "en-CK", + "en-CX", + "en-CY", + "en-DM", + "en-FJ", + "en-FK", + "en-FM", + "en-GB", + "en-GD", + "en-GG", + "en-GH", + "en-GI", + "en-GM", + "en-GU", + "en-GY", + "en-IE", + "en-IN", + "en-JE", + "en-JM", + "en-KI", + "en-KN", + "en-KY", + "en-LC", + "en-LR", + "en-LS", + "en-MH", + "en-MP", + "en-MS", + "en-MU", + "en-MW", + "en-NF", + "en-NG", + "en-NR", + "en-NU", + "en-NZ", + "en-PG", + "en-PH", + "en-PN", + "en-PW", + "en-SB", + "en-SC", + "en-SG", + "en-SH", + "en-SL", + "en-SS", + "en-SZ", + "en-TC", + "en-TK", + "en-TO", + "en-TT", + "en-TV", + "en-TZ", + "en-UG", + "en-US", + "en-VC", + "en-VG", + "en-VI", + "en-VU", + "en-WS", + "en-ZA", + "en-ZM", + "en-ZW", + "es-AR", + "es-BO", + "es-CL", + "es-CO", + "es-CR", + "es-DO", + "es-EC", + "es-ES", + "es-GQ", + "es-GT", + "es-HN", + "es-MX", + "es-NI", + "es-PA", + "es-PE", + "es-PR", + "es-PY", + "es-SV", + "es-US", + "es-UY", + "es-VE", + "et-EE", + "fa-IR", + "fi-FI", + "fo-FO", + "fr-BE", + "fr-BF", + "fr-BI", + "fr-BJ", + "fr-BL", + "fr-CA", + "fr-CD", + "fr-CF", + "fr-CG", + "fr-CH", + "fr-CI", + "fr-CM", + "fr-DJ", + "fr-FR", + "fr-GA", + "fr-GF", + "fr-GN", + "fr-GP", + "fr-HT", + "fr-KM", + "fr-MC", + "fr-MF", + "fr-MG", + "fr-ML", + "fr-MQ", + "fr-NC", + "fr-NE", + "fr-PF", + "fr-PM", + "fr-RE", + "fr-SN", + "fr-TD", + "fr-TG", + "fr-WF", + "fr-YT", + "he-IL", + "hr-HR", + "hu-HU", + "hy-AM", + "id-ID", + "is-IS", + "it-IT", + "it-SM", + "it-VA", + "ja-JP", + "ka-GE", + "kk-KZ", + "kl-GL", + "km-KH", + "ko-KR", + "ky-KG", + "lo-LA", + "lt-LT", + "lv-LV", + "mk-MK", + "mn-MN", + "ms-BN", + "ms-MY", + "mt-MT", + "nb-NO", + "ne-NP", + "nl-AW", + "nl-BE", + "nl-CW", + "nl-NL", + "nl-SR", + "nl-SX", + "pl-PL", + "prs-AF", + "pt-AO", + "pt-BR", + "pt-CV", + "pt-GW", + "pt-MZ", + "pt-PT", + "pt-ST", + "ro-MD", + "ro-RO", + "ru-RU", + "rw-RW", + "si-LK", + "sk-SK", + "sl-SI", + "so-SO", + "sq-AL", + "sr-LATN-RS", + "sr-ME", + "sv-SE", + "sw-KE", + "tg-CYRL-TJ", + "th-TH", + "ti-ER", + "tk-TM", + "tr-TR", + "uk-UA", + "ur-PK", + "uz-LATN-UZ", + "vi-VN", + "zh-CN", + "zh-HK", + "zh-MO", + "zh-TW" + ], + "bing news": [ + "af-NA", + "am-ET", + "ar-AE", + "ar-BH", + "ar-DZ", + "ar-EG", + "ar-IQ", + "ar-JO", + "ar-KW", + "ar-LB", + "ar-LY", + "ar-MA", + "ar-MR", + "ar-OM", + "ar-PS", + "ar-QA", + "ar-SA", + "ar-SD", + "ar-SY", + "ar-TN", + "ar-YE", + "az-LATN-AZ", + "be-BY", + "bg-BG", + "bn-BD", + "bo-BT", + "bs-LATN-BA", + "ca-AD", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "de-LI", + "de-LU", + "dv-MV", + "el-GR", + "en-AG", + "en-AI", + "en-AS", + "en-AU", + "en-BB", + "en-BM", + "en-BS", + "en-BW", + "en-BZ", + "en-CA", + "en-CC", + "en-CK", + "en-CX", + "en-CY", + "en-DM", + "en-FJ", + "en-FK", + "en-FM", + "en-GB", + "en-GD", + "en-GG", + "en-GH", + "en-GI", + "en-GM", + "en-GU", + "en-GY", + "en-IE", + "en-IN", + "en-JE", + "en-JM", + "en-KI", + "en-KN", + "en-KY", + "en-LC", + "en-LR", + "en-LS", + "en-MH", + "en-MP", + "en-MS", + "en-MU", + "en-MW", + "en-NF", + "en-NG", + "en-NR", + "en-NU", + "en-NZ", + "en-PG", + "en-PH", + "en-PN", + "en-PW", + "en-SB", + "en-SC", + "en-SG", + "en-SH", + "en-SL", + "en-SS", + "en-SZ", + "en-TC", + "en-TK", + "en-TO", + "en-TT", + "en-TV", + "en-TZ", + "en-UG", + "en-US", + "en-VC", + "en-VG", + "en-VI", + "en-VU", + "en-WS", + "en-ZA", + "en-ZM", + "en-ZW", + "es-AR", + "es-BO", + "es-CL", + "es-CO", + "es-CR", + "es-DO", + "es-EC", + "es-ES", + "es-GQ", + "es-GT", + "es-HN", + "es-MX", + "es-NI", + "es-PA", + "es-PE", + "es-PR", + "es-PY", + "es-SV", + "es-US", + "es-UY", + "es-VE", + "et-EE", + "fa-IR", + "fi-FI", + "fo-FO", + "fr-BE", + "fr-BF", + "fr-BI", + "fr-BJ", + "fr-BL", + "fr-CA", + "fr-CD", + "fr-CF", + "fr-CG", + "fr-CH", + "fr-CI", + "fr-CM", + "fr-DJ", + "fr-FR", + "fr-GA", + "fr-GF", + "fr-GN", + "fr-GP", + "fr-HT", + "fr-KM", + "fr-MC", + "fr-MF", + "fr-MG", + "fr-ML", + "fr-MQ", + "fr-NC", + "fr-NE", + "fr-PF", + "fr-PM", + "fr-RE", + "fr-SN", + "fr-TD", + "fr-TG", + "fr-WF", + "fr-YT", + "he-IL", + "hr-HR", + "hu-HU", + "hy-AM", + "id-ID", + "is-IS", + "it-IT", + "it-SM", + "it-VA", + "ja-JP", + "ka-GE", + "kk-KZ", + "kl-GL", + "km-KH", + "ko-KR", + "ky-KG", + "lo-LA", + "lt-LT", + "lv-LV", + "mk-MK", + "mn-MN", + "ms-BN", + "ms-MY", + "mt-MT", + "nb-NO", + "ne-NP", + "nl-AW", + "nl-BE", + "nl-CW", + "nl-NL", + "nl-SR", + "nl-SX", + "pl-PL", + "prs-AF", + "pt-AO", + "pt-BR", + "pt-CV", + "pt-GW", + "pt-MZ", + "pt-PT", + "pt-ST", + "ro-MD", + "ro-RO", + "ru-RU", + "rw-RW", + "si-LK", + "sk-SK", + "sl-SI", + "so-SO", + "sq-AL", + "sr-LATN-RS", + "sr-ME", + "sv-SE", + "sw-KE", + "tg-CYRL-TJ", + "th-TH", + "ti-ER", + "tk-TM", + "tr-TR", + "uk-UA", + "ur-PK", + "uz-LATN-UZ", + "vi-VN", + "zh-CN", + "zh-HK", + "zh-MO", + "zh-TW" + ], + "bing videos": [ + "af-NA", + "am-ET", + "ar-AE", + "ar-BH", + "ar-DZ", + "ar-EG", + "ar-IQ", + "ar-JO", + "ar-KW", + "ar-LB", + "ar-LY", + "ar-MA", + "ar-MR", + "ar-OM", + "ar-PS", + "ar-QA", + "ar-SA", + "ar-SD", + "ar-SY", + "ar-TN", + "ar-YE", + "az-LATN-AZ", + "be-BY", + "bg-BG", + "bn-BD", + "bo-BT", + "bs-LATN-BA", + "ca-AD", + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "de-LI", + "de-LU", + "dv-MV", + "el-GR", + "en-AG", + "en-AI", + "en-AS", + "en-AU", + "en-BB", + "en-BM", + "en-BS", + "en-BW", + "en-BZ", + "en-CA", + "en-CC", + "en-CK", + "en-CX", + "en-CY", + "en-DM", + "en-FJ", + "en-FK", + "en-FM", + "en-GB", + "en-GD", + "en-GG", + "en-GH", + "en-GI", + "en-GM", + "en-GU", + "en-GY", + "en-IE", + "en-IN", + "en-JE", + "en-JM", + "en-KI", + "en-KN", + "en-KY", + "en-LC", + "en-LR", + "en-LS", + "en-MH", + "en-MP", + "en-MS", + "en-MU", + "en-MW", + "en-NF", + "en-NG", + "en-NR", + "en-NU", + "en-NZ", + "en-PG", + "en-PH", + "en-PN", + "en-PW", + "en-SB", + "en-SC", + "en-SG", + "en-SH", + "en-SL", + "en-SS", + "en-SZ", + "en-TC", + "en-TK", + "en-TO", + "en-TT", + "en-TV", + "en-TZ", + "en-UG", + "en-US", + "en-VC", + "en-VG", + "en-VI", + "en-VU", + "en-WS", + "en-ZA", + "en-ZM", + "en-ZW", + "es-AR", + "es-BO", + "es-CL", + "es-CO", + "es-CR", + "es-DO", + "es-EC", + "es-ES", + "es-GQ", + "es-GT", + "es-HN", + "es-MX", + "es-NI", + "es-PA", + "es-PE", + "es-PR", + "es-PY", + "es-SV", + "es-US", + "es-UY", + "es-VE", + "et-EE", + "fa-IR", + "fi-FI", + "fo-FO", + "fr-BE", + "fr-BF", + "fr-BI", + "fr-BJ", + "fr-BL", + "fr-CA", + "fr-CD", + "fr-CF", + "fr-CG", + "fr-CH", + "fr-CI", + "fr-CM", + "fr-DJ", + "fr-FR", + "fr-GA", + "fr-GF", + "fr-GN", + "fr-GP", + "fr-HT", + "fr-KM", + "fr-MC", + "fr-MF", + "fr-MG", + "fr-ML", + "fr-MQ", + "fr-NC", + "fr-NE", + "fr-PF", + "fr-PM", + "fr-RE", + "fr-SN", + "fr-TD", + "fr-TG", + "fr-WF", + "fr-YT", + "he-IL", + "hr-HR", + "hu-HU", + "hy-AM", + "id-ID", + "is-IS", + "it-IT", + "it-SM", + "it-VA", + "ja-JP", + "ka-GE", + "kk-KZ", + "kl-GL", + "km-KH", + "ko-KR", + "ky-KG", + "lo-LA", + "lt-LT", + "lv-LV", + "mk-MK", + "mn-MN", + "ms-BN", + "ms-MY", + "mt-MT", + "nb-NO", + "ne-NP", + "nl-AW", + "nl-BE", + "nl-CW", + "nl-NL", + "nl-SR", + "nl-SX", + "pl-PL", + "prs-AF", + "pt-AO", + "pt-BR", + "pt-CV", + "pt-GW", + "pt-MZ", + "pt-PT", + "pt-ST", + "ro-MD", + "ro-RO", + "ru-RU", + "rw-RW", + "si-LK", + "sk-SK", + "sl-SI", + "so-SO", + "sq-AL", + "sr-LATN-RS", + "sr-ME", + "sv-SE", + "sw-KE", + "tg-CYRL-TJ", + "th-TH", + "ti-ER", + "tk-TM", + "tr-TR", + "uk-UA", + "ur-PK", + "uz-LATN-UZ", + "vi-VN", + "zh-CN", + "zh-HK", + "zh-MO", + "zh-TW" + ], + "dailymotion": { + "aa": { + "english_name": "Afar" }, - "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-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-UK", - "en-US", - "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", - "he-IL", - "hr-HR", - "hu-HU", - "id-ID", - "it-CH", - "it-IT", - "jp-JP", - "kr-KR", - "lt-LT", - "lv-LV", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sk-SK", - "sl-SL", - "sv-SE", - "th-TH", - "tl-PH", - "tr-TR", - "tzh-HK", - "tzh-TW", - "vi-VN", - "wt-WT", - "zh-CN" - ], - "bing images": [ - "ar-AE", - "ar-EG", - "ar-SA", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "en-AU", - "en-CA", - "en-GB", - "en-ID", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "en-ZA", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "es-US", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "it-IT", - "ja-JP", - "ko-KR", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-BR", - "pt-PT", - "ru-RU", - "sv-SE", - "tr-TR", - "zh-CN", - "zh-HK", - "zh-TW" - ], - "bing news": [ - "ar", - "bg", - "ca", - "cs", - "da", - "de", - "el", - "en", - "es", - "et", - "fa", - "fi", - "fr", - "he", - "hr", - "hu", - "id", - "is", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "nl", - "no", - "pl", - "pt-BR", - "pt-PT", - "ro", - "ru", - "sk", - "sl", - "sq", - "sr", - "sv", - "th", - "tr", - "uk", - "vi", - "zh-CHS", - "zh-CHT" - ], - "dailymotion": { - "fag": { - "english_name": "Finongan" - }, - "mpd": { - "english_name": "Machinere" - }, - "bzx": { - "english_name": "Bozo, Kɛlɛngaxo" - }, - "kpc": { - "english_name": "Curripaco" - }, - "sll": { - "english_name": "Salt-Yui" - }, - "bop": { - "english_name": "Bonkiman" - }, - "mlz": { - "english_name": "Malaynon" - }, - "gnw": { - "english_name": "Guaraní, Western Bolivian" - }, - "sbc": { - "english_name": "Kele (Papua New Guinea)" - }, - "pbc": { - "english_name": "Patamona" - }, - "xkw": { - "english_name": "Kembra" - }, - "bec": { - "english_name": "Iceve-Maci" - }, - "tlg": { - "english_name": "Tofanma" - }, - "ges": { - "english_name": "Geser-Gorom" - }, - "mxh": { - "english_name": "Mvuba" - }, - "wos": { - "english_name": "Hanga Hundi" - }, - "mrf": { - "english_name": "Elseng" - }, - "tdr": { - "english_name": "Todrah" - }, - "dos": { - "english_name": "Dogosé" - }, - "lah": { - "english_name": "Lahnda" - }, - "qxa": { - "english_name": "Quechua, Chiquián Ancash" - }, - "kkv": { - "english_name": "Kangean" - }, - "ajt": { - "english_name": "Arabic, Judeo-Tunisian" - }, - "dof": { - "english_name": "Domu" - }, - "cll": { - "english_name": "Chala" - }, - "dta": { - "english_name": "Daur" - }, - "gji": { - "english_name": "Geji" - }, - "nmx": { - "english_name": "Nama (Papua New Guinea)" - }, - "tcl": { - "english_name": "Taman (Myanmar)" - }, - "kcc": { - "english_name": "Lubila" - }, - "tsl": { - "english_name": "Ts'ün-Lao" - }, - "abl": { - "english_name": "Lampung Nyo" - }, - "ply": { - "english_name": "Bolyu" - }, - "xor": { - "english_name": "Korubo" - }, - "tpc": { - "english_name": "Me'phaa, Azoyú" - }, - "ard": { - "english_name": "Arabana" - }, - "jen": { - "english_name": "Dza" - }, - "ofs": { - "english_name": "Frisian, Old" - }, - "bzz": { - "english_name": "Evant" - }, - "ts": { - "english_name": "Tsonga" - }, - "vin": { - "english_name": "Vinza" - }, - "blm": { - "english_name": "Beli (Sudan)" - }, - "mkc": { - "english_name": "Siliput" - }, - "utu": { - "english_name": "Utu" - }, - "xnt": { - "english_name": "Narragansett" - }, - "rue": { - "english_name": "Rusyn" - }, - "kaw": { - "english_name": "Kawi" - }, - "peo": { - "english_name": "Persian, Old (ca. 600-400 B.C.)" - }, - "gjn": { - "english_name": "Gonja" - }, - "ecy": { - "english_name": "Eteocypriot" - }, - "jdt": { - "english_name": "Judeo-Tat" - }, - "esl": { - "english_name": "Egypt Sign Language" - }, - "bti": { - "english_name": "Burate" - }, - "nev": { - "english_name": "Nyaheun" - }, - "omb": { - "english_name": "Ambae, East" - }, - "ks": { - "english_name": "Kashmiri" - }, - "gbg": { - "english_name": "Gbanziri" - }, - "bhp": { - "english_name": "Bima" - }, - "kpz": { - "english_name": "Kupsabiny" - }, - "zyg": { - "english_name": "Zhuang, Yang" - }, - "dsq": { - "english_name": "Tadaksahak" - }, - "pck": { - "english_name": "Chin, Paite" - }, - "wim": { - "english_name": "Wik-Mungkan" - }, - "tbc": { - "english_name": "Takia" - }, - "xcr": { - "english_name": "Carian" - }, - "ar": { - "english_name": "Arabic", - "name": "العربية" - }, - "vai": { - "english_name": "Vai" - }, - "gll": { - "english_name": "Garlali" - }, - "bmf": { - "english_name": "Bom" - }, - "abt": { - "english_name": "Ambulas" - }, - "mok": { - "english_name": "Morori" - }, - "buc": { - "english_name": "Bushi" - }, - "lbn": { - "english_name": "Lamet" - }, - "aoj": { - "english_name": "Mufian" - }, - "mpl": { - "english_name": "Watut, Middle" - }, - "unz": { - "english_name": "Kaili, Unde" - }, - "csl": { - "english_name": "Chinese Sign Language" - }, - "mby": { - "english_name": "Memoni" - }, - "maf": { - "english_name": "Mafa" - }, - "shn": { - "english_name": "Shan" - }, - "teo": { - "english_name": "Teso" - }, - "xts": { - "english_name": "Mixtec, Sindihui" - }, - "sms": { - "english_name": "Sami, Skolt" - }, - "kln": { - "english_name": "Kalenjin" - }, - "dij": { - "english_name": "Dai" - }, - "msu": { - "english_name": "Musom" - }, - "vi": { - "english_name": "Vietnamese", - "name": "Tiếng Việt" - }, - "kyk": { - "english_name": "Kamayo" - }, - "ngr": { - "english_name": "Engdewu" - }, - "klm": { - "english_name": "Migum" - }, - "igm": { - "english_name": "Kanggape" - }, - "bto": { - "english_name": "Bikol, Rinconada" - }, - "krm": { - "english_name": "Krim" - }, - "tii": { - "english_name": "Tiene" - }, - "dob": { - "english_name": "Dobu" - }, - "ttj": { - "english_name": "Tooro" - }, - "sjk": { - "english_name": "Sami, Kemi" - }, - "nrz": { - "english_name": "Lala" - }, - "zch": { - "english_name": "Zhuang, Central Hongshuihe" - }, - "aws": { - "english_name": "Awyu, South" - }, - "alo": { - "english_name": "Larike-Wakasihu" - }, - "plp": { - "english_name": "Palpa" - }, - "nwa": { - "english_name": "Nawathinehena" - }, - "aon": { - "english_name": "Arapesh, Bumbita" - }, - "tag": { - "english_name": "Tagoi" - }, - "dei": { - "english_name": "Demisa" - }, - "smk": { - "english_name": "Bolinao" - }, - "ndf": { - "english_name": "Nadruvian" - }, - "sly": { - "english_name": "Selayar" - }, - "twu": { - "english_name": "Termanu" - }, - "ags": { - "english_name": "Esimbi" - }, - "zyj": { - "english_name": "Zhuang, Youjiang" - }, - "xap": { - "english_name": "Apalachee" - }, - "imn": { - "english_name": "Imonda" - }, - "goj": { - "english_name": "Gowlan" - }, - "ikz": { - "english_name": "Ikizu" - }, - "miy": { - "english_name": "Mixtec, Ayutla" - }, - "iyo": { - "english_name": "Mesaka" - }, - "kdl": { - "english_name": "Tsikimba" - }, - "ptt": { - "english_name": "Enrekang" - }, - "ymq": { - "english_name": "Muji, Qila" - }, - "vaa": { - "english_name": "Vaagri Booli" - }, - "xcy": { - "english_name": "Cayuse" - }, - "pgg": { - "english_name": "Pangwali" - }, - "aly": { - "english_name": "Alyawarr" - }, - "bdt": { - "english_name": "Bokoto" - }, - "zkk": { - "english_name": "Karankawa" - }, - "mkj": { - "english_name": "Mokilese" - }, - "way": { - "english_name": "Wayana" - }, - "kxs": { - "english_name": "Kangjia" - }, - "sdk": { - "english_name": "Sos Kundi" - }, - "mne": { - "english_name": "Naba" - }, - "iry": { - "english_name": "Iraya" - }, - "ngp": { - "english_name": "Ngulu" - }, - "eke": { - "english_name": "Ekit" - }, - "mkr": { - "english_name": "Malas" - }, - "sxo": { - "english_name": "Sorothaptic" - }, - "auy": { - "english_name": "Awiyaana" - }, - "llc": { - "english_name": "Lele (Guinea)" - }, - "bcs": { - "english_name": "Kohumono" - }, - "aja": { - "english_name": "Aja (Sudan)" - }, - "kab": { - "english_name": "Kabyle" - }, - "mdv": { - "english_name": "Mixtec, Santa Lucía Monteverde" - }, - "vkj": { - "english_name": "Kujarge" - }, - "kad": { - "english_name": "Adara" - }, - "ymx": { - "english_name": "Muji, Northern" - }, - "aup": { - "english_name": "Makayam" - }, - "swo": { - "english_name": "Shanenawa" - }, - "plq": { - "english_name": "Palaic" - }, - "mph": { - "english_name": "Maung" - }, - "ksv": { - "english_name": "Kusu" - }, - "zkn": { - "english_name": "Kanan" - }, - "kcy": { - "english_name": "Korandje" - }, - "mzu": { - "english_name": "Inapang" - }, - "svm": { - "english_name": "Slavomolisano" - }, - "aos": { - "english_name": "Taikat" - }, - "cip": { - "english_name": "Chiapanec" - }, - "nsp": { - "english_name": "Nepalese Sign Language" - }, - "akd": { - "english_name": "Ukpet-Ehom" - }, - "wrd": { - "english_name": "Warduji" - }, - "zng": { - "english_name": "Mang" - }, - "obo": { - "english_name": "Manobo, Obo" - }, - "dwa": { - "english_name": "Diri" - }, - "vrt": { - "english_name": "Burmbar" - }, - "xem": { - "english_name": "Kembayan" - }, - "cpc": { - "english_name": "Ajyíninka Apurucayali" - }, - "sib": { - "english_name": "Sebop" - }, - "mff": { - "english_name": "Naki" - }, - "yes": { - "english_name": "Nyankpa" - }, - "txc": { - "english_name": "Tsetsaut" - }, - "cbl": { - "english_name": "Chin, Bualkhaw" - }, - "fi": { - "english_name": "Finnish", - "name": "suomi" - }, - "lgl": { - "english_name": "Wala" - }, - "etr": { - "english_name": "Edolo" - }, - "tyz": { - "english_name": "Tày" - }, - "aqd": { - "english_name": "Dogon, Ampari" - }, - "tja": { - "english_name": "Tajuasohn" - }, - "nnb": { - "english_name": "Nande" - }, - "ayo": { - "english_name": "Ayoreo" - }, - "ctp": { - "english_name": "Chatino, Western Highland" - }, - "knm": { - "english_name": "Kanamarí" - }, - "dgr": { - "english_name": "Dogrib" - }, - "bs": { - "english_name": "Bosnian", - "name": "Bosnian" - }, - "byv": { - "english_name": "Medumba" - }, - "kts": { - "english_name": "Muyu, South" - }, - "bpu": { - "english_name": "Bongu" - }, - "nen": { - "english_name": "Nengone" - }, - "sl": { - "english_name": "Slovenian", - "name": "slovenščina" - }, - "tmd": { - "english_name": "Haruai" - }, - "yrb": { - "english_name": "Yareba" - }, - "rie": { - "english_name": "Rien" - }, - "qu": { - "english_name": "Quechua" - }, - "dgh": { - "english_name": "Dghwede" - }, - "vmw": { - "english_name": "Makhuwa" - }, - "grx": { - "english_name": "Guriaso" - }, - "sar": { - "english_name": "Saraveca" - }, - "ztm": { - "english_name": "Zapotec, San Agustín Mixtepec" - }, - "boa": { - "english_name": "Bora" - }, - "xga": { - "english_name": "Galatian" - }, - "aas": { - "english_name": "Aasáx" - }, - "kif": { - "english_name": "Kham, Eastern Parbate" - }, - "bsw": { - "english_name": "Baiso" - }, - "drd": { - "english_name": "Darmiya" - }, - "twe": { - "english_name": "Tewa (Indonesia)" - }, - "abx": { - "english_name": "Inabaknon" - }, - "ntw": { - "english_name": "Nottoway" - }, - "lse": { - "english_name": "Lusengo" - }, - "xby": { - "english_name": "Batyala" - }, - "cjm": { - "english_name": "Cham, Eastern" - }, - "dgi": { - "english_name": "Dagara, Northern" - }, - "xps": { - "english_name": "Pisidian" - }, - "hlb": { - "english_name": "Halbi" - }, - "dnt": { - "english_name": "Dani, Mid Grand Valley" - }, - "bht": { - "english_name": "Bhattiyali" - }, - "mbz": { - "english_name": "Mixtec, Amoltepec" - }, - "gvp": { - "english_name": "Gavião, Pará" - }, - "cmr": { - "english_name": "Chin, Mro-Khimi" - }, - "qvl": { - "english_name": "Quechua, Cajatambo North Lima" - }, - "moy": { - "english_name": "Shekkacho" - }, - "smy": { - "english_name": "Semnani" - }, - "aqn": { - "english_name": "Alta, Northern" - }, - "syk": { - "english_name": "Sukur" - }, - "gdl": { - "english_name": "Dirasha" - }, - "doh": { - "english_name": "Dong" - }, - "jda": { - "english_name": "Jad" - }, - "mad": { - "english_name": "Madurese" - }, - "var": { - "english_name": "Huarijio" - }, - "trj": { - "english_name": "Toram" - }, - "tvy": { - "english_name": "Pidgin, Timor" - }, - "luy": { - "english_name": "Luyia" - }, - "ldi": { - "english_name": "Laari" - }, - "nlu": { - "english_name": "Nchumbulu" - }, - "klr": { - "english_name": "Khaling" - }, - "mfk": { - "english_name": "Mofu, North" - }, - "ksr": { - "english_name": "Borong" - }, - "akt": { - "english_name": "Akolet" - }, - "bkt": { - "english_name": "Boloki" - }, - "ruf": { - "english_name": "Luguru" - }, - "dka": { - "english_name": "Dakpakha" - }, - "bdw": { - "english_name": "Baham" - }, - "myl": { - "english_name": "Moma" - }, - "bda": { - "english_name": "Bayot" - }, - "bpr": { - "english_name": "Blaan, Koronadal" - }, - "ugn": { - "english_name": "Ugandan Sign Language" - }, - "mel": { - "english_name": "Melanau, Central" - }, - "kwo": { - "english_name": "Kwomtari" - }, - "bmd": { - "english_name": "Manduri, Baga" - }, - "rkw": { - "english_name": "Arakwal" - }, - "png": { - "english_name": "Pongu" - }, - "bzm": { - "english_name": "Bolondo" - }, - "sbw": { - "english_name": "Simba" - }, - "aqp": { - "english_name": "Atakapa" - }, - "sah": { - "english_name": "Yakut" - }, - "cps": { - "english_name": "Capiznon" - }, - "dze": { - "english_name": "Djiwarli" - }, - "srs": { - "english_name": "Sarsi" - }, - "anz": { - "english_name": "Anem" - }, - "skw": { - "english_name": "Creole Dutch, Skepi" - }, - "nut": { - "english_name": "Nung (Viet Nam)" - }, - "ngc": { - "english_name": "Ngombe (Democratic Republic of Congo)" - }, - "xrb": { - "english_name": "Karaboro, Eastern" - }, - "btm": { - "english_name": "Batak Mandailing" - }, - "poo": { - "english_name": "Pomo, Central" - }, - "tlb": { - "english_name": "Tobelo" - }, - "nil": { - "english_name": "Nila" - }, - "nns": { - "english_name": "Ningye" - }, - "skg": { - "english_name": "Malagasy, Sakalava" - }, - "sww": { - "english_name": "Sowa" - }, - "kyg": { - "english_name": "Keyagana" - }, - "hah": { - "english_name": "Hahon" - }, - "hii": { - "english_name": "Hinduri" - }, - "fui": { - "english_name": "Fulfulde, Bagirmi" - }, - "ahh": { - "english_name": "Aghu" - }, - "tec": { - "english_name": "Terik" - }, - "whu": { - "english_name": "Kayan, Wahau" - }, - "txt": { - "english_name": "Citak" - }, - "qug": { - "english_name": "Quichua, Chimborazo Highland" - }, - "bhg": { - "english_name": "Binandere" - }, - "xsn": { - "english_name": "Sanga (Nigeria)" - }, - "tbu": { - "english_name": "Tubar" - }, - "ysl": { - "english_name": "Yugoslavian Sign Language" - }, - "kfd": { - "english_name": "Koraga, Korra" - }, - "mt": { - "english_name": "Maltese", - "name": "Malti" - }, - "saq": { - "english_name": "Samburu" - }, - "stp": { - "english_name": "Tepehuan, Southeastern" - }, - "sbq": { - "english_name": "Sileibi" - }, - "tnb": { - "english_name": "Tunebo, Western" - }, - "aec": { - "english_name": "Arabic, Saidi" - }, - "tpg": { - "english_name": "Kula" - }, - "kjo": { - "english_name": "Kinnauri, Harijan" - }, - "leq": { - "english_name": "Lembena" - }, - "ktd": { - "english_name": "Kokata" - }, - "tad": { - "english_name": "Tause" - }, - "mtq": { - "english_name": "Muong" - }, - "tig": { - "english_name": "Tigre", - "name": "ትግረ" - }, - "ht": { - "english_name": "Haitian" - }, - "nkk": { - "english_name": "Nokuku" - }, - "blj": { - "english_name": "Bolongan" - }, - "tdo": { - "english_name": "Teme" - }, - "xmc": { - "english_name": "Makhuwa-Marrevone" - }, - "mbf": { - "english_name": "Malay, Baba" - }, - "aty": { - "english_name": "Aneityum" - }, - "grb": { - "english_name": "Grebo" - }, - "cwe": { - "english_name": "Kwere" - }, - "cfa": { - "english_name": "Dijim-Bwilim" - }, - "gig": { - "english_name": "Goaria" - }, - "mxn": { - "english_name": "Moi (Indonesia)" - }, - "zac": { - "english_name": "Zapotec, Ocotlán" - }, - "bny": { - "english_name": "Bintulu" - }, - "jeu": { - "english_name": "Jonkor Bourmataguil" - }, - "gnk": { - "english_name": "//Gana" - }, - "pfa": { - "english_name": "Pááfang" - }, - "bcq": { - "english_name": "Bench" - }, - "dbv": { - "english_name": "Dungu" - }, - "zhn": { - "english_name": "Zhuang, Nong" - }, - "hba": { - "english_name": "Hamba" - }, - "kte": { - "english_name": "Nubri" - }, - "fy": { - "english_name": "Frisian, Western" - }, - "nhi": { - "english_name": "Nahuatl, Zacatlán-Ahuacatlán-Tepetzintla" - }, - "okx": { - "english_name": "Okpe (Northwestern Edo)" - }, - "kwa": { - "english_name": "Dâw" - }, - "kjh": { - "english_name": "Khakas" - }, - "mr": { - "english_name": "Marathi", - "name": "मराठी" - }, - "ngz": { - "english_name": "Ngungwel" - }, - "gbi": { - "english_name": "Galela" - }, - "ubu": { - "english_name": "Umbu-Ungu" - }, - "bgn": { - "english_name": "Balochi, Western" - }, - "las": { - "english_name": "Lama (Togo)" - }, - "ojp": { - "english_name": "Japanese, Old" - }, - "asd": { - "english_name": "Asas" - }, - "nej": { - "english_name": "Neko" - }, - "ygr": { - "english_name": "Yagaria" - }, - "goz": { - "english_name": "Gozarkhani" - }, - "nat": { - "english_name": "Hungworo" - }, - "ymp": { - "english_name": "Yamap" - }, - "zaz": { - "english_name": "Zari" - }, - "yaz": { - "english_name": "Lokaa" - }, - "nd": { - "english_name": "Ndebele, North" - }, - "lkm": { - "english_name": "Kalaamaya" - }, - "brl": { - "english_name": "Birwa" - }, - "lbj": { - "english_name": "Ladakhi" - }, - "chk": { - "english_name": "Chuukese" - }, - "mva": { - "english_name": "Manam" - }, - "lvk": { - "english_name": "Lavukaleve" - }, - "hnj": { - "english_name": "Hmong Njua" - }, - "lko": { - "english_name": "Khayo" - }, - "mgi": { - "english_name": "Lijili" - }, - "cmo": { - "english_name": "Mnong, Central" - }, - "woa": { - "english_name": "Tyaraity" - }, - "eky": { - "english_name": "Kayah, Eastern" - }, - "yoy": { - "english_name": "Yoy" - }, - "bap": { - "english_name": "Bantawa" - }, - "auq": { - "english_name": "Anus" - }, - "sam": { - "english_name": "Aramaic, Samaritan" - }, - "nhm": { - "english_name": "Nahuatl, Morelos" - }, - "agb": { - "english_name": "Legbo" - }, - "dag": { - "english_name": "Dagbani" - }, - "sep": { - "english_name": "Sénoufo, Sìcìté" - }, - "kbm": { - "english_name": "Iwal" - }, - "tqw": { - "english_name": "Tonkawa" - }, - "cwb": { - "english_name": "Maindo" - }, - "ba": { - "english_name": "Bashkir" - }, - "nht": { - "english_name": "Nahuatl, Ometepec" - }, - "kfo": { - "english_name": "Koro (Côte d'Ivoire)" - }, - "hol": { - "english_name": "Holu" - }, - "bqi": { - "english_name": "Bakhtiari" - }, - "ggn": { - "english_name": "Gurung, Eastern" - }, - "mvm": { - "english_name": "Muya" - }, - "shq": { - "english_name": "Sala" - }, - "tom": { - "english_name": "Tombulu" - }, - "bsp": { - "english_name": "Baga Sitemu" - }, - "dau": { - "english_name": "Daju, Dar Sila" - }, - "trw": { - "english_name": "Torwali" - }, - "car": { - "english_name": "Carib, Galibi" - }, - "xpr": { - "english_name": "Parthian" - }, - "tmp": { - "english_name": "Tai Mène" - }, - "bkw": { - "english_name": "Bekwel" - }, - "wll": { - "english_name": "Wali (Sudan)" - }, - "kgb": { - "english_name": "Kawe" - }, - "peq": { - "english_name": "Pomo, Southern" - }, - "mcb": { - "english_name": "Machiguenga" - }, - "pka": { - "english_name": "Prākrit, Ardhamāgadhī" - }, - "lih": { - "english_name": "Lihir" - }, - "ska": { - "english_name": "Skagit" - }, - "mze": { - "english_name": "Morawa" - }, - "tlm": { - "english_name": "Tolomako" - }, - "ulw": { - "english_name": "Ulwa" - }, - "rug": { - "english_name": "Roviana" - }, - "kpr": { - "english_name": "Korafe-Yegha" - }, - "ary": { - "english_name": "Arabic, Moroccan" - }, - "eso": { - "english_name": "Estonian Sign Language" - }, - "xgl": { - "english_name": "Galindan" - }, - "kvq": { - "english_name": "Karen, Geba" - }, - "xkd": { - "english_name": "Kayan, Mendalam" - }, - "bwb": { - "english_name": "Namosi-Naitasiri-Serua" - }, - "ttv": { - "english_name": "Titan" - }, - "nyj": { - "english_name": "Nyanga" - }, - "bok": { - "english_name": "Bonjo" - }, - "nhc": { - "english_name": "Nahuatl, Tabasco" - }, - "wsa": { - "english_name": "Warembori" - }, - "bnk": { - "english_name": "Bierebo" - }, - "boq": { - "english_name": "Bogaya" - }, - "nyh": { - "english_name": "Nyigina" - }, - "rog": { - "english_name": "Roglai, Northern" - }, - "swf": { - "english_name": "Sere" - }, - "cpo": { - "english_name": "Kpeego" - }, - "krd": { - "english_name": "Kairui-Midiki" - }, - "tyj": { - "english_name": "Tai Do" - }, - "zrg": { - "english_name": "Mirgan" - }, - "mki": { - "english_name": "Dhatki" - }, - "jpa": { - "english_name": "Aramaic, Jewish Palestinian" - }, - "uun": { - "english_name": "Kulon-Pazeh" - }, - "tdt": { - "english_name": "Tetun Dili" - }, - "bhc": { - "english_name": "Biga" - }, - "bnc": { - "english_name": "Bontok" - }, - "ekm": { - "english_name": "Elip" - }, - "lcl": { - "english_name": "Lisela" - }, - "pmy": { - "english_name": "Malay, Papuan" - }, - "xeu": { - "english_name": "Keoru-Ahia" - }, - "nif": { - "english_name": "Nek" - }, - "ilk": { - "english_name": "Ilongot" - }, - "cof": { - "english_name": "Colorado" - }, - "nhy": { - "english_name": "Nahuatl, Northern Oaxaca" - }, - "bth": { - "english_name": "Bidayuh, Biatah" - }, - "tla": { - "english_name": "Tepehuan, Southwestern" - }, - "xcm": { - "english_name": "Comecrudo" - }, - "crt": { - "english_name": "Chorote, Iyojwa'ja" - }, - "raf": { - "english_name": "Meohang, Western" - }, - "ifu": { - "english_name": "Ifugao, Mayoyao" - }, - "rau": { - "english_name": "Raute" - }, - "xbc": { - "english_name": "Bactrian" - }, - "arn": { - "english_name": "Mapudungun" - }, - "yia": { - "english_name": "Yinggarda" - }, - "eip": { - "english_name": "Eipomek" - }, - "wro": { - "english_name": "Worrorra" - }, - "sif": { - "english_name": "Siamou" - }, - "bjf": { - "english_name": "Neo-Aramaic, Barzani Jewish" - }, - "sau": { - "english_name": "Saleman" - }, - "zmu": { - "english_name": "Muruwari" - }, - "bar": { - "english_name": "Bavarian" - }, - "dbt": { - "english_name": "Dogon, Ben Tey" - }, - "ets": { - "english_name": "Yekhee" - }, - "czt": { - "english_name": "Chin, Zotung" - }, - "dgc": { - "english_name": "Agta, Casiguran Dumagat" - }, - "kgr": { - "english_name": "Abun" - }, - "bek": { - "english_name": "Bebeli" - }, - "taz": { - "english_name": "Tocho" - }, - "lep": { - "english_name": "Lepcha" - }, - "kmv": { - "english_name": "Creole French, Karipúna" - }, - "nim": { - "english_name": "Nilamba" - }, - "tum": { - "english_name": "Tumbuka" - }, - "bsu": { - "english_name": "Bahonsuai" - }, - "tco": { - "english_name": "Taungyo" - }, - "spm": { - "english_name": "Akukem" - }, - "jv": { - "english_name": "Javanese" - }, - "isa": { - "english_name": "Isabi" - }, - "fay": { - "english_name": "Fars, Southwestern" - }, - "pln": { - "english_name": "Palenquero" - }, - "qvj": { - "english_name": "Quichua, Loja Highland" - }, - "xav": { - "english_name": "Xavánte" - }, - "vsv": { - "english_name": "Valencian Sign Language" - }, - "tyl": { - "english_name": "Thu Lao" - }, - "spq": { - "english_name": "Spanish, Loreto-Ucayali" - }, - "ak": { - "english_name": "Akan" - }, - "mug": { - "english_name": "Musgu" - }, - "jum": { - "english_name": "Jumjum" - }, - "era": { - "english_name": "Eravallan" - }, - "kjb": { - "english_name": "Q'anjob'al" - }, - "irh": { - "english_name": "Irarutu" - }, - "elx": { - "english_name": "Elamite" - }, - "cay": { - "english_name": "Cayuga" - }, - "yun": { - "english_name": "Bena (Nigeria)" - }, - "god": { - "english_name": "Godié" - }, - "nnp": { - "english_name": "Naga, Wancho" - }, - "kem": { - "english_name": "Kemak" - }, - "knu": { - "english_name": "Kono (Guinea)" - }, - "grc": { - "english_name": "Greek, Ancient (to 1453)" - }, - "muz": { - "english_name": "Mursi" - }, - "gye": { - "english_name": "Gyem" - }, - "noe": { - "english_name": "Nimadi" - }, - "sgy": { - "english_name": "Sanglechi" - }, - "bvu": { - "english_name": "Malay, Bukit" - }, - "fln": { - "english_name": "Flinders Island" - }, - "qul": { - "english_name": "Quechua, North Bolivian" - }, - "uta": { - "english_name": "Otank" - }, - "ebu": { - "english_name": "Embu" - }, - "hmi": { - "english_name": "Hmong, Northern Huishui" - }, - "tku": { - "english_name": "Totonac, Upper Necaxa" - }, - "ppe": { - "english_name": "Papi" - }, - "ril": { - "english_name": "Riang (Myanmar)" - }, - "iya": { - "english_name": "Iyayu" - }, - "gwx": { - "english_name": "Gua" - }, - "sjw": { - "english_name": "Shawnee" - }, - "kpo": { - "english_name": "Ikposo" - }, - "ars": { - "english_name": "Arabic, Najdi" - }, - "xru": { - "english_name": "Marriammu" - }, - "nmg": { - "english_name": "Kwasio" - }, - "slu": { - "english_name": "Selaru" - }, - "lmv": { - "english_name": "Lomaiviti" - }, - "ide": { - "english_name": "Idere" - }, - "bev": { - "english_name": "Bété, Daloa" - }, - "xat": { - "english_name": "Katawixi" - }, - "wbl": { - "english_name": "Wakhi" - }, - "gno": { - "english_name": "Gondi, Northern" - }, - "ngy": { - "english_name": "Tibea" - }, - "fie": { - "english_name": "Fyer" - }, - "vau": { - "english_name": "Vanuma" - }, - "bml": { - "english_name": "Bomboli" - }, - "gip": { - "english_name": "Gimi (West New Britain)" - }, - "dia": { - "english_name": "Dia" - }, - "ury": { - "english_name": "Orya" - }, - "kmj": { - "english_name": "Kumarbhag Paharia" - }, - "ort": { - "english_name": "Oriya, Adivasi" - }, - "ast": { - "english_name": "Asturian", - "name": "Asturianu" - }, - "ptw": { - "english_name": "Pentlatch" - }, - "vma": { - "english_name": "Martuyhunira" - }, - "emu": { - "english_name": "Muria, Eastern" - }, - "emg": { - "english_name": "Meohang, Eastern" - }, - "puj": { - "english_name": "Punan Tubu" - }, - "bcg": { - "english_name": "Baga Binari" - }, - "kkq": { - "english_name": "Kaiku" - }, - "gea": { - "english_name": "Geruma" - }, - "kdr": { - "english_name": "Karaim" - }, - "ima": { - "english_name": "Malasar, Mala" - }, - "afk": { - "english_name": "Nanubae" - }, - "auh": { - "english_name": "Aushi" - }, - "ksx": { - "english_name": "Kedang" - }, - "dnr": { - "english_name": "Danaru" - }, - "kku": { - "english_name": "Tumi" - }, - "ckl": { - "english_name": "Cibak" - }, - "gaj": { - "english_name": "Gadsup" - }, - "obm": { - "english_name": "Moabite" - }, - "sc": { - "english_name": "Sardinian" - }, - "lbx": { - "english_name": "Lawangan" - }, - "pno": { - "english_name": "Panobo" - }, - "bds": { - "english_name": "Burunge" - }, - "crc": { - "english_name": "Lonwolwol" - }, - "gwn": { - "english_name": "Gwandara" - }, - "tnd": { - "english_name": "Tunebo, Angosturas" - }, - "daj": { - "english_name": "Daju, Dar Fur" - }, - "iwk": { - "english_name": "I-Wak" - }, - "hsb": { - "english_name": "Sorbian, Upper" - }, - "kvz": { - "english_name": "Tsakwambo" - }, - "zen": { - "english_name": "Zenaga" - }, - "tgv": { - "english_name": "Tingui-Boto" - }, - "yel": { - "english_name": "Yela" - }, - "av": { - "english_name": "Avaric" - }, - "pin": { - "english_name": "Piame" - }, - "aed": { - "english_name": "Argentine Sign Language" - }, - "esk": { - "english_name": "Inupiatun, Northwest Alaska" - }, - "jul": { - "english_name": "Jirel" - }, - "mkf": { - "english_name": "Miya" - }, - "mgo": { - "english_name": "Meta'" - }, - "tao": { - "english_name": "Yami" - }, - "paw": { - "english_name": "Pawnee" - }, - "los": { - "english_name": "Loniu" - }, - "iby": { - "english_name": "Ibani" - }, - "kxm": { - "english_name": "Khmer, Northern" - }, - "bxk": { - "english_name": "Bukusu" - }, - "wbk": { - "english_name": "Waigali" - }, - "tdq": { - "english_name": "Tita" - }, - "bwy": { - "english_name": "Bwamu, Cwi" - }, - "atk": { - "english_name": "Ati" - }, - "tss": { - "english_name": "Taiwan Sign Language" - }, - "jiu": { - "english_name": "Jinuo, Youle" - }, - "ywa": { - "english_name": "Kalou" - }, - "nxe": { - "english_name": "Nage" - }, - "gom": { - "english_name": "Konkani, Goan" - }, - "ssc": { - "english_name": "Suba-Simbiti" - }, - "pww": { - "english_name": "Karen, Pwo Northern" - }, - "aok": { - "english_name": "Arhö" - }, - "qya": { - "english_name": "Quenya" - }, - "ada": { - "english_name": "Adangme" - }, - "rir": { - "english_name": "Ribun" - }, - "kkh": { - "english_name": "Khün" - }, - "prc": { - "english_name": "Parachi" - }, - "quf": { - "english_name": "Quechua, Lambayeque" - }, - "yav": { - "english_name": "Yangben" - }, - "wbw": { - "english_name": "Woi" - }, - "gei": { - "english_name": "Gebe" - }, - "huy": { - "english_name": "Hulaulá" - }, - "nlk": { - "english_name": "Yali, Ninia" - }, - "njt": { - "english_name": "Ndyuka-Trio Pidgin" - }, - "tmu": { - "english_name": "Iau" - }, - "pbl": { - "english_name": "Mak (Nigeria)" - }, - "bpj": { - "english_name": "Binji" - }, - "ppu": { - "english_name": "Papora" - }, - "tnx": { - "english_name": "Tanema" - }, - "cal": { - "english_name": "Carolinian" - }, - "tdv": { - "english_name": "Toro" - }, - "kvw": { - "english_name": "Wersing" - }, - "lyn": { - "english_name": "Luyana" - }, - "tlk": { - "english_name": "Taloki" - }, - "dny": { - "english_name": "Dení" - }, - "bbk": { - "english_name": "Babanki" - }, - "afp": { - "english_name": "Tapei" - }, - "snj": { - "english_name": "Sango, Riverain" - }, - "lip": { - "english_name": "Sekpele" - }, - "bja": { - "english_name": "Budza" - }, - "umo": { - "english_name": "Umotína" - }, - "jan": { - "english_name": "Jandai" - }, - "cur": { - "english_name": "Chhulung" - }, - "urn": { - "english_name": "Uruangnirin" - }, - "xbb": { - "english_name": "Burdekin, Lower" - }, - "bhd": { - "english_name": "Bhadrawahi" - }, - "ixc": { - "english_name": "Ixcatec" - }, - "sku": { - "english_name": "Sakao" - }, - "enq": { - "english_name": "Enga" - }, - "ncl": { - "english_name": "Nahuatl, Michoacán" - }, - "nka": { - "english_name": "Nkoya" - }, - "xaw": { - "english_name": "Kawaiisu" - }, - "bcp": { - "english_name": "Bali (Democratic Republic of Congo)" - }, - "fit": { - "english_name": "Finnish, Tornedalen" - }, - "lab": { - "english_name": "Linear A" - }, - "jor": { - "english_name": "Jorá" - }, - "agd": { - "english_name": "Agarabi" - }, - "zsm": { - "english_name": "Malay, Standard" - }, - "vep": { - "english_name": "Veps" - }, - "tsd": { - "english_name": "Tsakonian" - }, - "yre": { - "english_name": "Yaouré" - }, - "atl": { - "english_name": "Agta, Mt. Iraya" - }, - "bhm": { - "english_name": "Bathari" - }, - "bwa": { - "english_name": "Bwatoo" - }, - "obl": { - "english_name": "Oblo" - }, - "xls": { - "english_name": "Lusitanian" - }, - "kdm": { - "english_name": "Kagoma" - }, - "crf": { - "english_name": "Caramanta" - }, - "kkw": { - "english_name": "Teke-Kukuya" - }, - "tsu": { - "english_name": "Tsou" - }, - "lma": { - "english_name": "Limba, East" - }, - "hut": { - "english_name": "Humla" - }, - "bqx": { - "english_name": "Baangi" - }, - "mgs": { - "english_name": "Manda (Tanzania)" - }, - "sve": { - "english_name": "Serili" - }, - "fpe": { - "english_name": "Creole English, Fernando Po" - }, - "gsl": { - "english_name": "Gusilay" - }, - "xbw": { - "english_name": "Kambiwá" - }, - "csq": { - "english_name": "Croatia Sign Language" - }, - "iko": { - "english_name": "Olulumo-Ikom" - }, - "krj": { - "english_name": "Kinaray-A" - }, - "mme": { - "english_name": "Mae" - }, - "mmt": { - "english_name": "Malalamai" - }, - "tpi": { - "english_name": "Tok Pisin" - }, - "col": { - "english_name": "Columbia-Wenatchi" - }, - "kvo": { - "english_name": "Dobel" - }, - "mfu": { - "english_name": "Mbwela" - }, - "bdv": { - "english_name": "Bodo Parja" - }, - "mvk": { - "english_name": "Mekmek" - }, - "cds": { - "english_name": "Chadian Sign Language" - }, - "yej": { - "english_name": "Yevanic" - }, - "bba": { - "english_name": "Baatonum" - }, - "ycl": { - "english_name": "Lolopo" - }, - "due": { - "english_name": "Agta, Umiray Dumaget" - }, - "byz": { - "english_name": "Banaro" - }, - "nzz": { - "english_name": "Dogon, Nanga Dama" - }, - "lmf": { - "english_name": "Lembata, South" - }, - "kwl": { - "english_name": "Kofyar" - }, - "ne": { - "english_name": "Nepali (macrolanguage)" - }, - "lzh": { - "english_name": "Chinese, Literary" - }, - "sse": { - "english_name": "Balangingi" - }, - "hif": { - "english_name": "Hindi, Fiji" - }, - "btr": { - "english_name": "Baetora" - }, - "pru": { - "english_name": "Puragi" - }, - "stg": { - "english_name": "Trieng" - }, - "tcg": { - "english_name": "Tamagario" - }, - "iin": { - "english_name": "Thiin" - }, - "pux": { - "english_name": "Puare" - }, - "xso": { - "english_name": "Solano" - }, - "ais": { - "english_name": "Amis, Nataoran" - }, - "cok": { - "english_name": "Cora, Santa Teresa" - }, - "lul": { - "english_name": "Olu'bo" - }, - "sns": { - "english_name": "South West Bay" - }, - "phv": { - "english_name": "Pahlavani" - }, - "ack": { - "english_name": "Aka-Kora" - }, - "zau": { - "english_name": "Zangskari" - }, - "yir": { - "english_name": "Awyu, North" - }, - "lya": { - "english_name": "Layakha" - }, - "llj": { - "english_name": "Ladji Ladji" - }, - "bmw": { - "english_name": "Bomwali" - }, - "ull": { - "english_name": "Ullatan" - }, - "tbt": { - "english_name": "Tembo (Kitembo)" - }, - "mxf": { - "english_name": "Malgbe" - }, - "kko": { - "english_name": "Karko" - }, - "mni": { - "english_name": "Manipuri" - }, - "zpj": { - "english_name": "Zapotec, Quiavicuzas" - }, - "jvn": { - "english_name": "Javanese, Caribbean" - }, - "sdp": { - "english_name": "Sherdukpen" - }, - "mtx": { - "english_name": "Mixtec, Tidaá" - }, - "osx": { - "english_name": "Saxon, Old" - }, - "gbp": { - "english_name": "Gbaya-Bossangoa" - }, - "xbe": { - "english_name": "Bigambal" - }, - "mjy": { - "english_name": "Mahican" - }, - "aij": { - "english_name": "Lishanid Noshan" - }, - "cbn": { - "english_name": "Nyahkur" - }, - "sbo": { - "english_name": "Sabüm" - }, - "zhd": { - "english_name": "Zhuang, Dai" - }, - "kgk": { - "english_name": "Kaiwá" - }, - "nfa": { - "english_name": "Dhao" - }, - "bmg": { - "english_name": "Bamwe" - }, - "aug": { - "english_name": "Aguna" - }, - "xkr": { - "english_name": "Xakriabá" - }, - "klj": { - "english_name": "Khalaj, Turkic" - }, - "hmh": { - "english_name": "Hmong, Southwestern Huishui" - }, - "yuf": { - "english_name": "Havasupai-Walapai-Yavapai" - }, - "tzh": { - "english_name": "Tzeltal" - }, - "oki": { - "english_name": "Okiek" - }, - "djk": { - "english_name": "Eastern Maroon Creole" - }, - "anv": { - "english_name": "Denya" - }, - "nss": { - "english_name": "Nali" - }, - "hil": { - "english_name": "Hiligaynon" - }, - "dym": { - "english_name": "Dogon, Yanda Dom" - }, - "pmh": { - "english_name": "Prākrit, Māhārāṣṭri" - }, - "zpi": { - "english_name": "Zapotec, Santa María Quiegolani" - }, - "slh": { - "english_name": "Salish, Southern Puget Sound" - }, - "abj": { - "english_name": "Aka-Bea" - }, - "bpl": { - "english_name": "Broome Pearling Lugger Pidgin" - }, - "zpp": { - "english_name": "Zapotec, El Alto" - }, - "es": { - "english_name": "Spanish", - "name": "Español" - }, - "xpk": { - "english_name": "Pano, Kulina" - }, - "mxw": { - "english_name": "Namo" - }, - "cnh": { - "english_name": "Chin, Haka" - }, - "jbr": { - "english_name": "Jofotek-Bromnya" - }, - "ssg": { - "english_name": "Seimat" - }, - "lhp": { - "english_name": "Lhokpu" - }, - "mip": { - "english_name": "Mixtec, Apasco-Apoala" - }, - "kjy": { - "english_name": "Erave" - }, - "otb": { - "english_name": "Tibetan, Old" - }, - "otm": { - "english_name": "Otomi, Eastern Highland" - }, - "yix": { - "english_name": "Yi, Axi" - }, - "iwo": { - "english_name": "Iwur" - }, - "zmj": { - "english_name": "Maridjabin" - }, - "bvq": { - "english_name": "Birri" - }, - "tan": { - "english_name": "Tangale" - }, - "kjk": { - "english_name": "Konjo, Highland" - }, - "cji": { - "english_name": "Chamalal" - }, - "zmb": { - "english_name": "Zimba" - }, - "suv": { - "english_name": "Puroik" - }, - "byq": { - "english_name": "Basay" - }, - "phu": { - "english_name": "Phuan" - }, - "kac": { - "english_name": "Kachin" - }, - "tlu": { - "english_name": "Tulehu" - }, - "mht": { - "english_name": "Mandahuaca" - }, - "mqr": { - "english_name": "Mander" - }, - "axx": { - "english_name": "Xârâgurè" - }, - "mjw": { - "english_name": "Karbi" - }, - "dsi": { - "english_name": "Disa" - }, - "etz": { - "english_name": "Semimi" - }, - "arb": { - "english_name": "Arabic, Standard" - }, - "gwr": { - "english_name": "Gwere" - }, - "sae": { - "english_name": "Sabanê" - }, - "ann": { - "english_name": "Obolo" - }, - "jic": { - "english_name": "Tol" - }, - "nkz": { - "english_name": "Nkari" - }, - "srl": { - "english_name": "Isirawa" - }, - "nkf": { - "english_name": "Naga, Inpui" - }, - "hds": { - "english_name": "Honduras Sign Language" - }, - "khh": { - "english_name": "Kehu" - }, - "dti": { - "english_name": "Dogon, Ana Tinga" - }, - "bwq": { - "english_name": "Bobo Madaré, Southern" - }, - "gek": { - "english_name": "Yiwom" - }, - "dbn": { - "english_name": "Duriankere" - }, - "kax": { - "english_name": "Kao" - }, - "kwp": { - "english_name": "Kodia" - }, - "wkb": { - "english_name": "Kumbaran" - }, - "qua": { - "english_name": "Quapaw" - }, - "pee": { - "english_name": "Taje" - }, - "gne": { - "english_name": "Ganang" - }, - "mft": { - "english_name": "Mokerang" - }, - "hoc": { - "english_name": "Ho" - }, - "wym": { - "english_name": "Wymysorys" - }, - "mdm": { - "english_name": "Mayogo" - }, - "drr": { - "english_name": "Dororo" - }, - "mkt": { - "english_name": "Vamale" - }, - "psu": { - "english_name": "Prākrit, Sauraseni" - }, - "oue": { - "english_name": "Oune" - }, - "ynk": { - "english_name": "Yupik, Naukan" - }, - "sre": { - "english_name": "Sara" - }, - "kfs": { - "english_name": "Bilaspuri" - }, - "dnd": { - "english_name": "Daonda" - }, - "yyz": { - "english_name": "Ayizi" - }, - "yob": { - "english_name": "Yoba" - }, - "glj": { - "english_name": "Gula Iro" - }, - "bgg": { - "english_name": "Bugun" - }, - "hle": { - "english_name": "Hlersu" - }, - "soa": { - "english_name": "Thai Song" - }, - "nsx": { - "english_name": "Nsongo" - }, - "lap": { - "english_name": "Laka (Chad)" - }, - "knf": { - "english_name": "Mankanya" - }, - "ite": { - "english_name": "Itene" - }, - "dtb": { - "english_name": "Kadazan, Labuk-Kinabatangan" - }, - "ivb": { - "english_name": "Ibatan" - }, - "waq": { - "english_name": "Wageman" - }, - "toh": { - "english_name": "Gitonga" - }, - "zmo": { - "english_name": "Molo" - }, - "urc": { - "english_name": "Urningangg" - }, - "wja": { - "english_name": "Waja" - }, - "pem": { - "english_name": "Phende" - }, - "wlw": { - "english_name": "Walak" - }, - "drc": { - "english_name": "Minderico" - }, - "apk": { - "english_name": "Apache, Kiowa" - }, - "bva": { - "english_name": "Barein" - }, - "bjn": { - "english_name": "Banjar" - }, - "imo": { - "english_name": "Imbongu" - }, - "bfd": { - "english_name": "Bafut" - }, - "tvn": { - "english_name": "Tavoyan" - }, - "zax": { - "english_name": "Zapotec, Xadani" - }, - "tme": { - "english_name": "Tremembé" - }, - "ncf": { - "english_name": "Notsi" - }, - "lsi": { - "english_name": "Lashi" - }, - "xmk": { - "english_name": "Macedonian, Ancient" - }, - "bou": { - "english_name": "Bondei" - }, - "kls": { - "english_name": "Kalasha" - }, - "cjh": { - "english_name": "Chehalis, Upper" - }, - "sbz": { - "english_name": "Sara Kaba" - }, - "mvb": { - "english_name": "Mattole" - }, - "pel": { - "english_name": "Pekal" - }, - "gqu": { - "english_name": "Qau" - }, - "pni": { - "english_name": "Aoheng" - }, - "grh": { - "english_name": "Gbiri-Niragu" - }, - "ug": { - "english_name": "Uighur" - }, - "mmb": { - "english_name": "Momina" - }, - "zrn": { - "english_name": "Zerenkel" - }, - "sbn": { - "english_name": "Bhil, Sindhi" - }, - "tyi": { - "english_name": "Teke-Tsaayi" - }, - "asl": { - "english_name": "Asilulu" - }, - "quk": { - "english_name": "Quechua, Chachapoyas" - }, - "wog": { - "english_name": "Wogamusin" - }, - "sus": { - "english_name": "Susu" - }, - "beq": { - "english_name": "Beembe" - }, - "pby": { - "english_name": "Pyu" - }, - "yku": { - "english_name": "Kuamasi" - }, - "msc": { - "english_name": "Maninka, Sankaran" - }, - "buw": { - "english_name": "Bubi" - }, - "kwg": { - "english_name": "Sara Kaba Deme" - }, - "xri": { - "english_name": "Krikati-Timbira" - }, - "mgv": { - "english_name": "Matengo" - }, - "nds": { - "english_name": "German, Low" - }, - "ays": { - "english_name": "Ayta, Sorsogon" - }, - "age": { - "english_name": "Angal" - }, - "mib": { - "english_name": "Mixtec, Atatláhuca" - }, - "xmt": { - "english_name": "Matbat" - }, - "tcn": { - "english_name": "Tichurong" - }, - "ndb": { - "english_name": "Kenswei Nsei" - }, - "fiw": { - "english_name": "Fiwaga" - }, - "gvo": { - "english_name": "Gavião Do Jiparaná" - }, - "brg": { - "english_name": "Baure" - }, - "bnw": { - "english_name": "Bisis" - }, - "idd": { - "english_name": "Ede Idaca" - }, - "seb": { - "english_name": "Senoufo, Shempire" - }, - "ssn": { - "english_name": "Waata" - }, - "bjc": { - "english_name": "Bariji" - }, - "otz": { - "english_name": "Otomi, Ixtenco" - }, - "bxq": { - "english_name": "Beele" - }, - "ncr": { - "english_name": "Ncane" - }, - "seu": { - "english_name": "Serui-Laut" - }, - "obu": { - "english_name": "Obulom" - }, - "sra": { - "english_name": "Saruga" - }, - "dox": { - "english_name": "Bussa" - }, - "shc": { - "english_name": "Sonde" - }, - "kyc": { - "english_name": "Kyaka" - }, - "ibr": { - "english_name": "Ibuoro" - }, - "stt": { - "english_name": "Stieng, Budeh" - }, - "aor": { - "english_name": "Aore" - }, - "lhu": { - "english_name": "Lahu" - }, - "keh": { - "english_name": "Keak" - }, - "saa": { - "english_name": "Saba" - }, - "klb": { - "english_name": "Kiliwa" - }, - "kcw": { - "english_name": "Kabwari" - }, - "ome": { - "english_name": "Omejes" - }, - "kxh": { - "english_name": "Karo (Ethiopia)" - }, - "rad": { - "english_name": "Rade" - }, - "tms": { - "english_name": "Tima" - }, - "iap": { - "english_name": "Iapama" - }, - "na": { - "english_name": "Nauru" - }, - "bfx": { - "english_name": "Bantayanon" - }, - "lmx": { - "english_name": "Laimbue" - }, - "ktc": { - "english_name": "Kholok" - }, - "tsw": { - "english_name": "Tsishingini" - }, - "cbt": { - "english_name": "Chayahuita" - }, - "okn": { - "english_name": "Oki-No-Erabu" - }, - "xmz": { - "english_name": "Mori Bawah" - }, - "fj": { - "english_name": "Fijian" - }, - "kpn": { - "english_name": "Kepkiriwát" - }, - "wky": { - "english_name": "Wangkayutyuru" - }, - "oub": { - "english_name": "Glio-Oubi" - }, - "gvm": { - "english_name": "Gurmana" - }, - "ptr": { - "english_name": "Piamatsina" - }, - "lhn": { - "english_name": "Lahanan" - }, - "bcf": { - "english_name": "Bamu" - }, - "hia": { - "english_name": "Lamang" - }, - "dep": { - "english_name": "Delaware, Pidgin" - }, - "bsl": { - "english_name": "Basa-Gumna" - }, - "ltg": { - "english_name": "Latgalian" - }, - "mcw": { - "english_name": "Mawa (Chad)" - }, - "twq": { - "english_name": "Tasawaq" - }, - "co": { - "english_name": "Corsican" - }, - "lpn": { - "english_name": "Naga, Long Phuri" - }, - "zir": { - "english_name": "Ziriya" - }, - "bo": { - "english_name": "Tibetan" - }, - "xcn": { - "english_name": "Cotoname" - }, - "xkf": { - "english_name": "Khengkha" - }, - "sky": { - "english_name": "Sikaiana" - }, - "kyp": { - "english_name": "Kang" - }, - "xum": { - "english_name": "Umbrian" - }, - "asj": { - "english_name": "Sari" - }, - "btc": { - "english_name": "Bati (Cameroon)" - }, - "ggo": { - "english_name": "Gondi, Southern" - }, - "igg": { - "english_name": "Igana" - }, - "mue": { - "english_name": "Media Lengua" - }, - "gof": { - "english_name": "Gofa" - }, - "trr": { - "english_name": "Taushiro" - }, - "anq": { - "english_name": "Jarawa (India)" - }, - "tgj": { - "english_name": "Tagin" - }, - "bye": { - "english_name": "Pouye" - }, - "nwi": { - "english_name": "Tanna, Southwest" - }, - "zpn": { - "english_name": "Zapotec, Santa Inés Yatzechi" - }, - "asy": { - "english_name": "Asmat, Yaosakor" - }, - "wof": { - "english_name": "Wolof, Gambian" - }, - "kco": { - "english_name": "Kinalakna" - }, - "mct": { - "english_name": "Mengisa" - }, - "bhu": { - "english_name": "Bhunjia" - }, - "nnu": { - "english_name": "Dwang" - }, - "dhv": { - "english_name": "Dehu" - }, - "uan": { - "english_name": "Kuan" - }, - "xcg": { - "english_name": "Gaulish, Cisalpine" - }, - "xkp": { - "english_name": "Kabatei" - }, - "vkl": { - "english_name": "Kulisusu" - }, - "guo": { - "english_name": "Guayabero" - }, - "pmz": { - "english_name": "Pame, Southern" - }, - "byr": { - "english_name": "Baruya" - }, - "dih": { - "english_name": "Kumiai" - }, - "jud": { - "english_name": "Worodougou" - }, - "cpi": { - "english_name": "Pidgin English, Chinese" - }, - "dok": { - "english_name": "Dondo" - }, - "sas": { - "english_name": "Sasak" - }, - "osu": { - "english_name": "One, Southern" - }, - "ndv": { - "english_name": "Ndut" - }, - "msd": { - "english_name": "Yucatec Maya Sign Language" - }, - "aba": { - "english_name": "Abé" - }, - "vil": { - "english_name": "Vilela" - }, - "yab": { - "english_name": "Yuhup" - }, - "dru": { - "english_name": "Rukai" - }, - "yxg": { - "english_name": "Yagara" - }, - "wlr": { - "english_name": "Wailapa" - }, - "mwy": { - "english_name": "Mosiro" - }, - "qva": { - "english_name": "Quechua, Ambo-Pasco" - }, - "nbt": { - "english_name": "Na" - }, - "onn": { - "english_name": "Onobasulu" - }, - "ayi": { - "english_name": "Leyigha" - }, - "kqm": { - "english_name": "Khisa" - }, - "yms": { - "english_name": "Mysian" - }, - "nhk": { - "english_name": "Nahuatl, Isthmus-Cosoleacaque" - }, - "wng": { - "english_name": "Wanggom" - }, - "ccm": { - "english_name": "Creole Malay, Malaccan" - }, - "api": { - "english_name": "Apiaká" - }, - "mxq": { - "english_name": "Mixe, Juquila" - }, - "udj": { - "english_name": "Ujir" - }, - "nij": { - "english_name": "Ngaju" - }, - "vls": { - "english_name": "Vlaams" - }, - "mys": { - "english_name": "Mesmes" - }, - "npn": { - "english_name": "Mondropolon" - }, - "xta": { - "english_name": "Mixtec, Alcozauca" - }, - "kec": { - "english_name": "Keiga" - }, - "bex": { - "english_name": "Jur Modo" - }, - "kne": { - "english_name": "Kankanaey" - }, - "xwo": { - "english_name": "Oirat, Written" - }, - "pa": { - "english_name": "Panjabi", - "name": "ਪੰਜਾਬੀ" - }, - "xsc": { - "english_name": "Scythian" - }, - "wlv": { - "english_name": "Wichí Lhamtés Vejoz" - }, - "tri": { - "english_name": "Trió" - }, - "iai": { - "english_name": "Iaai" - }, - "cah": { - "english_name": "Cahuarano" - }, - "naw": { - "english_name": "Nawuri" - }, - "ziw": { - "english_name": "Zigula" - }, - "iow": { - "english_name": "Iowa-Oto" - }, - "mbo": { - "english_name": "Mbo (Cameroon)" - }, - "nti": { - "english_name": "Natioro" - }, - "ntm": { - "english_name": "Nateni" - }, - "bkc": { - "english_name": "Baka (Cameroon)" - }, - "tsg": { - "english_name": "Tausug" - }, - "xwe": { - "english_name": "Gbe, Xwela" - }, - "aks": { - "english_name": "Akaselem" - }, - "woo": { - "english_name": "Manombai" - }, - "kml": { - "english_name": "Kalinga, Tanudan" - }, - "des": { - "english_name": "Desano" - }, - "txm": { - "english_name": "Tomini" - }, - "khf": { - "english_name": "Khuen" - }, - "grr": { - "english_name": "Taznatit" - }, - "esh": { - "english_name": "Eshtehardi" - }, - "mxa": { - "english_name": "Mixtec, Northwest Oaxaca" - }, - "ngi": { - "english_name": "Ngizim" - }, - "bqs": { - "english_name": "Bosngun" - }, - "dup": { - "english_name": "Duano" - }, - "dez": { - "english_name": "Dengese" - }, - "ota": { - "english_name": "Turkish, Ottoman (1500-1928)" - }, - "nmv": { - "english_name": "Ngamini" - }, - "siq": { - "english_name": "Sonia" - }, - "tzn": { - "english_name": "Tugun" - }, - "mtp": { - "english_name": "Wichí Lhamtés Nocten" - }, - "avo": { - "english_name": "Agavotaguerra" - }, - "cdg": { - "english_name": "Chamari" - }, - "zsr": { - "english_name": "Zapotec, Southern Rincon" - }, - "lro": { - "english_name": "Laro" - }, - "tbl": { - "english_name": "Tboli" - }, - "yde": { - "english_name": "Yangum Dey" - }, - "wmi": { - "english_name": "Wamin" - }, - "hrw": { - "english_name": "Warwar Feni" - }, - "amq": { - "english_name": "Amahai" - }, - "moj": { - "english_name": "Monzombo" - }, - "tmy": { - "english_name": "Tami" - }, - "pes": { - "english_name": "Persian, Iranian" - }, - "bgb": { - "english_name": "Bobongko" - }, - "buf": { - "english_name": "Bushoong" - }, - "moo": { - "english_name": "Monom" - }, - "dev": { - "english_name": "Domung" - }, - "tt": { - "english_name": "Tatar", - "name": "Татарча" - }, - "xxk": { - "english_name": "Ke'o" - }, - "yot": { - "english_name": "Yotti" - }, - "maq": { - "english_name": "Mazatec, Chiquihuitlán" - }, - "csg": { - "english_name": "Chilean Sign Language" - }, - "mat": { - "english_name": "Matlatzinca, San Francisco" - }, - "yva": { - "english_name": "Yawa" - }, - "nnj": { - "english_name": "Nyangatom" - }, - "wea": { - "english_name": "Wewaw" - }, - "loy": { - "english_name": "Loke" - }, - "tna": { - "english_name": "Tacana" - }, - "ktf": { - "english_name": "Kwami" - }, - "hoe": { - "english_name": "Horom" - }, - "smu": { - "english_name": "Somray" - }, - "zph": { - "english_name": "Zapotec, Totomachapan" - }, - "mbl": { - "english_name": "Maxakalí" - }, - "rap": { - "english_name": "Rapanui" - }, - "hti": { - "english_name": "Hoti" - }, - "bkz": { - "english_name": "Bungku" - }, - "thk": { - "english_name": "Tharaka" - }, - "pjt": { - "english_name": "Pitjantjatjara" - }, - "mei": { - "english_name": "Midob" - }, - "zia": { - "english_name": "Zia" - }, - "llo": { - "english_name": "Khlor" - }, - "bxn": { - "english_name": "Burduna" - }, - "hmd": { - "english_name": "Miao, Large Flowery" - }, - "nsu": { - "english_name": "Nahuatl, Sierra Negra" - }, - "sdj": { - "english_name": "Suundi" - }, - "amb": { - "english_name": "Ambo" - }, - "ybi": { - "english_name": "Yamphu" - }, - "lak": { - "english_name": "Laka (Nigeria)" - }, - "amc": { - "english_name": "Amahuaca" - }, - "lbv": { - "english_name": "Lavatbura-Lamusong" - }, - "pug": { - "english_name": "Phuie" - }, - "tzj": { - "english_name": "Tz'utujil" - }, - "tlh": { - "english_name": "Klingon" - }, - "wal": { - "english_name": "Wolaytta" - }, - "raa": { - "english_name": "Dungmali" - }, - "xdc": { - "english_name": "Dacian" - }, - "aez": { - "english_name": "Aeka" - }, - "kol": { - "english_name": "Kol (Papua New Guinea)" - }, - "gdo": { - "english_name": "Ghodoberi" - }, - "mcf": { - "english_name": "Matsés" - }, - "tqu": { - "english_name": "Touo" - }, - "agn": { - "english_name": "Agutaynen" - }, - "xmh": { - "english_name": "Kuku-Muminh" - }, - "snx": { - "english_name": "Sam" - }, - "lyg": { - "english_name": "Lyngngam" - }, - "axe": { - "english_name": "Ayerrerenge" - }, - "sym": { - "english_name": "Samo, Maya" - }, - "cna": { - "english_name": "Changthang" - }, - "laa": { - "english_name": "Subanen, Southern" - }, - "mzi": { - "english_name": "Mazatec, Ixcatlán" - }, - "gby": { - "english_name": "Gbari" - }, - "glc": { - "english_name": "Bon Gula" - }, - "sef": { - "english_name": "Senoufo, Cebaara" - }, - "vmg": { - "english_name": "Lungalunga" - }, - "byf": { - "english_name": "Bete" - }, - "bdh": { - "english_name": "Baka (Sudan)" - }, - "cmn": { - "english_name": "Chinese, Mandarin" - }, - "nud": { - "english_name": "Ngala" - }, - "mvh": { - "english_name": "Mulgi" - }, - "tgz": { - "english_name": "Tagalaka" - }, - "aml": { - "english_name": "War-Jaintia" - }, - "kaa": { - "english_name": "Kara-Kalpak" - }, - "bef": { - "english_name": "Benabena" - }, - "kei": { - "english_name": "Kei" - }, - "byc": { - "english_name": "Ubaghara" - }, - "etu": { - "english_name": "Ejagham" - }, - "zmm": { - "english_name": "Marimanindji" - }, - "ziz": { - "english_name": "Zizilivakan" - }, - "ifa": { - "english_name": "Ifugao, Amganad" - }, - "dax": { - "english_name": "Dayi" - }, - "xna": { - "english_name": "North Arabian, Ancient" - }, - "nma": { - "english_name": "Naga, Maram" - }, - "ono": { - "english_name": "Onondaga" - }, - "dub": { - "english_name": "Dubli" - }, - "ayr": { - "english_name": "Aymara, Central" - }, - "xwk": { - "english_name": "Wangkumara" - }, - "kvt": { - "english_name": "Karen, Lahta" - }, - "meo": { - "english_name": "Malay, Kedah" - }, - "nhg": { - "english_name": "Nahuatl, Tetelcingo" - }, - "sgi": { - "english_name": "Suga" - }, - "www": { - "english_name": "Wawa" - }, - "bct": { - "english_name": "Bendi" - }, - "yng": { - "english_name": "Yango" - }, - "meh": { - "english_name": "Mixtec, Southwestern Tlaxiaco" - }, - "gma": { - "english_name": "Gambera" - }, - "niv": { - "english_name": "Gilyak" - }, - "lex": { - "english_name": "Luang" - }, - "yul": { - "english_name": "Yulu" - }, - "csa": { - "english_name": "Chinantec, Chiltepec" - }, - "nza": { - "english_name": "Mbembe, Tigon" - }, - "dni": { - "english_name": "Dani, Lower Grand Valley" - }, - "aso": { - "english_name": "Dano" - }, - "sn": { - "english_name": "Shona" - }, - "kjp": { - "english_name": "Karen, Pwo Eastern" - }, - "auk": { - "english_name": "Heyo" - }, - "atn": { - "english_name": "Ashtiani" - }, - "bae": { - "english_name": "Baré" - }, - "aid": { - "english_name": "Alngith" - }, - "kjg": { - "english_name": "Khmu" - }, - "sax": { - "english_name": "Sa" - }, - "bxh": { - "english_name": "Buhutu" - }, - "air": { - "english_name": "Airoran" - }, - "fo": { - "english_name": "Faroese" - }, - "mev": { - "english_name": "Mano" - }, - "zhi": { - "english_name": "Zhire" - }, - "acd": { - "english_name": "Gikyode" - }, - "leo": { - "english_name": "Leti (Cameroon)" - }, - "hei": { - "english_name": "Heiltsuk" - }, - "bvn": { - "english_name": "Buna" - }, - "mlp": { - "english_name": "Bargam" - }, - "ccj": { - "english_name": "Kasanga" - }, - "cnu": { - "english_name": "Chenoua" - }, - "zsl": { - "english_name": "Zambian Sign Language" - }, - "tcq": { - "english_name": "Kaiy" - }, - "hmz": { - "english_name": "Hmong Shua" - }, - "mnr": { - "english_name": "Mono (USA)" - }, - "ske": { - "english_name": "Seke (Vanuatu)" - }, - "khu": { - "english_name": "Nkhumbi" - }, - "nrr": { - "english_name": "Norra" - }, - "zmc": { - "english_name": "Margany" - }, - "gab": { - "english_name": "Gabri" - }, - "qvo": { - "english_name": "Quechua, Napo Lowland" - }, - "zza": { - "english_name": "Zaza" - }, - "gbs": { - "english_name": "Gbe, Gbesi" - }, - "yka": { - "english_name": "Yakan" - }, - "hoj": { - "english_name": "Hadothi" - }, - "sjb": { - "english_name": "Sajau Basap" - }, - "mhl": { - "english_name": "Mauwake" - }, - "ami": { - "english_name": "Amis" - }, - "mky": { - "english_name": "Makian, East" - }, - "byd": { - "english_name": "Benyadu'" - }, - "wrp": { - "english_name": "Waropen" - }, - "axk": { - "english_name": "Yaka (Central African Republic)" - }, - "bgv": { - "english_name": "Warkay-Bipim" - }, - "aom": { - "english_name": "Ömie" - }, - "pit": { - "english_name": "Pitta Pitta" - }, - "nyv": { - "english_name": "Nyulnyul" - }, - "shs": { - "english_name": "Shuswap" - }, - "spc": { - "english_name": "Sapé" - }, - "chr": { - "english_name": "Cherokee" - }, - "xcv": { - "english_name": "Chuvantsy" - }, - "psr": { - "english_name": "Portuguese Sign Language" - }, - "jie": { - "english_name": "Jilbe" - }, - "dhr": { - "english_name": "Dhargari" - }, - "az": { - "english_name": "Azerbaijani", - "name": "Azerbaijani" - }, - "bax": { - "english_name": "Bamun" - }, - "ppq": { - "english_name": "Pei" - }, - "lbt": { - "english_name": "Lachi" - }, - "mti": { - "english_name": "Maiwa (Papua New Guinea)" - }, - "mpw": { - "english_name": "Mapidian" - }, - "hhi": { - "english_name": "Hoia Hoia" - }, - "nkj": { - "english_name": "Nakai" - }, - "bbl": { - "english_name": "Bats" - }, - "pcd": { - "english_name": "Picard" - }, - "tiy": { - "english_name": "Tiruray" - }, - "zpm": { - "english_name": "Zapotec, Mixtepec" - }, - "lsg": { - "english_name": "Lyons Sign Language" - }, - "hmg": { - "english_name": "Hmong, Southwestern Guiyang" - }, - "kmx": { - "english_name": "Waboda" - }, - "vae": { - "english_name": "Vale" - }, - "deq": { - "english_name": "Dendi (Central African Republic)" - }, - "mcl": { - "english_name": "Macaguaje" - }, - "bin": { - "english_name": "Bini" - }, - "spi": { - "english_name": "Saponi" - }, - "yog": { - "english_name": "Yogad" - }, - "eri": { - "english_name": "Ogea" - }, - "plv": { - "english_name": "Palawano, Southwest" - }, - "ysg": { - "english_name": "Sonaga" - }, - "dzl": { - "english_name": "Dzalakha" - }, - "bfy": { - "english_name": "Bagheli" - }, - "gu": { - "english_name": "Gujarati", - "name": "ગુજરાતી" - }, - "tos": { - "english_name": "Totonac, Highland" - }, - "iu": { - "english_name": "Inuktitut" - }, - "gmz": { - "english_name": "Mgbolizhia" - }, - "bnd": { - "english_name": "Banda (Indonesia)" - }, - "muq": { - "english_name": "Miao, Eastern Xiangxi" - }, - "ncj": { - "english_name": "Nahuatl, Northern Puebla" - }, - "aat": { - "english_name": "Albanian, Arvanitika" - }, - "hus": { - "english_name": "Huastec" - }, - "zib": { - "english_name": "Zimbabwe Sign Language" - }, - "kyz": { - "english_name": "Kayabí" - }, - "tcc": { - "english_name": "Datooga" - }, - "zar": { - "english_name": "Zapotec, Rincón" - }, - "xae": { - "english_name": "Aequian" - }, - "zpb": { - "english_name": "Zapotec, Yautepec" - }, - "hos": { - "english_name": "Ho Chi Minh City Sign Language" - }, - "rax": { - "english_name": "Rang" - }, - "zh": { - "english_name": "Chinese", - "name": "中文" - }, - "max": { - "english_name": "Malay, North Moluccan" - }, - "agv": { - "english_name": "Dumagat, Remontado" - }, - "nrt": { - "english_name": "Kalapuya, Northern" - }, - "ckt": { - "english_name": "Chukot" - }, - "jas": { - "english_name": "Javanese, New Caledonian" - }, - "ssh": { - "english_name": "Arabic, Shihhi" - }, - "phd": { - "english_name": "Phudagi" - }, - "xle": { - "english_name": "Lemnian" - }, - "adf": { - "english_name": "Arabic, Dhofari" - }, - "tuj": { - "english_name": "Tugutil" - }, - "nvh": { - "english_name": "Nasarian" - }, - "djr": { - "english_name": "Djambarrpuyngu" - }, - "gsp": { - "english_name": "Wasembo" - }, - "kiw": { - "english_name": "Kiwai, Northeast" - }, - "ism": { - "english_name": "Masimasi" - }, - "mox": { - "english_name": "Molima" - }, - "nxi": { - "english_name": "Nindi" - }, - "rjs": { - "english_name": "Rajbanshi" - }, - "cuj": { - "english_name": "Mashco Piro" - }, - "kvk": { - "english_name": "Korean Sign Language" - }, - "bxo": { - "english_name": "Barikanchi" - }, - "ged": { - "english_name": "Gade" - }, - "nih": { - "english_name": "Nyiha (Tanzania)" - }, - "hru": { - "english_name": "Hruso" - }, - "mlx": { - "english_name": "Malfaxal" - }, - "mpj": { - "english_name": "Martu Wangka" - }, - "mdp": { - "english_name": "Mbala" - }, - "yhl": { - "english_name": "Phowa, Hlepho" - }, - "bgi": { - "english_name": "Giangan" - }, - "ldl": { - "english_name": "Kaan" - }, - "nrx": { - "english_name": "Ngurmbur" - }, - "noq": { - "english_name": "Ngongo" - }, - "mrc": { - "english_name": "Maricopa" - }, - "aig": { - "english_name": "Creole English, Antigua and Barbuda" - }, - "fos": { - "english_name": "Siraya" - }, - "pok": { - "english_name": "Pokangá" - }, - "pif": { - "english_name": "Pingelapese" - }, - "buz": { - "english_name": "Bukwen" - }, - "kos": { - "english_name": "Kosraean" - }, - "isd": { - "english_name": "Isnag" - }, - "juk": { - "english_name": "Wapan" - }, - "bwm": { - "english_name": "Biwat" - }, - "muk": { - "english_name": "Mugom" - }, - "btj": { - "english_name": "Malay, Bacanese" - }, - "ldq": { - "english_name": "Lufu" - }, - "kfz": { - "english_name": "Koromfé" - }, - "xwa": { - "english_name": "Kwaza" - }, - "nxl": { - "english_name": "Nuaulu, South" - }, - "acw": { - "english_name": "Arabic, Hijazi" - }, - "xkk": { - "english_name": "Kaco'" - }, - "vap": { - "english_name": "Vaiphei" - }, - "tbn": { - "english_name": "Tunebo, Barro Negro" - }, - "gmv": { - "english_name": "Gamo" - }, - "otr": { - "english_name": "Otoro" - }, - "yap": { - "english_name": "Yapese" - }, - "giy": { - "english_name": "Giyug" - }, - "roe": { - "english_name": "Ronji" - }, - "ams": { - "english_name": "Amami-Oshima, Southern" - }, - "fss": { - "english_name": "Finland-Swedish Sign Language" - }, - "etc": { - "english_name": "Etchemin" - }, - "gyf": { - "english_name": "Gungabula" - }, - "gut": { - "english_name": "Maléku Jaíka" - }, - "kdh": { - "english_name": "Tem" - }, - "wyr": { - "english_name": "Wayoró" - }, - "enw": { - "english_name": "Enwan (Akwa Ibom State)" - }, - "bfk": { - "english_name": "Ban Khor Sign Language" - }, - "mfc": { - "english_name": "Mba" - }, - "sbh": { - "english_name": "Sori-Harengan" - }, - "mk": { - "english_name": "Macedonian", - "name": "Македонски" - }, - "mdi": { - "english_name": "Mamvu" - }, - "qxq": { - "english_name": "Qashqa'i" - }, - "ayn": { - "english_name": "Arabic, Sanaani" - }, - "ple": { - "english_name": "Palu'e" - }, - "bom": { - "english_name": "Berom" - }, - "lsr": { - "english_name": "Aruop" - }, - "now": { - "english_name": "Nyambo" - }, - "kbt": { - "english_name": "Abadi" - }, - "zmr": { - "english_name": "Maranunggu" - }, - "nbi": { - "english_name": "Naga, Mao" - }, - "ssu": { - "english_name": "Susuami" - }, - "byn": { - "english_name": "Bilin", - "name": "Bilin" - }, - "paz": { - "english_name": "Pankararú" - }, - "ymm": { - "english_name": "Maay" - }, - "ktv": { - "english_name": "Katu, Eastern" - }, - "nuz": { - "english_name": "Nahuatl, Tlamacazapa" - }, - "afb": { - "english_name": "Arabic, Gulf" - }, - "knj": { - "english_name": "Kanjobal, Western" - }, - "kk": { - "english_name": "Kazakh" - }, - "kyq": { - "english_name": "Kenga" - }, - "yak": { - "english_name": "Yakama" - }, - "cmm": { - "english_name": "Michigamea" - }, - "bzt": { - "english_name": "Brithenig" - }, - "suq": { - "english_name": "Suri" - }, - "pda": { - "english_name": "Anam" - }, - "mtn": { - "english_name": "Matagalpa" - }, - "kmo": { - "english_name": "Kwoma" - }, - "nwo": { - "english_name": "Nauo" - }, - "nzm": { - "english_name": "Naga, Zeme" - }, - "yyr": { - "english_name": "Yir Yoront" - }, - "nib": { - "english_name": "Nakame" - }, - "nkm": { - "english_name": "Namat" - }, - "wji": { - "english_name": "Warji" - }, - "tch": { - "english_name": "Creole English, Turks And Caicos" - }, - "cce": { - "english_name": "Chopi" - }, - "yki": { - "english_name": "Yoke" - }, - "ugb": { - "english_name": "Kuku-Ugbanh" - }, - "avn": { - "english_name": "Avatime" - }, - "kmy": { - "english_name": "Koma" - }, - "ayc": { - "english_name": "Aymara, Southern" - }, - "mqf": { - "english_name": "Momuna" - }, - "sbb": { - "english_name": "Simbo" - }, - "bzb": { - "english_name": "Andio" - }, - "nqm": { - "english_name": "Ndom" - }, - "bzc": { - "english_name": "Malagasy, Southern Betsimisaraka" - }, - "pcg": { - "english_name": "Paniya" - }, - "am": { - "english_name": "Amharic", - "name": "አማርኛ" - }, - "bea": { - "english_name": "Beaver" - }, - "tdk": { - "english_name": "Tambas" - }, - "gga": { - "english_name": "Gao" - }, - "kfe": { - "english_name": "Kota (India)" - }, - "nqo": { - "english_name": "N'Ko" - }, - "kfx": { - "english_name": "Pahari, Kullu" - }, - "tbk": { - "english_name": "Tagbanwa, Calamian" - }, - "kjn": { - "english_name": "Kunjen" - }, - "axb": { - "english_name": "Abipon" - }, - "ywn": { - "english_name": "Yawanawa" - }, - "sqh": { - "english_name": "Shau" - }, - "xbj": { - "english_name": "Birrpayi" - }, - "azn": { - "english_name": "Nahuatl, Western Durango" - }, - "bte": { - "english_name": "Gamo-Ningi" - }, - "abf": { - "english_name": "Abai Sungai" - }, - "nkt": { - "english_name": "Nyika (Tanzania)" - }, - "xty": { - "english_name": "Mixtec, Yoloxochitl" - }, - "hmr": { - "english_name": "Hmar" - }, - "ipo": { - "english_name": "Ipiko" - }, - "ydg": { - "english_name": "Yidgha" - }, - "ihi": { - "english_name": "Ihievbe" - }, - "arx": { - "english_name": "Aruá (Rodonia State)" - }, - "dmm": { - "english_name": "Dama" - }, - "ka": { - "english_name": "Georgian" - }, - "sbg": { - "english_name": "Seget" - }, - "agc": { - "english_name": "Agatu" - }, - "goa": { - "english_name": "Guro" - }, - "dz": { - "english_name": "Dzongkha" - }, - "aul": { - "english_name": "Aulua" - }, - "trh": { - "english_name": "Turaka" - }, - "bor": { - "english_name": "Borôro" - }, - "asc": { - "english_name": "Asmat, Casuarina Coast" - }, - "kej": { - "english_name": "Kadar" - }, - "had": { - "english_name": "Hatam" - }, - "nmp": { - "english_name": "Nimanbur" - }, - "srf": { - "english_name": "Nafi" - }, - "tly": { - "english_name": "Talysh" - }, - "mvt": { - "english_name": "Mpotovoro" - }, - "pt": { - "english_name": "Portuguese", - "name": "Português" - }, - "mxu": { - "english_name": "Mada (Cameroon)" - }, - "sq": { - "english_name": "Albanian" - }, - "nn": { - "english_name": "Norwegian Nynorsk", - "name": "Norwegian Nynorsk" - }, - "gcl": { - "english_name": "Creole English, Grenadian" - }, - "bfe": { - "english_name": "Betaf" - }, - "val": { - "english_name": "Vehes" - }, - "aru": { - "english_name": "Aruá (Amazonas State)" - }, - "ght": { - "english_name": "Kuke" - }, - "mpo": { - "english_name": "Miu" - }, - "hnn": { - "english_name": "Hanunoo" - }, - "xni": { - "english_name": "Ngarigu" - }, - "vid": { - "english_name": "Vidunda" - }, - "kgy": { - "english_name": "Kyerung" - }, - "tas": { - "english_name": "Tay Boi" - }, - "xay": { - "english_name": "Kayan Mahakam" - }, - "pak": { - "english_name": "Parakanã" - }, - "no": { - "english_name": "Norwegian" - }, - "jye": { - "english_name": "Arabic, Judeo-Yemeni" - }, - "bhf": { - "english_name": "Odiai" - }, - "biu": { - "english_name": "Biete" - }, - "hna": { - "english_name": "Mina (Cameroon)" - }, - "seo": { - "english_name": "Suarmin" - }, - "moa": { - "english_name": "Mwan" - }, - "ufi": { - "english_name": "Ufim" - }, - "bsk": { - "english_name": "Burushaski" - }, - "azm": { - "english_name": "Amuzgo, Ipalapa" - }, - "qxt": { - "english_name": "Quechua, Santa Ana de Tusi Pasco" - }, - "tqo": { - "english_name": "Toaripi" - }, - "qxu": { - "english_name": "Quechua, Arequipa-La Unión" - }, - "ark": { - "english_name": "Arikapú" - }, - "xno": { - "english_name": "Anglo-Norman" - }, - "nmw": { - "english_name": "Nimoa" - }, - "luz": { - "english_name": "Luri, Southern" - }, - "os": { - "english_name": "Ossetian" - }, - "bem": { - "english_name": "Bemba (Zambia)" - }, - "tcy": { - "english_name": "Tulu" - }, - "crq": { - "english_name": "Chorote, Iyo'wujwa" - }, - "dor": { - "english_name": "Dori'o" - }, - "stj": { - "english_name": "Samo, Matya" - }, - "cho": { - "english_name": "Choctaw" - }, - "kr": { - "english_name": "Kanuri" - }, - "hrm": { - "english_name": "Miao, Horned" - }, - "klp": { - "english_name": "Kamasa" - }, - "duw": { - "english_name": "Dusun Witu" - }, - "yao": { - "english_name": "Yao" - }, - "trf": { - "english_name": "Creole English, Trinidadian" - }, - "tbe": { - "english_name": "Tanimbili" - }, - "tnm": { - "english_name": "Tabla" - }, - "zty": { - "english_name": "Zapotec, Yatee" - }, - "ccl": { - "english_name": "Cutchi-Swahili" - }, - "ost": { - "english_name": "Osatu" - }, - "gbo": { - "english_name": "Grebo, Northern" - }, - "bnr": { - "english_name": "Butmas-Tur" - }, - "bmv": { - "english_name": "Bum" - }, - "njb": { - "english_name": "Naga, Nocte" - }, - "kii": { - "english_name": "Kitsai" - }, - "msp": { - "english_name": "Maritsauá" - }, - "sdc": { - "english_name": "Sardinian, Sassarese" - }, - "wib": { - "english_name": "Toussian, Southern" - }, - "xxr": { - "english_name": "Koropó" - }, - "kbw": { - "english_name": "Kaiep" - }, - "ikp": { - "english_name": "Ikpeshi" - }, - "gpa": { - "english_name": "Gupa-Abawa" - }, - "dme": { - "english_name": "Dugwor" - }, - "xcw": { - "english_name": "Coahuilteco" - }, - "qwh": { - "english_name": "Quechua, Huaylas Ancash" - }, - "kfk": { - "english_name": "Kinnauri" - }, - "sdl": { - "english_name": "Saudi Arabian Sign Language" - }, - "drs": { - "english_name": "Gedeo" - }, - "aif": { - "english_name": "Agi" - }, - "sjo": { - "english_name": "Xibe" - }, - "aia": { - "english_name": "Arosi" - }, - "mpr": { - "english_name": "Vangunu" - }, - "rbp": { - "english_name": "Barababaraba" - }, - "zag": { - "english_name": "Zaghawa" - }, - "mta": { - "english_name": "Manobo, Cotabato" - }, - "boj": { - "english_name": "Anjam" - }, - "cdm": { - "english_name": "Chepang" - }, - "kqd": { - "english_name": "Koy Sanjaq Surat" - }, - "inb": { - "english_name": "Inga" - }, - "xpn": { - "english_name": "Kapinawá" - }, - "kuz": { - "english_name": "Kunza" - }, - "xmb": { - "english_name": "Mbonga" - }, - "caz": { - "english_name": "Canichana" - }, - "ibg": { - "english_name": "Ibanag" - }, - "pea": { - "english_name": "Indonesian, Peranakan" - }, - "wdd": { - "english_name": "Wandji" - }, - "bmj": { - "english_name": "Bote-Majhi" - }, - "nca": { - "english_name": "Iyo" - }, - "sxe": { - "english_name": "Sighu" - }, - "zns": { - "english_name": "Mangas" - }, - "tkx": { - "english_name": "Tangko" - }, - "anj": { - "english_name": "Anor" - }, - "gvc": { - "english_name": "Guanano" - }, - "zmk": { - "english_name": "Mandandanyi" - }, - "cwd": { - "english_name": "Cree, Woods" - }, - "fgr": { - "english_name": "Fongoro" - }, - "raw": { - "english_name": "Rawang" - }, - "lgu": { - "english_name": "Longgu" - }, - "cax": { - "english_name": "Chiquitano" - }, - "mub": { - "english_name": "Mubi" - }, - "phg": { - "english_name": "Phuong" - }, - "rer": { - "english_name": "Rer Bare" - }, - "wuy": { - "english_name": "Wauyai" - }, - "wdy": { - "english_name": "Wadjabangayi" - }, - "isn": { - "english_name": "Isanzu" - }, - "sxs": { - "english_name": "Sasaru" - }, - "pbg": { - "english_name": "Paraujano" - }, - "xac": { - "english_name": "Kachari" - }, - "nnk": { - "english_name": "Nankina" - }, - "tka": { - "english_name": "Truká" - }, - "alx": { - "english_name": "Amol" - }, - "abp": { - "english_name": "Ayta, Abellen" - }, - "uge": { - "english_name": "Ughele" - }, - "ijc": { - "english_name": "Izon" - }, - "szw": { - "english_name": "Sawai" - }, - "pms": { - "english_name": "Piemontese" - }, - "wun": { - "english_name": "Bungu" - }, - "bbo": { - "english_name": "Bobo Madaré, Northern" - }, - "syn": { - "english_name": "Senaya" - }, - "wic": { - "english_name": "Wichita" - }, - "kkl": { - "english_name": "Yale, Kosarek" - }, - "wur": { - "english_name": "Wurrugu" - }, - "ter": { - "english_name": "Tereno" - }, - "xwd": { - "english_name": "Wadi Wadi" - }, - "zln": { - "english_name": "Zhuang, Lianshan" - }, - "kbb": { - "english_name": "Kaxuiâna" - }, - "orz": { - "english_name": "Ormu" - }, - "tsp": { - "english_name": "Toussian, Northern" - }, - "kfy": { - "english_name": "Kumaoni" - }, - "ss": { - "english_name": "Swati" - }, - "dik": { - "english_name": "Dinka, Southwestern" - }, - "zte": { - "english_name": "Zapotec, Elotepec" - }, - "bri": { - "english_name": "Mokpwe" - }, - "tlj": { - "english_name": "Talinga-Bwisi" - }, - "wbr": { - "english_name": "Wagdi" - }, - "ldo": { - "english_name": "Loo" - }, - "kgc": { - "english_name": "Kasseng" - }, - "kes": { - "english_name": "Kugbo" - }, - "fng": { - "english_name": "Fanagalo" - }, - "btl": { - "english_name": "Bhatola" - }, - "cuh": { - "english_name": "Chuka" - }, - "pam": { - "english_name": "Pampanga" - }, - "bix": { - "english_name": "Bijori" - }, - "vmm": { - "english_name": "Mixtec, Mitlatongo" - }, - "kap": { - "english_name": "Bezhta" - }, - "or": { - "english_name": "Oriya (macrolanguage)", - "name": "Oriya (macrolanguage)" - }, - "gwu": { - "english_name": "Guwamu" - }, - "bkq": { - "english_name": "Bakairí" - }, - "mtv": { - "english_name": "Asaro'o" - }, - "mgm": { - "english_name": "Mambae" - }, - "kvh": { - "english_name": "Komodo" - }, - "ymh": { - "english_name": "Mili" - }, - "nzi": { - "english_name": "Nzima" - }, - "ldp": { - "english_name": "Tso" - }, - "yne": { - "english_name": "Lang'e" - }, - "hto": { - "english_name": "Huitoto, Minica" - }, - "lsd": { - "english_name": "Lishana Deni" - }, - "kqu": { - "english_name": "Seroa" - }, - "bog": { - "english_name": "Bamako Sign Language" - }, - "arh": { - "english_name": "Arhuaco" - }, - "ksn": { - "english_name": "Kasiguranin" - }, - "mzv": { - "english_name": "Manza" - }, - "jku": { - "english_name": "Labir" - }, - "jek": { - "english_name": "Jeri Kuo" - }, - "nmz": { - "english_name": "Nawdm" - }, - "kpk": { - "english_name": "Kpan" - }, - "bzi": { - "english_name": "Bisu" - }, - "tif": { - "english_name": "Tifal" - }, - "zmv": { - "english_name": "Mbariman-Gudhinma" - }, - "ggb": { - "english_name": "Gbii" - }, - "bjm": { - "english_name": "Bajelani" - }, - "jio": { - "english_name": "Jiamao" - }, - "otd": { - "english_name": "Ot Danum" - }, - "nna": { - "english_name": "Nyangumarta" - }, - "fal": { - "english_name": "Fali, South" - }, - "mth": { - "english_name": "Munggui" - }, - "mhw": { - "english_name": "Mbukushu" - }, - "mvu": { - "english_name": "Marfa" - }, - "quh": { - "english_name": "Quechua, South Bolivian" - }, - "nkx": { - "english_name": "Nkoroo" - }, - "huz": { - "english_name": "Hunzib" - }, - "src": { - "english_name": "Sardinian, Logudorese" - }, - "amy": { - "english_name": "Ami" - }, - "caa": { - "english_name": "Chortí" - }, - "wbe": { - "english_name": "Waritai" - }, - "gbv": { - "english_name": "Gbanu" - }, - "fod": { - "english_name": "Foodo" - }, - "och": { - "english_name": "Chinese, Old" - }, - "kgq": { - "english_name": "Kamoro" - }, - "lgk": { - "english_name": "Lingarak" - }, - "kyd": { - "english_name": "Karey" - }, - "laz": { - "english_name": "Aribwatsa" - }, - "xtu": { - "english_name": "Mixtec, Cuyamecalco" - }, - "bjg": { - "english_name": "Bidyogo" - }, - "rea": { - "english_name": "Rerau" - }, - "ltu": { - "english_name": "Latu" - }, - "noc": { - "english_name": "Nuk" - }, - "npa": { - "english_name": "Nar Phu" - }, - "lhs": { - "english_name": "Mlahsö" - }, - "ydd": { - "english_name": "Yiddish, Eastern" - }, - "bfm": { - "english_name": "Mmen" - }, - "bpn": { - "english_name": "Dzao Min" - }, - "beu": { - "english_name": "Blagar" - }, - "adr": { - "english_name": "Adonara" - }, - "ajn": { - "english_name": "Andajin" - }, - "cov": { - "english_name": "Cao Miao" - }, - "spb": { - "english_name": "Sepa (Indonesia)" - }, - "smr": { - "english_name": "Simeulue" - }, - "aad": { - "english_name": "Amal" - }, - "kkp": { - "english_name": "Gugubera" - }, - "xsq": { - "english_name": "Makhuwa-Saka" - }, - "prh": { - "english_name": "Porohanon" - }, - "ky": { - "english_name": "Kirghiz" - }, - "pio": { - "english_name": "Piapoco" - }, - "rnn": { - "english_name": "Roon" - }, - "skk": { - "english_name": "Sok" - }, - "wwo": { - "english_name": "Wetamut" - }, - "brm": { - "english_name": "Barambu" - }, - "kfl": { - "english_name": "Kung" - }, - "nys": { - "english_name": "Nyunga" - }, - "bdo": { - "english_name": "Morom" - }, - "bui": { - "english_name": "Bongili" - }, - "nrc": { - "english_name": "Noric" - }, - "mlo": { - "english_name": "Mlomp" - }, - "mpp": { - "english_name": "Migabac" - }, - "pcj": { - "english_name": "Parenga" - }, - "abe": { - "english_name": "Abnaki, Western" - }, - "cml": { - "english_name": "Campalagian" - }, - "mww": { - "english_name": "Hmong Daw" - }, - "aai": { - "english_name": "Arifama-Miniafia" - }, - "nol": { - "english_name": "Nomlaki" - }, - "nzb": { - "english_name": "Njebi" - }, - "kmi": { - "english_name": "Kami (Nigeria)" - }, - "nsw": { - "english_name": "Navut" - }, - "xlg": { - "english_name": "Ligurian (Ancient)" - }, - "cnx": { - "english_name": "Cornish, Middle" - }, - "fuv": { - "english_name": "Fulfulde, Nigerian" - }, - "deg": { - "english_name": "Degema" - }, - "knr": { - "english_name": "Kaningra" - }, - "elu": { - "english_name": "Elu" - }, - "mod": { - "english_name": "Mobilian" - }, - "ich": { - "english_name": "Etkywan" - }, - "pld": { - "english_name": "Polari" - }, - "ncs": { - "english_name": "Nicaraguan Sign Language" - }, - "zbt": { - "english_name": "Batui" - }, - "mdc": { - "english_name": "Male (Papua New Guinea)" - }, - "tck": { - "english_name": "Tchitchege" - }, - "mrb": { - "english_name": "Marino" - }, - "kya": { - "english_name": "Kwaya" - }, - "ytw": { - "english_name": "Yout Wam" - }, - "hig": { - "english_name": "Kamwe" - }, - "bxu": { - "english_name": "Buriat, China" - }, - "shy": { - "english_name": "Tachawit" - }, - "see": { - "english_name": "Seneca" - }, - "und": { - "english_name": "Undetermined" - }, - "kix": { - "english_name": "Naga, Khiamniungan" - }, - "bbt": { - "english_name": "Mburku" - }, - "knx": { - "english_name": "Kendayan" - }, - "ctl": { - "english_name": "Chinantec, Tlacoatzintepec" - }, - "wwb": { - "english_name": "Wakabunga" - }, - "fat": { - "english_name": "Fanti" - }, - "ml": { - "english_name": "Malayalam" - }, - "jml": { - "english_name": "Jumli" - }, - "trt": { - "english_name": "Tunggare" - }, - "nhq": { - "english_name": "Nahuatl, Huaxcaleca" - }, - "sru": { - "english_name": "Suruí" - }, - "tdu": { - "english_name": "Dusun, Tempasuk" - }, - "nxg": { - "english_name": "Ngad'a" - }, - "plk": { - "english_name": "Shina, Kohistani" - }, - "mhi": { - "english_name": "Ma'di" - }, - "sqk": { - "english_name": "Albanian Sign Language" - }, - "sfw": { - "english_name": "Sehwi" - }, - "avv": { - "english_name": "Avá-Canoeiro" - }, - "hrx": { - "english_name": "Hunsrik" - }, - "mec": { - "english_name": "Mara" - }, - "pgk": { - "english_name": "Rerep" - }, - "kiv": { - "english_name": "Kimbu" - }, - "omx": { - "english_name": "Mon, Old" - }, - "apf": { - "english_name": "Agta, Pahanan" - }, - "cug": { - "english_name": "Cung" - }, - "gay": { - "english_name": "Gayo" - }, - "naa": { - "english_name": "Namla" - }, - "mma": { - "english_name": "Mama" - }, - "tsm": { - "english_name": "Turkish Sign Language" - }, - "moc": { - "english_name": "Mocoví" - }, - "ian": { - "english_name": "Iatmul" - }, - "mjn": { - "english_name": "Ma (Papua New Guinea)" - }, - "has": { - "english_name": "Haisla" - }, - "bxg": { - "english_name": "Bangala" - }, - "tjw": { - "english_name": "Djabwurrung" - }, - "xld": { - "english_name": "Lydian" - }, - "kgt": { - "english_name": "Somyev" - }, - "twt": { - "english_name": "Turiwára" - }, - "drn": { - "english_name": "Damar, West" - }, - "akl": { - "english_name": "Aklanon" - }, - "brf": { - "english_name": "Bera" - }, - "ads": { - "english_name": "Adamorobe Sign Language" - }, - "xqt": { - "english_name": "Qatabanian" - }, - "kyr": { - "english_name": "Kuruáya" - }, - "nhx": { - "english_name": "Nahuatl, Isthmus-Mecayapan" - }, - "hnu": { - "english_name": "Hung" - }, - "zga": { - "english_name": "Kinga" - }, - "vro": { - "english_name": "Võro" - }, - "ing": { - "english_name": "Degexit'an" - }, - "oym": { - "english_name": "Wayampi" - }, - "kzz": { - "english_name": "Kalabra" - }, - "mwc": { - "english_name": "Are" - }, - "lee": { - "english_name": "Lyélé" - }, - "ygi": { - "english_name": "Yiningayi" - }, - "puw": { - "english_name": "Puluwatese" - }, - "juh": { - "english_name": "Hõne" - }, - "koi": { - "english_name": "Komi-Permyak" - }, - "noa": { - "english_name": "Woun Meu" - }, - "hoz": { - "english_name": "Hozo" - }, - "xmw": { - "english_name": "Malagasy, Tsimihety" - }, - "ckz": { - "english_name": "Cakchiquel-Quiché Mixed Language" - }, - "gai": { - "english_name": "Borei" - }, - "tlr": { - "english_name": "Talise" - }, - "pho": { - "english_name": "Phunoi" - }, - "rri": { - "english_name": "Ririo" - }, - "dza": { - "english_name": "Tunzu" - }, - "grw": { - "english_name": "Gweda" - }, - "bjx": { - "english_name": "Itneg, Banao" - }, - "sig": { - "english_name": "Paasaal" - }, - "lso": { - "english_name": "Laos Sign Language" - }, - "mcu": { - "english_name": "Mambila, Cameroon" - }, - "bnj": { - "english_name": "Tawbuid, Eastern" - }, - "mpa": { - "english_name": "Mpoto" - }, - "ywt": { - "english_name": "Lalo, Xishanba" - }, - "zps": { - "english_name": "Zapotec, Coatlán" - }, - "prq": { - "english_name": "Ashéninka Perené" - }, - "kgu": { - "english_name": "Kobol" - }, - "gaw": { - "english_name": "Nobonob" - }, - "kxw": { - "english_name": "Konai" - }, - "cum": { - "english_name": "Cumeral" - }, - "mra": { - "english_name": "Mlabri" - }, - "tjg": { - "english_name": "Tunjung" - }, - "dig": { - "english_name": "Digo" - }, - "nhu": { - "english_name": "Noone" - }, - "yln": { - "english_name": "Buyang, Langnian" - }, - "uvh": { - "english_name": "Uri" - }, - "dar": { - "english_name": "Dargwa" - }, - "psa": { - "english_name": "Awyu, Asue" - }, - "btz": { - "english_name": "Batak Alas-Kluet" - }, - "yax": { - "english_name": "Yauma" - }, - "ret": { - "english_name": "Retta" - }, - "goi": { - "english_name": "Gobasi" - }, - "zsa": { - "english_name": "Sarasira" - }, - "pkh": { - "english_name": "Pankhu" - }, - "mng": { - "english_name": "Mnong, Eastern" - }, - "hoa": { - "english_name": "Hoava" - }, - "csk": { - "english_name": "Jola-Kasa" - }, - "ped": { - "english_name": "Mala (Papua New Guinea)" - }, - "yal": { - "english_name": "Yalunka" - }, - "bif": { - "english_name": "Biafada" - }, - "mpv": { - "english_name": "Mungkip" - }, - "rms": { - "english_name": "Romanian Sign Language" - }, - "wnu": { - "english_name": "Usan" - }, - "xab": { - "english_name": "Sambe" - }, - "pmi": { - "english_name": "Pumi, Northern" - }, - "cut": { - "english_name": "Cuicatec, Teutila" - }, - "nmr": { - "english_name": "Nimbari" - }, - "srx": { - "english_name": "Sirmauri" - }, - "alz": { - "english_name": "Alur" - }, - "xtg": { - "english_name": "Gaulish, Transalpine" - }, - "kcx": { - "english_name": "Kachama-Ganjule" - }, - "skd": { - "english_name": "Miwok, Southern Sierra" - }, - "wux": { - "english_name": "Wulna" - }, - "dnn": { - "english_name": "Dzùùngoo" - }, - "jbo": { - "english_name": "Lojban" - }, - "irr": { - "english_name": "Ir" - }, - "tix": { - "english_name": "Tiwa, Southern" - }, - "tun": { - "english_name": "Tunica" - }, - "doe": { - "english_name": "Doe" - }, - "crv": { - "english_name": "Chaura" - }, - "apb": { - "english_name": "Sa'a" - }, - "bmk": { - "english_name": "Ghayavi" - }, - "mdx": { - "english_name": "Dizin" - }, - "bcl": { - "english_name": "Bikol, Central" - }, - "kbk": { - "english_name": "Koiari, Grass" - }, - "aap": { - "english_name": "Arára, Pará" - }, - "bob": { - "english_name": "Aweer" - }, - "kqh": { - "english_name": "Kisankasa" - }, - "wa": { - "english_name": "Walloon", - "name": "Walon" - }, - "mwu": { - "english_name": "Mittu" - }, - "vgt": { - "english_name": "Vlaamse Gebarentaal" - }, - "lcs": { - "english_name": "Lisabata-Nuniali" - }, - "ngk": { - "english_name": "Dalabon" - }, - "kel": { - "english_name": "Kela (Democratic Republic of Congo)" - }, - "cpa": { - "english_name": "Chinantec, Palantla" - }, - "sfm": { - "english_name": "Miao, Small Flowery" - }, - "zmw": { - "english_name": "Mbo (Democratic Republic of Congo)" - }, - "sxn": { - "english_name": "Sangir" - }, - "pup": { - "english_name": "Pulabu" - }, - "ify": { - "english_name": "Kallahan, Keley-I" - }, - "bdy": { - "english_name": "Bandjalang" - }, - "ynn": { - "english_name": "Yana" - }, - "ubi": { - "english_name": "Ubi" - }, - "hem": { - "english_name": "Hemba" - }, - "pdi": { - "english_name": "Pa Di" - }, - "nvm": { - "english_name": "Namiae" - }, - "kxb": { - "english_name": "Krobu" - }, - "meq": { - "english_name": "Merey" - }, - "mim": { - "english_name": "Mixtec, Alacatlatzala" - }, - "ae": { - "english_name": "Avestan" - }, - "zpq": { - "english_name": "Zapotec, Zoogocho" - }, - "mge": { - "english_name": "Mango" - }, - "xaa": { - "english_name": "Arabic, Andalusian" - }, - "zku": { - "english_name": "Kaurna" - }, - "ore": { - "english_name": "Orejón" - }, - "ytp": { - "english_name": "Thopho" - }, - "kbl": { - "english_name": "Kanembu" - }, - "cet": { - "english_name": "Centúúm" - }, - "et": { - "english_name": "Estonian", - "name": "Eesti" - }, - "tkg": { - "english_name": "Malagasy, Tesaka" - }, - "kry": { - "english_name": "Kryts" - }, - "ddw": { - "english_name": "Dawera-Daweloor" - }, - "jae": { - "english_name": "Yabem" - }, - "hmy": { - "english_name": "Hmong, Southern Guiyang" - }, - "bsg": { - "english_name": "Bashkardi" - }, - "geh": { - "english_name": "German, Hutterite" - }, - "tij": { - "english_name": "Tilung" - }, - "tic": { - "english_name": "Tira" - }, - "iwm": { - "english_name": "Iwam" - }, - "swq": { - "english_name": "Sharwa" - }, - "auj": { - "english_name": "Awjilah" - }, - "la": { - "english_name": "Latin" - }, - "njy": { - "english_name": "Njyem" - }, - "abh": { - "english_name": "Arabic, Tajiki" - }, - "lan": { - "english_name": "Laru" - }, - "aya": { - "english_name": "Awar" - }, - "paq": { - "english_name": "Parya" - }, - "yae": { - "english_name": "Pumé" - }, - "pur": { - "english_name": "Puruborá" - }, - "yml": { - "english_name": "Iamalele" - }, - "alm": { - "english_name": "Amblong" - }, - "gyi": { - "english_name": "Gyele" - }, - "zbc": { - "english_name": "Berawan, Central" - }, - "itx": { - "english_name": "Itik" - }, - "wxw": { - "english_name": "Wardandi" - }, - "cs": { - "english_name": "Czech", - "name": "čeština" - }, - "nkq": { - "english_name": "Nkami" - }, - "unn": { - "english_name": "Kurnai" - }, - "tql": { - "english_name": "Lehali" - }, - "baa": { - "english_name": "Babatana" - }, - "bwo": { - "english_name": "Boro (Ethiopia)" - }, - "mks": { - "english_name": "Mixtec, Silacayoapan" - }, - "cwg": { - "english_name": "Chewong" - }, - "ukq": { - "english_name": "Ukwa" - }, - "shh": { - "english_name": "Shoshoni" - }, - "tca": { - "english_name": "Ticuna" - }, - "mbq": { - "english_name": "Maisin" - }, - "xth": { - "english_name": "Yitha Yitha" - }, - "dln": { - "english_name": "Darlong" - }, - "srh": { - "english_name": "Sarikoli" - }, - "bol": { - "english_name": "Bole" - }, - "dzn": { - "english_name": "Dzando" - }, - "nr": { - "english_name": "Ndebele, South" - }, - "hmm": { - "english_name": "Hmong, Central Mashan" - }, - "enn": { - "english_name": "Engenni" - }, - "hsn": { - "english_name": "Chinese, Xiang" - }, - "aps": { - "english_name": "Arop-Sissano" - }, - "kcn": { - "english_name": "Nubi" - }, - "tww": { - "english_name": "Tuwari" - }, - "prf": { - "english_name": "Paranan" - }, - "anm": { - "english_name": "Anal" - }, - "yey": { - "english_name": "Yeyi" - }, - "suk": { - "english_name": "Sukuma" - }, - "adl": { - "english_name": "Galo" - }, - "dsn": { - "english_name": "Dusner" - }, - "oc": { - "english_name": "Occitan (post 1500)", - "name": "Occitan (aprèp 1500)" - }, - "cpg": { - "english_name": "Greek, Cappadocian" - }, - "gez": { - "english_name": "Geez", - "name": "ግዕዝኛ" - }, - "aal": { - "english_name": "Afade" - }, - "mll": { - "english_name": "Malua Bay" - }, - "tne": { - "english_name": "Kallahan, Tinoc" - }, - "ses": { - "english_name": "Songhai, Koyraboro Senni" - }, - "kvn": { - "english_name": "Kuna, Border" - }, - "bdf": { - "english_name": "Biage" - }, - "ckq": { - "english_name": "Kajakse" - }, - "bnv": { - "english_name": "Bonerif" - }, - "qur": { - "english_name": "Quechua, Yanahuanca Pasco" - }, - "mzp": { - "english_name": "Movima" - }, - "kiz": { - "english_name": "Kisi" - }, - "hkk": { - "english_name": "Hunjara-Kaina Ke" - }, - "urw": { - "english_name": "Sop" - }, - "kis": { - "english_name": "Kis" - }, - "lel": { - "english_name": "Lele (Democratic Republic of Congo)" - }, - "xxb": { - "english_name": "Boro (Ghana)" - }, - "nua": { - "english_name": "Yuanga" - }, - "tuy": { - "english_name": "Tugen" - }, - "boo": { - "english_name": "Bozo, Tiemacèwè" - }, - "shx": { - "english_name": "She" - }, - "dmo": { - "english_name": "Kemedzung" - }, - "vmh": { - "english_name": "Maraghei" - }, - "xal": { - "english_name": "Kalmyk" - }, - "sle": { - "english_name": "Sholaga" - }, - "xny": { - "english_name": "Nyiyaparli" - }, - "coj": { - "english_name": "Cochimi" - }, - "lva": { - "english_name": "Maku'a" - }, - "ant": { - "english_name": "Antakarinya" - }, - "kti": { - "english_name": "Muyu, North" - }, - "ude": { - "english_name": "Udihe" - }, - "dww": { - "english_name": "Dawawa" - }, - "aob": { - "english_name": "Abom" - }, - "gdu": { - "english_name": "Gudu" - }, - "ceg": { - "english_name": "Chamacoco" - }, - "mrk": { - "english_name": "Hmwaveke" - }, - "nle": { - "english_name": "Nyala, East" - }, - "kil": { - "english_name": "Kariya" - }, - "sdn": { - "english_name": "Sardinian, Gallurese" - }, - "cin": { - "english_name": "Cinta Larga" - }, - "cop": { - "english_name": "Coptic" - }, - "soc": { - "english_name": "So (Democratic Republic of Congo)" - }, - "ayk": { - "english_name": "Akuku" - }, - "mfb": { - "english_name": "Bangka" - }, - "nqy": { - "english_name": "Naga, Akyaung Ari" - }, - "cux": { - "english_name": "Cuicatec, Tepeuxila" - }, - "zkb": { - "english_name": "Koibal" - }, - "vo": { - "english_name": "Volapük" - }, - "das": { - "english_name": "Daho-Doo" - }, - "wlk": { - "english_name": "Wailaki" - }, - "reg": { - "english_name": "Kara (Tanzania)" - }, - "mlq": { - "english_name": "Maninkakan, Western" - }, - "loi": { - "english_name": "Loma (Côte d'Ivoire)" - }, - "bna": { - "english_name": "Bonerate" - }, - "tht": { - "english_name": "Tahltan" - }, - "szv": { - "english_name": "Isu (Fako Division)" - }, - "pyn": { - "english_name": "Poyanáwa" - }, - "phm": { - "english_name": "Phimbi" - }, - "lbm": { - "english_name": "Lodhi" - }, - "cks": { - "english_name": "Tayo" - }, - "zkv": { - "english_name": "Krevinian" - }, - "nlv": { - "english_name": "Nahuatl, Orizaba" - }, - "isr": { - "english_name": "Israeli Sign Language" - }, - "fbl": { - "english_name": "Bikol, West Albay" - }, - "mmc": { - "english_name": "Mazahua, Michoacán" - }, - "umi": { - "english_name": "Ukit" - }, - "nha": { - "english_name": "Nhanda" - }, - "ypa": { - "english_name": "Phala" - }, - "cbg": { - "english_name": "Chimila" - }, - "xda": { - "english_name": "Darkinyung" - }, - "pdo": { - "english_name": "Padoe" - }, - "ipi": { - "english_name": "Ipili" - }, - "rit": { - "english_name": "Ritarungo" - }, - "ekc": { - "english_name": "Karnic, Eastern" - }, - "kav": { - "english_name": "Katukína" - }, - "tep": { - "english_name": "Tepecano" - }, - "yox": { - "english_name": "Yoron" - }, - "yat": { - "english_name": "Yambeta" - }, - "sgp": { - "english_name": "Singpho" - }, - "tnw": { - "english_name": "Tonsawang" - }, - "nuo": { - "english_name": "Nguôn" - }, - "kig": { - "english_name": "Kimaama" - }, - "cpu": { - "english_name": "Ashéninka, Pichis" - }, - "klu": { - "english_name": "Klao" - }, - "mhu": { - "english_name": "Digaro-Mishmi" - }, - "mns": { - "english_name": "Mansi" - }, - "sxb": { - "english_name": "Suba" - }, - "krz": { - "english_name": "Kanum, Sota" - }, - "nlx": { - "english_name": "Nahali" - }, - "xsr": { - "english_name": "Sherpa" - }, - "mpz": { - "english_name": "Mpi" - }, - "tdy": { - "english_name": "Tadyawan" - }, - "sqo": { - "english_name": "Sorkhei" - }, - "gia": { - "english_name": "Kitja" - }, - "gnq": { - "english_name": "Gana" - }, - "nwm": { - "english_name": "Nyamusa-Molo" - }, - "cbo": { - "english_name": "Izora" - }, - "csh": { - "english_name": "Chin, Asho" - }, - "txy": { - "english_name": "Malagasy, Tanosy" - }, - "vut": { - "english_name": "Vute" - }, - "yih": { - "english_name": "Yiddish, Western" - }, - "ynu": { - "english_name": "Yahuna" - }, - "dum": { - "english_name": "Dutch, Middle (ca. 1050-1350)" - }, - "fmp": { - "english_name": "Fe'fe'" - }, - "nup": { - "english_name": "Nupe-Nupe-Tako" - }, - "kqw": { - "english_name": "Kandas" - }, - "xup": { - "english_name": "Umpqua, Upper" - }, - "nsc": { - "english_name": "Nshi" - }, - "wnb": { - "english_name": "Wanambre" - }, - "pez": { - "english_name": "Penan, Eastern" - }, - "bdn": { - "english_name": "Baldemu" - }, - "ssr": { - "english_name": "Swiss-French Sign Language" - }, - "wir": { - "english_name": "Wiraféd" - }, - "tzo": { - "english_name": "Tzotzil" - }, - "lrr": { - "english_name": "Yamphu, Southern" - }, - "umu": { - "english_name": "Munsee" - }, - "bvo": { - "english_name": "Bolgo" - }, - "kep": { - "english_name": "Kaikadi" - }, - "qxs": { - "english_name": "Qiang, Southern" - }, - "kbs": { - "english_name": "Kande" - }, - "amv": { - "english_name": "Ambelau" - }, - "zca": { - "english_name": "Zapotec, Coatecas Altas" - }, - "bun": { - "english_name": "Sherbro" - }, - "koy": { - "english_name": "Koyukon" - }, - "kaj": { - "english_name": "Jju" - }, - "aky": { - "english_name": "Aka-Kol" - }, - "une": { - "english_name": "Uneme" - }, - "bgx": { - "english_name": "Turkish, Balkan Gagauz" - }, - "apr": { - "english_name": "Arop-Lokep" - }, - "bir": { - "english_name": "Bisorio" - }, - "aes": { - "english_name": "Alsea" - }, - "pko": { - "english_name": "Pökoot" - }, - "lkn": { - "english_name": "Lakon" - }, - "mdu": { - "english_name": "Mboko" - }, - "sa": { - "english_name": "Sanskrit" - }, - "vmq": { - "english_name": "Mixtec, Soyaltepec" - }, - "nei": { - "english_name": "Hittite, Neo-" - }, - "moe": { - "english_name": "Montagnais" - }, - "huv": { - "english_name": "Huave, San Mateo Del Mar" - }, - "mgl": { - "english_name": "Maleu-Kilenge" - }, - "ssi": { - "english_name": "Sansi" - }, - "gvj": { - "english_name": "Guajá" - }, - "jil": { - "english_name": "Jilim" - }, - "dil": { - "english_name": "Dilling" - }, - "csw": { - "english_name": "Cree, Swampy" - }, - "aud": { - "english_name": "Anuta" - }, - "rkb": { - "english_name": "Rikbaktsa" - }, - "ggd": { - "english_name": "Gugadj" - }, - "awk": { - "english_name": "Awabakal" - }, - "bvz": { - "english_name": "Bauzi" - }, - "eko": { - "english_name": "Koti" - }, - "dyu": { - "english_name": "Dyula" - }, - "snb": { - "english_name": "Sebuyau" - }, - "ruu": { - "english_name": "Lobu, Lanas" - }, - "har": { - "english_name": "Harari" - }, - "twn": { - "english_name": "Twendi" - }, - "hne": { - "english_name": "Chhattisgarhi" - }, - "rav": { - "english_name": "Sampang" - }, - "dec": { - "english_name": "Dagik" - }, - "mqv": { - "english_name": "Mosimo" - }, - "hps": { - "english_name": "Hawai'i Pidgin Sign Language" - }, - "avk": { - "english_name": "Kotava" - }, - "tjl": { - "english_name": "Tai Laing" - }, - "pmc": { - "english_name": "Palumata" - }, - "xyy": { - "english_name": "Yorta Yorta" - }, - "snl": { - "english_name": "Sangil" - }, - "cae": { - "english_name": "Lehar" - }, - "pll": { - "english_name": "Palaung, Shwe" - }, - "bxp": { - "english_name": "Bebil" - }, - "mzn": { - "english_name": "Mazanderani" - }, - "kqv": { - "english_name": "Okolod" - }, - "nyg": { - "english_name": "Nyindu" - }, - "pmj": { - "english_name": "Pumi, Southern" - }, - "axl": { - "english_name": "Aranda, Lower Southern" - }, - "enh": { - "english_name": "Enets, Tundra" - }, - "swb": { - "english_name": "Comorian, Maore" - }, - "tju": { - "english_name": "Tjurruru" - }, - "fwa": { - "english_name": "Fwâi" - }, - "tgc": { - "english_name": "Tigak" - }, - "aan": { - "english_name": "Anambé" - }, - "krb": { - "english_name": "Karkin" - }, - "kww": { - "english_name": "Kwinti" - }, - "gwb": { - "english_name": "Gwa" - }, - "bql": { - "english_name": "Bilakura" - }, - "igw": { - "english_name": "Igwe" - }, - "ukl": { - "english_name": "Ukrainian Sign Language" - }, - "kha": { - "english_name": "Khasi" - }, - "lec": { - "english_name": "Leco" - }, - "cac": { - "english_name": "Chuj" - }, - "sce": { - "english_name": "Dongxiang" - }, - "dgw": { - "english_name": "Daungwurrung" - }, - "ana": { - "english_name": "Andaqui" - }, - "xyj": { - "english_name": "Mayi-Yapi" - }, - "cco": { - "english_name": "Chinantec, Comaltepec" - }, - "kcz": { - "english_name": "Konongo" - }, - "adx": { - "english_name": "Tibetan, Amdo" - }, - "keg": { - "english_name": "Tese" - }, - "sbr": { - "english_name": "Sembakung Murut" - }, - "hks": { - "english_name": "Hong Kong Sign Language" - }, - "xkc": { - "english_name": "Kho'ini" - }, - "mew": { - "english_name": "Maaka" - }, - "kxq": { - "english_name": "Kanum, Smärky" - }, - "cfm": { - "english_name": "Chin, Falam" - }, - "mud": { - "english_name": "Aleut, Mednyj" - }, - "mhk": { - "english_name": "Mungaka" - }, - "pci": { - "english_name": "Duruwa" - }, - "gao": { - "english_name": "Gants" - }, - "lib": { - "english_name": "Likum" - }, - "mym": { - "english_name": "Me'en" - }, - "vif": { - "english_name": "Vili" - }, - "bqv": { - "english_name": "Koro Wachi" - }, - "sog": { - "english_name": "Sogdian" - }, - "atg": { - "english_name": "Ivbie North-Okpela-Arhe" - }, - "gyb": { - "english_name": "Garus" - }, - "ghr": { - "english_name": "Ghera" - }, - "nlj": { - "english_name": "Nyali" - }, - "sno": { - "english_name": "Snohomish" - }, - "gwm": { - "english_name": "Awngthim" - }, - "nbr": { - "english_name": "Numana-Nunku-Gbantu-Numbu" - }, - "duj": { - "english_name": "Dhuwal" - }, - "btw": { - "english_name": "Butuanon" - }, - "nfl": { - "english_name": "Ayiwo" - }, - "pbi": { - "english_name": "Parkwa" - }, - "mvi": { - "english_name": "Miyako" - }, - "sbm": { - "english_name": "Sagala" - }, - "onk": { - "english_name": "One, Kabore" - }, - "cib": { - "english_name": "Gbe, Ci" - }, - "kxo": { - "english_name": "Kanoé" - }, - "uur": { - "english_name": "Ura (Vanuatu)" - }, - "ysr": { - "english_name": "Yupik, Sirenik" - }, - "sbs": { - "english_name": "Subiya" - }, - "skf": { - "english_name": "Sakirabiá" - }, - "how": { - "english_name": "Honi" - }, - "slt": { - "english_name": "Sila" - }, - "kjz": { - "english_name": "Bumthangkha" - }, - "gge": { - "english_name": "Guragone" - }, - "twg": { - "english_name": "Tereweng" - }, - "rmf": { - "english_name": "Romani, Kalo Finnish" - }, - "yer": { - "english_name": "Tarok" - }, - "jut": { - "english_name": "Jutish" - }, - "tfr": { - "english_name": "Teribe" - }, - "bfq": { - "english_name": "Badaga" - }, - "mca": { - "english_name": "Maca" - }, - "hae": { - "english_name": "Oromo, Eastern" - }, - "bce": { - "english_name": "Bamenyam" - }, - "itl": { - "english_name": "Itelmen" - }, - "ylm": { - "english_name": "Limi" - }, - "oso": { - "english_name": "Ososo" - }, - "mzl": { - "english_name": "Mixe, Mazatlán" - }, - "xiv": { - "english_name": "Indus Valley Language" - }, - "kwe": { - "english_name": "Kwerba" - }, - "utr": { - "english_name": "Etulo" - }, - "moi": { - "english_name": "Mboi" - }, - "kug": { - "english_name": "Kupa" - }, - "ano": { - "english_name": "Andoque" - }, - "kpl": { - "english_name": "Kpala" - }, - "ndh": { - "english_name": "Ndali" - }, - "tve": { - "english_name": "Te'un" - }, - "pow": { - "english_name": "Popoloca, San Felipe Otlaltepec" - }, - "vlp": { - "english_name": "Valpei" - }, - "bms": { - "english_name": "Kanuri, Bilma" - }, - "was": { - "english_name": "Washo" - }, - "lmg": { - "english_name": "Lamogai" - }, - "ssm": { - "english_name": "Semnam" - }, - "mbk": { - "english_name": "Malol" - }, - "lht": { - "english_name": "Lo-Toga" - }, - "jwi": { - "english_name": "Jwira-Pepesa" - }, - "idi": { - "english_name": "Idi" - }, - "nxa": { - "english_name": "Nauete" - }, - "bdc": { - "english_name": "Emberá-Baudó" - }, - "rji": { - "english_name": "Raji" - }, - "gua": { - "english_name": "Shiki" - }, - "bli": { - "english_name": "Bolia" - }, - "rw": { - "english_name": "Kinyarwanda", - "name": "Ikinyarwanda" - }, - "niz": { - "english_name": "Ningil" - }, - "glw": { - "english_name": "Glavda" - }, - "kjf": { - "english_name": "Khalaj" - }, - "taf": { - "english_name": "Tapirapé" - }, - "kvx": { - "english_name": "Koli, Parkari" - }, - "lgt": { - "english_name": "Pahi" - }, - "mtw": { - "english_name": "Binukidnon, Southern" - }, - "dah": { - "english_name": "Gwahatike" - }, - "eya": { - "english_name": "Eyak" - }, - "okl": { - "english_name": "Kentish Sign Language, Old" - }, - "olo": { - "english_name": "Livvi" - }, - "urt": { - "english_name": "Urat" - }, - "apw": { - "english_name": "Apache, Western" - }, - "cqd": { - "english_name": "Miao, Chuanqiandian Cluster" - }, - "arl": { - "english_name": "Arabela" - }, - "mku": { - "english_name": "Maninka, Konyanka" - }, - "omu": { - "english_name": "Omurano" - }, - "lle": { - "english_name": "Lele (Papua New Guinea)" - }, - "hum": { - "english_name": "Hungana" - }, - "coe": { - "english_name": "Koreguaje" - }, - "lpx": { - "english_name": "Lopit" - }, - "ayz": { - "english_name": "Mai Brat" - }, - "xep": { - "english_name": "Epi-Olmec" - }, - "fuy": { - "english_name": "Fuyug" - }, - "klg": { - "english_name": "Tagakaulo" - }, - "qud": { - "english_name": "Quichua, Calderón Highland" - }, - "nye": { - "english_name": "Nyengo" - }, - "mro": { - "english_name": "Mru" - }, - "nsg": { - "english_name": "Ngasa" - }, - "niy": { - "english_name": "Ngiti" - }, - "dri": { - "english_name": "C'lela" - }, - "bnf": { - "english_name": "Masiwang" - }, - "kou": { - "english_name": "Koke" - }, - "rwk": { - "english_name": "Rwa" - }, - "csm": { - "english_name": "Miwok, Central Sierra" - }, - "qvm": { - "english_name": "Quechua, Margos-Yarowilca-Lauricocha" - }, - "tvo": { - "english_name": "Tidore" - }, - "nof": { - "english_name": "Nomane" - }, - "kle": { - "english_name": "Kulung (Nepal)" - }, - "rro": { - "english_name": "Waima" - }, - "xkl": { - "english_name": "Mainstream Kenyah" - }, - "mlb": { - "english_name": "Mbule" - }, - "pnm": { - "english_name": "Punan Batu 1" - }, - "ims": { - "english_name": "Marsian" - }, - "avs": { - "english_name": "Aushiri" - }, - "muy": { - "english_name": "Muyang" - }, - "adu": { - "english_name": "Aduge" - }, - "mto": { - "english_name": "Mixe, Totontepec" - }, - "pav": { - "english_name": "Pakaásnovos" - }, - "luc": { - "english_name": "Aringa" - }, - "yaf": { - "english_name": "Yaka (Democratic Republic of Congo)" - }, - "wru": { - "english_name": "Waru" - }, - "kht": { - "english_name": "Khamti" - }, - "mdf": { - "english_name": "Moksha" - }, - "zaw": { - "english_name": "Zapotec, Mitla" - }, - "zoc": { - "english_name": "Zoque, Copainalá" - }, - "nji": { - "english_name": "Gudanji" - }, - "lal": { - "english_name": "Lalia" - }, - "dyo": { - "english_name": "Jola-Fonyi" - }, - "tkw": { - "english_name": "Teanu" - }, - "bdb": { - "english_name": "Basap" - }, - "gwf": { - "english_name": "Gowro" - }, - "sxw": { - "english_name": "Gbe, Saxwe" - }, - "dbp": { - "english_name": "Duwai" - }, - "muu": { - "english_name": "Yaaku" - }, - "bbq": { - "english_name": "Bamali" - }, - "gdc": { - "english_name": "Gugu Badhun" - }, - "kwx": { - "english_name": "Khirwar" - }, - "bdz": { - "english_name": "Badeshi" - }, - "duh": { - "english_name": "Dungra Bhil" - }, - "agz": { - "english_name": "Agta, Mt. Iriga" - }, - "klv": { - "english_name": "Maskelynes" - }, - "czh": { - "english_name": "Chinese, Huizhou" - }, - "pnx": { - "english_name": "Phong-Kniang" - }, - "hal": { - "english_name": "Halang" - }, - "gir": { - "english_name": "Gelao, Red" - }, - "buy": { - "english_name": "Bullom So" - }, - "adj": { - "english_name": "Adioukrou" - }, - "ils": { - "english_name": "International Sign" - }, - "man": { - "english_name": "Mandingo" - }, - "mkp": { - "english_name": "Moikodi" - }, - "ndi": { - "english_name": "Samba Leko" - }, - "mga": { - "english_name": "Irish, Middle (900-1200)" - }, - "aaa": { - "english_name": "Ghotuo" - }, - "bdq": { - "english_name": "Bahnar" - }, - "xar": { - "english_name": "Karami" - }, - "bvy": { - "english_name": "Baybayanon" - }, - "kgd": { - "english_name": "Kataang" - }, - "rng": { - "english_name": "Ronga" - }, - "mhj": { - "english_name": "Mogholi" - }, - "xrw": { - "english_name": "Karawa" - }, - "npu": { - "english_name": "Naga, Puimei" - }, - "kri": { - "english_name": "Krio" - }, - "beo": { - "english_name": "Beami" - }, - "xct": { - "english_name": "Tibetan, Classical" - }, - "twx": { - "english_name": "Tewe" - }, - "cnt": { - "english_name": "Chinantec, Tepetotutla" - }, - "nsa": { - "english_name": "Naga, Sangtam" - }, - "pub": { - "english_name": "Purum" - }, - "cbe": { - "english_name": "Chipiajes" - }, - "zgb": { - "english_name": "Zhuang, Guibei" - }, - "ogo": { - "english_name": "Khana" - }, - "bbd": { - "english_name": "Bau" - }, - "tmr": { - "english_name": "Aramaic, Jewish Babylonian (ca. 200-1200 CE)" - }, - "ghl": { - "english_name": "Ghulfan" - }, - "tit": { - "english_name": "Tinigua" - }, - "eme": { - "english_name": "Emerillon" - }, - "pha": { - "english_name": "Pa-Hng" - }, - "nxr": { - "english_name": "Ninggerum" - }, - "zas": { - "english_name": "Zapotec, Santo Domingo Albarradas" - }, - "kwy": { - "english_name": "Kongo, San Salvador" - }, - "mbd": { - "english_name": "Manobo, Dibabawon" - }, - "bil": { - "english_name": "Bile" - }, - "kcd": { - "english_name": "Kanum, Ngkâlmpw" - }, - "snr": { - "english_name": "Sihan" - }, - "tce": { - "english_name": "Tutchone, Southern" - }, - "bco": { - "english_name": "Kaluli" - }, - "kjx": { - "english_name": "Ramopa" - }, - "dmc": { - "english_name": "Gavak" - }, - "mez": { - "english_name": "Menominee" - }, - "kyf": { - "english_name": "Kouya" - }, - "zkz": { - "english_name": "Khazar" - }, - "koz": { - "english_name": "Korak" - }, - "gac": { - "english_name": "Great Andamanese, Mixed" - }, - "fak": { - "english_name": "Fang (Cameroon)" - }, - "pwn": { - "english_name": "Paiwan" - }, - "qxo": { - "english_name": "Quechua, Southern Conchucos Ancash" - }, - "nio": { - "english_name": "Nganasan" - }, - "igs": { - "english_name": "Interglossa" - }, - "bzl": { - "english_name": "Boano (Sulawesi)" - }, - "tis": { - "english_name": "Itneg, Masadiit" - }, - "itt": { - "english_name": "Itneg, Maeng" - }, - "lka": { - "english_name": "Lakalei" - }, - "snc": { - "english_name": "Sinaugoro" - }, - "jbu": { - "english_name": "Jukun Takum" - }, - "hoy": { - "english_name": "Holiya" - }, - "aox": { - "english_name": "Atorada" - }, - "tsx": { - "english_name": "Mubami" - }, - "fab": { - "english_name": "Fa d'Ambu" - }, - "csi": { - "english_name": "Miwok, Coast" - }, - "ccd": { - "english_name": "Creole, Cafundo" - }, - "mzs": { - "english_name": "Macanese" - }, - "gib": { - "english_name": "Gibanawa" - }, - "bbf": { - "english_name": "Baibai" - }, - "mju": { - "english_name": "Manna-Dora" - }, - "xh": { - "english_name": "Xhosa", - "name": "Xhosa" - }, - "bsm": { - "english_name": "Busami" - }, - "mrq": { - "english_name": "Marquesan, North" - }, - "btu": { - "english_name": "Batu" - }, - "kxj": { - "english_name": "Kulfa" - }, - "mrw": { - "english_name": "Maranao" - }, - "brt": { - "english_name": "Bitare" - }, - "blz": { - "english_name": "Balantak" - }, - "ttc": { - "english_name": "Tektiteko" - }, - "lls": { - "english_name": "Lithuanian Sign Language" - }, - "yrm": { - "english_name": "Yirrk-Mel" - }, - "tni": { - "english_name": "Tandia" - }, - "knn": { - "english_name": "Konkani (individual language)" - }, - "frr": { - "english_name": "Frisian, Northern" - }, - "tmq": { - "english_name": "Tumleo" - }, - "hdy": { - "english_name": "Hadiyya" - }, - "sox": { - "english_name": "Swo" - }, - "dva": { - "english_name": "Duau" - }, - "chf": { - "english_name": "Chontal, Tabasco" - }, - "bsr": { - "english_name": "Bassa-Kontagora" - }, - "ce": { - "english_name": "Chechen" - }, - "pnq": { - "english_name": "Pana (Burkina Faso)" - }, - "wrg": { - "english_name": "Warungu" - }, - "bkn": { - "english_name": "Bukitan" - }, - "chd": { - "english_name": "Chontal, Highland Oaxaca" - }, - "scb": { - "english_name": "Chut" - }, - "nyo": { - "english_name": "Nyoro" - }, - "ti": { - "english_name": "Tigrinya", - "name": "ትግርኛ" - }, - "tbf": { - "english_name": "Mandara" - }, - "nnt": { - "english_name": "Nanticoke" - }, - "spt": { - "english_name": "Bhoti, Spiti" - }, - "kbx": { - "english_name": "Ap Ma" - }, - "cao": { - "english_name": "Chácobo" - }, - "bbb": { - "english_name": "Barai" - }, - "pwa": { - "english_name": "Pawaia" - }, - "ngq": { - "english_name": "Ngurimi" - }, - "woy": { - "english_name": "Weyto" - }, - "txh": { - "english_name": "Thracian" - }, - "lem": { - "english_name": "Nomaande" - }, - "bbv": { - "english_name": "Karnai" - }, - "bqr": { - "english_name": "Burusu" - }, - "spg": { - "english_name": "Sian" - }, - "bwl": { - "english_name": "Bwela" - }, - "guu": { - "english_name": "Yanomamö" - }, - "skc": { - "english_name": "Ma Manda" - }, - "mmh": { - "english_name": "Mehináku" - }, - "mdj": { - "english_name": "Mangbetu" - }, - "pog": { - "english_name": "Potiguára" - }, - "dzg": { - "english_name": "Dazaga" - }, - "apt": { - "english_name": "Apatani" - }, - "skx": { - "english_name": "Seko Padang" - }, - "anh": { - "english_name": "Nend" - }, - "dot": { - "english_name": "Dass" - }, - "kuq": { - "english_name": "Karipuna" - }, - "vav": { - "english_name": "Varli" - }, - "cua": { - "english_name": "Cua" - }, - "xtm": { - "english_name": "Mixtec, Magdalena Peñasco" - }, - "ldg": { - "english_name": "Lenyima" - }, - "teh": { - "english_name": "Tehuelche" - }, - "tlp": { - "english_name": "Totonac, Filomena Mata-Coahuitlán" - }, - "tiz": { - "english_name": "Tai Hongjin" - }, - "abi": { - "english_name": "Abidji" - }, - "hmc": { - "english_name": "Hmong, Central Huishui" - }, - "pga": { - "english_name": "Creole Arabic, Sudanese" - }, - "ayt": { - "english_name": "Ayta, Magbukun" - }, - "peh": { - "english_name": "Bonan" - }, - "xuj": { - "english_name": "Kurumba, Jennu" - }, - "dua": { - "english_name": "Duala" - }, - "ch": { - "english_name": "Chamorro" - }, - "bwt": { - "english_name": "Bafaw-Balong" - }, - "cld": { - "english_name": "Neo-Aramaic, Chaldean" - }, - "ilu": { - "english_name": "Ili'uun" - }, - "min": { - "english_name": "Minangkabau" - }, - "oaa": { - "english_name": "Orok" - }, - "nyl": { - "english_name": "Nyeu" - }, - "wgy": { - "english_name": "Warrgamay" - }, - "wai": { - "english_name": "Wares" - }, - "bdk": { - "english_name": "Budukh" - }, - "jee": { - "english_name": "Jerung" - }, - "gdj": { - "english_name": "Gurdjar" - }, - "plh": { - "english_name": "Paulohi" - }, - "byh": { - "english_name": "Bhujel" - }, - "rka": { - "english_name": "Kraol" - }, - "bkd": { - "english_name": "Binukid" - }, - "mmz": { - "english_name": "Mabaale" - }, - "ljp": { - "english_name": "Lampung Api" - }, - "whg": { - "english_name": "Wahgi, North" - }, - "vaj": { - "english_name": "Vasekela Bushman" - }, - "hit": { - "english_name": "Hittite" - }, - "aht": { - "english_name": "Ahtena" - }, - "cli": { - "english_name": "Chakali" - }, - "nuk": { - "english_name": "Nuu-chah-nulth" - }, - "fuf": { - "english_name": "Pular" - }, - "drb": { - "english_name": "Dair" - }, - "bbj": { - "english_name": "Ghomálá'" - }, - "pov": { - "english_name": "Crioulo, Upper Guinea" - }, - "eli": { - "english_name": "Nding" - }, - "pqa": { - "english_name": "Pa'a" - }, - "njz": { - "english_name": "Nyishi" - }, - "lij": { - "english_name": "Ligurian" - }, - "sok": { - "english_name": "Sokoro" - }, - "bfn": { - "english_name": "Bunak" - }, - "zim": { - "english_name": "Mesme" - }, - "phw": { - "english_name": "Phangduwali" - }, - "amk": { - "english_name": "Ambai" - }, - "xya": { - "english_name": "Yaygir" - }, - "kjt": { - "english_name": "Karen, Phrae Pwo" - }, - "ubl": { - "english_name": "Bikol, Buhi'non" - }, - "yis": { - "english_name": "Yis" - }, - "aux": { - "english_name": "Aurá" - }, - "bbp": { - "english_name": "Banda, West Central" - }, - "kbq": { - "english_name": "Kamano" - }, - "krc": { - "english_name": "Karachay-Balkar" - }, - "mej": { - "english_name": "Meyah" - }, - "dii": { - "english_name": "Dimbong" - }, - "okm": { - "english_name": "Korean, Middle (10th-16th cent.)" - }, - "agw": { - "english_name": "Kahua" - }, - "lar": { - "english_name": "Larteh" - }, - "wkw": { - "english_name": "Wakawaka" - }, - "mii": { - "english_name": "Mixtec, Chigmecatitlán" - }, - "ztg": { - "english_name": "Zapotec, Xanaguía" - }, - "atx": { - "english_name": "Arutani" - }, - "nam": { - "english_name": "Ngan'gityemerri" - }, - "pna": { - "english_name": "Punan Bah-Biau" - }, - "kdx": { - "english_name": "Kam" - }, - "ggu": { - "english_name": "Gagu" - }, - "jbt": { - "english_name": "Jabutí" - }, - "rgn": { - "english_name": "Romagnol" - }, - "nue": { - "english_name": "Ngundu" - }, - "xvn": { - "english_name": "Vandalic" - }, - "ksb": { - "english_name": "Shambala" - }, - "pey": { - "english_name": "Petjo" - }, - "srk": { - "english_name": "Serudung Murut" - }, - "psd": { - "english_name": "Plains Indian Sign Language" - }, - "tgd": { - "english_name": "Ciwogai" - }, - "pse": { - "english_name": "Malay, Central" - }, - "bmo": { - "english_name": "Bambalang" - }, - "grj": { - "english_name": "Grebo, Southern" - }, - "vmv": { - "english_name": "Maidu, Valley" - }, - "xnr": { - "english_name": "Kangri" - }, - "lob": { - "english_name": "Lobi" - }, - "mws": { - "english_name": "Mwimbi-Muthambi" - }, - "nhz": { - "english_name": "Nahuatl, Santa María La Alta" - }, - "klw": { - "english_name": "Lindu" - }, - "nbw": { - "english_name": "Ngbandi, Southern" - }, - "waz": { - "english_name": "Wampur" - }, - "tmf": { - "english_name": "Toba-Maskoy" - }, - "its": { - "english_name": "Isekiri" - }, - "dim": { - "english_name": "Dime" - }, - "opt": { - "english_name": "Opata" - }, - "tvw": { - "english_name": "Sedoa" - }, - "npy": { - "english_name": "Napu" - }, - "evn": { - "english_name": "Evenki" - }, - "lkl": { - "english_name": "Laeko-Libuat" - }, - "nuh": { - "english_name": "Ndunda" - }, - "nsi": { - "english_name": "Nigerian Sign Language" - }, - "osa": { - "english_name": "Osage" - }, - "tty": { - "english_name": "Sikaritai" - }, - "pii": { - "english_name": "Pini" - }, - "kqg": { - "english_name": "Khe" - }, - "mul": { - "english_name": "Multiple languages" - }, - "mbx": { - "english_name": "Mari (East Sepik Province)" - }, - "kff": { - "english_name": "Koya" - }, - "nmk": { - "english_name": "Namakura" - }, - "spu": { - "english_name": "Sapuan" - }, - "pwr": { - "english_name": "Powari" - }, - "bhn": { - "english_name": "Neo-Aramaic, Bohtan" - }, - "bxi": { - "english_name": "Pirlatapa" - }, - "mhf": { - "english_name": "Mamaa" - }, - "grm": { - "english_name": "Kota Marudu Talantang" - }, - "mil": { - "english_name": "Mixtec, Peñoles" - }, - "mnj": { - "english_name": "Munji" - }, - "crd": { - "english_name": "Coeur d'Alene" - }, - "chz": { - "english_name": "Chinantec, Ozumacín" - }, - "sab": { - "english_name": "Buglere" - }, - "kgf": { - "english_name": "Kube" - }, - "mnv": { - "english_name": "Rennell-Bellona" - }, - "kqk": { - "english_name": "Gbe, Kotafon" - }, - "kdz": { - "english_name": "Kwaja" - }, - "mnx": { - "english_name": "Manikion" - }, - "lzz": { - "english_name": "Laz" - }, - "tti": { - "english_name": "Tobati" - }, - "nlq": { - "english_name": "Naga, Lao" - }, - "wrh": { - "english_name": "Wiradhuri" - }, - "xky": { - "english_name": "Uma' Lasan" - }, - "tdg": { - "english_name": "Tamang, Western" - }, - "nex": { - "english_name": "Neme" - }, - "gwe": { - "english_name": "Gweno" - }, - "rut": { - "english_name": "Rutul" - }, - "eki": { - "english_name": "Eki" - }, - "tik": { - "english_name": "Tikar" - }, - "dmb": { - "english_name": "Dogon, Mombo" - }, - "rab": { - "english_name": "Camling" - }, - "izh": { - "english_name": "Ingrian" - }, - "ckh": { - "english_name": "Chak" - }, - "bgc": { - "english_name": "Haryanvi" - }, - "set": { - "english_name": "Sentani" - }, - "gdn": { - "english_name": "Umanakaina" - }, - "ext": { - "english_name": "Extremaduran" - }, - "aew": { - "english_name": "Ambakich" - }, - "sgm": { - "english_name": "Singa" - }, - "dif": { - "english_name": "Dieri" - }, - "tct": { - "english_name": "T'en" - }, - "tgi": { - "english_name": "Lawunuia" - }, - "pei": { - "english_name": "Chichimeca-Jonaz" - }, - "sge": { - "english_name": "Segai" - }, - "mql": { - "english_name": "Mbelime" - }, - "sei": { - "english_name": "Seri" - }, - "kcs": { - "english_name": "Koenoem" - }, - "ade": { - "english_name": "Adele" - }, - "ijj": { - "english_name": "Ede Ije" - }, - "zyn": { - "english_name": "Zhuang, Yongnan" - }, - "te": { - "english_name": "Telugu" - }, - "xun": { - "english_name": "Unggaranggu" - }, - "sva": { - "english_name": "Svan" - }, - "itr": { - "english_name": "Iteri" - }, - "lup": { - "english_name": "Lumbu" - }, - "phr": { - "english_name": "Pahari-Potwari" - }, - "kex": { - "english_name": "Kukna" - }, - "pbr": { - "english_name": "Pangwa" - }, - "ras": { - "english_name": "Tegali" - }, - "mgp": { - "english_name": "Magar, Eastern" - }, - "mia": { - "english_name": "Miami" - }, - "brn": { - "english_name": "Boruca" - }, - "sim": { - "english_name": "Mende (Papua New Guinea)" - }, - "lsy": { - "english_name": "Mauritian Sign Language" - }, - "tmb": { - "english_name": "Katbol" - }, - "xco": { - "english_name": "Chorasmian" - }, - "ape": { - "english_name": "Bukiyip" - }, - "dee": { - "english_name": "Dewoin" - }, - "non": { - "english_name": "Norse, Old" - }, - "ids": { - "english_name": "Idesa" - }, - "khx": { - "english_name": "Kanu" - }, - "let": { - "english_name": "Lesing-Gelimi" - }, - "nig": { - "english_name": "Ngalakan" - }, - "aey": { - "english_name": "Amele" - }, - "ojc": { - "english_name": "Ojibwa, Central" - }, - "geg": { - "english_name": "Gengle" - }, - "rxd": { - "english_name": "Ngardi" - }, - "cie": { - "english_name": "Cineni" - }, - "zhw": { - "english_name": "Zhoa" - }, - "wuv": { - "english_name": "Wuvulu-Aua" - }, - "lku": { - "english_name": "Kungkari" - }, - "biv": { - "english_name": "Birifor, Southern" - }, - "uks": { - "english_name": "Urubú-Kaapor Sign Language" - }, - "xpo": { - "english_name": "Pochutec" - }, - "icl": { - "english_name": "Icelandic Sign Language" - }, - "nbm": { - "english_name": "Ngbaka Ma'bo" - }, - "gnc": { - "english_name": "Guanche" - }, - "gri": { - "english_name": "Ghari" - }, - "sju": { - "english_name": "Sami, Ume" - }, - "auw": { - "english_name": "Awyi" - }, - "pnt": { - "english_name": "Pontic" - }, - "bbx": { - "english_name": "Bubia" - }, - "szc": { - "english_name": "Semaq Beri" - }, - "lkc": { - "english_name": "Kucong" - }, - "yle": { - "english_name": "Yele" - }, - "ay": { - "english_name": "Aymara" - }, - "tta": { - "english_name": "Tutelo" - }, - "cul": { - "english_name": "Culina" - }, - "byo": { - "english_name": "Biyo" - }, - "pex": { - "english_name": "Petats" - }, - "fom": { - "english_name": "Foma" - }, - "xtb": { - "english_name": "Mixtec, Chazumba" - }, - "sga": { - "english_name": "Irish, Old (to 900)" - }, - "mmm": { - "english_name": "Maii" - }, - "twp": { - "english_name": "Ere" - }, - "kga": { - "english_name": "Koyaga" - }, - "men": { - "english_name": "Mende (Sierra Leone)" - }, - "dal": { - "english_name": "Dahalo" - }, - "psi": { - "english_name": "Pashayi, Southeast" - }, - "rmd": { - "english_name": "Danish, Traveller" - }, - "svs": { - "english_name": "Savosavo" - }, - "snk": { - "english_name": "Soninke" - }, - "amp": { - "english_name": "Alamblak" - }, - "xce": { - "english_name": "Celtiberian" - }, - "wmo": { - "english_name": "Wom (Papua New Guinea)" - }, - "zpo": { - "english_name": "Zapotec, Amatlán" - }, - "heh": { - "english_name": "Hehe" - }, - "dem": { - "english_name": "Dem" - }, - "vko": { - "english_name": "Kodeoha" - }, - "mvx": { - "english_name": "Meoswar" - }, - "bne": { - "english_name": "Bintauna" - }, - "ckv": { - "english_name": "Kavalan" - }, - "ikv": { - "english_name": "Iku-Gora-Ankwa" - }, - "mbm": { - "english_name": "Ombamba" - }, - "lum": { - "english_name": "Luimbi" - }, - "ins": { - "english_name": "Indian Sign Language" - }, - "err": { - "english_name": "Erre" - }, - "peb": { - "english_name": "Pomo, Eastern" - }, - "bhw": { - "english_name": "Biak" - }, - "bjt": { - "english_name": "Balanta-Ganja" - }, - "dmw": { - "english_name": "Mudburra" - }, - "kkd": { - "english_name": "Kinuku" - }, - "stu": { - "english_name": "Samtao" - }, - "leh": { - "english_name": "Lenje" - }, - "scf": { - "english_name": "Creole French, San Miguel" - }, - "xsl": { - "english_name": "Slavey, South" - }, - "khl": { - "english_name": "Lusi" - }, - "bff": { - "english_name": "Bofi" - }, - "zom": { - "english_name": "Zou" - }, - "agr": { - "english_name": "Aguaruna" - }, - "suy": { - "english_name": "Suyá" - }, - "ndc": { - "english_name": "Ndau" - }, - "hme": { - "english_name": "Hmong, Eastern Huishui" - }, - "mkm": { - "english_name": "Moklen" - }, - "kyy": { - "english_name": "Kambaira" - }, - "mck": { - "english_name": "Mbunda" - }, - "tvs": { - "english_name": "Taveta" - }, - "avi": { - "english_name": "Avikam" - }, - "pcf": { - "english_name": "Paliyan" - }, - "urz": { - "english_name": "Uru-Eu-Wau-Wau" - }, - "npb": { - "english_name": "Nupbikha" - }, - "etx": { - "english_name": "Eten" - }, - "djf": { - "english_name": "Djangun" - }, - "cns": { - "english_name": "Asmat, Central" - }, - "wkd": { - "english_name": "Wakde" - }, - "wyi": { - "english_name": "Woiwurrung" - }, - "yiu": { - "english_name": "Awu" - }, - "omp": { - "english_name": "Manipuri, Old" - }, - "prl": { - "english_name": "Peruvian Sign Language" - }, - "dgn": { - "english_name": "Dagoman" - }, - "xve": { - "english_name": "Venetic" - }, - "vku": { - "english_name": "Kurrama" - }, - "qum": { - "english_name": "Sipacapense" - }, - "lio": { - "english_name": "Liki" - }, - "soq": { - "english_name": "Kanasi" - }, - "abn": { - "english_name": "Abua" - }, - "mnq": { - "english_name": "Minriq" - }, - "kns": { - "english_name": "Kensiu" - }, - "ssk": { - "english_name": "Sunam" - }, - "ln": { - "english_name": "Lingala" - }, - "be": { - "english_name": "Belarusian" - }, - "cpb": { - "english_name": "Ashéninka, Ucayali-Yurúa" - }, - "kmm": { - "english_name": "Kom (India)" - }, - "soi": { - "english_name": "Sonha" - }, - "nmy": { - "english_name": "Namuyi" - }, - "nrk": { - "english_name": "Ngarla" - }, - "bik": { - "english_name": "Bikol" - }, - "zsk": { - "english_name": "Kaskean" - }, - "bqh": { - "english_name": "Baima" - }, - "ymb": { - "english_name": "Yambes" - }, - "nis": { - "english_name": "Nimi" - }, - "hom": { - "english_name": "Homa" - }, - "vmc": { - "english_name": "Mixtec, Juxtlahuaca" - }, - "arp": { - "english_name": "Arapaho" - }, - "kgj": { - "english_name": "Kham, Gamale" - }, - "rmz": { - "english_name": "Marma" - }, - "kcl": { - "english_name": "Kela (Papua New Guinea)" - }, - "sdm": { - "english_name": "Semandang" - }, - "mnm": { - "english_name": "Mapena" - }, - "pdt": { - "english_name": "Plautdietsch" - }, - "nwy": { - "english_name": "Nottoway-Meherrin" - }, - "ewo": { - "english_name": "Ewondo" - }, - "rah": { - "english_name": "Rabha" - }, - "lmd": { - "english_name": "Lumun" - }, - "kto": { - "english_name": "Kuot" - }, - "hmt": { - "english_name": "Hamtai" - }, - "kpb": { - "english_name": "Kurumba, Mullu" - }, - "mvr": { - "english_name": "Marau" - }, - "iar": { - "english_name": "Purari" - }, - "cdj": { - "english_name": "Churahi" - }, - "nsl": { - "english_name": "Norwegian Sign Language" - }, - "wrb": { - "english_name": "Warluwara" - }, - "wuu": { - "english_name": "Chinese, Wu" - }, - "piv": { - "english_name": "Pileni" - }, - "maz": { - "english_name": "Mazahua, Central" - }, - "rmy": { - "english_name": "Romani, Vlax" - }, - "mke": { - "english_name": "Mawchi" - }, - "wig": { - "english_name": "Wik-Ngathana" - }, - "tkz": { - "english_name": "Takua" - }, - "pgn": { - "english_name": "Paelignian" - }, - "zaa": { - "english_name": "Zapotec, Sierra de Juárez" - }, - "gra": { - "english_name": "Garasia, Rajput" - }, - "pys": { - "english_name": "Paraguayan Sign Language" - }, - "fip": { - "english_name": "Fipa" - }, - "aph": { - "english_name": "Athpariya" - }, - "lmi": { - "english_name": "Lombi" - }, - "two": { - "english_name": "Tswapong" - }, - "mov": { - "english_name": "Mohave" - }, - "dmk": { - "english_name": "Domaaki" - }, - "hya": { - "english_name": "Hya" - }, - "kgg": { - "english_name": "Kusunda" - }, - "pic": { - "english_name": "Pinji" - }, - "igo": { - "english_name": "Isebe" - }, - "nzk": { - "english_name": "Nzakara" - }, - "kdc": { - "english_name": "Kutu" - }, - "mba": { - "english_name": "Higaonon" - }, - "zmx": { - "english_name": "Bomitaba" - }, - "wif": { - "english_name": "Wik-Keyangan" - }, - "psm": { - "english_name": "Pauserna" - }, - "uli": { - "english_name": "Ulithian" - }, - "hux": { - "english_name": "Huitoto, Nüpode" - }, - "sli": { - "english_name": "Silesian, Lower" - }, - "ess": { - "english_name": "Yupik, Central Siberian" - }, - "ytl": { - "english_name": "Tanglang" - }, - "xki": { - "english_name": "Kenyan Sign Language" - }, - "nrp": { - "english_name": "Picene, North" - }, - "pas": { - "english_name": "Papasena" - }, - "hup": { - "english_name": "Hupa" - }, - "mny": { - "english_name": "Manyawa" - }, - "srz": { - "english_name": "Shahmirzadi" - }, - "bwr": { - "english_name": "Bura-Pabir" - }, - "xug": { - "english_name": "Kunigami" - }, - "ty": { - "english_name": "Tahitian" - }, - "knp": { - "english_name": "Kwanja" - }, - "xhe": { - "english_name": "Khetrani" - }, - "plb": { - "english_name": "Polonombauk" - }, - "pae": { - "english_name": "Pagibete" - }, - "pst": { - "english_name": "Pashto, Central" - }, - "dbu": { - "english_name": "Dogon, Bondum Dom" - }, - "pnu": { - "english_name": "Bunu, Jiongnai" - }, - "don": { - "english_name": "Toura (Papua New Guinea)" - }, - "ppp": { - "english_name": "Pelende" - }, - "obr": { - "english_name": "Burmese, Old" - }, - "msg": { - "english_name": "Moraid" - }, - "ley": { - "english_name": "Lemolang" - }, - "nsm": { - "english_name": "Naga, Sumi" - }, - "cih": { - "english_name": "Chinali" - }, - "vis": { - "english_name": "Vishavan" - }, - "grs": { - "english_name": "Gresi" - }, - "zin": { - "english_name": "Zinza" - }, - "bzu": { - "english_name": "Burmeso" - }, - "zmi": { - "english_name": "Negeri Sembilan Malay" - }, - "yiv": { - "english_name": "Nisu, Northern" - }, - "bqz": { - "english_name": "Bakaka" - }, - "llg": { - "english_name": "Lole" - }, - "mus": { - "english_name": "Creek" - }, - "ttw": { - "english_name": "Long Wat" - }, - "ura": { - "english_name": "Urarina" - }, - "pnp": { - "english_name": "Pancana" - }, - "efe": { - "english_name": "Efe" - }, - "scq": { - "english_name": "Sa'och" - }, - "mhx": { - "english_name": "Maru" - }, - "mfv": { - "english_name": "Mandjak" - }, - "she": { - "english_name": "Sheko" - }, - "opo": { - "english_name": "Opao" - }, - "ken": { - "english_name": "Kenyang" - }, - "ryn": { - "english_name": "Amami-Oshima, Northern" - }, - "krp": { - "english_name": "Korop" - }, - "tts": { - "english_name": "Thai, Northeastern" - }, - "bks": { - "english_name": "Sorsoganon, Northern" - }, - "ahi": { - "english_name": "Aizi, Tiagbamrin" - }, - "bip": { - "english_name": "Bila" - }, - "wmx": { - "english_name": "Womo" - }, - "pmb": { - "english_name": "Pambia" - }, - "ksl": { - "english_name": "Kumalu" - }, - "sby": { - "english_name": "Soli" - }, - "pri": { - "english_name": "Paicî" - }, - "tuq": { - "english_name": "Tedaga" - }, - "avt": { - "english_name": "Au" - }, - "hao": { - "english_name": "Hakö" - }, - "asx": { - "english_name": "Muratayak" - }, - "mbt": { - "english_name": "Manobo, Matigsalug" - }, - "pl": { - "english_name": "Polish", - "name": "polski" - }, - "kct": { - "english_name": "Kaian" - }, - "bws": { - "english_name": "Bomboma" - }, - "ntg": { - "english_name": "Ngantangarra" - }, - "bqu": { - "english_name": "Boguru" - }, - "xmo": { - "english_name": "Morerebi" - }, - "ybn": { - "english_name": "Yabaâna" - }, - "liw": { - "english_name": "Col" - }, - "pue": { - "english_name": "Puelche" - }, - "dya": { - "english_name": "Dyan" - }, - "gkp": { - "english_name": "Kpelle, Guinea" - }, - "ssb": { - "english_name": "Sama, Southern" - }, - "nuv": { - "english_name": "Nuni, Northern" - }, - "lnm": { - "english_name": "Langam" - }, - "aju": { - "english_name": "Arabic, Judeo-Moroccan" - }, - "lmu": { - "english_name": "Lamenu" - }, - "tyn": { - "english_name": "Kombai" - }, - "foi": { - "english_name": "Foi" - }, - "pah": { - "english_name": "Tenharim" - }, - "bby": { - "english_name": "Befang" - }, - "kev": { - "english_name": "Kanikkaran" - }, - "bus": { - "english_name": "Bokobaru" - }, - "gad": { - "english_name": "Gaddang" - }, - "jmi": { - "english_name": "Jimi (Nigeria)" - }, - "din": { - "english_name": "Dinka" - }, - "ego": { - "english_name": "Eggon" - }, - "tbw": { - "english_name": "Tagbanwa" - }, - "kvm": { - "english_name": "Kendem" - }, - "twh": { - "english_name": "Tai Dón" - }, - "mmy": { - "english_name": "Migaama" - }, - "opk": { - "english_name": "Kopkaka" - }, - "cro": { - "english_name": "Crow" - }, - "wpc": { - "english_name": "Maco" - }, - "xsd": { - "english_name": "Sidetic" - }, - "cbw": { - "english_name": "Kinabalian" - }, - "ta": { - "english_name": "Tamil", - "name": "தமிழ்" - }, - "mjx": { - "english_name": "Mahali" - }, - "xib": { - "english_name": "Iberian" - }, - "xxm": { - "english_name": "Minkin" - }, - "jos": { - "english_name": "Jordanian Sign Language" - }, - "mg": { - "english_name": "Malagasy" - }, - "gbz": { - "english_name": "Dari, Zoroastrian" - }, - "sds": { - "english_name": "Sened" - }, - "ldb": { - "english_name": "Dũya" - }, - "kfg": { - "english_name": "Kudiya" - }, - "slp": { - "english_name": "Lamaholot" - }, - "aiy": { - "english_name": "Ali" - }, - "mfs": { - "english_name": "Mexican Sign Language" - }, - "kcj": { - "english_name": "Kobiana" - }, - "ykk": { - "english_name": "Yakaikeke" - }, - "kof": { - "english_name": "Kubi" - }, - "rhp": { - "english_name": "Yahang" - }, - "klf": { - "english_name": "Kendeje" - }, - "lif": { - "english_name": "Limbu" - }, - "fla": { - "english_name": "Kalispel-Pend d'Oreille" - }, - "ues": { - "english_name": "Kioko" - }, - "dnj": { - "english_name": "Dan" - }, - "nxu": { - "english_name": "Narau" - }, - "tkd": { - "english_name": "Tukudede" - }, - "aao": { - "english_name": "Arabic, Algerian Saharan" - }, - "piw": { - "english_name": "Pimbwe" - }, - "knw": { - "english_name": "Kung-Ekoka" - }, - "myv": { - "english_name": "Erzya" - }, - "rxw": { - "english_name": "Karuwali" - }, - "ccc": { - "english_name": "Chamicuro" - }, - "xtq": { - "english_name": "Tumshuqese" - }, - "nku": { - "english_name": "Kulango, Bouna" - }, - "wme": { - "english_name": "Wambule" - }, - "gnz": { - "english_name": "Ganzi" - }, - "rao": { - "english_name": "Rao" - }, - "aix": { - "english_name": "Aighon" - }, - "rkt": { - "english_name": "Rangpuri" - }, - "ory": { - "english_name": "Oriya (individual language)" - }, - "rmm": { - "english_name": "Roma" - }, - "tnv": { - "english_name": "Tangchangya" - }, - "kmw": { - "english_name": "Komo (Democratic Republic of Congo)" - }, - "nzu": { - "english_name": "Teke-Nzikou" - }, - "xin": { - "english_name": "Xinca" - }, - "kss": { - "english_name": "Kisi, Southern" - }, - "cwa": { - "english_name": "Kabwa" - }, - "kjq": { - "english_name": "Keres, Western" - }, - "smb": { - "english_name": "Simbari" - }, - "cdf": { - "english_name": "Chiru" - }, - "lns": { - "english_name": "Lamnso'" - }, - "bjw": { - "english_name": "Bakwé" - }, - "tcm": { - "english_name": "Tanahmerah" - }, - "ssp": { - "english_name": "Spanish Sign Language" - }, - "lmh": { - "english_name": "Lambichhong" - }, - "idr": { - "english_name": "Indri" - }, - "qwt": { - "english_name": "Kwalhioqua-Tlatskanai" - }, - "bfz": { - "english_name": "Pahari, Mahasu" - }, - "uar": { - "english_name": "Tairuma" - }, - "kvj": { - "english_name": "Psikye" - }, - "tny": { - "english_name": "Tongwe" - }, - "aum": { - "english_name": "Asu (Nigeria)" - }, - "asi": { - "english_name": "Buruwai" - }, - "glu": { - "english_name": "Gula (Chad)" - }, - "zkt": { - "english_name": "Kitan" - }, - "giq": { - "english_name": "Gelao, Green" - }, - "naz": { - "english_name": "Nahuatl, Coatepec" - }, - "ybb": { - "english_name": "Yemba" - }, - "gim": { - "english_name": "Gimi (Eastern Highlands)" - }, - "unk": { - "english_name": "Enawené-Nawé" - }, - "giz": { - "english_name": "Giziga, South" - }, - "fuc": { - "english_name": "Pulaar" - }, - "mup": { - "english_name": "Malvi" - }, - "yuy": { - "english_name": "Yugur, East" - }, - "wii": { - "english_name": "Minidien" - }, - "buu": { - "english_name": "Budu" - }, - "omn": { - "english_name": "Minoan" - }, - "kcu": { - "english_name": "Kami (Tanzania)" - }, - "xpj": { - "english_name": "Mpalitjanh" - }, - "mrg": { - "english_name": "Mising" - }, - "gct": { - "english_name": "German, Colonia Tovar" - }, - "kzr": { - "english_name": "Karang" - }, - "ruo": { - "english_name": "Romanian, Istro" - }, - "swu": { - "english_name": "Suwawa" - }, - "kj": { - "english_name": "Kuanyama" - }, - "cdh": { - "english_name": "Chambeali" - }, - "mzk": { - "english_name": "Mambila, Nigeria" - }, - "mre": { - "english_name": "Martha's Vineyard Sign Language" - }, - "gdf": { - "english_name": "Guduf-Gava" - }, - "pil": { - "english_name": "Yom" - }, - "nhp": { - "english_name": "Nahuatl, Isthmus-Pajapan" - }, - "miq": { - "english_name": "Mískito" - }, - "kjl": { - "english_name": "Kham, Western Parbate" - }, - "kbr": { - "english_name": "Kafa" - }, - "bfp": { - "english_name": "Beba" - }, - "duy": { - "english_name": "Agta, Dicamay" - }, - "vaf": { - "english_name": "Vafsi" - }, - "jer": { - "english_name": "Jere" - }, - "tsv": { - "english_name": "Tsogo" - }, - "txg": { - "english_name": "Tangut" - }, - "osi": { - "english_name": "Osing" - }, - "tue": { - "english_name": "Tuyuca" - }, - "pmm": { - "english_name": "Pomo" - }, - "sid": { - "english_name": "Sidamo" - }, - "cap": { - "english_name": "Chipaya" - }, - "htu": { - "english_name": "Hitu" - }, - "mzg": { - "english_name": "Monastic Sign Language" - }, - "kqc": { - "english_name": "Doromu-Koki" - }, - "yif": { - "english_name": "Ache" - }, - "cbj": { - "english_name": "Ede Cabe" - }, - "nzy": { - "english_name": "Nzakambay" - }, - "trm": { - "english_name": "Tregami" - }, - "ncp": { - "english_name": "Ndaktup" - }, - "loo": { - "english_name": "Lombo" - }, - "khe": { - "english_name": "Korowai" - }, - "mqc": { - "english_name": "Mangole" - }, - "xko": { - "english_name": "Kiorr" - }, - "brh": { - "english_name": "Brahui" - }, - "bbi": { - "english_name": "Barombi" - }, - "wom": { - "english_name": "Wom (Nigeria)" - }, - "sxm": { - "english_name": "Samre" - }, - "gor": { - "english_name": "Gorontalo" - }, - "lmn": { - "english_name": "Lambadi" - }, - "nay": { - "english_name": "Narrinyeri" - }, - "wls": { - "english_name": "Wallisian" - }, - "stq": { - "english_name": "Saterfriesisch" - }, - "bxf": { - "english_name": "Bilur" - }, - "mbc": { - "english_name": "Macushi" - }, - "usa": { - "english_name": "Usarufa" - }, - "sg": { - "english_name": "Sango" - }, - "zpx": { - "english_name": "Zapotec, San Baltazar Loxicha" - }, - "nsy": { - "english_name": "Nasal" - }, - "kvs": { - "english_name": "Kunggara" - }, - "atv": { - "english_name": "Altai, Northern" - }, - "xzp": { - "english_name": "Zapotec, Ancient" - }, - "mmo": { - "english_name": "Buang, Mangga" - }, - "gdi": { - "english_name": "Gundi" - }, - "urm": { - "english_name": "Urapmin" - }, - "wrs": { - "english_name": "Waris" - }, - "adn": { - "english_name": "Adang" - }, - "net": { - "english_name": "Nete" - }, - "ito": { - "english_name": "Itonama" - }, - "bgl": { - "english_name": "Bo (Laos)" - }, - "nax": { - "english_name": "Nakwi" - }, - "nbe": { - "english_name": "Naga, Konyak" - }, - "liz": { - "english_name": "Libinza" - }, - "kwz": { - "english_name": "Kwadi" - }, - "tey": { - "english_name": "Tulishi" - }, - "sbu": { - "english_name": "Bhoti, Stod" - }, - "yll": { - "english_name": "Yil" - }, - "bxz": { - "english_name": "Binahari" - }, - "nyt": { - "english_name": "Nyawaygi" - }, - "rem": { - "english_name": "Remo" - }, - "lti": { - "english_name": "Leti (Indonesia)" - }, - "ntr": { - "english_name": "Delo" - }, - "wbt": { - "english_name": "Wanman" - }, - "aoh": { - "english_name": "Arma" - }, - "ndg": { - "english_name": "Ndengereko" - }, - "nem": { - "english_name": "Nemi" - }, - "lwo": { - "english_name": "Luwo" - }, - "zaq": { - "english_name": "Zapotec, Aloápam" - }, - "kdk": { - "english_name": "Numèè" - }, - "bpm": { - "english_name": "Biyom" - }, - "ble": { - "english_name": "Balanta-Kentohe" - }, - "nnl": { - "english_name": "Naga, Northern Rengma" - }, - "qvh": { - "english_name": "Quechua, Huamalíes-Dos de Mayo Huánuco" - }, - "vmp": { - "english_name": "Mazatec, Soyaltepec" - }, - "jeb": { - "english_name": "Jebero" - }, - "hay": { - "english_name": "Haya" - }, - "shg": { - "english_name": "Shua" - }, - "ybm": { - "english_name": "Yaben" - }, - "mih": { - "english_name": "Mixtec, Chayuco" - }, - "pkt": { - "english_name": "Maleng" - }, - "ndu": { - "english_name": "Dugun" - }, - "toe": { - "english_name": "Tomedes" - }, - "mbr": { - "english_name": "Nukak Makú" - }, - "hov": { - "english_name": "Hovongan" - }, - "spp": { - "english_name": "Senoufo, Supyire" - }, - "bfr": { - "english_name": "Bazigar" - }, - "kqe": { - "english_name": "Kalagan" - }, - "coc": { - "english_name": "Cocopa" - }, - "yta": { - "english_name": "Talu" - }, - "mgr": { - "english_name": "Mambwe-Lungu" - }, - "kmu": { - "english_name": "Kanite" - }, - "nmb": { - "english_name": "Nambas, Big" - }, - "hgw": { - "english_name": "Haigwai" - }, - "sgw": { - "english_name": "Sebat Bet Gurage" - }, - "gyl": { - "english_name": "Gayil" - }, - "lss": { - "english_name": "Lasi" - }, - "sdg": { - "english_name": "Savi" - }, - "thu": { - "english_name": "Thuri" - }, - "sls": { - "english_name": "Singapore Sign Language" - }, - "gpn": { - "english_name": "Taiap" - }, - "nyb": { - "english_name": "Nyangbo" - }, - "opy": { - "english_name": "Ofayé" - }, - "lau": { - "english_name": "Laba" - }, - "mrn": { - "english_name": "Cheke Holo" - }, - "tpq": { - "english_name": "Tukpa" - }, - "zml": { - "english_name": "Madngele" - }, - "mnk": { - "english_name": "Mandinka" - }, - "poe": { - "english_name": "Popoloca, San Juan Atzingo" - }, - "mnn": { - "english_name": "Mnong, Southern" - }, - "gdk": { - "english_name": "Gadang" - }, - "mtl": { - "english_name": "Montol" - }, - "mgb": { - "english_name": "Mararit" - }, - "iti": { - "english_name": "Itneg, Inlaod" - }, - "bxb": { - "english_name": "Bor, Belanda" - }, - "nl": { - "english_name": "Dutch", - "name": "Nederlands" - }, - "gow": { - "english_name": "Gorowa" - }, - "zab": { - "english_name": "Zapotec, San Juan Guelavía" - }, - "bkh": { - "english_name": "Bakoko" - }, - "puo": { - "english_name": "Puoc" - }, - "lo": { - "english_name": "Lao" - }, - "bmb": { - "english_name": "Bembe" - }, - "kox": { - "english_name": "Coxima" - }, - "shl": { - "english_name": "Shendu" - }, - "kvv": { - "english_name": "Kola" - }, - "dgs": { - "english_name": "Dogoso" - }, - "aae": { - "english_name": "Albanian, Arbëreshë" - }, - "haj": { - "english_name": "Hajong" - }, - "siz": { - "english_name": "Siwi" - }, - "lcp": { - "english_name": "Lawa, Western" - }, - "orx": { - "english_name": "Oro" - }, - "gur": { - "english_name": "Farefare" - }, - "mkq": { - "english_name": "Miwok, Bay" - }, - "urk": { - "english_name": "Urak Lawoi'" - }, - "mcz": { - "english_name": "Mawan" - }, - "kut": { - "english_name": "Kutenai" - }, - "knk": { - "english_name": "Kuranko" - }, - "aim": { - "english_name": "Aimol" - }, - "ykg": { - "english_name": "Yukaghir, Northern" - }, - "tuu": { - "english_name": "Tututni" - }, - "cst": { - "english_name": "Ohlone, Northern" - }, - "tip": { - "english_name": "Trimuris" - }, - "hak": { - "english_name": "Chinese, Hakka" - }, - "tab": { - "english_name": "Tabassaran" - }, - "kyt": { - "english_name": "Kayagar" - }, - "pne": { - "english_name": "Penan, Western" - }, - "xme": { - "english_name": "Median" - }, - "swr": { - "english_name": "Saweru" - }, - "hoo": { - "english_name": "Holoholo" - }, - "fr": { - "english_name": "French", - "name": "français" - }, - "skh": { - "english_name": "Sikule" - }, - "ca": { - "english_name": "Catalan", - "name": "Català" - }, - "zpu": { - "english_name": "Zapotec, Yalálag" - }, - "tyt": { - "english_name": "Tày Tac" - }, - "bes": { - "english_name": "Besme" - }, - "hla": { - "english_name": "Halia" - }, - "dhd": { - "english_name": "Dhundari" - }, - "kfp": { - "english_name": "Korwa" - }, - "bup": { - "english_name": "Busoa" - }, - "kpm": { - "english_name": "Koho" - }, - "lbu": { - "english_name": "Labu" - }, - "frt": { - "english_name": "Fortsenal" - }, - "iff": { - "english_name": "Ifo" - }, - "mjr": { - "english_name": "Malavedan" - }, - "kxc": { - "english_name": "Konso" - }, - "ygm": { - "english_name": "Yagomi" - }, - "kxr": { - "english_name": "Koro (Papua New Guinea)" - }, - "mxi": { - "english_name": "Mozarabic" - }, - "mkz": { - "english_name": "Makasae" - }, - "dhl": { - "english_name": "Dhalandji" - }, - "mqn": { - "english_name": "Moronene" - }, - "dcc": { - "english_name": "Deccan" - }, - "pnk": { - "english_name": "Paunaka" - }, - "nqn": { - "english_name": "Nen" - }, - "bzk": { - "english_name": "Creole English, Nicaragua" - }, - "sqr": { - "english_name": "Arabic, Siculo" - }, - "ran": { - "english_name": "Riantana" - }, - "okj": { - "english_name": "Oko-Juwoi" - }, - "mam": { - "english_name": "Mam" - }, - "tgw": { - "english_name": "Senoufo, Tagwana" - }, - "mmq": { - "english_name": "Musak" - }, - "bni": { - "english_name": "Bangi" - }, - "hed": { - "english_name": "Herdé" - }, - "nbj": { - "english_name": "Ngarinman" - }, - "bcm": { - "english_name": "Bannoni" - }, - "bdp": { - "english_name": "Bende" - }, - "skv": { - "english_name": "Skou" - }, - "gyr": { - "english_name": "Guarayu" - }, - "kgn": { - "english_name": "Karingani" - }, - "mwq": { - "english_name": "Chin, Mün" - }, - "mix": { - "english_name": "Mixtec, Mixtepec" - }, - "smm": { - "english_name": "Musasa" - }, - "tld": { - "english_name": "Talaud" - }, - "kzt": { - "english_name": "Dusun, Tambunan" - }, - "rtc": { - "english_name": "Chin, Rungtu" - }, - "awu": { - "english_name": "Awyu, Central" - }, - "asf": { - "english_name": "Australian Sign Language" - }, - "sko": { - "english_name": "Seko Tengah" - }, - "ker": { - "english_name": "Kera" - }, - "lgr": { - "english_name": "Lengo" - }, - "dmd": { - "english_name": "Madhi Madhi" - }, - "tqt": { - "english_name": "Totonac, Western" - }, - "tgt": { - "english_name": "Tagbanwa, Central" - }, - "bqc": { - "english_name": "Boko (Benin)" - }, - "dai": { - "english_name": "Day" - }, - "qvn": { - "english_name": "Quechua, North Junín" - }, - "pai": { - "english_name": "Pe" - }, - "bab": { - "english_name": "Bainouk-Gunyuño" - }, - "amj": { - "english_name": "Amdang" - }, - "wik": { - "english_name": "Wikalkan" - }, - "nir": { - "english_name": "Nimboran" - }, - "siw": { - "english_name": "Siwai" - }, - "osp": { - "english_name": "Spanish, Old" - }, - "bag": { - "english_name": "Tuki" - }, - "xms": { - "english_name": "Moroccan Sign Language" - }, - "bfs": { - "english_name": "Bai, Southern" - }, - "wbj": { - "english_name": "Alagwa" - }, - "bwe": { - "english_name": "Karen, Bwe" - }, - "shj": { - "english_name": "Shatt" - }, - "pkg": { - "english_name": "Pak-Tong" - }, - "ssz": { - "english_name": "Sengseng" - }, - "ilo": { - "english_name": "Iloko" - }, - "nog": { - "english_name": "Nogai" - }, - "okd": { - "english_name": "Okodia" - }, - "mwr": { - "english_name": "Marwari" - }, - "yga": { - "english_name": "Malyangapa" - }, - "daa": { - "english_name": "Dangaléat" - }, - "wti": { - "english_name": "Berta" - }, - "vkk": { - "english_name": "Kaur" - }, - "cbk": { - "english_name": "Chavacano" - }, - "mpu": { - "english_name": "Makuráp" - }, - "xkz": { - "english_name": "Kurtokha" - }, - "xgm": { - "english_name": "Guwinmal" - }, - "cow": { - "english_name": "Cowlitz" - }, - "swv": { - "english_name": "Shekhawati" - }, - "slg": { - "english_name": "Selungai Murut" - }, - "mek": { - "english_name": "Mekeo" - }, - "dga": { - "english_name": "Dagaare, Southern" - }, - "uga": { - "english_name": "Ugaritic" - }, - "zos": { - "english_name": "Zoque, Francisco León" - }, - "xam": { - "english_name": "/Xam" - }, - "ych": { - "english_name": "Chesu" - }, - "ccp": { - "english_name": "Chakma" - }, - "mur": { - "english_name": "Murle" - }, - "bwf": { - "english_name": "Boselewa" - }, - "sho": { - "english_name": "Shanga" - }, - "pbt": { - "english_name": "Pashto, Southern" - }, - "ajg": { - "english_name": "Aja (Benin)" - }, - "elm": { - "english_name": "Eleme" - }, - "jhi": { - "english_name": "Jehai" - }, - "kqf": { - "english_name": "Kakabai" - }, - "num": { - "english_name": "Niuafo'ou" - }, - "xmf": { - "english_name": "Mingrelian" - }, - "nko": { - "english_name": "Nkonya" - }, - "mfm": { - "english_name": "Marghi South" - }, - "esm": { - "english_name": "Esuma" - }, - "plo": { - "english_name": "Popoluca, Oluta" - }, - "zbe": { - "english_name": "Berawan, East" - }, - "tbs": { - "english_name": "Tanguat" - }, - "khs": { - "english_name": "Kasua" - }, - "jct": { - "english_name": "Krymchak" - }, - "rkh": { - "english_name": "Rakahanga-Manihiki" - }, - "yug": { - "english_name": "Yug" - }, - "haz": { - "english_name": "Hazaragi" - }, - "qub": { - "english_name": "Quechua, Huallaga Huánuco" - }, - "ram": { - "english_name": "Canela" - }, - "wfg": { - "english_name": "Yafi" - }, - "ola": { - "english_name": "Walungge" - }, - "pss": { - "english_name": "Kaulong" - }, - "gbx": { - "english_name": "Gbe, Eastern Xwla" - }, - "bvt": { - "english_name": "Bati (Indonesia)" - }, - "mwo": { - "english_name": "Maewo, Central" - }, - "hlu": { - "english_name": "Luwian, Hieroglyphic" - }, - "wac": { - "english_name": "Wasco-Wishram" - }, - "goh": { - "english_name": "German, Old High (ca. 750-1050)" - }, - "ner": { - "english_name": "Yahadian" - }, - "bwk": { - "english_name": "Bauwaki" - }, - "ofu": { - "english_name": "Efutop" - }, - "mvd": { - "english_name": "Mamboru" - }, - "arj": { - "english_name": "Arapaso" - }, - "zme": { - "english_name": "Mangerr" - }, - "tux": { - "english_name": "Tuxináwa" - }, - "wiu": { - "english_name": "Wiru" - }, - "mgt": { - "english_name": "Mongol" - }, - "tlq": { - "english_name": "Tai Loi" - }, - "irn": { - "english_name": "Irántxe" - }, - "lsh": { - "english_name": "Lish" - }, - "yrl": { - "english_name": "Nhengatu" - }, - "syr": { - "english_name": "Syriac" - }, - "nbp": { - "english_name": "Nnam" - }, - "gso": { - "english_name": "Gbaya, Southwest" - }, - "uky": { - "english_name": "Kuuk-Yak" - }, - "ppt": { - "english_name": "Pare" - }, - "toy": { - "english_name": "Topoiyo" - }, - "wlx": { - "english_name": "Wali (Ghana)" - }, - "mfd": { - "english_name": "Mendankwe-Nkwen" - }, - "ikk": { - "english_name": "Ika" - }, - "pce": { - "english_name": "Palaung, Ruching" - }, - "vnk": { - "english_name": "Vano" - }, - "wrx": { - "english_name": "Wae Rana" - }, - "nlo": { - "english_name": "Ngul" - }, - "rui": { - "english_name": "Rufiji" - }, - "soy": { - "english_name": "Miyobe" - }, - "inj": { - "english_name": "Inga, Jungle" - }, - "dgo": { - "english_name": "Dogri (individual language)" - }, - "afu": { - "english_name": "Awutu" - }, - "kvd": { - "english_name": "Kui (Indonesia)" - }, - "nyd": { - "english_name": "Nyore" - }, - "mqx": { - "english_name": "Mamuju" - }, - "ngm": { - "english_name": "Ngatik Men's Creole" - }, - "cmi": { - "english_name": "Emberá-Chamí" - }, - "bve": { - "english_name": "Malay, Berau" - }, - "nia": { - "english_name": "Nias" - }, - "ige": { - "english_name": "Igede" - }, - "rgk": { - "english_name": "Rangkas" - }, - "urh": { - "english_name": "Urhobo" - }, - "dmr": { - "english_name": "Damar, East" - }, - "drl": { - "english_name": "Paakantyi" - }, - "dow": { - "english_name": "Doyayo" - }, - "kwu": { - "english_name": "Kwakum" - }, - "jub": { - "english_name": "Wannu" - }, - "wrr": { - "english_name": "Wardaman" - }, - "lvu": { - "english_name": "Levuka" - }, - "lom": { - "english_name": "Loma (Liberia)" - }, - "kgm": { - "english_name": "Karipúna" - }, - "kkj": { - "english_name": "Kako" - }, - "gyn": { - "english_name": "Creole English, Guyanese" - }, - "tde": { - "english_name": "Dogon, Tiranige Diga" - }, - "bvr": { - "english_name": "Burarra" - }, - "kqi": { - "english_name": "Koitabu" - }, - "dhs": { - "english_name": "Dhaiso" - }, - "mbe": { - "english_name": "Molale" - }, - "myc": { - "english_name": "Mayeka" - }, - "pof": { - "english_name": "Poke" - }, - "gnm": { - "english_name": "Ginuman" - }, - "mpx": { - "english_name": "Misima-Panaeati" - }, - "tod": { - "english_name": "Toma" - }, - "gan": { - "english_name": "Chinese, Gan" - }, - "cgc": { - "english_name": "Kagayanen" - }, - "udl": { - "english_name": "Wuzlam" - }, - "twm": { - "english_name": "Monpa, Tawang" - }, - "tke": { - "english_name": "Takwane" - }, - "mvq": { - "english_name": "Moere" - }, - "byj": { - "english_name": "Bina (Nigeria)" - }, - "qxw": { - "english_name": "Quechua, Jauja Wanca" - }, - "ocu": { - "english_name": "Matlatzinca, Atzingo" - }, - "bqf": { - "english_name": "Baga Kaloum" - }, - "gmb": { - "english_name": "Gula'alaa" - }, - "usk": { - "english_name": "Usaghade" - }, - "nwc": { - "english_name": "Newari, Classical" - }, - "thp": { - "english_name": "Thompson" - }, - "mch": { - "english_name": "Maquiritari" - }, - "hiw": { - "english_name": "Hiw" - }, - "nan": { - "english_name": "Chinese, Min Nan" - }, - "yuk": { - "english_name": "Yuki" - }, - "yad": { - "english_name": "Yagua" - }, - "wri": { - "english_name": "Wariyangga" - }, - "awi": { - "english_name": "Aekyom" - }, - "siy": { - "english_name": "Sivandi" - }, - "nhr": { - "english_name": "Naro" - }, - "pbe": { - "english_name": "Popoloca, Mezontla" - }, - "tkm": { - "english_name": "Takelma" - }, - "xpq": { - "english_name": "Mohegan-Pequot" - }, - "ybx": { - "english_name": "Yawiyo" - }, - "bcw": { - "english_name": "Bana" - }, - "mcj": { - "english_name": "Mvanip" - }, - "aih": { - "english_name": "Ai-Cham" - }, - "bqk": { - "english_name": "Banda-Mbrès" - }, - "abq": { - "english_name": "Abaza" - }, - "tnk": { - "english_name": "Kwamera" - }, - "asw": { - "english_name": "Australian Aborigines Sign Language" - }, - "fai": { - "english_name": "Faiwol" - }, - "grv": { - "english_name": "Grebo, Central" - }, - "egy": { - "english_name": "Egyptian (Ancient)" - }, - "zil": { - "english_name": "Zialo" - }, - "sro": { - "english_name": "Sardinian, Campidanese" - }, - "ese": { - "english_name": "Ese Ejja" - }, - "duq": { - "english_name": "Dusun Malang" - }, - "ekg": { - "english_name": "Ekari" - }, - "prk": { - "english_name": "Parauk" - }, - "tex": { - "english_name": "Tennet" - }, - "nja": { - "english_name": "Nzanyi" - }, - "nmm": { - "english_name": "Manangba" - }, - "kod": { - "english_name": "Kodi" - }, - "pab": { - "english_name": "Parecís" - }, - "wul": { - "english_name": "Silimo" - }, - "usp": { - "english_name": "Uspanteco" - }, - "vka": { - "english_name": "Kariyarra" - }, - "trn": { - "english_name": "Trinitario" - }, - "xel": { - "english_name": "Kelo" - }, - "tau": { - "english_name": "Tanana, Upper" - }, - "ubr": { - "english_name": "Ubir" - }, - "qxh": { - "english_name": "Quechua, Panao Huánuco" - }, - "bah": { - "english_name": "Creole English, Bahamas" - }, - "lea": { - "english_name": "Lega-Shabunda" - }, - "aof": { - "english_name": "Bragat" - }, - "xnn": { - "english_name": "Kankanay, Northern" - }, - "mhc": { - "english_name": "Mocho" - }, - "aek": { - "english_name": "Haeke" - }, - "rel": { - "english_name": "Rendille" - }, - "gnn": { - "english_name": "Gumatj" - }, - "okk": { - "english_name": "One, Kwamtim" - }, - "thq": { - "english_name": "Tharu, Kochila" - }, - "aqm": { - "english_name": "Atohwaim" - }, - "mqo": { - "english_name": "Modole" - }, - "toc": { - "english_name": "Totonac, Coyutla" - }, - "kqr": { - "english_name": "Kimaragang" - }, - "ado": { - "english_name": "Abu" - }, - "nbn": { - "english_name": "Kuri" - }, - "ksk": { - "english_name": "Kansa" - }, - "ztq": { - "english_name": "Zapotec, Quioquitani-Quierí" - }, - "vam": { - "english_name": "Vanimo" - }, - "bdi": { - "english_name": "Burun" - }, - "guw": { - "english_name": "Gun" - }, - "pej": { - "english_name": "Pomo, Northern" - }, - "jbe": { - "english_name": "Judeo-Berber" - }, - "ogc": { - "english_name": "Ogbah" - }, - "bvv": { - "english_name": "Baniva" - }, - "gah": { - "english_name": "Alekano" - }, - "adt": { - "english_name": "Adnyamathanha" - }, - "dud": { - "english_name": "Hun-Saare" - }, - "ckb": { - "english_name": "Kurdish, Central" - }, - "luw": { - "english_name": "Luo (Cameroon)" - }, - "mtc": { - "english_name": "Munit" - }, - "kzn": { - "english_name": "Kokola" - }, - "pmx": { - "english_name": "Naga, Poumei" - }, - "huq": { - "english_name": "Tsat" - }, - "cyo": { - "english_name": "Cuyonon" - }, - "srr": { - "english_name": "Serer" - }, - "ldm": { - "english_name": "Landoma" - }, - "gld": { - "english_name": "Nanai" - }, - "acz": { - "english_name": "Acheron" - }, - "ymk": { - "english_name": "Makwe" - }, - "mzy": { - "english_name": "Mozambican Sign Language" - }, - "ysd": { - "english_name": "Samatao" - }, - "jdg": { - "english_name": "Jadgali" - }, - "bgy": { - "english_name": "Benggoi" - }, - "bwh": { - "english_name": "Bishuo" - }, - "tgq": { - "english_name": "Tring" - }, - "afz": { - "english_name": "Obokuitai" - }, - "bln": { - "english_name": "Bikol, Southern Catanduanes" - }, - "tng": { - "english_name": "Tobanga" - }, - "nhe": { - "english_name": "Nahuatl, Eastern Huasteca" - }, - "ulk": { - "english_name": "Meriam" - }, - "it": { - "english_name": "Italian", - "name": "Italiano" - }, - "lef": { - "english_name": "Lelemi" - }, - "uiv": { - "english_name": "Iyive" - }, - "nps": { - "english_name": "Nipsan" - }, - "mop": { - "english_name": "Mopán Maya" - }, - "njo": { - "english_name": "Naga, Ao" - }, - "lll": { - "english_name": "Lilau" - }, - "nec": { - "english_name": "Nedebang" - }, - "mmi": { - "english_name": "Musar" - }, - "vki": { - "english_name": "Ija-Zuba" - }, - "blp": { - "english_name": "Blablanga" - }, - "ga": { - "english_name": "Irish", - "name": "Gaeilge" - }, - "tol": { - "english_name": "Tolowa" - }, - "bmr": { - "english_name": "Muinane" - }, - "yzg": { - "english_name": "Buyang, E'ma" - }, - "gog": { - "english_name": "Gogo" - }, - "bmx": { - "english_name": "Baimak" - }, - "lis": { - "english_name": "Lisu" - }, - "mwg": { - "english_name": "Aiklep" - }, - "acl": { - "english_name": "Akar-Bale" - }, - "gak": { - "english_name": "Gamkonora" - }, - "ilg": { - "english_name": "Garig-Ilgar" - }, - "mbh": { - "english_name": "Mangseng" - }, - "ykr": { - "english_name": "Yekora" - }, - "tdl": { - "english_name": "Sur" - }, - "wep": { - "english_name": "Westphalien" - }, - "ogb": { - "english_name": "Ogbia" - }, - "omt": { - "english_name": "Omotik" - }, - "pso": { - "english_name": "Polish Sign Language" - }, - "kcp": { - "english_name": "Kanga" - }, - "pnb": { - "english_name": "Panjabi, Western" - }, - "uln": { - "english_name": "Unserdeutsch" - }, - "nbb": { - "english_name": "Ndoe" - }, - "swy": { - "english_name": "Sarua" - }, - "wet": { - "english_name": "Perai" - }, - "mje": { - "english_name": "Muskum" - }, - "miw": { - "english_name": "Akoye" - }, - "dty": { - "english_name": "Dotyali" - }, - "cak": { - "english_name": "Kaqchikel" - }, - "bmm": { - "english_name": "Malagasy, Northern Betsimisaraka" - }, - "khz": { - "english_name": "Keapara" - }, - "bbz": { - "english_name": "Creole Arabic, Babalia" - }, - "lje": { - "english_name": "Rampi" - }, - "plr": { - "english_name": "Senoufo, Palaka" - }, - "gud": { - "english_name": "Dida, Yocoboué" - }, - "ksf": { - "english_name": "Bafia" - }, - "mnh": { - "english_name": "Mono (Democratic Republic of Congo)" - }, - "pgs": { - "english_name": "Pangseng" - }, - "yin": { - "english_name": "Yinchia" - }, - "kke": { - "english_name": "Kakabe" - }, - "yoi": { - "english_name": "Yonaguni" - }, - "zpy": { - "english_name": "Zapotec, Mazaltepec" - }, - "anp": { - "english_name": "Angika" - }, - "sub": { - "english_name": "Suku" - }, - "brq": { - "english_name": "Breri" - }, - "utp": { - "english_name": "Amba (Solomon Islands)" - }, - "nv": { - "english_name": "Navajo" - }, - "gmn": { - "english_name": "Gimnime" - }, - "nmn": { - "english_name": "!Xóõ" - }, - "ndr": { - "english_name": "Ndoola" - }, - "nae": { - "english_name": "Naka'ela" - }, - "ang": { - "english_name": "English, Old (ca. 450-1100)" - }, - "bzy": { - "english_name": "Obanliku" - }, - "azt": { - "english_name": "Atta, Faire" - }, - "atc": { - "english_name": "Atsahuaca" - }, - "ndm": { - "english_name": "Ndam" - }, - "bjv": { - "english_name": "Bedjond" - }, - "lb": { - "english_name": "Luxembourgish" - }, - "kzw": { - "english_name": "Karirí-Xocó" - }, - "rou": { - "english_name": "Runga" - }, - "gnu": { - "english_name": "Gnau" - }, - "sgd": { - "english_name": "Surigaonon" - }, - "mjv": { - "english_name": "Mannan" - }, - "dic": { - "english_name": "Dida, Lakota" - }, - "wry": { - "english_name": "Merwari" - }, - "lkr": { - "english_name": "Päri" - }, - "gdt": { - "english_name": "Kungardutyi" - }, - "lky": { - "english_name": "Lokoya" - }, - "gni": { - "english_name": "Gooniyandi" - }, - "ood": { - "english_name": "Tohono O'odham" - }, - "bbw": { - "english_name": "Baba" - }, - "dui": { - "english_name": "Dumun" - }, - "kzl": { - "english_name": "Kayeli" - }, - "ksh": { - "english_name": "Kölsch" - }, - "xiy": { - "english_name": "Xipaya" - }, - "yww": { - "english_name": "Yawarawarga" - }, - "spk": { - "english_name": "Sengo" - }, - "bnb": { - "english_name": "Bookan" - }, - "lui": { - "english_name": "Luiseno" - }, - "xpm": { - "english_name": "Pumpokol" - }, - "ngg": { - "english_name": "Ngbaka Manza" - }, - "ghn": { - "english_name": "Ghanongga" - }, - "swj": { - "english_name": "Sira" - }, - "mtg": { - "english_name": "Una" - }, - "ngu": { - "english_name": "Nahuatl, Guerrero" - }, - "nju": { - "english_name": "Ngadjunmaya" - }, - "vgr": { - "english_name": "Vaghri" - }, - "wlm": { - "english_name": "Welsh, Middle" - }, - "rag": { - "english_name": "Logooli" - }, - "pth": { - "english_name": "Pataxó Hã-Ha-Hãe" - }, - "sdz": { - "english_name": "Sallands" - }, - "tul": { - "english_name": "Tula" - }, - "xre": { - "english_name": "Kreye" - }, - "mxx": { - "english_name": "Mahou" - }, - "mdl": { - "english_name": "Maltese Sign Language" - }, - "dsb": { - "english_name": "Sorbian, Lower" - }, - "ake": { - "english_name": "Akawaio" - }, - "bxs": { - "english_name": "Busam" - }, - "sjn": { - "english_name": "Sindarin" - }, - "bpw": { - "english_name": "Bo (Papua New Guinea)" - }, - "cbd": { - "english_name": "Carijona" - }, - "gce": { - "english_name": "Galice" - }, - "nez": { - "english_name": "Nez Perce" - }, - "djm": { - "english_name": "Dogon, Jamsay" - }, - "aku": { - "english_name": "Akum" - }, - "vel": { - "english_name": "Veluws" - }, - "ndj": { - "english_name": "Ndamba" - }, - "vmz": { - "english_name": "Mazatec, Mazatlán" - }, - "gru": { - "english_name": "Kistane" - }, - "bey": { - "english_name": "Beli (Papua New Guinea)" - }, - "dyy": { - "english_name": "Dyaabugay" - }, - "piz": { - "english_name": "Pije" - }, - "bbs": { - "english_name": "Bakpinka" - }, - "ykl": { - "english_name": "Khlula" - }, - "plc": { - "english_name": "Palawano, Central" - }, - "met": { - "english_name": "Mato" - }, - "tus": { - "english_name": "Tuscarora" - }, - "xjt": { - "english_name": "Jaitmatang" - }, - "ktt": { - "english_name": "Ketum" - }, - "aqg": { - "english_name": "Arigidi" - }, - "mhp": { - "english_name": "Malay, Balinese" - }, - "neq": { - "english_name": "Mixe, North Central" - }, - "umb": { - "english_name": "Umbundu" - }, - "dnw": { - "english_name": "Dani, Western" - }, - "fly": { - "english_name": "Tsotsitaal" - }, - "zbl": { - "english_name": "Blissymbols" - }, - "tub": { - "english_name": "Tübatulabal" - }, - "oma": { - "english_name": "Omaha-Ponca" - }, - "gbn": { - "english_name": "Mo'da" - }, - "hch": { - "english_name": "Huichol" - }, - "bib": { - "english_name": "Bissa" - }, - "agt": { - "english_name": "Agta, Central Cagayan" - }, - "kvg": { - "english_name": "Kuni-Boazi" - }, - "crg": { - "english_name": "Michif" - }, - "cjn": { - "english_name": "Chenapian" - }, - "yrk": { - "english_name": "Nenets" - }, - "xse": { - "english_name": "Sempan" - }, - "gux": { - "english_name": "Gourmanchéma" - }, - "xvi": { - "english_name": "Kamviri" - }, - "kbo": { - "english_name": "Keliko" - }, - "gat": { - "english_name": "Kenati" - }, - "liv": { - "english_name": "Liv" - }, - "kqn": { - "english_name": "Kaonde" - }, - "cvn": { - "english_name": "Chinantec, Valle Nacional" - }, - "sdh": { - "english_name": "Kurdish, Southern" - }, - "xma": { - "english_name": "Mushungulu" - }, - "tmt": { - "english_name": "Tasmate" - }, - "tpk": { - "english_name": "Tupinikin" - }, - "pcl": { - "english_name": "Pardhi" - }, - "ztn": { - "english_name": "Zapotec, Santa Catarina Albarradas" - }, - "ttk": { - "english_name": "Totoro" - }, - "ydk": { - "english_name": "Yoidik" - }, - "xua": { - "english_name": "Kurumba, Alu" - }, - "keo": { - "english_name": "Kakwa" - }, - "otk": { - "english_name": "Turkish, Old" - }, - "njd": { - "english_name": "Ndonde Hamba" - }, - "nxx": { - "english_name": "Nafri" - }, - "xly": { - "english_name": "Elymian" - }, - "lbz": { - "english_name": "Lardil" - }, - "sie": { - "english_name": "Simaa" - }, - "yam": { - "english_name": "Yamba" - }, - "wba": { - "english_name": "Warao" - }, - "scp": { - "english_name": "Helambu Sherpa" - }, - "is": { - "english_name": "Icelandic", - "name": "Íslenska" - }, - "daz": { - "english_name": "Dao" - }, - "bym": { - "english_name": "Bidyara" - }, - "tnc": { - "english_name": "Tanimuca-Retuarã" - }, - "oon": { - "english_name": "Önge" - }, - "biz": { - "english_name": "Baloi" - }, - "bia": { - "english_name": "Badimaya" - }, - "smf": { - "english_name": "Auwe" - }, - "wrz": { - "english_name": "Waray (Australia)" - }, - "emn": { - "english_name": "Eman" - }, - "tva": { - "english_name": "Vaghua" - }, - "tpm": { - "english_name": "Tampulma" - }, - "klo": { - "english_name": "Kapya" - }, - "kib": { - "english_name": "Koalib" - }, - "ibn": { - "english_name": "Ibino" - }, - "but": { - "english_name": "Bungain" - }, - "xtz": { - "english_name": "Tasmanian" - }, - "ttz": { - "english_name": "Tsum" - }, - "nrg": { - "english_name": "Narango" - }, - "ibu": { - "english_name": "Ibu" - }, - "sux": { - "english_name": "Sumerian" - }, - "snq": { - "english_name": "Sangu (Gabon)" - }, - "tkb": { - "english_name": "Buksa" - }, - "akr": { - "english_name": "Araki" - }, - "tdj": { - "english_name": "Tajio" - }, - "mle": { - "english_name": "Manambu" - }, - "bgk": { - "english_name": "Bit" - }, - "mwz": { - "english_name": "Moingi" - }, - "hmj": { - "english_name": "Ge" - }, - "kgs": { - "english_name": "Kumbainggar" - }, - "mjz": { - "english_name": "Majhi" - }, - "arz": { - "english_name": "Arabic, Egyptian" - }, - "tbv": { - "english_name": "Tobo" - }, - "wbf": { - "english_name": "Wara" - }, - "acx": { - "english_name": "Arabic, Omani" - }, - "bst": { - "english_name": "Basketo" - }, - "jad": { - "english_name": "Jahanka" - }, - "xgg": { - "english_name": "Goreng" - }, - "mgy": { - "english_name": "Mbunga" - }, - "tax": { - "english_name": "Tamki" - }, - "vag": { - "english_name": "Vagla" - }, - "trv": { - "english_name": "Taroko" - }, - "uba": { - "english_name": "Ubang" - }, - "jna": { - "english_name": "Jangshung" - }, - "quq": { - "english_name": "Quinqui" - }, - "jko": { - "english_name": "Kubo" - }, - "mfi": { - "english_name": "Wandala" - }, - "zpa": { - "english_name": "Zapotec, Lachiguiri" - }, - "mcv": { - "english_name": "Minanibai" - }, - "mwf": { - "english_name": "Murrinh-Patha" - }, - "kgi": { - "english_name": "Selangor Sign Language" - }, - "del": { - "english_name": "Delaware" - }, - "bhb": { - "english_name": "Bhili" - }, - "juy": { - "english_name": "Juray" - }, - "gng": { - "english_name": "Ngangam" - }, - "nlc": { - "english_name": "Nalca" - }, - "bsv": { - "english_name": "Baga Sobané" - }, - "lut": { - "english_name": "Lushootseed" - }, - "lng": { - "english_name": "Langobardic" - }, - "ahg": { - "english_name": "Qimant" - }, - "ngt": { - "english_name": "Ngeq" - }, - "nsz": { - "english_name": "Nisenan" - }, - "si": { - "english_name": "Sinhala" - }, - "seq": { - "english_name": "Sénoufo, Senara" - }, - "xmy": { - "english_name": "Mayaguduna" - }, - "tlt": { - "english_name": "Teluti" - }, - "arr": { - "english_name": "Karo (Brazil)" - }, - "bfi": { - "english_name": "British Sign Language" - }, - "fir": { - "english_name": "Firan" - }, - "jih": { - "english_name": "sTodsde" - }, - "pos": { - "english_name": "Popoluca, Sayula" - }, - "tnt": { - "english_name": "Tontemboan" - }, - "kqx": { - "english_name": "Mser" - }, - "myx": { - "english_name": "Masaaba" - }, - "gbw": { - "english_name": "Gabi-Gabi" - }, - "wsi": { - "english_name": "Wusi" - }, - "guz": { - "english_name": "Gusii" - }, - "rnr": { - "english_name": "Nari Nari" - }, - "azg": { - "english_name": "Amuzgo, San Pedro Amuzgos" - }, - "apq": { - "english_name": "A-Pucikwar" - }, - "lra": { - "english_name": "Rara Bakati'" - }, - "zzj": { - "english_name": "Zhuang, Zuojiang" - }, - "syo": { - "english_name": "Suoy" - }, - "lez": { - "english_name": "Lezghian" - }, - "ntz": { - "english_name": "Natanzi" - }, - "tto": { - "english_name": "Ta'oih, Lower" - }, - "nee": { - "english_name": "Nêlêmwa-Nixumwak" - }, - "fur": { - "english_name": "Friulian" - }, - "jiq": { - "english_name": "Guanyinqiao" - }, - "bgs": { - "english_name": "Tagabawa" - }, - "lnn": { - "english_name": "Lorediakarkar" - }, - "krw": { - "english_name": "Krahn, Western" - }, - "pnw": { - "english_name": "Panytyima" - }, - "zeh": { - "english_name": "Zhuang, Eastern Hongshuihe" - }, - "ptp": { - "english_name": "Patep" - }, - "wbi": { - "english_name": "Vwanji" - }, - "mee": { - "english_name": "Mengen" - }, - "viv": { - "english_name": "Iduna" - }, - "bua": { - "english_name": "Buriat" - }, - "sgx": { - "english_name": "Sierra Leone Sign Language" - }, - "fuq": { - "english_name": "Fulfulde, Central-Eastern Niger" - }, - "snp": { - "english_name": "Siane" - }, - "kjd": { - "english_name": "Kiwai, Southern" - }, - "rar": { - "english_name": "Rarotongan" - }, - "vao": { - "english_name": "Vao" - }, - "myd": { - "english_name": "Maramba" - }, - "mef": { - "english_name": "Megam" - }, - "yso": { - "english_name": "Nisi (China)" - }, - "kfa": { - "english_name": "Kodava" - }, - "qxr": { - "english_name": "Quichua, Cañar Highland" - }, - "nac": { - "english_name": "Narak" - }, - "jgo": { - "english_name": "Ngomba" - }, - "bha": { - "english_name": "Bharia" - }, - "obk": { - "english_name": "Bontok, Southern" - }, - "koh": { - "english_name": "Koyo" - }, - "cik": { - "english_name": "Kinnauri, Chitkuli" - }, - "prm": { - "english_name": "Kibiri" - }, - "ksp": { - "english_name": "Kaba" - }, - "wsv": { - "english_name": "Wotapuri-Katarqalai" - }, - "jkp": { - "english_name": "Karen, Paku" - }, - "dbo": { - "english_name": "Dulbu" - }, - "kg": { - "english_name": "Kongo" - }, - "mxy": { - "english_name": "Mixtec, Southeastern Nochixtlán" - }, - "hmb": { - "english_name": "Songhay, Humburi Senni" - }, - "yss": { - "english_name": "Yessan-Mayo" - }, - "bmh": { - "english_name": "Kein" - }, - "tak": { - "english_name": "Tala" - }, - "oos": { - "english_name": "Ossetic, Old" - }, - "geb": { - "english_name": "Kire" - }, - "xwg": { - "english_name": "Kwegu" - }, - "bvj": { - "english_name": "Baan" - }, - "sdu": { - "english_name": "Sarudu" - }, - "yns": { - "english_name": "Yansi" - }, - "pij": { - "english_name": "Pijao" - }, - "sxg": { - "english_name": "Shixing" - }, - "vmy": { - "english_name": "Mazatec, Ayautla" - }, - "lrv": { - "english_name": "Larevat" - }, - "llu": { - "english_name": "Lau" - }, - "wmw": { - "english_name": "Mwani" - }, - "wau": { - "english_name": "Waurá" - }, - "zrs": { - "english_name": "Mairasi" - }, - "stm": { - "english_name": "Setaman" - }, - "yee": { - "english_name": "Yimas" - }, - "bci": { - "english_name": "Baoulé" - }, - "lcc": { - "english_name": "Legenyem" - }, - "tth": { - "english_name": "Ta'oih, Upper" - }, - "lgh": { - "english_name": "Laghuu" - }, - "fum": { - "english_name": "Fum" - }, - "lhh": { - "english_name": "Laha (Indonesia)" - }, - "hmw": { - "english_name": "Hmong, Western Mashan" - }, - "mka": { - "english_name": "Mbre" - }, - "hnh": { - "english_name": "//Ani" - }, - "bpy": { - "english_name": "Bishnupriya" - }, - "cea": { - "english_name": "Chehalis, Lower" - }, - "yit": { - "english_name": "Lalu, Eastern" - }, - "rtm": { - "english_name": "Rotuman" - }, - "sjt": { - "english_name": "Sami, Ter" - }, - "atr": { - "english_name": "Waimiri-Atroari" - }, - "ote": { - "english_name": "Otomi, Mezquital" - }, - "yue": { - "english_name": "Chinese, Yue" - }, - "sbl": { - "english_name": "Sambal, Botolan" - }, - "muv": { - "english_name": "Muthuvan" - }, - "leu": { - "english_name": "Kara (Papua New Guinea)" - }, - "lgn": { - "english_name": "Opuuo" - }, - "uji": { - "english_name": "Tanjijili" - }, - "alk": { - "english_name": "Alak" - }, - "akf": { - "english_name": "Akpa" - }, - "lie": { - "english_name": "Likila" - }, - "vra": { - "english_name": "Vera'a" - }, - "mty": { - "english_name": "Nabi" - }, - "soo": { - "english_name": "Songo" - }, - "btx": { - "english_name": "Batak Karo" - }, - "yik": { - "english_name": "Lalo, Dongshanba" - }, - "alw": { - "english_name": "Alaba-K’abeena" - }, - "cry": { - "english_name": "Cori" - }, - "guv": { - "english_name": "Gey" - }, - "unx": { - "english_name": "Munda" - }, - "pcb": { - "english_name": "Pear" - }, - "bsh": { - "english_name": "Kati" - }, - "duv": { - "english_name": "Duvle" - }, - "okr": { - "english_name": "Kirike" - }, - "mdb": { - "english_name": "Morigi" - }, - "crw": { - "english_name": "Chrau" - }, - "owl": { - "english_name": "Welsh, Old" - }, - "tsk": { - "english_name": "Tseku" - }, - "ump": { - "english_name": "Umpila" - }, - "kcb": { - "english_name": "Kawacha" - }, - "rej": { - "english_name": "Rejang" - }, - "gos": { - "english_name": "Gronings" - }, - "kiu": { - "english_name": "Kirmanjki (individual language)" - }, - "mqz": { - "english_name": "Pano" - }, - "swi": { - "english_name": "Sui" - }, - "awe": { - "english_name": "Awetí" - }, - "shu": { - "english_name": "Arabic, Chadian" - }, - "hwo": { - "english_name": "Hwana" - }, - "xkg": { - "english_name": "Kagoro" - }, - "dbi": { - "english_name": "Doka" - }, - "bez": { - "english_name": "Bena (Tanzania)" - }, - "cuw": { - "english_name": "Chukwa" - }, - "ylb": { - "english_name": "Yaleba" - }, - "mmr": { - "english_name": "Miao, Western Xiangxi" - }, - "bro": { - "english_name": "Brokkat" - }, - "jle": { - "english_name": "Ngile" - }, - "lbl": { - "english_name": "Bikol, Libon" - }, - "kdd": { - "english_name": "Yankunytjatjara" - }, - "jaq": { - "english_name": "Yaqay" - }, - "ckr": { - "english_name": "Kairak" - }, - "acp": { - "english_name": "Acipa, Eastern" - }, - "bcz": { - "english_name": "Bainouk-Gunyaamolo" - }, - "sst": { - "english_name": "Sinasina" - }, - "tgx": { - "english_name": "Tagish" - }, - "jbi": { - "english_name": "Badjiri" - }, - "br": { - "english_name": "Breton", - "name": "Brezhoneg" - }, - "bit": { - "english_name": "Berinomo" - }, - "nst": { - "english_name": "Naga, Tase" - }, - "ypp": { - "english_name": "Phupa" - }, - "rat": { - "english_name": "Razajerdi" - }, - "myo": { - "english_name": "Anfillo" - }, - "bka": { - "english_name": "Kyak" - }, - "yux": { - "english_name": "Yukaghir, Southern" - }, - "lud": { - "english_name": "Ludian" - }, - "cga": { - "english_name": "Changriwa" - }, - "tru": { - "english_name": "Turoyo" - }, - "wmc": { - "english_name": "Wamas" - }, - "coz": { - "english_name": "Chochotec" - }, - "elh": { - "english_name": "El Hugeirat" - }, - "ktr": { - "english_name": "Kota Marudu Tinagas" - }, - "iso": { - "english_name": "Isoko" - }, - "bpt": { - "english_name": "Barrow Point" - }, - "diu": { - "english_name": "Diriku" - }, - "prs": { - "english_name": "Dari" - }, - "wag": { - "english_name": "Wa'ema" - }, - "kbv": { - "english_name": "Dera (Indonesia)" - }, - "gwj": { - "english_name": "/Gwi" - }, - "nru": { - "english_name": "Narua" - }, - "hih": { - "english_name": "Pamosu" - }, - "dnu": { - "english_name": "Danau" - }, - "old": { - "english_name": "Mochi" - }, - "uvl": { - "english_name": "Lote" - }, - "lia": { - "english_name": "Limba, West-Central" - }, - "mkx": { - "english_name": "Manobo, Kinamiging" - }, - "fap": { - "english_name": "Palor" - }, - "fah": { - "english_name": "Fali, Baissa" - }, - "gnt": { - "english_name": "Guntai" - }, - "kze": { - "english_name": "Kosena" - }, - "pta": { - "english_name": "Pai Tavytera" - }, - "lbi": { - "english_name": "La'bi" - }, - "glo": { - "english_name": "Galambu" - }, - "biy": { - "english_name": "Birhor" - }, - "reb": { - "english_name": "Rembong" - }, - "pwi": { - "english_name": "Patwin" - }, - "tid": { - "english_name": "Tidong" - }, - "ppn": { - "english_name": "Papapana" - }, - "coy": { - "english_name": "Coyaima" - }, - "gon": { - "english_name": "Gondi" - }, - "kzj": { - "english_name": "Kadazan, Coastal" - }, - "xgu": { - "english_name": "Unggumi" - }, - "bll": { - "english_name": "Biloxi" - }, - "gam": { - "english_name": "Kandawo" - }, - "sik": { - "english_name": "Sikiana" - }, - "tug": { - "english_name": "Tunia" - }, - "rkm": { - "english_name": "Marka" - }, - "res": { - "english_name": "Reshe" - }, - "tbm": { - "english_name": "Tagbu" - }, - "sod": { - "english_name": "Songoora" - }, - "ukp": { - "english_name": "Ukpe-Bayobiri" - }, - "rbb": { - "english_name": "Palaung, Rumai" - }, - "lbe": { - "english_name": "Lak" - }, - "msy": { - "english_name": "Aruamu" - }, - "bqg": { - "english_name": "Bago-Kusuntu" - }, - "lja": { - "english_name": "Golpa" - }, - "nnh": { - "english_name": "Ngiemboon" - }, - "gdd": { - "english_name": "Gedaged" - }, - "rmg": { - "english_name": "Norwegian, Traveller" - }, - "jiy": { - "english_name": "Jinuo, Buyuan" - }, - "aln": { - "english_name": "Albanian, Gheg" - }, - "kow": { - "english_name": "Kugama" - }, - "bpp": { - "english_name": "Kaure" - }, - "ojv": { - "english_name": "Ontong Java" - }, - "thf": { - "english_name": "Thangmi" - }, - "khr": { - "english_name": "Kharia" - }, - "iml": { - "english_name": "Miluk" - }, - "lna": { - "english_name": "Langbashe" - }, - "lmr": { - "english_name": "Lamalera" - }, - "cda": { - "english_name": "Choni" - }, - "wew": { - "english_name": "Wejewa" - }, - "akc": { - "english_name": "Mpur" - }, - "aa": { - "english_name": "Afar" - }, - "siu": { - "english_name": "Sinagen" - }, - "yxa": { - "english_name": "Mayawali" - }, - "mcn": { - "english_name": "Masana" - }, - "imi": { - "english_name": "Anamgura" - }, - "lml": { - "english_name": "Hano" - }, - "kfi": { - "english_name": "Kurumba, Kannada" - }, - "mjo": { - "english_name": "Malankuravan" - }, - "kzm": { - "english_name": "Kais" - }, - "ymg": { - "english_name": "Yamongeri" - }, - "mie": { - "english_name": "Mixtec, Ocotepec" - }, - "naf": { - "english_name": "Nabak" - }, - "mzh": { - "english_name": "Wichí Lhamtés Güisnay" - }, - "bnl": { - "english_name": "Boon" - }, - "snu": { - "english_name": "Senggi" - }, - "xss": { - "english_name": "Assan" - }, - "kmt": { - "english_name": "Kemtuik" - }, - "qvy": { - "english_name": "Queyu" - }, - "xml": { - "english_name": "Malaysian Sign Language" - }, - "rsl": { - "english_name": "Russian Sign Language" - }, - "sjg": { - "english_name": "Assangori" - }, - "mcc": { - "english_name": "Bitur" - }, - "amg": { - "english_name": "Amurdak" - }, - "lof": { - "english_name": "Logol" - }, - "tek": { - "english_name": "Teke, Ibali" - }, - "ctd": { - "english_name": "Chin, Tedim" - }, - "bkl": { - "english_name": "Berik" - }, - "mnp": { - "english_name": "Chinese, Min Bei" - }, - "den": { - "english_name": "Slave (Athapascan)" - }, - "bji": { - "english_name": "Burji" - }, - "kzq": { - "english_name": "Kaike" - }, - "bso": { - "english_name": "Buso" - }, - "nmf": { - "english_name": "Naga, Tangkhul (India)" - }, - "brb": { - "english_name": "Lave" - }, - "cup": { - "english_name": "Cupeño" - }, - "sip": { - "english_name": "Sikkimese" - }, - "mjl": { - "english_name": "Mandeali" - }, - "nkr": { - "english_name": "Nukuoro" - }, - "yui": { - "english_name": "Yurutí" - }, - "hob": { - "english_name": "Mari (Madang Province)" - }, - "llf": { - "english_name": "Hermit" - }, - "maj": { - "english_name": "Mazatec, Jalapa De Díaz" - }, - "onx": { - "english_name": "Onin Based Pidgin" - }, - "ngn": { - "english_name": "Ngwo" - }, - "zpl": { - "english_name": "Zapotec, Lachixío" - }, - "aio": { - "english_name": "Aiton" - }, - "mpi": { - "english_name": "Mpade" - }, - "pef": { - "english_name": "Pomo, Northeastern" - }, - "nly": { - "english_name": "Nyamal" - }, - "dws": { - "english_name": "Dutton World Speedwords" - }, - "far": { - "english_name": "Fataleka" - }, - "kbi": { - "english_name": "Kaptiau" - }, - "snn": { - "english_name": "Siona" - }, - "kop": { - "english_name": "Waube" - }, - "plu": { - "english_name": "Palikúr" - }, - "poh": { - "english_name": "Poqomchi'" - }, - "atw": { - "english_name": "Atsugewi" - }, - "fub": { - "english_name": "Fulfulde, Adamawa" - }, - "ngj": { - "english_name": "Ngie" - }, - "ny": { - "english_name": "Nyanja" - }, - "mij": { - "english_name": "Abar" - }, - "pfl": { - "english_name": "Pfaelzisch" - }, - "eee": { - "english_name": "E" - }, - "fkk": { - "english_name": "Kirya-Konzəl" - }, - "mcg": { - "english_name": "Mapoyo" - }, - "njm": { - "english_name": "Naga, Angami" - }, - "gwi": { - "english_name": "Gwichʼin" - }, - "dse": { - "english_name": "Dutch Sign Language" - }, - "dlg": { - "english_name": "Dolgan" - }, - "tcz": { - "english_name": "Chin, Thado" - }, - "koa": { - "english_name": "Konomala" - }, - "dms": { - "english_name": "Dampelas" - }, - "smp": { - "english_name": "Samaritan" - }, - "jkr": { - "english_name": "Koro (India)" - }, - "maa": { - "english_name": "Mazatec, San Jerónimo Tecóatl" - }, - "ku": { - "english_name": "Kurdish" - }, - "tfn": { - "english_name": "Tanaina" - }, - "akg": { - "english_name": "Anakalangu" - }, - "bfa": { - "english_name": "Bari" - }, - "wnk": { - "english_name": "Wanukaka" - }, - "tse": { - "english_name": "Tunisian Sign Language" - }, - "pzn": { - "english_name": "Naga, Para" - }, - "kdi": { - "english_name": "Kumam" - }, - "duu": { - "english_name": "Drung" - }, - "kzv": { - "english_name": "Komyandaret" - }, - "gya": { - "english_name": "Gbaya, Northwest" - }, - "xir": { - "english_name": "Xiriâna" - }, - "scl": { - "english_name": "Shina" - }, - "mdz": { - "english_name": "Suruí Do Pará" - }, - "erw": { - "english_name": "Erokwanas" - }, - "sxl": { - "english_name": "Selian" - }, - "lbs": { - "english_name": "Libyan Sign Language" - }, - "wrn": { - "english_name": "Warnang" - }, - "sen": { - "english_name": "Sénoufo, Nanerigé" - }, - "mzw": { - "english_name": "Deg" - }, - "oca": { - "english_name": "Ocaina" - }, - "kud": { - "english_name": "'Auhelawa" - }, - "soh": { - "english_name": "Aka" - }, - "dek": { - "english_name": "Dek" - }, - "kms": { - "english_name": "Kamasau" - }, - "tji": { - "english_name": "Tujia, Northern" - }, - "nra": { - "english_name": "Ngom" - }, - "kkb": { - "english_name": "Kwerisa" - }, - "ybh": { - "english_name": "Yakha" - }, - "bpk": { - "english_name": "Orowe" - }, - "ule": { - "english_name": "Lule" - }, - "kwi": { - "english_name": "Awa-Cuaiquer" - }, - "piy": { - "english_name": "Piya-Kwonci" - }, - "thc": { - "english_name": "Tai Hang Tong" - }, - "zea": { - "english_name": "Zeeuws" - }, - "nux": { - "english_name": "Mehek" - }, - "ajz": { - "english_name": "Karbi, Amri" - }, - "fni": { - "english_name": "Fania" - }, - "sta": { - "english_name": "Settla" - }, - "xag": { - "english_name": "Aghwan" - }, - "nos": { - "english_name": "Nisu, Eastern" - }, - "not": { - "english_name": "Nomatsiguenga" - }, - "tqr": { - "english_name": "Torona" - }, - "opm": { - "english_name": "Oksapmin" - }, - "jod": { - "english_name": "Wojenaka" - }, - "roc": { - "english_name": "Roglai, Cacgia" - }, - "zpd": { - "english_name": "Zapotec, Southeastern Ixtlán" - }, - "gho": { - "english_name": "Ghomara" - }, - "wad": { - "english_name": "Wandamen" - }, - "twl": { - "english_name": "Tawara" - }, - "tsb": { - "english_name": "Tsamai" - }, - "kek": { - "english_name": "Kekchí" - }, - "sde": { - "english_name": "Surubu" - }, - "mjh": { - "english_name": "Mwera (Nyasa)" - }, - "lae": { - "english_name": "Pattani" - }, - "kso": { - "english_name": "Kofa" - }, - "iqu": { - "english_name": "Iquito" - }, - "hsl": { - "english_name": "Hausa Sign Language" - }, - "nnr": { - "english_name": "Narungga" - }, - "caw": { - "english_name": "Callawalla" - }, - "ayh": { - "english_name": "Arabic, Hadrami" - }, - "zad": { - "english_name": "Zapotec, Cajonos" - }, - "wne": { - "english_name": "Waneci" - }, - "nks": { - "english_name": "Asmat, North" - }, - "poc": { - "english_name": "Poqomam" - }, - "ale": { - "english_name": "Aleut" - }, - "tbb": { - "english_name": "Tapeba" - }, - "akb": { - "english_name": "Batak Angkola" - }, - "hid": { - "english_name": "Hidatsa" - }, - "bmc": { - "english_name": "Biem" - }, - "mrp": { - "english_name": "Morouas" - }, - "nrm": { - "english_name": "Narom" - }, - "skt": { - "english_name": "Sakata" - }, - "bpb": { - "english_name": "Barbacoas" - }, - "sze": { - "english_name": "Seze" - }, - "vor": { - "english_name": "Voro" - }, - "smh": { - "english_name": "Samei" - }, - "kja": { - "english_name": "Mlap" - }, - "njj": { - "english_name": "Njen" - }, - "ggt": { - "english_name": "Gitua" - }, - "prp": { - "english_name": "Parsi" - }, - "ded": { - "english_name": "Dedua" - }, - "akh": { - "english_name": "Angal Heneng" - }, - "gvr": { - "english_name": "Gurung, Western" - }, - "war": { - "english_name": "Waray (Philippines)" - }, - "lrl": { - "english_name": "Lari" - }, - "jmn": { - "english_name": "Naga, Makuri" - }, - "ciy": { - "english_name": "Chaima" - }, - "zpv": { - "english_name": "Zapotec, Chichicapan" - }, - "ste": { - "english_name": "Liana-Seti" - }, - "hvv": { - "english_name": "Huave, Santa María Del Mar" - }, - "mbs": { - "english_name": "Manobo, Sarangani" - }, - "yrn": { - "english_name": "Yerong" - }, - "bje": { - "english_name": "Mien, Biao-Jiao" - }, - "sdx": { - "english_name": "Melanau, Sibu" - }, - "ray": { - "english_name": "Rapa" - }, - "en": { - "english_name": "English" - }, - "cbv": { - "english_name": "Cacua" - }, - "tlc": { - "english_name": "Totonac, Yecuatla" - }, - "xbp": { - "english_name": "Bibbulman" - }, - "kfc": { - "english_name": "Konda-Dora" - }, - "gda": { - "english_name": "Lohar, Gade" - }, - "krs": { - "english_name": "Gbaya (Sudan)" - }, - "sea": { - "english_name": "Semai" - }, - "aak": { - "english_name": "Ankave" - }, - "ahs": { - "english_name": "Ashe" - }, - "sti": { - "english_name": "Stieng, Bulo" - }, - "kij": { - "english_name": "Kilivila" - }, - "mmv": { - "english_name": "Miriti" - }, - "blo": { - "english_name": "Anii" - }, - "bcc": { - "english_name": "Balochi, Southern" - }, - "agh": { - "english_name": "Ngelima" - }, - "fll": { - "english_name": "Fali, North" - }, - "ceb": { - "english_name": "Cebuano" - }, - "sir": { - "english_name": "Siri" - }, - "ab": { - "english_name": "Abkhazian" - }, - "hka": { - "english_name": "Kahe" - }, - "wno": { - "english_name": "Wano" - }, - "mli": { - "english_name": "Malimpung" - }, - "lac": { - "english_name": "Lacandon" - }, - "buj": { - "english_name": "Basa-Gurmana" - }, - "hot": { - "english_name": "Hote" - }, - "sr": { - "english_name": "Serbian", - "name": "српски" - }, - "vmd": { - "english_name": "Koraga, Mudu" - }, - "dne": { - "english_name": "Ndendeule" - }, - "kfh": { - "english_name": "Kurichiya" - }, - "flh": { - "english_name": "Foau" - }, - "juo": { - "english_name": "Jiba" - }, - "tcs": { - "english_name": "Creole, Torres Strait" - }, - "duz": { - "english_name": "Duli" - }, - "rtw": { - "english_name": "Rathawi" - }, - "fon": { - "english_name": "Fon" - }, - "qvs": { - "english_name": "Quechua, San Martín" - }, - "zpz": { - "english_name": "Zapotec, Texmelucan" - }, - "bsn": { - "english_name": "Barasana-Eduria" - }, - "hap": { - "english_name": "Hupla" - }, - "nik": { - "english_name": "Nicobarese, Southern" - }, - "gbr": { - "english_name": "Gbagyi" - }, - "zoo": { - "english_name": "Zapotec, Asunción Mixtepec" - }, - "enb": { - "english_name": "Markweeta" - }, - "frd": { - "english_name": "Fordata" - }, - "dyd": { - "english_name": "Dyugun" - }, - "ttg": { - "english_name": "Tutong" - }, - "pbb": { - "english_name": "Páez" - }, - "yrs": { - "english_name": "Yarsun" - }, - "hji": { - "english_name": "Haji" - }, - "tpp": { - "english_name": "Tepehua, Pisaflores" - }, - "nit": { - "english_name": "Kolami, Southeastern" - }, - "one": { - "english_name": "Oneida" - }, - "gha": { - "english_name": "Ghadamès" - }, - "sbf": { - "english_name": "Shabo" - }, - "chn": { - "english_name": "Chinook jargon" - }, - "sqm": { - "english_name": "Suma" - }, - "ain": { - "english_name": "Ainu (Japan)" - }, - "sgh": { - "english_name": "Shughni" - }, - "atb": { - "english_name": "Zaiwa" - }, - "mcq": { - "english_name": "Ese" - }, - "fli": { - "english_name": "Fali" - }, - "jat": { - "english_name": "Jakati" - }, - "xpt": { - "english_name": "Punthamara" - }, - "mlr": { - "english_name": "Vame" - }, - "crr": { - "english_name": "Algonquian, Carolina" - }, - "squ": { - "english_name": "Squamish" - }, - "ktq": { - "english_name": "Katabaga" - }, - "guc": { - "english_name": "Wayuu" - }, - "gyd": { - "english_name": "Kayardild" - }, - "bhz": { - "english_name": "Bada (Indonesia)" - }, - "blv": { - "english_name": "Bolo" - }, - "lmq": { - "english_name": "Lamatuka" - }, - "cav": { - "english_name": "Cavineña" - }, - "tkn": { - "english_name": "Toku-No-Shima" - }, - "hrt": { - "english_name": "Hértevin" - }, - "rom": { - "english_name": "Romany" - }, - "wku": { - "english_name": "Kunduvadi" - }, - "kzs": { - "english_name": "Dusun, Sugut" - }, - "shp": { - "english_name": "Shipibo-Conibo" - }, - "nur": { - "english_name": "Nukuria" - }, - "kzp": { - "english_name": "Kaidipang" - }, - "bfb": { - "english_name": "Bareli, Pauri" - }, - "zmp": { - "english_name": "Mpuono" - }, - "jeh": { - "english_name": "Jeh" - }, - "guh": { - "english_name": "Guahibo" - }, - "tte": { - "english_name": "Bwanabwana" - }, - "zai": { - "english_name": "Zapotec, Isthmus" - }, - "giw": { - "english_name": "Gelao, White" - }, - "bub": { - "english_name": "Bua" - }, - "kki": { - "english_name": "Kagulu" - }, - "abc": { - "english_name": "Ayta, Ambala" - }, - "gvy": { - "english_name": "Guyani" - }, - "gdb": { - "english_name": "Gadaba, Pottangi Ollar" - }, - "kcf": { - "english_name": "Ukaan" - }, - "gih": { - "english_name": "Githabul" - }, - "nyp": { - "english_name": "Nyang'i" - }, - "kbp": { - "english_name": "Kabiyè" - }, - "bme": { - "english_name": "Limassa" - }, - "lks": { - "english_name": "Kisa" - }, - "nsq": { - "english_name": "Miwok, Northern Sierra" - }, - "emk": { - "english_name": "Maninkakan, Eastern" - }, - "kaf": { - "english_name": "Katso" - }, - "wbq": { - "english_name": "Waddar" - }, - "blr": { - "english_name": "Blang" - }, - "spe": { - "english_name": "Sepa (Papua New Guinea)" - }, - "dbl": { - "english_name": "Dyirbal" - }, - "ert": { - "english_name": "Eritai" - }, - "luf": { - "english_name": "Laua" - }, - "zmt": { - "english_name": "Maringarr" - }, - "psp": { - "english_name": "Philippine Sign Language" - }, - "aki": { - "english_name": "Aiome" - }, - "acr": { - "english_name": "Achi" - }, - "yme": { - "english_name": "Yameo" - }, - "ldk": { - "english_name": "Leelau" - }, - "uis": { - "english_name": "Uisai" - }, - "omg": { - "english_name": "Omagua" - }, - "hld": { - "english_name": "Halang Doan" - }, - "syc": { - "english_name": "Syriac, Classical" - }, - "bue": { - "english_name": "Beothuk" - }, - "gwa": { - "english_name": "Mbato" - }, - "bge": { - "english_name": "Bauria" - }, - "mfr": { - "english_name": "Marithiel" - }, - "wgi": { - "english_name": "Wahgi" - }, - "ash": { - "english_name": "Abishira" - }, - "xil": { - "english_name": "Illyrian" - }, - "ttq": { - "english_name": "Tamajaq, Tawallammat" - }, - "mjp": { - "english_name": "Malapandaram" - }, - "hrc": { - "english_name": "Niwer Mil" - }, - "pi": { - "english_name": "Pali" - }, - "bhl": { - "english_name": "Bimin" - }, - "ije": { - "english_name": "Biseni" - }, - "cfd": { - "english_name": "Cara" - }, - "yi": { - "english_name": "Yiddish" - }, - "chl": { - "english_name": "Cahuilla" - }, - "cy": { - "english_name": "Welsh", - "name": "Cymraeg" - }, - "mfq": { - "english_name": "Moba" - }, - "ior": { - "english_name": "Inor" - }, - "kuy": { - "english_name": "Kuuku-Ya'u" - }, - "aqr": { - "english_name": "Arhâ" - }, - "ktk": { - "english_name": "Kaniet" - }, - "tpv": { - "english_name": "Tanapag" - }, - "tnn": { - "english_name": "Tanna, North" - }, - "lkt": { - "english_name": "Lakota" - }, - "ksm": { - "english_name": "Kumba" - }, - "dtm": { - "english_name": "Dogon, Tomo Kan" - }, - "sat": { - "english_name": "Santali" - }, - "cku": { - "english_name": "Koasati" - }, - "shz": { - "english_name": "Senoufo, Syenara" - }, - "cya": { - "english_name": "Chatino, Nopala" - }, - "tzl": { - "english_name": "Talossan" - }, - "aoc": { - "english_name": "Pemon" - }, - "myj": { - "english_name": "Mangayat" - }, - "rmb": { - "english_name": "Rembarunga" - }, - "kla": { - "english_name": "Klamath-Modoc" - }, - "gex": { - "english_name": "Garre" - }, - "kpj": { - "english_name": "Karajá" - }, - "gqn": { - "english_name": "Guana (Brazil)" - }, - "aax": { - "english_name": "Mandobo Atas" - }, - "ddo": { - "english_name": "Dido" - }, - "owi": { - "english_name": "Owiniga" - }, - "kpq": { - "english_name": "Korupun-Sela" - }, - "bnu": { - "english_name": "Bentong" - }, - "slm": { - "english_name": "Sama, Pangutaran" - }, - "led": { - "english_name": "Lendu" - }, - "dcr": { - "english_name": "Negerhollands" - }, - "teb": { - "english_name": "Tetete" - }, - "xom": { - "english_name": "Komo (Sudan)" - }, - "coh": { - "english_name": "Chonyi-Dzihana-Kauma" - }, - "bie": { - "english_name": "Bepour" - }, - "tiq": { - "english_name": "Tiéfo" - }, - "bvk": { - "english_name": "Bukat" - }, - "cid": { - "english_name": "Chimariko" - }, - "pal": { - "english_name": "Pahlavi" - }, - "jab": { - "english_name": "Hyam" - }, - "twc": { - "english_name": "Teshenawa" - }, - "twr": { - "english_name": "Tarahumara, Southwestern" - }, - "sv": { - "english_name": "Swedish", - "name": "Svenska" - }, - "ljw": { - "english_name": "Yirandali" - }, - "tnu": { - "english_name": "Tay Khang" - }, - "uk": { - "english_name": "Ukrainian", - "name": "українська" - }, - "dba": { - "english_name": "Bangime" - }, - "kpi": { - "english_name": "Kofei" - }, - "xet": { - "english_name": "Xetá" - }, - "pty": { - "english_name": "Pathiya" - }, - "zal": { - "english_name": "Zauzou" - }, - "djn": { - "english_name": "Djauan" - }, - "ulb": { - "english_name": "Ulukwumi" - }, - "mgz": { - "english_name": "Mbugwe" - }, - "kee": { - "english_name": "Keres, Eastern" - }, - "gaq": { - "english_name": "Gata'" - }, - "ctc": { - "english_name": "Chetco" - }, - "sdr": { - "english_name": "Sadri, Oraon" - }, - "byl": { - "english_name": "Bayono" - }, - "kai": { - "english_name": "Karekare" - }, - "mnw": { - "english_name": "Mon" - }, - "lsm": { - "english_name": "Saamia" - }, - "wdu": { - "english_name": "Wadjigu" - }, - "tst": { - "english_name": "Songway Kiini, Tondi" - }, - "lwa": { - "english_name": "Lwalu" - }, - "loj": { - "english_name": "Lou" - }, - "lgg": { - "english_name": "Lugbara" - }, - "msq": { - "english_name": "Caac" - }, - "jay": { - "english_name": "Yan-nhangu" - }, - "arq": { - "english_name": "Arabic, Algerian" - }, - "urp": { - "english_name": "Uru-Pa-In" - }, - "mnc": { - "english_name": "Manchu" - }, - "tiw": { - "english_name": "Tiwi" - }, - "wav": { - "english_name": "Waka" - }, - "umm": { - "english_name": "Umon" - }, - "srq": { - "english_name": "Sirionó" - }, - "kul": { - "english_name": "Kulere" - }, - "hca": { - "english_name": "Creole Hindi, Andaman" - }, - "xha": { - "english_name": "Harami" - }, - "drt": { - "english_name": "Drents" - }, - "glk": { - "english_name": "Gilaki" - }, - "gba": { - "english_name": "Gbaya (Central African Republic)" - }, - "kgv": { - "english_name": "Karas" - }, - "kft": { - "english_name": "Kanjari" - }, - "chy": { - "english_name": "Cheyenne" - }, - "aua": { - "english_name": "Asumboa" - }, - "buq": { - "english_name": "Brem" - }, - "esn": { - "english_name": "Salvadoran Sign Language" - }, - "rob": { - "english_name": "Tae'" - }, - "gbe": { - "english_name": "Niksek" - }, - "aen": { - "english_name": "Armenian Sign Language" - }, - "olm": { - "english_name": "Oloma" - }, - "sco": { - "english_name": "Scots" - }, - "bum": { - "english_name": "Bulu (Cameroon)" - }, - "kue": { - "english_name": "Kuman" - }, - "pag": { - "english_name": "Pangasinan" - }, - "tiv": { - "english_name": "Tiv" - }, - "als": { - "english_name": "Albanian, Tosk" - }, - "tmo": { - "english_name": "Temoq" - }, - "ndq": { - "english_name": "Ndombe" - }, - "bya": { - "english_name": "Batak" - }, - "thl": { - "english_name": "Tharu, Dangaura" - }, - "oge": { - "english_name": "Georgian, Old" - }, - "cch": { - "english_name": "Atsam" - }, - "tin": { - "english_name": "Tindi" - }, - "shi": { - "english_name": "Tachelhit" - }, - "dhw": { - "english_name": "Dhanwar (Nepal)" - }, - "su": { - "english_name": "Sundanese" - }, - "nmd": { - "english_name": "Ndumu" - }, - "snh": { - "english_name": "Shinabo" - }, - "nrb": { - "english_name": "Nara" - }, - "ymz": { - "english_name": "Muzi" - }, - "zne": { - "english_name": "Zande (individual language)" - }, - "omw": { - "english_name": "Tairora, South" - }, - "bvb": { - "english_name": "Bube" - }, - "cpn": { - "english_name": "Cherepon" - }, - "lop": { - "english_name": "Lopa" - }, - "vwa": { - "english_name": "Awa (China)" - }, - "cqu": { - "english_name": "Quechua, Chilean" - }, - "jmx": { - "english_name": "Mixtec, Western Juxtlahuaca" - }, - "xxt": { - "english_name": "Tambora" - }, - "nea": { - "english_name": "Ngad'a, Eastern" - }, - "lik": { - "english_name": "Lika" - }, - "trx": { - "english_name": "Bidayuh, Tringgus-Sembaan" - }, - "kzg": { - "english_name": "Kikai" - }, - "jii": { - "english_name": "Jiiddu" - }, - "uhn": { - "english_name": "Damal" - }, - "mot": { - "english_name": "Barí" - }, - "gin": { - "english_name": "Hinukh" - }, - "otx": { - "english_name": "Otomi, Texcatepec" - }, - "shm": { - "english_name": "Shahrudi" - }, - "ncz": { - "english_name": "Natchez" - }, - "pkp": { - "english_name": "Pukapuka" - }, - "mxl": { - "english_name": "Gbe, Maxi" - }, - "juw": { - "english_name": "Wãpha" - }, - "id": { - "english_name": "Indonesian", - "name": "Indonesian" - }, - "skn": { - "english_name": "Subanon, Kolibugan" - }, - "wrk": { - "english_name": "Garrwa" - }, - "twd": { - "english_name": "Twents" - }, - "csv": { - "english_name": "Chin, Sumtu" - }, - "brs": { - "english_name": "Baras" - }, - "ptn": { - "english_name": "Patani" - }, - "tft": { - "english_name": "Ternate" - }, - "azj": { - "english_name": "Azerbaijani, North" - }, - "ekr": { - "english_name": "Yace" - }, - "nyy": { - "english_name": "Nyakyusa-Ngonde" - }, - "nes": { - "english_name": "Kinnauri, Bhoti" - }, - "wmt": { - "english_name": "Walmajarri" - }, - "hax": { - "english_name": "Haida, Southern" - }, - "sha": { - "english_name": "Shall-Zwall" - }, - "bij": { - "english_name": "Vaghat-Ya-Bijim-Legeri" - }, - "rif": { - "english_name": "Tarifit" - }, - "yaq": { - "english_name": "Yaqui" - }, - "sso": { - "english_name": "Sissano" - }, - "naq": { - "english_name": "Nama (Namibia)" - }, - "wbm": { - "english_name": "Wa" - }, - "srm": { - "english_name": "Saramaccan" - }, - "yha": { - "english_name": "Buyang, Baha" - }, - "mbi": { - "english_name": "Manobo, Ilianen" - }, - "zsu": { - "english_name": "Sukurum" - }, - "gcf": { - "english_name": "Creole French, Guadeloupean" - }, - "kpx": { - "english_name": "Koiali, Mountain" - }, - "nkw": { - "english_name": "Nkutu" - }, - "bty": { - "english_name": "Bobot" - }, - "kpy": { - "english_name": "Koryak" - }, - "tgr": { - "english_name": "Tareng" - }, - "pox": { - "english_name": "Polabian" - }, - "uam": { - "english_name": "Uamué" - }, - "lai": { - "english_name": "Lambya" - }, - "zpw": { - "english_name": "Zapotec, Zaniza" - }, - "ylu": { - "english_name": "Aribwaung" - }, - "mgd": { - "english_name": "Moru" - }, - "qve": { - "english_name": "Quechua, Eastern Apurímac" - }, - "bpd": { - "english_name": "Banda-Banda" - }, - "aem": { - "english_name": "Arem" - }, - "cjk": { - "english_name": "Chokwe" - }, - "tew": { - "english_name": "Tewa (USA)" - }, - "rmk": { - "english_name": "Romkun" - }, - "ont": { - "english_name": "Ontenu" - }, - "hmp": { - "english_name": "Hmong, Northern Mashan" - }, - "dav": { - "english_name": "Taita" - }, - "stb": { - "english_name": "Subanen, Northern" - }, - "tpf": { - "english_name": "Tarpia" - }, - "bxe": { - "english_name": "Birale" - }, - "srn": { - "english_name": "Sranan Tongo" - }, - "kbd": { - "english_name": "Kabardian" - }, - "lig": { - "english_name": "Ligbi" - }, - "sor": { - "english_name": "Somrai" - }, - "ndy": { - "english_name": "Lutos" - }, - "thv": { - "english_name": "Tamahaq, Tahaggart" - }, - "aji": { - "english_name": "Ajië" - }, - "wod": { - "english_name": "Wolani" - }, - "bwn": { - "english_name": "Bunu, Wunai" - }, - "blh": { - "english_name": "Kuwaa" - }, - "duc": { - "english_name": "Duna" - }, - "ki": { - "english_name": "Kikuyu" - }, - "baw": { - "english_name": "Bambili-Bambui" - }, - "nph": { - "english_name": "Naga, Phom" - }, - "krr": { - "english_name": "Kru'ng 2" - }, - "brd": { - "english_name": "Baraamu" - }, - "unm": { - "english_name": "Unami" - }, - "ff": { - "english_name": "Fulah" - }, - "jra": { - "english_name": "Jarai" - }, - "aca": { - "english_name": "Achagua" - }, - "top": { - "english_name": "Totonac, Papantla" - }, - "zu": { - "english_name": "Zulu", - "name": "Isi-Zulu" - }, - "ypb": { - "english_name": "Phowa, Labo" - }, - "oar": { - "english_name": "Aramaic, Old (up to 700 BCE)" - }, - "mdr": { - "english_name": "Mandar" - }, - "kim": { - "english_name": "Karagas" - }, - "sjd": { - "english_name": "Sami, Kildin" - }, - "gmm": { - "english_name": "Gbaya-Mbodomo" - }, - "tee": { - "english_name": "Tepehua, Huehuetla" - }, - "mcd": { - "english_name": "Sharanahua" - }, - "clm": { - "english_name": "Clallam" - }, - "spy": { - "english_name": "Sabaot" - }, - "url": { - "english_name": "Urali" - }, - "gax": { - "english_name": "Oromo, Borana-Arsi-Guji" - }, - "kqq": { - "english_name": "Krenak" - }, - "hio": { - "english_name": "Tsoa" - }, - "mfh": { - "english_name": "Matal" - }, - "and": { - "english_name": "Ansus" - }, - "nlz": { - "english_name": "Nalögo" - }, - "yno": { - "english_name": "Yong" - }, - "cnc": { - "english_name": "Côông" - }, - "puu": { - "english_name": "Punu" - }, - "lon": { - "english_name": "Lomwe, Malawi" - }, - "gum": { - "english_name": "Guambiano" - }, - "ynd": { - "english_name": "Yandruwandha" - }, - "wlo": { - "english_name": "Wolio" - }, - "kcv": { - "english_name": "Kete" - }, - "klc": { - "english_name": "Kolbila" - }, - "jur": { - "english_name": "Jurúna" - }, - "gds": { - "english_name": "Ghandruk Sign Language" - }, - "odk": { - "english_name": "Od" - }, - "spd": { - "english_name": "Saep" - }, - "mjm": { - "english_name": "Medebur" - }, - "pye": { - "english_name": "Krumen, Pye" - }, - "acm": { - "english_name": "Arabic, Mesopotamian" - }, - "tpl": { - "english_name": "Me'phaa, Tlacoapa" - }, - "hrz": { - "english_name": "Harzani" - }, - "txo": { - "english_name": "Toto" - }, - "lv": { - "english_name": "Latvian", - "name": "Latviešu" - }, - "ila": { - "english_name": "Ile Ape" - }, - "dml": { - "english_name": "Dameli" - }, - "acu": { - "english_name": "Achuar-Shiwiar" - }, - "ama": { - "english_name": "Amanayé" - }, - "etn": { - "english_name": "Eton (Vanuatu)" - }, - "bpv": { - "english_name": "Marind, Bian" - }, - "apj": { - "english_name": "Apache, Jicarilla" - }, - "ddi": { - "english_name": "Goodenough, West" - }, - "msi": { - "english_name": "Malay, Sabah" - }, - "kka": { - "english_name": "Kakanda" - }, - "aot": { - "english_name": "A'tong" - }, - "saz": { - "english_name": "Saurashtra" - }, - "kdn": { - "english_name": "Kunda" - }, - "uwa": { - "english_name": "Kuku-Uwanh" - }, - "mfw": { - "english_name": "Mulaha" - }, - "phn": { - "english_name": "Phoenician" - }, - "ktw": { - "english_name": "Kato" - }, - "dur": { - "english_name": "Dii" - }, - "kci": { - "english_name": "Kamantan" - }, - "xdm": { - "english_name": "Edomite" - }, - "akm": { - "english_name": "Aka-Bo" - }, - "bvi": { - "english_name": "Belanda Viri" - }, - "hrk": { - "english_name": "Haruku" - }, - "rnl": { - "english_name": "Ranglong" - }, - "mis": { - "english_name": "Uncoded languages" - }, - "mcx": { - "english_name": "Mpiemo" - }, - "bav": { - "english_name": "Vengo" - }, - "tdb": { - "english_name": "Panchpargania" - }, - "ugy": { - "english_name": "Uruguayan Sign Language" - }, - "aab": { - "english_name": "Alumu-Tesu" - }, - "dux": { - "english_name": "Duungooma" - }, - "mjk": { - "english_name": "Matukar" - }, - "aqc": { - "english_name": "Archi" - }, - "mpk": { - "english_name": "Mbara (Chad)" - }, - "rub": { - "english_name": "Gungu" - }, - "ghk": { - "english_name": "Karen, Geko" - }, - "duf": { - "english_name": "Dumbea" - }, - "mrj": { - "english_name": "Mari, Western" - }, - "bzv": { - "english_name": "Naami" - }, - "kip": { - "english_name": "Kham, Sheshi" - }, - "pih": { - "english_name": "Pitcairn-Norfolk" - }, - "jaa": { - "english_name": "Jamamadí" - }, - "agq": { - "english_name": "Aghem" - }, - "hra": { - "english_name": "Hrangkhol" - }, - "sed": { - "english_name": "Sedang" - }, - "wao": { - "english_name": "Wappo" - }, - "bqd": { - "english_name": "Bung" - }, - "abo": { - "english_name": "Abon" - }, - "rgr": { - "english_name": "Resígaro" - }, - "xok": { - "english_name": "Xokleng" - }, - "skz": { - "english_name": "Sekar" - }, - "lkb": { - "english_name": "Kabras" - }, - "sml": { - "english_name": "Sama, Central" - }, - "slc": { - "english_name": "Sáliba" - }, - "xbd": { - "english_name": "Bindal" - }, - "ynq": { - "english_name": "Yendang" - }, - "tyh": { - "english_name": "O'du" - }, - "nom": { - "english_name": "Nocamán" - }, - "knb": { - "english_name": "Kalinga, Lubuagan" - }, - "tds": { - "english_name": "Doutai" - }, - "ymc": { - "english_name": "Muji, Southern" - }, - "mcs": { - "english_name": "Mambai" - }, - "wss": { - "english_name": "Wasa" - }, - "rmw": { - "english_name": "Romani, Welsh" - }, - "gft": { - "english_name": "Gafat" - }, - "tvt": { - "english_name": "Naga, Tutsa" - }, - "apg": { - "english_name": "Ampanang" - }, - "taw": { - "english_name": "Tai" - }, - "so": { - "english_name": "Somali" - }, - "tr": { - "english_name": "Turkish", - "name": "Türkçe" - }, - "nok": { - "english_name": "Nooksack" - }, - "wih": { - "english_name": "Wik-Me'anha" - }, - "kog": { - "english_name": "Cogui" - }, - "mji": { - "english_name": "Kim Mun" - }, - "kmg": { - "english_name": "Kâte" - }, - "bck": { - "english_name": "Bunaba" - }, - "rmn": { - "english_name": "Romani, Balkan" - }, - "sgg": { - "english_name": "Swiss-German Sign Language" - }, - "sbp": { - "english_name": "Sangu (Tanzania)" - }, - "yum": { - "english_name": "Quechan" - }, - "bjo": { - "english_name": "Banda, Mid-Southern" - }, - "jid": { - "english_name": "Bu" - }, - "apo": { - "english_name": "Ambul" - }, - "kyl": { - "english_name": "Kalapuya" - }, - "omr": { - "english_name": "Marathi, Old" - }, - "bsx": { - "english_name": "Yangkam" - }, - "lni": { - "english_name": "Daantanai'" - }, - "kqp": { - "english_name": "Kimré" - }, - "sua": { - "english_name": "Sulka" - }, - "mbp": { - "english_name": "Malayo" - }, - "tsi": { - "english_name": "Tsimshian" - }, - "klq": { - "english_name": "Rumu" - }, - "eaa": { - "english_name": "Karenggapa" - }, - "xhd": { - "english_name": "Hadrami" - }, - "kcm": { - "english_name": "Gula (Central African Republic)" - }, - "ago": { - "english_name": "Tainae" - }, - "lus": { - "english_name": "Lushai" - }, - "xtv": { - "english_name": "Thawa" - }, - "saj": { - "english_name": "Sahu" - }, - "all": { - "english_name": "Allar" - }, - "tqn": { - "english_name": "Tenino" - }, - "hac": { - "english_name": "Gurani" - }, - "tay": { - "english_name": "Atayal" - }, - "zaf": { - "english_name": "Zapotec, Ayoquesco" - }, - "llb": { - "english_name": "Lolo" - }, - "aut": { - "english_name": "Austral" - }, - "ngx": { - "english_name": "Nggwahyi" - }, - "emb": { - "english_name": "Embaloh" - }, - "ksd": { - "english_name": "Kuanua" - }, - "ppm": { - "english_name": "Papuma" - }, - "akk": { - "english_name": "Akkadian" - }, - "pxm": { - "english_name": "Mixe, Quetzaltepec" - }, - "tbi": { - "english_name": "Gaam" - }, - "adw": { - "english_name": "Amundava" - }, - "smw": { - "english_name": "Sumbawa" - }, - "pry": { - "english_name": "Pray 3" - }, - "nxn": { - "english_name": "Ngawun" - }, - "udu": { - "english_name": "Uduk" - }, - "bca": { - "english_name": "Bai, Central" - }, - "ktl": { - "english_name": "Koroshi" - }, - "mic": { - "english_name": "Mi'kmaq" - }, - "djw": { - "english_name": "Djawi" - }, - "pwm": { - "english_name": "Molbog" - }, - "spv": { - "english_name": "Sambalpuri" - }, - "chx": { - "english_name": "Chantyal" - }, - "cog": { - "english_name": "Chong" - }, - "mzd": { - "english_name": "Malimba" - }, - "hsh": { - "english_name": "Hungarian Sign Language" - }, - "myk": { - "english_name": "Senoufo, Mamara" - }, - "vig": { - "english_name": "Viemo" - }, - "hub": { - "english_name": "Huambisa" - }, - "lln": { - "english_name": "Lele (Chad)" - }, - "fuu": { - "english_name": "Furu" - }, - "zkp": { - "english_name": "Kaingáng, São Paulo" - }, - "mci": { - "english_name": "Mese" - }, - "bmi": { - "english_name": "Bagirmi" - }, - "dov": { - "english_name": "Dombe" - }, - "kih": { - "english_name": "Kilmeri" - }, - "cyb": { - "english_name": "Cayubaba" - }, - "ney": { - "english_name": "Neyo" - }, - "sav": { - "english_name": "Saafi-Saafi" - }, - "zay": { - "english_name": "Zayse-Zergulla" - }, - "kdt": { - "english_name": "Kuy" - }, - "isi": { - "english_name": "Nkem-Nkum" - }, - "mtu": { - "english_name": "Mixtec, Tututepec" - }, - "ywu": { - "english_name": "Nasu, Wumeng" - }, - "nmo": { - "english_name": "Naga, Moyon" - }, - "fax": { - "english_name": "Fala" - }, - "yvt": { - "english_name": "Yavitero" - }, - "wax": { - "english_name": "Watam" - }, - "goe": { - "english_name": "Gongduk" - }, - "jun": { - "english_name": "Juang" - }, - "jam": { - "english_name": "Creole English, Jamaican" - }, - "bno": { - "english_name": "Bantoanon" - }, - "yip": { - "english_name": "Pholo" - }, - "otq": { - "english_name": "Otomi, Querétaro" - }, - "nms": { - "english_name": "Letemboi" - }, - "soz": { - "english_name": "Temi" - }, - "klk": { - "english_name": "Kono (Nigeria)" - }, - "neh": { - "english_name": "Nyenkha" - }, - "mqk": { - "english_name": "Manobo, Rajah Kabunsuwan" - }, - "prw": { - "english_name": "Parawen" - }, - "kma": { - "english_name": "Konni" - }, - "xsv": { - "english_name": "Sudovian" - }, - "mwt": { - "english_name": "Moken" - }, - "ayb": { - "english_name": "Gbe, Ayizo" - }, - "ulu": { - "english_name": "Uma' Lung" - }, - "uzs": { - "english_name": "Uzbek, Southern" - }, - "ail": { - "english_name": "Aimele" - }, - "xyt": { - "english_name": "Mayi-Thakurti" - }, - "yut": { - "english_name": "Yopno" - }, - "bwj": { - "english_name": "Bwamu, Láá Láá" - }, - "jal": { - "english_name": "Yalahatan" - }, - "trb": { - "english_name": "Terebu" - }, - "oj": { - "english_name": "Ojibwa" - }, - "yuj": { - "english_name": "Karkar-Yuri" - }, - "vic": { - "english_name": "Creole English, Virgin Islands" - }, - "ign": { - "english_name": "Ignaciano" - }, - "ksz": { - "english_name": "Kodaku" - }, - "kmr": { - "english_name": "Kurdish, Northern" - }, - "bsb": { - "english_name": "Bisaya, Brunei" - }, - "lot": { - "english_name": "Otuho" - }, - "chp": { - "english_name": "Chipewyan" - }, - "mps": { - "english_name": "Dadibi" - }, - "kkx": { - "english_name": "Kohin" - }, - "icr": { - "english_name": "Creole English, Islander" - }, - "bzq": { - "english_name": "Buli (Indonesia)" - }, - "dnk": { - "english_name": "Dengka" - }, - "nxq": { - "english_name": "Naxi" - }, - "ttf": { - "english_name": "Tuotomb" - }, - "dad": { - "english_name": "Marik" - }, - "mqp": { - "english_name": "Manipa" - }, - "zpe": { - "english_name": "Zapotec, Petapa" - }, - "myz": { - "english_name": "Mandaic, Classical" - }, - "ypg": { - "english_name": "Phola" - }, - "emm": { - "english_name": "Mamulique" - }, - "hur": { - "english_name": "Halkomelem" - }, - "gly": { - "english_name": "Gule" - }, - "pnr": { - "english_name": "Panim" - }, - "cnk": { - "english_name": "Chin, Khumi" - }, - "kmd": { - "english_name": "Kalinga, Majukayang" - }, - "alu": { - "english_name": "'Are'are" - }, - "brj": { - "english_name": "Bieria" - }, - "kjm": { - "english_name": "Kháng" - }, - "crj": { - "english_name": "Cree, Southern East" - }, - "jmr": { - "english_name": "Kamara" - }, - "msl": { - "english_name": "Molof" - }, - "sda": { - "english_name": "Toraja-Sa'dan" - }, - "wlc": { - "english_name": "Comorian, Mwali" - }, - "rsb": { - "english_name": "Romano-Serbian" - }, - "cim": { - "english_name": "Cimbrian" - }, - "xmu": { - "english_name": "Kamu" - }, - "mdh": { - "english_name": "Maguindanaon" - }, - "hod": { - "english_name": "Holma" - }, - "mtf": { - "english_name": "Murik (Papua New Guinea)" - }, - "szd": { - "english_name": "Seru" - }, - "bww": { - "english_name": "Bwa" - }, - "arw": { - "english_name": "Arawak" - }, - "tdh": { - "english_name": "Thulung" - }, - "dgk": { - "english_name": "Dagba" - }, - "xnh": { - "english_name": "Kuanhua" - }, - "ppi": { - "english_name": "Paipai" - }, - "kxy": { - "english_name": "Kayong" - }, - "io": { - "english_name": "Ido" - }, - "xgd": { - "english_name": "Gudang" - }, - "bau": { - "english_name": "Bada (Nigeria)" - }, - "sdb": { - "english_name": "Shabak" - }, - "lcq": { - "english_name": "Luhu" - }, - "otu": { - "english_name": "Otuke" - }, - "mjc": { - "english_name": "Mixtec, San Juan Colorado" - }, - "kdq": { - "english_name": "Koch" - }, - "pat": { - "english_name": "Papitalai" - }, - "abr": { - "english_name": "Abron" - }, - "ili": { - "english_name": "Ili Turki" - }, - "nnn": { - "english_name": "Ngete" - }, - "khw": { - "english_name": "Khowar" - }, - "vml": { - "english_name": "Malgana" - }, - "gal": { - "english_name": "Galolen" - }, - "auz": { - "english_name": "Arabic, Uzbeki" - }, - "jaj": { - "english_name": "Zazao" - }, - "onw": { - "english_name": "Nubian, Old" - }, - "bvc": { - "english_name": "Baelelea" - }, - "sov": { - "english_name": "Sonsorol" - }, - "zun": { - "english_name": "Zuni" - }, - "qxn": { - "english_name": "Quechua, Northern Conchucos Ancash" - }, - "ghs": { - "english_name": "Guhu-Samane" - }, - "uma": { - "english_name": "Umatilla" - }, - "crm": { - "english_name": "Cree, Moose" - }, - "wsu": { - "english_name": "Wasu" - }, - "cv": { - "english_name": "Chuvash" - }, - "kdj": { - "english_name": "Karamojong" - }, - "auc": { - "english_name": "Waorani" - }, - "ysn": { - "english_name": "Sani" - }, - "avu": { - "english_name": "Avokaya" - }, - "muh": { - "english_name": "Mündü" - }, - "sek": { - "english_name": "Sekani" - }, - "fam": { - "english_name": "Fam" - }, - "aie": { - "english_name": "Amara" - }, - "xgf": { - "english_name": "Gabrielino-Fernandeño" - }, - "ymn": { - "english_name": "Yamna" - }, - "mhs": { - "english_name": "Buru (Indonesia)" - }, - "xgb": { - "english_name": "Gbin" - }, - "hug": { - "english_name": "Huachipaeri" - }, - "tbr": { - "english_name": "Tumtum" - }, - "yan": { - "english_name": "Mayangna" - }, - "pnl": { - "english_name": "Paleni" - }, - "yli": { - "english_name": "Yali, Angguruk" - }, - "ity": { - "english_name": "Itneg, Moyadan" - }, - "kmh": { - "english_name": "Kalam" - }, - "sgk": { - "english_name": "Sangkong" - }, - "inl": { - "english_name": "Indonesian Sign Language" - }, - "bwu": { - "english_name": "Buli (Ghana)" - }, - "ame": { - "english_name": "Yanesha'" - }, - "bmq": { - "english_name": "Bomu" - }, - "laq": { - "english_name": "Qabiao" - }, - "soe": { - "english_name": "Songomeno" - }, - "alh": { - "english_name": "Alawa" - }, - "bal": { - "english_name": "Baluchi" - }, - "noy": { - "english_name": "Noy" - }, - "wya": { - "english_name": "Wyandot" - }, - "grq": { - "english_name": "Gorovu" - }, - "rol": { - "english_name": "Romblomanon" - }, - "env": { - "english_name": "Enwan (Edu State)" - }, - "vkt": { - "english_name": "Malay, Tenggarong Kutai" - }, - "xrm": { - "english_name": "Armazic" - }, - "kfn": { - "english_name": "Kuk" - }, - "mcp": { - "english_name": "Makaa" - }, - "hea": { - "english_name": "Miao, Northern Qiandong" - }, - "yna": { - "english_name": "Aluo" - }, - "tmm": { - "english_name": "Tai Thanh" - }, - "ifb": { - "english_name": "Ifugao, Batad" - }, - "czk": { - "english_name": "Knaanic" - }, - "hdn": { - "english_name": "Haida, Northern" - }, - "emi": { - "english_name": "Mussau-Emira" - }, - "cbs": { - "english_name": "Cashinahua" - }, - "lme": { - "english_name": "Pévé" - }, - "xbn": { - "english_name": "Kenaboi" - }, - "gnr": { - "english_name": "Gureng Gureng" - }, - "amn": { - "english_name": "Amanab" - }, - "nhb": { - "english_name": "Beng" - }, - "aro": { - "english_name": "Araona" - }, - "tgf": { - "english_name": "Chalikha" - }, - "huf": { - "english_name": "Humene" - }, - "kyo": { - "english_name": "Kelon" - }, - "nmj": { - "english_name": "Ngombe (Central African Republic)" - }, - "hke": { - "english_name": "Hunde" - }, - "swc": { - "english_name": "Swahili, Congo" - }, - "idt": { - "english_name": "Idaté" - }, - "ttl": { - "english_name": "Totela" - }, - "mdt": { - "english_name": "Mbere" - }, - "add": { - "english_name": "Dzodinka" - }, - "twf": { - "english_name": "Tiwa, Northern" - }, - "wah": { - "english_name": "Watubela" - }, - "tci": { - "english_name": "Wára" - }, - "dao": { - "english_name": "Chin, Daai" - }, - "blf": { - "english_name": "Buol" - }, - "cdn": { - "english_name": "Chaudangsi" - }, - "ppk": { - "english_name": "Uma" - }, - "mvf": { - "english_name": "Mongolian, Peripheral" - }, - "mla": { - "english_name": "Malo" - }, - "lwu": { - "english_name": "Lawu" - }, - "aza": { - "english_name": "Azha" - }, - "dgl": { - "english_name": "Andaandi" - }, - "kly": { - "english_name": "Kalao" - }, - "mxk": { - "english_name": "Monumbo" - }, - "nuy": { - "english_name": "Nunggubuyu" - }, - "tnr": { - "english_name": "Ménik" - }, - "pmw": { - "english_name": "Miwok, Plains" - }, - "lmy": { - "english_name": "Lamboya" - }, - "ps": { - "english_name": "Pushto", - "name": "Pushto" - }, - "tjn": { - "english_name": "Tonjon" - }, - "pps": { - "english_name": "Popoloca, San Luís Temalacayuca" - }, - "slj": { - "english_name": "Salumá" - }, - "xkj": { - "english_name": "Kajali" - }, - "aun": { - "english_name": "One, Molmo" - }, - "coa": { - "english_name": "Malay, Cocos Islands" - }, - "cjo": { - "english_name": "Ashéninka Pajonal" - }, - "anc": { - "english_name": "Ngas" - }, - "lnl": { - "english_name": "Banda, South Central" - }, - "ans": { - "english_name": "Anserma" - }, - "wer": { - "english_name": "Weri" - }, - "low": { - "english_name": "Lobu, Tampias" - }, - "prr": { - "english_name": "Puri" - }, - "mgf": { - "english_name": "Maklew" - }, - "xmm": { - "english_name": "Malay, Manado" - }, - "mgh": { - "english_name": "Makhuwa-Meetto" - }, - "rhg": { - "english_name": "Rohingya" - }, - "esi": { - "english_name": "Inupiatun, North Alaskan" - }, - "spx": { - "english_name": "Picene, South" - }, - "nbh": { - "english_name": "Ngamo" - }, - "tll": { - "english_name": "Tetela" - }, - "blt": { - "english_name": "Tai Dam" - }, - "ccg": { - "english_name": "Daka, Samba" - }, - "bvg": { - "english_name": "Bonkeng" - }, - "mux": { - "english_name": "Bo-Ung" - }, - "xht": { - "english_name": "Hattic" - }, - "nmt": { - "english_name": "Namonuito" - }, - "bnq": { - "english_name": "Bantik" - }, - "tpz": { - "english_name": "Tinputz" - }, - "xog": { - "english_name": "Soga" - }, - "stl": { - "english_name": "Stellingwerfs" - }, - "mhb": { - "english_name": "Mahongwe" - }, - "nbc": { - "english_name": "Naga, Chang" - }, - "eve": { - "english_name": "Even" - }, - "ttb": { - "english_name": "Gaa" - }, - "jbn": { - "english_name": "Nafusi" - }, - "lu": { - "english_name": "Luba-Katanga" - }, - "jim": { - "english_name": "Jimi (Cameroon)" - }, - "wma": { - "english_name": "Mawa (Nigeria)" - }, - "akz": { - "english_name": "Alabama" - }, - "haw": { - "english_name": "Hawaiian" - }, - "cuc": { - "english_name": "Chinantec, Usila" - }, - "keu": { - "english_name": "Akebu" - }, - "kno": { - "english_name": "Kono (Sierra Leone)" - }, - "krh": { - "english_name": "Kurama" - }, - "mqh": { - "english_name": "Mixtec, Tlazoyaltepec" - }, - "vum": { - "english_name": "Vumbu" - }, - "eka": { - "english_name": "Ekajuk" - }, - "sut": { - "english_name": "Subtiaba" - }, - "nie": { - "english_name": "Niellim" - }, - "wap": { - "english_name": "Wapishana" - }, - "kay": { - "english_name": "Kamayurá" - }, - "vmx": { - "english_name": "Mixtec, Tamazola" - }, - "log": { - "english_name": "Logo" - }, - "otw": { - "english_name": "Ottawa" - }, - "kyh": { - "english_name": "Karok" - }, - "wmn": { - "english_name": "Waamwang" - }, - "mna": { - "english_name": "Mbula" - }, - "ayu": { - "english_name": "Ayu" - }, - "woe": { - "english_name": "Woleaian" - }, - "mfa": { - "english_name": "Malay, Pattani" - }, - "oni": { - "english_name": "Onin" - }, - "sks": { - "english_name": "Maia" - }, - "ktg": { - "english_name": "Kalkutung" - }, - "koe": { - "english_name": "Kacipo-Balesi" - }, - "urg": { - "english_name": "Urigina" - }, - "ayl": { - "english_name": "Arabic, Libyan" - }, - "tk": { - "english_name": "Turkmen" - }, - "zko": { - "english_name": "Kott" - }, - "kui": { - "english_name": "Kuikúro-Kalapálo" - }, - "bhj": { - "english_name": "Bahing" - }, - "smq": { - "english_name": "Samo" - }, - "cht": { - "english_name": "Cholón" - }, - "lga": { - "english_name": "Lungga" - }, - "rey": { - "english_name": "Reyesano" - }, - "poq": { - "english_name": "Popoluca, Texistepec" - }, - "yiz": { - "english_name": "Azhe" - }, - "xli": { - "english_name": "Liburnian" - }, - "azo": { - "english_name": "Awing" - }, - "faa": { - "english_name": "Fasu" - }, - "cr": { - "english_name": "Cree" - }, - "gar": { - "english_name": "Galeya" - }, - "hui": { - "english_name": "Huli" - }, - "zxx": { - "english_name": "No linguistic content" - }, - "xzm": { - "english_name": "Zemgalian" - }, - "bpa": { - "english_name": "Daakaka" - }, - "mls": { - "english_name": "Masalit" - }, - "dyi": { - "english_name": "Senoufo, Djimini" - }, - "ttm": { - "english_name": "Tutchone, Northern" - }, - "tpx": { - "english_name": "Me'phaa, Acatepec" - }, - "ife": { - "english_name": "Ifè" - }, - "sw": { - "english_name": "Swahili (macrolanguage)" - }, - "bnz": { - "english_name": "Beezen" - }, - "idb": { - "english_name": "Indo-Portuguese" - }, - "kic": { - "english_name": "Kickapoo" - }, - "lgb": { - "english_name": "Laghu" - }, - "lfn": { - "english_name": "Lingua Franca Nova" - }, - "dhu": { - "english_name": "Dhurga" - }, - "kfv": { - "english_name": "Kurmukar" - }, - "sao": { - "english_name": "Sause" - }, - "qvc": { - "english_name": "Quechua, Cajamarca" - }, - "psg": { - "english_name": "Penang Sign Language" - }, - "pis": { - "english_name": "Pijin" - }, - "tnl": { - "english_name": "Lenakel" - }, - "wij": { - "english_name": "Wik-Iiyanh" - }, - "pbu": { - "english_name": "Pashto, Northern" - }, - "buh": { - "english_name": "Bunu, Younuo" - }, - "bow": { - "english_name": "Rema" - }, - "xii": { - "english_name": "Xiri" - }, - "awc": { - "english_name": "Cicipu" - }, - "ssq": { - "english_name": "So'a" - }, - "gna": { - "english_name": "Kaansa" - }, - "lmj": { - "english_name": "Lembata, West" - }, - "tdc": { - "english_name": "Emberá-Tadó" - }, - "knc": { - "english_name": "Kanuri, Central" - }, - "naj": { - "english_name": "Nalu" - }, - "xsh": { - "english_name": "Shamang" - }, - "mvz": { - "english_name": "Mesqan" - }, - "fud": { - "english_name": "Futuna, East" - }, - "mdq": { - "english_name": "Mbole" - }, - "ssy": { - "english_name": "Saho" - }, - "ona": { - "english_name": "Ona" - }, - "acy": { - "english_name": "Arabic, Cypriot" - }, - "sya": { - "english_name": "Siang" - }, - "dmv": { - "english_name": "Dumpas" - }, - "nfd": { - "english_name": "Ahwai" - }, - "ibd": { - "english_name": "Iwaidja" - }, - "vmj": { - "english_name": "Mixtec, Ixtayutla" - }, - "gka": { - "english_name": "Guya" - }, - "wrm": { - "english_name": "Warumungu" - }, - "lkj": { - "english_name": "Remun" - }, - "doa": { - "english_name": "Dom" - }, - "umg": { - "english_name": "Umbuygamu" - }, - "pot": { - "english_name": "Potawatomi" - }, - "gro": { - "english_name": "Groma" - }, - "sak": { - "english_name": "Sake" - }, - "awx": { - "english_name": "Awara" - }, - "beg": { - "english_name": "Belait" - }, - "cia": { - "english_name": "Cia-Cia" - }, - "kvl": { - "english_name": "Kayaw" - }, - "qvw": { - "english_name": "Quechua, Huaylla Wanca" - }, - "lrc": { - "english_name": "Luri, Northern" - }, - "sto": { - "english_name": "Stoney" - }, - "bgo": { - "english_name": "Baga Koga" - }, - "oor": { - "english_name": "Oorlams" - }, - "bug": { - "english_name": "Buginese" - }, - "zkr": { - "english_name": "Zakhring" - }, - "bmp": { - "english_name": "Bulgebi" - }, - "lrk": { - "english_name": "Loarki" - }, - "aaf": { - "english_name": "Aranadan" - }, - "atj": { - "english_name": "Atikamekw" - }, - "ylg": { - "english_name": "Yelogu" - }, - "ulc": { - "english_name": "Ulch" - }, - "ro": { - "english_name": "Romanian", - "name": "Română" - }, - "kiy": { - "english_name": "Kirikiri" - }, - "puk": { - "english_name": "Pu Ko" - }, - "grd": { - "english_name": "Guruntum-Mbaaru" - }, - "mmj": { - "english_name": "Majhwar" - }, - "brx": { - "english_name": "Bodo (India)" - }, - "dtu": { - "english_name": "Dogon, Tebul Ure" - }, - "mlj": { - "english_name": "Miltu" - }, - "enu": { - "english_name": "Enu" - }, - "ksy": { - "english_name": "Kharia Thar" - }, - "lji": { - "english_name": "Laiyolo" - }, - "cdr": { - "english_name": "Cinda-Regi-Tiyal" - }, - "nwb": { - "english_name": "Nyabwa" - }, - "kmq": { - "english_name": "Kwama" - }, - "gd": { - "english_name": "Gaelic, Scottish" - }, - "djc": { - "english_name": "Daju, Dar Daju" - }, - "srv": { - "english_name": "Sorsoganon, Southern" - }, - "bsa": { - "english_name": "Abinomn" - }, - "ncc": { - "english_name": "Ponam" - }, - "lic": { - "english_name": "Hlai" - }, - "bla": { - "english_name": "Siksika" - }, - "tks": { - "english_name": "Takestani" - }, - "hib": { - "english_name": "Hibito" - }, - "nkd": { - "english_name": "Koireng" - }, - "bze": { - "english_name": "Bozo, Jenaama" - }, - "kpu": { - "english_name": "Kafoa" - }, - "mdy": { - "english_name": "Male (Ethiopia)" - }, - "qxc": { - "english_name": "Quechua, Chincha" - }, - "prz": { - "english_name": "Providencia Sign Language" - }, - "zyb": { - "english_name": "Zhuang, Yongbei" - }, - "ayq": { - "english_name": "Ayi (Papua New Guinea)" - }, - "cox": { - "english_name": "Nanti" - }, - "kub": { - "english_name": "Kutep" - }, - "blq": { - "english_name": "Baluan-Pam" - }, - "mlf": { - "english_name": "Mal" - }, - "wny": { - "english_name": "Wanyi" - }, - "vot": { - "english_name": "Votic" - }, - "kwf": { - "english_name": "Kwara'ae" - }, - "anu": { - "english_name": "Anuak" - }, - "mmg": { - "english_name": "Ambrym, North" - }, - "skp": { - "english_name": "Sekapan" - }, - "hma": { - "english_name": "Hmong, Southern Mashan" - }, - "nxk": { - "english_name": "Naga, Koki" - }, - "xan": { - "english_name": "Xamtanga" - }, - "agi": { - "english_name": "Agariya" - }, - "clj": { - "english_name": "Chin, Laitu" - }, - "gui": { - "english_name": "Guaraní, Eastern Bolivian" - }, - "wua": { - "english_name": "Wikngenchera" - }, - "hy": { - "english_name": "Armenian" - }, - "adb": { - "english_name": "Adabe" - }, - "rbk": { - "english_name": "Bontok, Northern" - }, - "snf": { - "english_name": "Noon" - }, - "prb": { - "english_name": "Lua'" - }, - "awg": { - "english_name": "Anguthimri" - }, - "kca": { - "english_name": "Khanty" - }, - "ajw": { - "english_name": "Ajawa" - }, - "nci": { - "english_name": "Nahuatl, Classical" - }, - "gdx": { - "english_name": "Godwari" - }, - "fau": { - "english_name": "Fayu" - }, - "wgg": { - "english_name": "Wangganguru" - }, - "whk": { - "english_name": "Kenyah, Wahau" - }, - "smt": { - "english_name": "Simte" - }, - "sgz": { - "english_name": "Sursurunga" - }, - "cly": { - "english_name": "Chatino, Eastern Highland" - }, - "agy": { - "english_name": "Alta, Southern" - }, - "mir": { - "english_name": "Mixe, Isthmus" - }, - "gsm": { - "english_name": "Guatemalan Sign Language" - }, - "egl": { - "english_name": "Emilian" - }, - "awh": { - "english_name": "Awbono" - }, - "xeb": { - "english_name": "Eblan" - }, - "wab": { - "english_name": "Wab" - }, - "aoz": { - "english_name": "Uab Meto" - }, - "apv": { - "english_name": "Alapmunte" - }, - "nte": { - "english_name": "Nathembo" - }, - "tea": { - "english_name": "Temiar" - }, - "caj": { - "english_name": "Chané" - }, - "abs": { - "english_name": "Malay, Ambonese" - }, - "kyv": { - "english_name": "Kayort" - }, - "gvn": { - "english_name": "Kuku-Yalanji" - }, - "nkc": { - "english_name": "Nkongho" - }, - "doq": { - "english_name": "Dominican Sign Language" - }, - "lev": { - "english_name": "Lamma" - }, - "css": { - "english_name": "Ohlone, Southern" - }, - "luv": { - "english_name": "Luwati" - }, - "nme": { - "english_name": "Naga, Mzieme" - }, - "sij": { - "english_name": "Numbami" - }, - "wca": { - "english_name": "Yanomámi" - }, - "lgi": { - "english_name": "Lengilu" - }, - "xcl": { - "english_name": "Armenian, Classical" - }, - "tvd": { - "english_name": "Tsuvadi" - }, - "hix": { - "english_name": "Hixkaryána" - }, - "alj": { - "english_name": "Alangan" - }, - "tmz": { - "english_name": "Tamanaku" - }, - "lmz": { - "english_name": "Lumbee" - }, - "lst": { - "english_name": "Trinidad and Tobago Sign Language" - }, - "ypz": { - "english_name": "Phuza" - }, - "kuu": { - "english_name": "Kuskokwim, Upper" - }, - "cuq": { - "english_name": "Cun" - }, - "tev": { - "english_name": "Teor" - }, - "nyc": { - "english_name": "Nyanga-li" - }, - "bqy": { - "english_name": "Bengkala Sign Language" - }, - "cbh": { - "english_name": "Cagua" - }, - "psn": { - "english_name": "Panasuan" - }, - "clc": { - "english_name": "Chilcotin" - }, - "cts": { - "english_name": "Bikol, Northern Catanduanes" - }, - "shk": { - "english_name": "Shilluk" - }, - "anf": { - "english_name": "Animere" - }, - "cky": { - "english_name": "Cakfem-Mushere" - }, - "ngd": { - "english_name": "Ngando (Central African Republic)" - }, - "gve": { - "english_name": "Duwet" - }, - "bvw": { - "english_name": "Boga" - }, - "tbo": { - "english_name": "Tawala" - }, - "sol": { - "english_name": "Solos" - }, - "van": { - "english_name": "Valman" - }, - "ekl": { - "english_name": "Kol (Bangladesh)" - }, - "cdo": { - "english_name": "Chinese, Min Dong" - }, - "nbk": { - "english_name": "Nake" - }, - "cuu": { - "english_name": "Tai Ya" - }, - "tox": { - "english_name": "Tobian" - }, - "bjl": { - "english_name": "Bulu (Papua New Guinea)" - }, - "byi": { - "english_name": "Buyu" - }, - "std": { - "english_name": "Sentinel" - }, - "can": { - "english_name": "Chambri" - }, - "amw": { - "english_name": "Neo-Aramaic, Western" - }, - "my": { - "english_name": "Burmese" - }, - "kgw": { - "english_name": "Karon Dori" - }, - "akj": { - "english_name": "Aka-Jeru" - }, - "arv": { - "english_name": "Arbore" - }, - "ctm": { - "english_name": "Chitimacha" - }, - "quz": { - "english_name": "Quechua, Cusco" - }, - "pib": { - "english_name": "Yine" - }, - "tmj": { - "english_name": "Samarokena" - }, - "sqs": { - "english_name": "Sri Lankan Sign Language" - }, - "gcn": { - "english_name": "Gaina" - }, - "bzg": { - "english_name": "Babuza" - }, - "crx": { - "english_name": "Carrier" - }, - "muj": { - "english_name": "Mabire" - }, - "spo": { - "english_name": "Spokane" - }, - "sqn": { - "english_name": "Susquehannock" - }, - "sdt": { - "english_name": "Shuadit" - }, - "dgd": { - "english_name": "Dagaari Dioula" - }, - "irx": { - "english_name": "Kamberau" - }, - "uuu": { - "english_name": "U" - }, - "kwc": { - "english_name": "Likwala" - }, - "aik": { - "english_name": "Ake" - }, - "mnl": { - "english_name": "Tiale" - }, - "nbu": { - "english_name": "Naga, Rongmei" - }, - "gey": { - "english_name": "Enya" - }, - "nda": { - "english_name": "Ndasa" - }, - "kjj": { - "english_name": "Khinalugh" - }, - "kwm": { - "english_name": "Kwambi" - }, - "aic": { - "english_name": "Ainbai" - }, - "wkl": { - "english_name": "Kalanadi" - }, - "cmt": { - "english_name": "Camtho" - }, - "tre": { - "english_name": "Tarangan, East" - }, - "ctz": { - "english_name": "Chatino, Zacatepec" - }, - "krk": { - "english_name": "Kerek" - }, - "xon": { - "english_name": "Konkomba" - }, - "mzm": { - "english_name": "Mumuye" - }, - "agf": { - "english_name": "Arguni" - }, - "bzs": { - "english_name": "Brazilian Sign Language" - }, - "xqa": { - "english_name": "Karakhanid" - }, - "zra": { - "english_name": "Kara (Korea)" - }, - "agj": { - "english_name": "Argobba" - }, - "mss": { - "english_name": "Masela, West" - }, - "sob": { - "english_name": "Sobei" - }, - "xmp": { - "english_name": "Kuku-Mu'inh" - }, - "bbg": { - "english_name": "Barama" - }, - "erk": { - "english_name": "Efate, South" - }, - "bzp": { - "english_name": "Kemberano" - }, - "kzk": { - "english_name": "Kazukuru" - }, - "nad": { - "english_name": "Nijadali" - }, - "nmi": { - "english_name": "Nyam" - }, - "fad": { - "english_name": "Wagi" - }, - "dts": { - "english_name": "Dogon, Toro So" - }, - "mas": { - "english_name": "Masai" - }, - "clh": { - "english_name": "Chilisso" - }, - "huh": { - "english_name": "Huilliche" - }, - "xtd": { - "english_name": "Mixtec, Diuxi-Tilantongo" - }, - "doy": { - "english_name": "Dompo" - }, - "bfo": { - "english_name": "Birifor, Malba" - }, - "xww": { - "english_name": "Wemba Wemba" - }, - "aga": { - "english_name": "Aguano" - }, - "jrr": { - "english_name": "Jiru" - }, - "zuh": { - "english_name": "Tokano" - }, - "bsy": { - "english_name": "Bisaya, Sabah" - }, - "dmg": { - "english_name": "Kinabatangan, Upper" - }, - "bet": { - "english_name": "Béte, Guiberoua" - }, - "sgu": { - "english_name": "Salas" - }, - "afd": { - "english_name": "Andai" - }, - "shw": { - "english_name": "Shwai" - }, - "xmd": { - "english_name": "Mbudum" - }, - "rpn": { - "english_name": "Repanbitip" - }, - "nkg": { - "english_name": "Nekgini" - }, - "ayd": { - "english_name": "Ayabadhu" - }, - "kkt": { - "english_name": "Koi" - }, - "kme": { - "english_name": "Bakole" - }, - "swh": { - "english_name": "Swahili (individual language)" - }, - "ahl": { - "english_name": "Igo" - }, - "ali": { - "english_name": "Amaimon" - }, - "rgu": { - "english_name": "Ringgou" - }, - "chq": { - "english_name": "Chinantec, Quiotepec" - }, - "cnb": { - "english_name": "Chin, Chinbon" - }, - "siv": { - "english_name": "Sumariup" - }, - "gfk": { - "english_name": "Patpatar" - }, - "esu": { - "english_name": "Yupik, Central" - }, - "eto": { - "english_name": "Eton (Cameroon)" - }, - "bzr": { - "english_name": "Biri" - }, - "aiw": { - "english_name": "Aari" - }, - "gzn": { - "english_name": "Gane" - }, - "ykm": { - "english_name": "Kap" - }, - "wlu": { - "english_name": "Wuliwuli" - }, - "tia": { - "english_name": "Tamazight, Tidikelt" - }, - "jjr": { - "english_name": "Bankal" - }, - "dbe": { - "english_name": "Dabe" - }, - "bqn": { - "english_name": "Bulgarian Sign Language" - }, - "smd": { - "english_name": "Sama" - }, - "luo": { - "english_name": "Luo (Kenya and Tanzania)" - }, - "bjk": { - "english_name": "Barok" - }, - "glr": { - "english_name": "Glaro-Twabo" - }, - "kam": { - "english_name": "Kamba (Kenya)" - }, - "gaa": { - "english_name": "Ga" - }, - "se": { - "english_name": "Sami, Northern" - }, - "emx": { - "english_name": "Erromintxela" - }, - "chg": { - "english_name": "Chagatai" - }, - "bwp": { - "english_name": "Mandobo Bawah" - }, - "kgp": { - "english_name": "Kaingang" - }, - "mse": { - "english_name": "Musey" - }, - "kpw": { - "english_name": "Kobon" - }, - "hir": { - "english_name": "Himarimã" - }, - "djj": { - "english_name": "Djeebbana" - }, - "cam": { - "english_name": "Cemuhî" - }, - "aah": { - "english_name": "Arapesh, Abu'" - }, - "gl": { - "english_name": "Galician", - "name": "Galego" - }, - "btf": { - "english_name": "Birgit" - }, - "xgi": { - "english_name": "Garingbal" - }, - "izr": { - "english_name": "Izere" - }, - "bvl": { - "english_name": "Bolivian Sign Language" - }, - "yla": { - "english_name": "Yaul" - }, - "ndt": { - "english_name": "Ndunga" - }, - "kok": { - "english_name": "Konkani (macrolanguage)", - "name": "Konkani (macrolanguage)" - }, - "kth": { - "english_name": "Karanga" - }, - "pme": { - "english_name": "Pwaamei" - }, - "mjq": { - "english_name": "Malaryan" - }, - "vec": { - "english_name": "Venetian" - }, - "kuf": { - "english_name": "Katu, Western" - }, - "mzr": { - "english_name": "Marúbo" - }, - "tsh": { - "english_name": "Tsuvan" - }, - "asa": { - "english_name": "Asu (Tanzania)" - }, - "kup": { - "english_name": "Kunimaipa" - }, - "poy": { - "english_name": "Pogolo" - }, - "udm": { - "english_name": "Udmurt" - }, - "slf": { - "english_name": "Swiss-Italian Sign Language" - }, - "xyl": { - "english_name": "Yalakalore" - }, - "gis": { - "english_name": "Giziga, North" - }, - "ane": { - "english_name": "Xârâcùù" - }, - "bqo": { - "english_name": "Balo" - }, - "lwe": { - "english_name": "Lewo Eleng" - }, - "xmv": { - "english_name": "Malagasy, Antankarana" - }, - "mjj": { - "english_name": "Mawak" - }, - "msm": { - "english_name": "Manobo, Agusan" - }, - "tap": { - "english_name": "Taabwa" - }, - "kba": { - "english_name": "Kalarko" - }, - "cjy": { - "english_name": "Chinese, Jinyu" - }, - "mxo": { - "english_name": "Mbowe" - }, - "ctt": { - "english_name": "Chetti, Wayanad" - }, - "tmv": { - "english_name": "Tembo (Motembo)" - }, - "zae": { - "english_name": "Zapotec, Yareni" - }, - "cca": { - "english_name": "Cauca" - }, - "laj": { - "english_name": "Lango (Uganda)" - }, - "gsg": { - "english_name": "German Sign Language" - }, - "ojs": { - "english_name": "Ojibwa, Severn" - }, - "njh": { - "english_name": "Naga, Lotha" - }, - "dng": { - "english_name": "Dungan" - }, - "nid": { - "english_name": "Ngandi" - }, - "nba": { - "english_name": "Nyemba" - }, - "hi": { - "english_name": "Hindi", - "name": "हिंदी" - }, - "jru": { - "english_name": "Japrería" - }, - "tmn": { - "english_name": "Taman (Indonesia)" - }, - "wuh": { - "english_name": "Wutunhua" - }, - "grg": { - "english_name": "Madi" - }, - "rth": { - "english_name": "Ratahan" - }, - "dsl": { - "english_name": "Danish Sign Language" - }, - "uro": { - "english_name": "Ura (Papua New Guinea)" - }, - "moq": { - "english_name": "Mor (Bomberai Peninsula)" - }, - "vkp": { - "english_name": "Creole Portuguese, Korlai" - }, - "sss": { - "english_name": "Sô" - }, - "mtb": { - "english_name": "Anyin Morofo" - }, - "orh": { - "english_name": "Oroqen" - }, - "acb": { - "english_name": "Áncá" - }, - "wem": { - "english_name": "Gbe, Weme" - }, - "qwc": { - "english_name": "Quechua, Classical" - }, - "kji": { - "english_name": "Zabana" - }, - "mab": { - "english_name": "Mixtec, Yutanduchi" - }, - "bnp": { - "english_name": "Bola" - }, - "any": { - "english_name": "Anyin" - }, - "ktz": { - "english_name": "Ju/'hoan" - }, - "crh": { - "english_name": "Tatar, Crimean", - "name": "Tatar, Crimean" - }, - "awy": { - "english_name": "Awyu, Edera" - }, - "lox": { - "english_name": "Loun" - }, - "kew": { - "english_name": "Kewa, West" - }, - "kv": { - "english_name": "Komi" - }, - "ukg": { - "english_name": "Ukuriguma" - }, - "ldd": { - "english_name": "Luri" - }, - "juu": { - "english_name": "Ju" - }, - "aha": { - "english_name": "Ahanta" - }, - "rwr": { - "english_name": "Marwari (India)" - }, - "tkf": { - "english_name": "Tukumanféd" - }, - "bnm": { - "english_name": "Batanga" - }, - "lrm": { - "english_name": "Marama" - }, - "npo": { - "english_name": "Naga, Pochuri" - }, - "lno": { - "english_name": "Lango (Sudan)" - }, - "ndl": { - "english_name": "Ndolo" - }, - "smc": { - "english_name": "Som" - }, - "fro": { - "english_name": "French, Old (842-ca. 1400)" - }, - "bju": { - "english_name": "Busuu" - }, - "txx": { - "english_name": "Tatana" - }, - "ror": { - "english_name": "Rongga" - }, - "otl": { - "english_name": "Otomi, Tilapa" - }, - "jls": { - "english_name": "Jamaican Sign Language" - }, - "riu": { - "english_name": "Riung" - }, - "mut": { - "english_name": "Muria, Western" - }, - "abu": { - "english_name": "Abure" - }, - "tgb": { - "english_name": "Tobilung" - }, - "kgo": { - "english_name": "Krongo" - }, - "wbb": { - "english_name": "Wabo" - }, - "lbg": { - "english_name": "Laopang" - }, - "sch": { - "english_name": "Sakachep" - }, - "wrl": { - "english_name": "Warlmanpa" - }, - "ddg": { - "english_name": "Fataluku" - }, - "nmc": { - "english_name": "Ngam" - }, - "pns": { - "english_name": "Ponosakan" - }, - "gau": { - "english_name": "Gadaba, Mudhili" - }, - "zlm": { - "english_name": "Malay (individual language)" - }, - "hmn": { - "english_name": "Hmong" - }, - "bho": { - "english_name": "Bhojpuri" - }, - "afo": { - "english_name": "Eloyi" - }, - "zhb": { - "english_name": "Zhaba" - }, - "lba": { - "english_name": "Lui" - }, - "taq": { - "english_name": "Tamasheq" - }, - "brp": { - "english_name": "Barapasi" - }, - "cui": { - "english_name": "Cuiba" - }, - "dbw": { - "english_name": "Dogon, Bankan Tey" - }, - "tnh": { - "english_name": "Maiani" - }, - "cmg": { - "english_name": "Mongolian, Classical" - }, - "tmh": { - "english_name": "Tamashek" - }, - "ora": { - "english_name": "Oroha" - }, - "gwt": { - "english_name": "Gawar-Bati" - }, - "mpg": { - "english_name": "Marba" - }, - "dgg": { - "english_name": "Doga" - }, - "phh": { - "english_name": "Phukha" - }, - "ms": { - "english_name": "Malay (macrolanguage)", - "name": "Malay (macrolanguage)" - }, - "clt": { - "english_name": "Chin, Lautu" - }, - "sjp": { - "english_name": "Surjapuri" - }, - "dul": { - "english_name": "Agta, Alabat Island" - }, - "vms": { - "english_name": "Moksela" - }, - "ttn": { - "english_name": "Towei" - }, - "aac": { - "english_name": "Ari" - }, - "mtm": { - "english_name": "Mator" - }, - "wha": { - "english_name": "Manusela" - }, - "wnw": { - "english_name": "Wintu" - }, - "ncn": { - "english_name": "Nauna" - }, - "txr": { - "english_name": "Tartessian" - }, - "anw": { - "english_name": "Anaang" - }, - "gmh": { - "english_name": "German, Middle High (ca. 1050-1500)" - }, - "sne": { - "english_name": "Bidayuh, Bau" - }, - "hre": { - "english_name": "Hre" - }, - "tkl": { - "english_name": "Tokelau" - }, - "ebo": { - "english_name": "Teke-Ebo" - }, - "ikl": { - "english_name": "Ikulu" - }, - "khd": { - "english_name": "Kanum, Bädi" - }, - "mbn": { - "english_name": "Macaguán" - }, - "apm": { - "english_name": "Apache, Mescalero-Chiricahua" - }, - "amo": { - "english_name": "Amo" - }, - "tsy": { - "english_name": "Tebul Sign Language" - }, - "suz": { - "english_name": "Sunwar" - }, - "bed": { - "english_name": "Bedoanas" - }, - "sts": { - "english_name": "Shumashti" - }, - "pmn": { - "english_name": "Pam" - }, - "ktx": { - "english_name": "Kaxararí" - }, - "crk": { - "english_name": "Cree, Plains" - }, - "gub": { - "english_name": "Guajajára" - }, - "ywg": { - "english_name": "Yinhawangka" - }, - "iyx": { - "english_name": "Yaka (Congo)" - }, - "bhr": { - "english_name": "Malagasy, Bara" - }, - "cpy": { - "english_name": "Ashéninka, South Ucayali" - }, - "awo": { - "english_name": "Awak" - }, - "vme": { - "english_name": "Masela, East" - }, - "akp": { - "english_name": "Siwu" - }, - "erh": { - "english_name": "Eruwa" - }, - "mhn": { - "english_name": "Mócheno" - }, - "afn": { - "english_name": "Defaka" - }, - "yau": { - "english_name": "Yuwana" - }, - "kwk": { - "english_name": "Kwakiutl" - }, - "hnd": { - "english_name": "Hindko, Southern" - }, - "lok": { - "english_name": "Loko" - }, - "tar": { - "english_name": "Tarahumara, Central" - }, - "ugo": { - "english_name": "Ugong" - }, - "hue": { - "english_name": "Huave, San Francisco Del Mar" - }, - "lnd": { - "english_name": "Lundayeh" - }, - "ztl": { - "english_name": "Zapotec, Lapaguía-Guivini" - }, - "ser": { - "english_name": "Serrano" - }, - "xyk": { - "english_name": "Mayi-Kulan" - }, - "nbo": { - "english_name": "Nkukoli" - }, - "pyy": { - "english_name": "Pyen" - }, - "mom": { - "english_name": "Mangue" - }, - "bde": { - "english_name": "Bade" - }, - "def": { - "english_name": "Dezfuli" - }, - "con": { - "english_name": "Cofán" - }, - "waj": { - "english_name": "Waffa" - }, - "yba": { - "english_name": "Yala" - }, - "gbj": { - "english_name": "Gadaba, Bodo" - }, - "ygl": { - "english_name": "Yangum Gel" - }, - "txq": { - "english_name": "Tii" - }, - "nll": { - "english_name": "Nihali" - }, - "uru": { - "english_name": "Urumi" - }, - "mwb": { - "english_name": "Juwal" - }, - "smg": { - "english_name": "Simbali" - }, - "ida": { - "english_name": "Idakho-Isukha-Tiriki" - }, - "yar": { - "english_name": "Yabarana" - }, - "kio": { - "english_name": "Kiowa" - }, - "wci": { - "english_name": "Gbe, Waci" - }, - "bim": { - "english_name": "Bimoba" - }, - "scn": { - "english_name": "Sicilian" - }, - "xmg": { - "english_name": "Mengaka" - }, - "der": { - "english_name": "Deori" - }, - "gde": { - "english_name": "Gude" - }, - "ddd": { - "english_name": "Dongotono" - }, - "paf": { - "english_name": "Paranawát" - }, - "tpa": { - "english_name": "Taupota" - }, - "ldj": { - "english_name": "Lemoro" - }, - "ybj": { - "english_name": "Hasha" - }, - "thh": { - "english_name": "Tarahumara, Northern" - }, - "btv": { - "english_name": "Bateri" - }, - "zap": { - "english_name": "Zapotec" - }, - "pig": { - "english_name": "Pisabo" - }, - "ckx": { - "english_name": "Caka" - }, - "tyr": { - "english_name": "Tai Daeng" - }, - "ham": { - "english_name": "Hewa" - }, - "sps": { - "english_name": "Saposa" - }, - "oyy": { - "english_name": "Oya'oya" - }, - "cbc": { - "english_name": "Carapana" - }, - "bzw": { - "english_name": "Basa (Nigeria)" - }, - "gug": { - "english_name": "Guaraní, Paraguayan" - }, - "woc": { - "english_name": "Wogeo" - }, - "trs": { - "english_name": "Triqui, Chicahuaxtla" - }, - "aog": { - "english_name": "Angoram" - }, - "kxp": { - "english_name": "Koli, Wadiyara" - }, - "trc": { - "english_name": "Triqui, Copala" - }, - "wum": { - "english_name": "Wumbvu" - }, - "ike": { - "english_name": "Inuktitut, Eastern Canadian" - }, - "lt": { - "english_name": "Lithuanian", - "name": "Lietuvių" - }, - "gko": { - "english_name": "Kok-Nar" - }, - "tuz": { - "english_name": "Turka" - }, - "ldn": { - "english_name": "Láadan" - }, - "hag": { - "english_name": "Hanga" - }, - "tim": { - "english_name": "Timbe" - }, - "ass": { - "english_name": "Ipulo" - }, - "dug": { - "english_name": "Duruma" - }, - "xlu": { - "english_name": "Luwian, Cuneiform" - }, - "mfy": { - "english_name": "Mayo" - }, - "rof": { - "english_name": "Rombo" - }, - "mpm": { - "english_name": "Mixtec, Yosondúa" - }, - "wga": { - "english_name": "Wagaya" - }, - "tdn": { - "english_name": "Tondano" - }, - "tns": { - "english_name": "Tenis" - }, - "cuo": { - "english_name": "Cumanagoto" - }, - "lcf": { - "english_name": "Lubu" - }, - "nsf": { - "english_name": "Nisu, Northwestern" - }, - "pcw": { - "english_name": "Pyapun" - }, - "azz": { - "english_name": "Nahuatl, Highland Puebla" - }, - "vbk": { - "english_name": "Bontok, Southwestern" - }, - "slx": { - "english_name": "Salampasu" - }, - "kkr": { - "english_name": "Kir-Balar" - }, - "cby": { - "english_name": "Carabayo" - }, - "nuq": { - "english_name": "Nukumanu" - }, - "mio": { - "english_name": "Mixtec, Pinotepa Nacional" - }, - "mml": { - "english_name": "Man Met" - }, - "ifk": { - "english_name": "Ifugao, Tuwali" - }, - "ntx": { - "english_name": "Naga, Tangkhul (Myanmar)" - }, - "gun": { - "english_name": "Guaraní, Mbyá" - }, - "sew": { - "english_name": "Sewa Bay" - }, - "bdr": { - "english_name": "Bajau, West Coast" - }, - "mvo": { - "english_name": "Marovo" - }, - "gpe": { - "english_name": "Pidgin English, Ghanaian" - }, - "piu": { - "english_name": "Pintupi-Luritja" - }, - "akq": { - "english_name": "Ak" - }, - "tua": { - "english_name": "Wiarumus" - }, - "nyw": { - "english_name": "Nyaw" - }, - "ktn": { - "english_name": "Karitiâna" - }, - "toi": { - "english_name": "Tonga (Zambia)" - }, - "kpe": { - "english_name": "Kpelle" - }, - "byg": { - "english_name": "Baygo" - }, - "crb": { - "english_name": "Carib, Island" - }, - "gou": { - "english_name": "Gavar" - }, - "koq": { - "english_name": "Kota (Gabon)" - }, - "spr": { - "english_name": "Saparua" - }, - "uri": { - "english_name": "Urim" - }, - "bse": { - "english_name": "Wushi" - }, - "aea": { - "english_name": "Areba" - }, - "mru": { - "english_name": "Mono (Cameroon)" - }, - "huw": { - "english_name": "Hukumina" - }, - "zat": { - "english_name": "Zapotec, Tabaa" - }, - "kta": { - "english_name": "Katua" - }, - "cuk": { - "english_name": "Kuna, San Blas" - }, - "mhg": { - "english_name": "Margu" - }, - "mua": { - "english_name": "Mundang" - }, - "idc": { - "english_name": "Idon" - }, - "tkq": { - "english_name": "Tee" - }, - "xer": { - "english_name": "Xerénte" - }, - "zmz": { - "english_name": "Mbandja" - }, - "ycn": { - "english_name": "Yucuna" - }, - "lbw": { - "english_name": "Tolaki" - }, - "kye": { - "english_name": "Krache" - }, - "zts": { - "english_name": "Zapotec, Tilquiapan" - }, - "itm": { - "english_name": "Itu Mbon Uzo" - }, - "pym": { - "english_name": "Fyam" - }, - "job": { - "english_name": "Joba" - }, - "khb": { - "english_name": "Lü" - }, - "ha": { - "english_name": "Hausa" - }, - "msw": { - "english_name": "Mansoanka" - }, - "dju": { - "english_name": "Kapriman" - }, - "lbf": { - "english_name": "Tinani" - }, - "sje": { - "english_name": "Sami, Pite" - }, - "yri": { - "english_name": "Yarí" - }, - "diz": { - "english_name": "Ding" - }, - "mln": { - "english_name": "Malango" - }, - "myg": { - "english_name": "Manta" - }, - "wka": { - "english_name": "Kw'adza" - }, - "zuy": { - "english_name": "Zumaya" - }, - "for": { - "english_name": "Fore" - }, - "axm": { - "english_name": "Armenian, Middle" - }, - "abd": { - "english_name": "Manide" - }, - "mpn": { - "english_name": "Mindiri" - }, - "diw": { - "english_name": "Dinka, Northwestern" - }, - "mgq": { - "english_name": "Malila" - }, - "cgg": { - "english_name": "Chiga" - }, - "omc": { - "english_name": "Mochica" - }, - "fvr": { - "english_name": "Fur" - }, - "faj": { - "english_name": "Faita" - }, - "psc": { - "english_name": "Persian Sign Language" - }, - "tcx": { - "english_name": "Toda" - }, - "txu": { - "english_name": "Kayapó" - }, - "xnk": { - "english_name": "Nganakarti" - }, - "gmd": { - "english_name": "Mághdì" - }, - "bgm": { - "english_name": "Baga Mboteni" - }, - "kll": { - "english_name": "Kalagan, Kagan" - }, - "ums": { - "english_name": "Pendau" - }, - "mlv": { - "english_name": "Motlav" - }, - "khk": { - "english_name": "Mongolian, Halh" - }, - "dyg": { - "english_name": "Agta, Villa Viciosa" - }, - "xow": { - "english_name": "Kowaki" - }, - "sng": { - "english_name": "Sanga (Democratic Republic of Congo)" - }, - "bhh": { - "english_name": "Bukharic" - }, - "lhl": { - "english_name": "Lohar, Lahul" - }, - "ski": { - "english_name": "Sika" - }, - "trg": { - "english_name": "Lishán Didán" - }, - "cob": { - "english_name": "Chicomuceltec" - }, - "nyq": { - "english_name": "Nayini" - }, - "tuh": { - "english_name": "Taulil" - }, - "cnw": { - "english_name": "Chin, Ngawn" - }, - "auu": { - "english_name": "Auye" - }, - "buv": { - "english_name": "Bun" - }, - "bxl": { - "english_name": "Jalkunan" - }, - "ljx": { - "english_name": "Yuru" - }, - "hno": { - "english_name": "Hindko, Northern" - }, - "gmx": { - "english_name": "Magoma" - }, - "lnu": { - "english_name": "Longuda" - }, - "mqt": { - "english_name": "Mok" - }, - "nsv": { - "english_name": "Nisu, Southwestern" - }, - "clo": { - "english_name": "Chontal, Lowland Oaxaca" - }, - "kgl": { - "english_name": "Kunggari" - }, - "kgx": { - "english_name": "Kamaru" - }, - "thy": { - "english_name": "Tha" - }, - "snw": { - "english_name": "Selee" - }, - "nsk": { - "english_name": "Naskapi" - }, - "zaj": { - "english_name": "Zaramo" - }, - "mtj": { - "english_name": "Moskona" - }, - "nfu": { - "english_name": "Mfumte" - }, - "git": { - "english_name": "Gitxsan" - }, - "tui": { - "english_name": "Tupuri" - }, - "gcd": { - "english_name": "Ganggalida" - }, - "bic": { - "english_name": "Bikaru" - }, - "lnz": { - "english_name": "Lonzo" - }, - "kkk": { - "english_name": "Kokota" - }, - "tio": { - "english_name": "Teop" - }, - "kn": { - "english_name": "Kannada", - "name": "ಕನ್ನಡ" - }, - "nho": { - "english_name": "Takuu" - }, - "mhd": { - "english_name": "Mbugu" - }, - "dix": { - "english_name": "Dixon Reef" - }, - "dks": { - "english_name": "Dinka, Southeastern" - }, - "ikr": { - "english_name": "Ikaranggal" - }, - "gyy": { - "english_name": "Gunya" - }, - "ree": { - "english_name": "Kayan, Rejang" - }, - "tog": { - "english_name": "Tonga (Nyasa)" - }, - "ttp": { - "english_name": "Tombelala" - }, - "txb": { - "english_name": "Tokharian B" - }, - "hud": { - "english_name": "Huaulu" - }, - "hij": { - "english_name": "Hijuk" - }, - "cto": { - "english_name": "Emberá-Catío" - }, - "sad": { - "english_name": "Sandawe" - }, - "khc": { - "english_name": "Tukang Besi North" - }, - "cri": { - "english_name": "Sãotomense" - }, - "hbo": { - "english_name": "Hebrew, Ancient" - }, - "ace": { - "english_name": "Achinese" - }, - "dbq": { - "english_name": "Daba" - }, - "bm": { - "english_name": "Bambara" - }, - "bqp": { - "english_name": "Busa" - }, - "nge": { - "english_name": "Ngemba" - }, - "zav": { - "english_name": "Zapotec, Yatzachi" - }, - "sfe": { - "english_name": "Subanen, Eastern" - }, - "wdg": { - "english_name": "Wadaginam" - }, - "thm": { - "english_name": "Aheu" - }, - "kdy": { - "english_name": "Keder" - }, - "duo": { - "english_name": "Agta, Dupaninan" - }, - "psq": { - "english_name": "Pasi" - }, - "mvw": { - "english_name": "Machinga" - }, - "okb": { - "english_name": "Okobo" - }, - "xkt": { - "english_name": "Kantosi" - }, - "til": { - "english_name": "Tillamook" - }, - "kuv": { - "english_name": "Kur" - }, - "weo": { - "english_name": "Wemale" - }, - "nnf": { - "english_name": "Ngaing" - }, - "ish": { - "english_name": "Esan" - }, - "yxl": { - "english_name": "Yardliyawarra" - }, - "xyb": { - "english_name": "Yandjibara" - }, - "rak": { - "english_name": "Tulu-Bohuai" - }, - "kqt": { - "english_name": "Kadazan, Klias River" - }, - "xoi": { - "english_name": "Kominimung" - }, - "kao": { - "english_name": "Xaasongaxango" - }, - "trl": { - "english_name": "Scottish, Traveller" - }, - "ver": { - "english_name": "Mom Jango" - }, - "krv": { - "english_name": "Kavet" - }, - "csr": { - "english_name": "Costa Rican Sign Language" - }, - "ksq": { - "english_name": "Kwaami" - }, - "byb": { - "english_name": "Bikya" - }, - "jcs": { - "english_name": "Jamaican Country Sign Language" - }, - "agl": { - "english_name": "Fembe" - }, - "azb": { - "english_name": "Azerbaijani, South" - }, - "mai": { - "english_name": "Maithili" - }, - "wei": { - "english_name": "Kiunum" - }, - "npg": { - "english_name": "Naga, Ponyo-Gongwang" - }, - "bra": { - "english_name": "Braj" - }, - "trz": { - "english_name": "Torá" - }, - "trd": { - "english_name": "Turi" - }, - "jow": { - "english_name": "Jowulu" - }, - "gvl": { - "english_name": "Gulay" - }, - "wtf": { - "english_name": "Watiwa" - }, - "mjd": { - "english_name": "Maidu, Northwest" - }, - "scw": { - "english_name": "Sha" - }, - "nlw": { - "english_name": "Walangama" - }, - "nb": { - "english_name": "Norwegian Bokmål", - "name": "Norwegian Bokmål" - }, - "iba": { - "english_name": "Iban" - }, - "mpc": { - "english_name": "Mangarayi" - }, - "kvp": { - "english_name": "Kompane" - }, - "rnd": { - "english_name": "Ruund" - }, - "wnc": { - "english_name": "Wantoat" - }, - "gcc": { - "english_name": "Mali" - }, - "yry": { - "english_name": "Yarluyandi" - }, - "khq": { - "english_name": "Songhay, Koyra Chiini" - }, - "xwj": { - "english_name": "Wajuk" - }, - "th": { - "english_name": "Thai", - "name": "ไทย" - }, - "glh": { - "english_name": "Pashayi, Northwest" - }, - "krx": { - "english_name": "Karon" - }, - "mkv": { - "english_name": "Mafea" - }, - "mnb": { - "english_name": "Muna" - }, - "nuj": { - "english_name": "Nyole" - }, - "dac": { - "english_name": "Dambi" - }, - "yai": { - "english_name": "Yagnobi" - }, - "ngh": { - "english_name": "N/u" - }, - "acf": { - "english_name": "Creole French, Saint Lucian" - }, - "nui": { - "english_name": "Ngumbi" - }, - "imr": { - "english_name": "Imroing" - }, - "pml": { - "english_name": "Lingua Franca" - }, - "pbv": { - "english_name": "Pnar" - }, - "hve": { - "english_name": "Huave, San Dionisio Del Mar" - }, - "tqp": { - "english_name": "Tomoip" - }, - "pks": { - "english_name": "Pakistan Sign Language" - }, - "mmf": { - "english_name": "Mundat" - }, - "adh": { - "english_name": "Adhola" - }, - "mav": { - "english_name": "Sateré-Mawé" - }, - "tsa": { - "english_name": "Tsaangi" - }, - "fue": { - "english_name": "Fulfulde, Borgu" - }, - "kqb": { - "english_name": "Kovai" - }, - "dds": { - "english_name": "Dogon, Donno So" - }, - "cno": { - "english_name": "Con" - }, - "tbp": { - "english_name": "Taworta" - }, - "avd": { - "english_name": "Alviri-Vidari" - }, - "yo": { - "english_name": "Yoruba" - }, - "bgp": { - "english_name": "Balochi, Eastern" - }, - "mwl": { - "english_name": "Mirandese" - }, - "mey": { - "english_name": "Hassaniyya" - }, - "wie": { - "english_name": "Wik-Epa" - }, - "km": { - "english_name": "Khmer, Central" - }, - "uve": { - "english_name": "Uvean, West" - }, - "mhz": { - "english_name": "Mor (Mor Islands)" - }, - "ilb": { - "english_name": "Ila" - }, - "gbf": { - "english_name": "Gaikundi" - }, - "shv": { - "english_name": "Shehri" - }, - "bkm": { - "english_name": "Kom (Cameroon)" - }, - "thd": { - "english_name": "Thayore" - }, - "caq": { - "english_name": "Nicobarese, Car" - }, - "ijs": { - "english_name": "Ijo, Southeast" - }, - "gtu": { - "english_name": "Aghu-Tharnggala" - }, - "bgw": { - "english_name": "Bhatri" - }, - "yxy": { - "english_name": "Yabula Yabula" - }, - "knz": { - "english_name": "Kalamsé" - }, - "xbg": { - "english_name": "Bunganditj" - }, - "gvf": { - "english_name": "Golin" - }, - "zmh": { - "english_name": "Makolkol" - }, - "prd": { - "english_name": "Parsi-Dari" - }, - "ebg": { - "english_name": "Ebughu" - }, - "suj": { - "english_name": "Shubi" - }, - "xur": { - "english_name": "Urartian" - }, - "jei": { - "english_name": "Yei" - }, - "anx": { - "english_name": "Andra-Hus" - }, - "nar": { - "english_name": "Iguta" - }, - "vmk": { - "english_name": "Makhuwa-Shirima" - }, - "agu": { - "english_name": "Aguacateco" - }, - "rbl": { - "english_name": "Bikol, Miraya" - }, - "nag": { - "english_name": "Naga Pidgin" - }, - "bon": { - "english_name": "Bine" - }, - "bao": { - "english_name": "Waimaha" - }, - "sev": { - "english_name": "Senoufo, Nyarafolo" - }, - "byt": { - "english_name": "Berti" - }, - "wdj": { - "english_name": "Wadjiginy" - }, - "bsf": { - "english_name": "Bauchi" - }, - "to": { - "english_name": "Tonga (Tonga Islands)" - }, - "mmk": { - "english_name": "Mukha-Dora" - }, - "btg": { - "english_name": "Bété, Gagnoa" - }, - "lpe": { - "english_name": "Lepki" - }, - "jax": { - "english_name": "Malay, Jambi" - }, - "buk": { - "english_name": "Bugawac" - }, - "svk": { - "english_name": "Slovakian Sign Language" - }, - "gec": { - "english_name": "Grebo, Gboloo" - }, - "sgs": { - "english_name": "Samogitian" - }, - "ja": { - "english_name": "Japanese", - "name": "日本語" - }, - "bcv": { - "english_name": "Shoo-Minda-Nye" - }, - "coq": { - "english_name": "Coquille" - }, - "orr": { - "english_name": "Oruma" - }, - "bpq": { - "english_name": "Malay, Banda" - }, - "lke": { - "english_name": "Kenyi" - }, - "inm": { - "english_name": "Minaean" - }, - "wec": { - "english_name": "Wè Western" - }, - "cje": { - "english_name": "Chru" - }, - "dgb": { - "english_name": "Dogon, Bunoge" - }, - "caf": { - "english_name": "Carrier, Southern" - }, - "ygw": { - "english_name": "Yagwoia" - }, - "ogu": { - "english_name": "Ogbronuagum" - }, - "xpg": { - "english_name": "Phrygian" - }, - "rnw": { - "english_name": "Rungwa" - }, - "tdx": { - "english_name": "Malagasy, Tandroy-Mahafaly" - }, - "mxb": { - "english_name": "Mixtec, Tezoatlán" - }, - "xbo": { - "english_name": "Bolgarian" - }, - "wob": { - "english_name": "Wè Northern" - }, - "abz": { - "english_name": "Abui" - }, - "bfh": { - "english_name": "Blafe" - }, - "mrd": { - "english_name": "Magar, Western" - }, - "sgt": { - "english_name": "Brokpake" - }, - "wor": { - "english_name": "Woria" - }, - "orn": { - "english_name": "Orang Kanaq" - }, - "tdd": { - "english_name": "Tai Nüa" - }, - "zpk": { - "english_name": "Zapotec, Tlacolulita" - }, - "teg": { - "english_name": "Teke-Tege" - }, - "lam": { - "english_name": "Lamba" - }, - "oko": { - "english_name": "Korean, Old (3rd-9th cent.)" - }, - "itk": { - "english_name": "Judeo-Italian" - }, - "bpz": { - "english_name": "Bilba" - }, - "eu": { - "english_name": "Basque", - "name": "Euskara" - }, - "dda": { - "english_name": "Dadi Dadi" - }, - "aci": { - "english_name": "Aka-Cari" - }, - "vnm": { - "english_name": "Vinmavis" - }, - "aau": { - "english_name": "Abau" - }, - "krt": { - "english_name": "Kanuri, Tumari" - }, - "lgq": { - "english_name": "Logba" - }, - "csn": { - "english_name": "Colombian Sign Language" - }, - "btn": { - "english_name": "Ratagnon" - }, - "kiq": { - "english_name": "Kosadle" - }, - "lbr": { - "english_name": "Lohorung" - }, - "brc": { - "english_name": "Creole Dutch, Berbice" - }, - "csf": { - "english_name": "Cuba Sign Language" - }, - "sac": { - "english_name": "Meskwaki" - }, - "dhi": { - "english_name": "Dhimal" - }, - "sld": { - "english_name": "Sissala" - }, - "cir": { - "english_name": "Tiri" - }, - "wsk": { - "english_name": "Waskia" - }, - "bwz": { - "english_name": "Bwisi" - }, - "ggl": { - "english_name": "Ganglau" - }, - "jnl": { - "english_name": "Rawat" - }, - "epi": { - "english_name": "Epie" - }, - "xcc": { - "english_name": "Camunic" - }, - "xsm": { - "english_name": "Kasem" - }, - "len": { - "english_name": "Lenca" - }, - "tmc": { - "english_name": "Tumak" - }, - "xtp": { - "english_name": "Mixtec, San Miguel Piedras" - }, - "dre": { - "english_name": "Dolpo" - }, - "arc": { - "english_name": "Aramaic, Official (700-300 BCE)" - }, - "gju": { - "english_name": "Gujari" - }, - "muo": { - "english_name": "Nyong" - }, - "skm": { - "english_name": "Kutong" - }, - "xzh": { - "english_name": "Zhang-Zhung" - }, - "gas": { - "english_name": "Garasia, Adiwasi" - }, - "amt": { - "english_name": "Amto" - }, - "bbh": { - "english_name": "Bugan" - }, - "wmm": { - "english_name": "Maiwa (Indonesia)" - }, - "vmr": { - "english_name": "Marenje" - }, - "qux": { - "english_name": "Quechua, Yauyos" - }, - "chh": { - "english_name": "Chinook" - }, - "nsh": { - "english_name": "Ngoshie" - }, - "yec": { - "english_name": "Yeniche" - }, - "zgn": { - "english_name": "Zhuang, Guibian" - }, - "wni": { - "english_name": "Comorian, Ndzwani" - }, - "lir": { - "english_name": "English, Liberian" - }, - "kni": { - "english_name": "Kanufi" - }, - "tiu": { - "english_name": "Adasen" - }, - "zoq": { - "english_name": "Zoque, Tabasco" - }, - "asn": { - "english_name": "Asuriní, Xingú" - }, - "kkn": { - "english_name": "Kon Keu" - }, - "end": { - "english_name": "Ende" - }, - "xkn": { - "english_name": "Kayan, Kayan River" - }, - "tsq": { - "english_name": "Thai Sign Language" - }, - "gix": { - "english_name": "Gilima" - }, - "kyx": { - "english_name": "Rapoisi" - }, - "kez": { - "english_name": "Kukele" - }, - "dro": { - "english_name": "Melanau, Daro-Matu" - }, - "ikw": { - "english_name": "Ikwere" - }, - "mfl": { - "english_name": "Putai" - }, - "ndp": { - "english_name": "Ndo" - }, - "sow": { - "english_name": "Sowanda" - }, - "kpv": { - "english_name": "Komi-Zyrian" - }, - "yky": { - "english_name": "Yakoma" - }, - "quw": { - "english_name": "Quichua, Tena Lowland" - }, - "mfj": { - "english_name": "Mefele" - }, - "xpi": { - "english_name": "Pictish" - }, - "pbh": { - "english_name": "E'ñapa Woromaipu" - }, - "rcf": { - "english_name": "Creole French, Réunion" - }, - "tgn": { - "english_name": "Tandaganon" - }, - "gbd": { - "english_name": "Karadjeri" - }, - "goo": { - "english_name": "Gone Dau" - }, - "kxf": { - "english_name": "Karen, Manumanaw" - }, - "shb": { - "english_name": "Ninam" - }, - "cta": { - "english_name": "Chatino, Tataltepec" - }, - "pix": { - "english_name": "Piu" - }, - "cdi": { - "english_name": "Chodri" - }, - "ttu": { - "english_name": "Torau" - }, - "kvb": { - "english_name": "Kubu" - }, - "ttr": { - "english_name": "Tera" - }, - "gnd": { - "english_name": "Zulgo-Gemzek" - }, - "sec": { - "english_name": "Sechelt" - }, - "guf": { - "english_name": "Gupapuyngu" - }, - "bry": { - "english_name": "Burui" - }, - "bkk": { - "english_name": "Brokskat" - }, - "txe": { - "english_name": "Totoli" - }, - "lli": { - "english_name": "Teke-Laali" - }, - "kvr": { - "english_name": "Kerinci" - }, - "shr": { - "english_name": "Shi" - }, - "act": { - "english_name": "Achterhoeks" - }, - "dlk": { - "english_name": "Dahalik" - }, - "mzb": { - "english_name": "Tumzabt" - }, - "pay": { - "english_name": "Pech" - }, - "pek": { - "english_name": "Penchal" - }, - "yaa": { - "english_name": "Yaminahua" - }, - "srw": { - "english_name": "Serua" - }, - "guk": { - "english_name": "Gumuz" - }, - "ypn": { - "english_name": "Phowa, Ani" - }, - "rrt": { - "english_name": "Arritinngithigh" - }, - "stv": { - "english_name": "Silt'e" - }, - "obi": { - "english_name": "Obispeño" - }, - "kfm": { - "english_name": "Khunsari" - }, - "wmd": { - "english_name": "Mamaindé" - }, - "auo": { - "english_name": "Auyokawa" - }, - "puq": { - "english_name": "Puquina" - }, - "aeb": { - "english_name": "Arabic, Tunisian" - }, - "gnl": { - "english_name": "Gangulu" - }, - "ktb": { - "english_name": "Kambaata" - }, - "mdd": { - "english_name": "Mbum" - }, - "udg": { - "english_name": "Muduga" - }, - "tih": { - "english_name": "Murut, Timugon" - }, - "rmq": { - "english_name": "Caló" - }, - "gnb": { - "english_name": "Gangte" - }, - "fer": { - "english_name": "Feroge" - }, - "tw": { - "english_name": "Twi" - }, - "om": { - "english_name": "Oromo" - }, - "coo": { - "english_name": "Comox" - }, - "msh": { - "english_name": "Malagasy, Masikoro" - }, - "nmh": { - "english_name": "Naga, Monsang" - }, - "haf": { - "english_name": "Haiphong Sign Language" - }, - "xau": { - "english_name": "Kauwera" - }, - "dhn": { - "english_name": "Dhanki" - }, - "swn": { - "english_name": "Sawknah" - }, - "ten": { - "english_name": "Tama (Colombia)" - }, - "hmq": { - "english_name": "Miao, Eastern Qiandong" - }, - "pgi": { - "english_name": "Pagi" - }, - "hmk": { - "english_name": "Maek" - }, - "xkb": { - "english_name": "Nago, Northern" - }, - "txi": { - "english_name": "Ikpeng" - }, - "rod": { - "english_name": "Rogo" - }, - "mqy": { - "english_name": "Manggarai" - }, - "bch": { - "english_name": "Bariai" - }, - "dde": { - "english_name": "Doondo" - }, - "llk": { - "english_name": "Lelak" - }, - "poi": { - "english_name": "Popoluca, Highland" - }, - "wgb": { - "english_name": "Wagawaga" - }, - "gwd": { - "english_name": "Gawwada" - }, - "kw": { - "english_name": "Cornish" - }, - "btd": { - "english_name": "Batak Dairi" - }, - "eza": { - "english_name": "Ezaa" - }, - "tma": { - "english_name": "Tama (Chad)" - }, - "adq": { - "english_name": "Adangbe" - }, - "xaq": { - "english_name": "Aquitanian" - }, - "btp": { - "english_name": "Budibud" - }, - "xka": { - "english_name": "Kalkoti" - }, - "tnz": { - "english_name": "Tonga (Thailand)" - }, - "kwn": { - "english_name": "Kwangali" - }, - "msn": { - "english_name": "Vurës" - }, - "awn": { - "english_name": "Awngi" - }, - "kys": { - "english_name": "Kayan, Baram" - }, - "key": { - "english_name": "Kupia" - }, - "ned": { - "english_name": "Nde-Gbite" - }, - "inz": { - "english_name": "Ineseño" - }, - "af": { - "english_name": "Afrikaans", - "name": "Afrikaans" - }, - "apu": { - "english_name": "Apurinã" - }, - "xes": { - "english_name": "Kesawai" - }, - "ayp": { - "english_name": "Arabic, North Mesopotamian" - }, - "bls": { - "english_name": "Balaesang" - }, - "dry": { - "english_name": "Darai" - }, - "pnc": { - "english_name": "Pannei" - }, - "bsq": { - "english_name": "Bassa" - }, - "xlb": { - "english_name": "Loup B" - }, - "hai": { - "english_name": "Haida" - }, - "ems": { - "english_name": "Yupik, Pacific Gulf" - }, - "vsi": { - "english_name": "Moldova Sign Language" - }, - "ino": { - "english_name": "Inoke-Yate" - }, - "ibm": { - "english_name": "Agoi" - }, - "bjs": { - "english_name": "Bajan" - }, - "atd": { - "english_name": "Manobo, Ata" - }, - "dso": { - "english_name": "Desiya" - }, - "blw": { - "english_name": "Balangao" - }, - "bdd": { - "english_name": "Bunama" - }, - "ahp": { - "english_name": "Aizi, Aproumu" - }, - "sys": { - "english_name": "Sinyar" - }, - "kge": { - "english_name": "Komering" - }, - "ise": { - "english_name": "Italian Sign Language" - }, - "cse": { - "english_name": "Czech Sign Language" - }, - "ru": { - "english_name": "Russian", - "name": "русский" - }, - "ady": { - "english_name": "Adyghe" - }, - "liu": { - "english_name": "Logorik" - }, - "aiq": { - "english_name": "Aimaq" - }, - "eo": { - "english_name": "Esperanto", - "name": "Esperanto" - }, - "tsr": { - "english_name": "Akei" - }, - "sxk": { - "english_name": "Kalapuya, Southern" - }, - "bma": { - "english_name": "Lame" - }, - "kuj": { - "english_name": "Kuria" - }, - "yuc": { - "english_name": "Yuchi" - }, - "jia": { - "english_name": "Jina" - }, - "tcf": { - "english_name": "Me'phaa, Malinaltepec" - }, - "nuf": { - "english_name": "Nusu" - }, - "bay": { - "english_name": "Batuley" - }, - "bkf": { - "english_name": "Beeke" - }, - "mfo": { - "english_name": "Mbe" - }, - "ndk": { - "english_name": "Ndaka" - }, - "rpt": { - "english_name": "Rapting" - }, - "kag": { - "english_name": "Kajaman" - }, - "phq": { - "english_name": "Phana'" - }, - "yom": { - "english_name": "Yombe" - }, - "cni": { - "english_name": "Asháninka" - }, - "yuq": { - "english_name": "Yuqui" - }, - "cag": { - "english_name": "Nivaclé" - }, - "kbg": { - "english_name": "Khamba" - }, - "alq": { - "english_name": "Algonquin" - }, - "ruy": { - "english_name": "Mala (Nigeria)" - }, - "tuv": { - "english_name": "Turkana" - }, - "gmu": { - "english_name": "Gumalu" - }, - "lwm": { - "english_name": "Laomian" - }, - "mh": { - "english_name": "Marshallese" - }, - "myf": { - "english_name": "Bambassi" - }, - "swt": { - "english_name": "Sawila" - }, - "tzx": { - "english_name": "Tabriak" - }, - "gul": { - "english_name": "Creole English, Sea Island" - }, - "mtr": { - "english_name": "Mewari" - }, - "bmu": { - "english_name": "Somba-Siawari" - }, - "ebk": { - "english_name": "Bontok, Eastern" - }, - "esq": { - "english_name": "Esselen" - }, - "tet": { - "english_name": "Tetum" - }, - "mog": { - "english_name": "Mongondow" - }, - "nck": { - "english_name": "Nakara" - }, - "tyx": { - "english_name": "Teke-Tyee" - }, - "ute": { - "english_name": "Ute-Southern Paiute" - }, - "ndz": { - "english_name": "Ndogo" - }, - "gob": { - "english_name": "Playero" - }, - "bky": { - "english_name": "Bokyi" - }, - "bid": { - "english_name": "Bidiyo" - }, - "beb": { - "english_name": "Bebele" - }, - "okh": { - "english_name": "Koresh-e Rostam" - }, - "kea": { - "english_name": "Kabuverdianu" - }, - "crn": { - "english_name": "Cora, El Nayar" - }, - "ntp": { - "english_name": "Tepehuan, Northern" - }, - "kxi": { - "english_name": "Murut, Keningau" - }, - "avl": { - "english_name": "Arabic, Eastern Egyptian Bedawi" - }, - "xpp": { - "english_name": "Puyo-Paekche" - }, - "vkm": { - "english_name": "Kamakan" - }, - "hoh": { - "english_name": "Hobyót" - }, - "bgr": { - "english_name": "Chin, Bawm" - }, - "tuc": { - "english_name": "Mutu" - }, - "ulf": { - "english_name": "Usku" - }, - "mgw": { - "english_name": "Matumbi" - }, - "kbe": { - "english_name": "Kanju" - }, - "nrn": { - "english_name": "Norn" - }, - "gbk": { - "english_name": "Gaddi" - }, - "ie": { - "english_name": "Interlingue" - }, - "ium": { - "english_name": "Mien, Iu" - }, - "kde": { - "english_name": "Makonde" - }, - "pcm": { - "english_name": "Pidgin, Nigerian" - }, - "bdm": { - "english_name": "Buduma" - }, - "mqa": { - "english_name": "Maba (Indonesia)" - }, - "unu": { - "english_name": "Unubahe" - }, - "rna": { - "english_name": "Runa" - }, - "rmx": { - "english_name": "Romam" - }, - "srg": { - "english_name": "Sulod" - }, - "mui": { - "english_name": "Musi" - }, - "tef": { - "english_name": "Teressa" - }, - "mhm": { - "english_name": "Makhuwa-Moniga" - }, - "bnn": { - "english_name": "Bunun" - }, - "ppl": { - "english_name": "Pipil" - }, - "llp": { - "english_name": "Efate, North" - }, - "crl": { - "english_name": "Cree, Northern East" - }, - "awb": { - "english_name": "Awa (Papua New Guinea)" - }, - "lek": { - "english_name": "Leipon" - }, - "klh": { - "english_name": "Weliki" - }, - "nuc": { - "english_name": "Nukuini" - }, - "tpe": { - "english_name": "Tippera" - }, - "dyn": { - "english_name": "Dyangadi" - }, - "mxc": { - "english_name": "Manyika" - }, - "mjt": { - "english_name": "Sauria Paharia" - }, - "sbt": { - "english_name": "Kimki" - }, - "tal": { - "english_name": "Tal" - }, - "gva": { - "english_name": "Guana (Paraguay)" - }, - "sue": { - "english_name": "Suena" - }, - "aod": { - "english_name": "Andarum" - }, - "waw": { - "english_name": "Waiwai" - }, - "chm": { - "english_name": "Mari (Russia)" - }, - "jmw": { - "english_name": "Mouwase" - }, - "jvd": { - "english_name": "Javindo" - }, - "uby": { - "english_name": "Ubykh" - }, - "afg": { - "english_name": "Afghan Sign Language" - }, - "lbc": { - "english_name": "Lakkia" - }, - "bxw": { - "english_name": "Bankagooma" - }, - "ayg": { - "english_name": "Ginyanga" - }, - "syw": { - "english_name": "Kagate" - }, - "ho": { - "english_name": "Hiri Motu" - }, - "yhd": { - "english_name": "Arabic, Judeo-Iraqi" - }, - "ylo": { - "english_name": "Yi, Naluo" - }, - "weg": { - "english_name": "Wergaia" - }, - "bts": { - "english_name": "Batak Simalungun" - }, - "fil": { - "english_name": "Filipino" - }, - "jmd": { - "english_name": "Yamdena" - }, - "svb": { - "english_name": "Ulau-Suain" - }, - "laf": { - "english_name": "Lafofa" - }, - "tgu": { - "english_name": "Tanggu" - }, - "hab": { - "english_name": "Hanoi Sign Language" - }, - "tye": { - "english_name": "Kyanga" - }, - "bud": { - "english_name": "Ntcham" - }, - "enr": { - "english_name": "Emumu" - }, - "bss": { - "english_name": "Akoose" - }, - "gv": { - "english_name": "Manx" - }, - "kxa": { - "english_name": "Kairiru" - }, - "wyb": { - "english_name": "Wangaaybuwan-Ngiyambaa" - }, - "oht": { - "english_name": "Hittite, Old" - }, - "nhw": { - "english_name": "Nahuatl, Western Huasteca" - }, - "kck": { - "english_name": "Kalanga" - }, - "mnz": { - "english_name": "Moni" - }, - "djb": { - "english_name": "Djinba" - }, - "pyu": { - "english_name": "Puyuma" - }, - "trp": { - "english_name": "Kok Borok" - }, - "mem": { - "english_name": "Mangala" - }, - "kqz": { - "english_name": "Korana" - }, - "han": { - "english_name": "Hangaza" - }, - "wil": { - "english_name": "Wilawila" - }, - "sou": { - "english_name": "Thai, Southern" - }, - "kot": { - "english_name": "Lagwan" - }, - "mmx": { - "english_name": "Madak" - }, - "huo": { - "english_name": "Hu" - }, - "kkz": { - "english_name": "Kaska" - }, - "isk": { - "english_name": "Ishkashimi" - }, - "rm": { - "english_name": "Romansh" - }, - "lbk": { - "english_name": "Bontok, Central" - }, - "ruc": { - "english_name": "Ruuli" - }, - "grt": { - "english_name": "Garo" - }, - "knl": { - "english_name": "Keninjal" - }, - "zkh": { - "english_name": "Khorezmian" - }, - "kxv": { - "english_name": "Kuvi" - }, - "yyu": { - "english_name": "Yau (Sandaun Province)" - }, - "ysy": { - "english_name": "Sanie" - }, - "nul": { - "english_name": "Nusa Laut" - }, - "wwa": { - "english_name": "Waama" - }, - "ppa": { - "english_name": "Pao" - }, - "xoo": { - "english_name": "Xukurú" - }, - "gbh": { - "english_name": "Gbe, Defi" - }, - "kty": { - "english_name": "Kango (Bas-Uélé District)" - }, - "com": { - "english_name": "Comanche" - }, - "ksj": { - "english_name": "Uare" - }, - "pyx": { - "english_name": "Pyu (Myanmar)" - }, - "csc": { - "english_name": "Catalan Sign Language" - }, - "kdg": { - "english_name": "Seba" - }, - "bgf": { - "english_name": "Bangandu" - }, - "tda": { - "english_name": "Tagdal" - }, - "kmf": { - "english_name": "Kare (Papua New Guinea)" - }, - "brw": { - "english_name": "Bellari" - }, - "gap": { - "english_name": "Gal" - }, - "kqy": { - "english_name": "Koorete" - }, - "evh": { - "english_name": "Uvbie" - }, - "tuf": { - "english_name": "Tunebo, Central" - }, - "sdo": { - "english_name": "Bidayuh, Bukar-Sadung" - }, - "zor": { - "english_name": "Zoque, Rayón" - }, - "zdj": { - "english_name": "Comorian, Ngazidja" - }, - "ahm": { - "english_name": "Aizi, Mobumrin" - }, - "got": { - "english_name": "Gothic" - }, - "bly": { - "english_name": "Notre" - }, - "cso": { - "english_name": "Chinantec, Sochiapam" - }, - "mfe": { - "english_name": "Morisyen" - }, - "yty": { - "english_name": "Yatay" - }, - "wla": { - "english_name": "Walio" - }, - "pum": { - "english_name": "Puma" - }, - "dbr": { - "english_name": "Dabarre" - }, - "frc": { - "english_name": "French, Cajun" - }, - "nzs": { - "english_name": "New Zealand Sign Language" - }, - "boy": { - "english_name": "Bodo (Central African Republic)" - }, - "dgz": { - "english_name": "Daga" - }, - "did": { - "english_name": "Didinga" - }, - "vun": { - "english_name": "Vunjo" - }, - "tfi": { - "english_name": "Gbe, Tofin" - }, - "pnv": { - "english_name": "Pinigura" - }, - "pud": { - "english_name": "Punan Aput" - }, - "zms": { - "english_name": "Mbesa" - }, - "dhg": { - "english_name": "Djangu" - }, - "aaw": { - "english_name": "Solong" - }, - "pbn": { - "english_name": "Kpasam" - }, - "ato": { - "english_name": "Atong" - }, - "par": { - "english_name": "Panamint" - }, - "awm": { - "english_name": "Arawum" - }, - "loq": { - "english_name": "Lobala" - }, - "nni": { - "english_name": "Nuaulu, North" - }, - "vmu": { - "english_name": "Muluridyi" - }, - "wnp": { - "english_name": "Wanap" - }, - "moz": { - "english_name": "Mukulu" - }, - "ptv": { - "english_name": "Port Vato" - }, - "asv": { - "english_name": "Asoa" - }, - "sja": { - "english_name": "Epena" - }, - "itz": { - "english_name": "Itzá" - }, - "xsp": { - "english_name": "Silopi" - }, - "suw": { - "english_name": "Sumbwa" - }, - "lkh": { - "english_name": "Lakha" - }, - "rge": { - "english_name": "Romano-Greek" - }, - "hu": { - "english_name": "Hungarian", - "name": "magyar" - }, - "muc": { - "english_name": "Ajumbu" - }, - "tl": { - "english_name": "Tagalog" - }, - "kqa": { - "english_name": "Mum" - }, - "dbm": { - "english_name": "Duguri" - }, - "gnh": { - "english_name": "Lere" - }, - "ccr": { - "english_name": "Cacaopera" - }, - "ehu": { - "english_name": "Ehueun" - }, - "lgm": { - "english_name": "Lega-Mwenga" - }, - "fa": { - "english_name": "Persian", - "name": "فارسی" - }, - "mdw": { - "english_name": "Mbosi" - }, - "frp": { - "english_name": "Arpitan" - }, - "kvu": { - "english_name": "Karen, Yinbaw" - }, - "ria": { - "english_name": "Riang (India)" - }, - "aag": { - "english_name": "Ambrak" - }, - "stk": { - "english_name": "Arammba" - }, - "pdn": { - "english_name": "Podena" - }, - "khp": { - "english_name": "Kapori" - }, - "byp": { - "english_name": "Bumaji" - }, - "lol": { - "english_name": "Mongo" - }, - "jge": { - "english_name": "Judeo-Georgian" - }, - "mlm": { - "english_name": "Mulam" - }, - "smv": { - "english_name": "Samvedi" - }, - "akw": { - "english_name": "Akwa" - }, - "gup": { - "english_name": "Gunwinggu" - }, - "lbb": { - "english_name": "Label" - }, - "jmb": { - "english_name": "Zumbun" - }, - "cng": { - "english_name": "Qiang, Northern" - }, - "kcg": { - "english_name": "Tyap" - }, - "ddn": { - "english_name": "Dendi (Benin)" - }, - "ztu": { - "english_name": "Zapotec, Güilá" - }, - "bmz": { - "english_name": "Baramu" - }, - "aui": { - "english_name": "Anuki" - }, - "tac": { - "english_name": "Tarahumara, Lowland" - }, - "ggw": { - "english_name": "Gogodala" - }, - "mmn": { - "english_name": "Mamanwa" - }, - "mos": { - "english_name": "Mossi" - }, - "tza": { - "english_name": "Tanzanian Sign Language" - }, - "mzx": { - "english_name": "Mawayana" - }, - "bfc": { - "english_name": "Bai, Northern" - }, - "ndd": { - "english_name": "Nde-Nsele-Nta" - }, - "mvs": { - "english_name": "Massep" - }, - "cbu": { - "english_name": "Candoshi-Shapra" - }, - "gym": { - "english_name": "Ngäbere" - }, - "wle": { - "english_name": "Wolane" - }, - "aoi": { - "english_name": "Anindilyakwa" - }, - "xln": { - "english_name": "Alanic" - }, - "saw": { - "english_name": "Sawi" - }, - "mvy": { - "english_name": "Kohistani, Indus" - }, - "yok": { - "english_name": "Yokuts" - }, - "tyv": { - "english_name": "Tuvinian" - }, - "ogg": { - "english_name": "Ogbogolo" - }, - "bps": { - "english_name": "Blaan, Sarangani" - }, - "lsp": { - "english_name": "Panamanian Sign Language" - }, - "ibe": { - "english_name": "Akpes" - }, - "xsb": { - "english_name": "Sambal" - }, - "qvi": { - "english_name": "Quichua, Imbabura Highland" - }, - "huu": { - "english_name": "Huitoto, Murui" - }, - "ati": { - "english_name": "Attié" - }, - "gli": { - "english_name": "Guliguli" - }, - "bcd": { - "english_name": "Babar, North" - }, - "ysc": { - "english_name": "Yassic" - }, - "omk": { - "english_name": "Omok" - }, - "xgr": { - "english_name": "Garza" - }, - "drq": { - "english_name": "Dura" - }, - "alr": { - "english_name": "Alutor" - }, - "nhn": { - "english_name": "Nahuatl, Central" - }, - "rjg": { - "english_name": "Rajong" - }, - "lha": { - "english_name": "Laha (Viet Nam)" - }, - "pcc": { - "english_name": "Bouyei" - }, - "mwn": { - "english_name": "Nyamwanga" - }, - "xti": { - "english_name": "Mixtec, Sinicahua" - }, - "xnz": { - "english_name": "Kenzi" - }, - "xba": { - "english_name": "Kamba (Brazil)" - }, - "tdi": { - "english_name": "Tomadino" - }, - "apz": { - "english_name": "Safeyoka" - }, - "tmi": { - "english_name": "Tutuba" - }, - "amr": { - "english_name": "Amarakaeri" - }, - "fun": { - "english_name": "Fulniô" - }, - "fwe": { - "english_name": "Fwe" - }, - "ole": { - "english_name": "Olekha" - }, - "kpg": { - "english_name": "Kapingamarangi" - }, - "brz": { - "english_name": "Bilbil" - }, - "prt": { - "english_name": "Phai" - }, - "bcn": { - "english_name": "Bali (Nigeria)" - }, - "sis": { - "english_name": "Siuslaw" - }, - "bfw": { - "english_name": "Bondo" - }, - "lej": { - "english_name": "Lengola" - }, - "mhe": { - "english_name": "Besisi" - }, - "lwt": { - "english_name": "Lewotobi" - }, - "sih": { - "english_name": "Zire" - }, - "bew": { - "english_name": "Betawi" - }, - "tjs": { - "english_name": "Tujia, Southern" - }, - "gzi": { - "english_name": "Gazi" - }, - "mxd": { - "english_name": "Modang" - }, - "diy": { - "english_name": "Diuwe" - }, - "xmr": { - "english_name": "Meroitic" - }, - "cvg": { - "english_name": "Chug" - }, - "bwi": { - "english_name": "Baniwa" - }, - "hml": { - "english_name": "Hmong, Luopohe" - }, - "bcy": { - "english_name": "Bacama" - }, - "wxa": { - "english_name": "Waxianghua" - }, - "kvy": { - "english_name": "Karen, Yintale" - }, - "nap": { - "english_name": "Neapolitan" - }, - "thw": { - "english_name": "Thudam" - }, - "crz": { - "english_name": "Cruzeño" - }, - "xsa": { - "english_name": "Sabaean" - }, - "xrn": { - "english_name": "Arin" - }, - "int": { - "english_name": "Intha" - }, - "anr": { - "english_name": "Andh" - }, - "anl": { - "english_name": "Chin, Anu-Hkongso" - }, - "bbn": { - "english_name": "Uneapa" - }, - "zah": { - "english_name": "Zangwal" - }, - "pod": { - "english_name": "Ponares" - }, - "cub": { - "english_name": "Cubeo" - }, - "xtr": { - "english_name": "Tripuri, Early" - }, - "gdm": { - "english_name": "Laal" - }, - "gid": { - "english_name": "Gidar" - }, - "syy": { - "english_name": "Al-Sayyid Bedouin Sign Language" - }, - "msf": { - "english_name": "Mekwei" - }, - "yas": { - "english_name": "Nugunu (Cameroon)" - }, - "nsn": { - "english_name": "Nehan" - }, - "bkx": { - "english_name": "Baikeno" - }, - "gop": { - "english_name": "Yeretuar" - }, - "hor": { - "english_name": "Horo" - }, - "xks": { - "english_name": "Kumbewaha" - }, - "urb": { - "english_name": "Urubú-Kaapor" - }, - "ata": { - "english_name": "Pele-Ata" - }, - "zmq": { - "english_name": "Mituku" - }, - "cab": { - "english_name": "Garifuna" - }, - "lhm": { - "english_name": "Lhomi" - }, - "mxv": { - "english_name": "Mixtec, Metlatónoc" - }, - "klt": { - "english_name": "Nukna" - }, - "byx": { - "english_name": "Qaqet" - }, - "yig": { - "english_name": "Nasu, Wusa" - }, - "kzc": { - "english_name": "Kulango, Bondoukou" - }, - "bbu": { - "english_name": "Kulung (Nigeria)" - }, - "xlp": { - "english_name": "Lepontic" - }, - "ire": { - "english_name": "Iresim" - }, - "jya": { - "english_name": "Jiarong" - }, - "niw": { - "english_name": "Nimo" - }, - "loh": { - "english_name": "Narim" - }, - "jkm": { - "english_name": "Karen, Mobwa" - }, - "wra": { - "english_name": "Warapu" - }, - "zmg": { - "english_name": "Marti Ke" - }, - "asu": { - "english_name": "Asurini, Tocantins" - }, - "bpi": { - "english_name": "Bagupi" - }, - "wli": { - "english_name": "Waioli" - }, - "zgh": { - "english_name": "Tamazight, Standard Moroccan" - }, - "keb": { - "english_name": "Kélé" - }, - "rgs": { - "english_name": "Roglai, Southern" - }, - "prg": { - "english_name": "Prussian" - }, - "yuz": { - "english_name": "Yuracare" - }, - "dmy": { - "english_name": "Demta" - }, - "sgr": { - "english_name": "Sangisari" - }, - "gic": { - "english_name": "Gail" - }, - "org": { - "english_name": "Oring" - }, - "mve": { - "english_name": "Marwari (Pakistan)" - }, - "amx": { - "english_name": "Anmatyerre" - }, - "kit": { - "english_name": "Agob" - }, - "za": { - "english_name": "Zhuang" - }, - "ndx": { - "english_name": "Nduga" - }, - "tlo": { - "english_name": "Talodi" - }, - "lnh": { - "english_name": "Lanoh" - }, - "mow": { - "english_name": "Moi (Congo)" - }, - "mi": { - "english_name": "Maori", - "name": "Reo Māori" - }, - "hlt": { - "english_name": "Chin, Matu" - }, - "kst": { - "english_name": "Winyé" - }, - "ani": { - "english_name": "Andi" - }, - "khg": { - "english_name": "Tibetan, Khams" - }, - "noz": { - "english_name": "Nayi" - }, - "hvc": { - "english_name": "Haitian Vodoun Culture Language" - }, - "wgu": { - "english_name": "Wirangu" - }, - "usu": { - "english_name": "Uya" - }, - "sma": { - "english_name": "Sami, Southern" - }, - "cjp": { - "english_name": "Cabécar" - }, - "tpn": { - "english_name": "Tupinambá" - }, - "nsd": { - "english_name": "Nisu, Southern" - }, - "kmb": { - "english_name": "Kimbundu" - }, - "bru": { - "english_name": "Bru, Eastern" - }, - "bsj": { - "english_name": "Bangwinji" - }, - "bdg": { - "english_name": "Bonggi" - }, - "mnf": { - "english_name": "Mundani" - }, - "bjj": { - "english_name": "Kanauji" - }, - "nto": { - "english_name": "Ntomba" - }, - "hni": { - "english_name": "Hani" - }, - "xbi": { - "english_name": "Kombio" - }, - "yei": { - "english_name": "Yeni" - }, - "rai": { - "english_name": "Ramoaaina" - }, - "skq": { - "english_name": "Sininkere" - }, - "enm": { - "english_name": "English, Middle (1100-1500)" - }, - "fse": { - "english_name": "Finnish Sign Language" - }, - "dlm": { - "english_name": "Dalmatian" - }, - "meb": { - "english_name": "Ikobi" - }, - "dae": { - "english_name": "Duupa" - }, - "aol": { - "english_name": "Alor" - }, - "eiv": { - "english_name": "Askopan" - }, - "knd": { - "english_name": "Konda" - }, - "avb": { - "english_name": "Avau" - }, - "jyy": { - "english_name": "Jaya" - }, - "gbq": { - "english_name": "Gbaya-Bozoum" - }, - "are": { - "english_name": "Arrarnta, Western" - }, - "uka": { - "english_name": "Kaburi" - }, - "lnw": { - "english_name": "Lanima" - }, - "xhr": { - "english_name": "Hernican" - }, - "wsr": { - "english_name": "Owenia" - }, - "aee": { - "english_name": "Pashayi, Northeast" - }, - "nqg": { - "english_name": "Nago, Southern" - }, - "cbi": { - "english_name": "Chachi" - }, - "bhi": { - "english_name": "Bhilali" - }, - "xuo": { - "english_name": "Kuo" - }, - "zpc": { - "english_name": "Zapotec, Choapan" - }, - "nwx": { - "english_name": "Newar, Middle" - }, - "psw": { - "english_name": "Port Sandwich" - }, - "bqb": { - "english_name": "Bagusa" - }, - "bgz": { - "english_name": "Banggai" - }, - "nla": { - "english_name": "Ngombale" - }, - "jah": { - "english_name": "Jah Hut" - }, - "jbj": { - "english_name": "Arandai" - }, - "cgk": { - "english_name": "Chocangacakha" - }, - "xtc": { - "english_name": "Katcha-Kadugli-Miri" - }, - "nmq": { - "english_name": "Nambya" - }, - "xmj": { - "english_name": "Majera" - }, - "vah": { - "english_name": "Varhadi-Nagpuri" - }, - "dtp": { - "english_name": "Dusun, Central" - }, - "fkv": { - "english_name": "Finnish, Kven" - }, - "yim": { - "english_name": "Naga, Yimchungru" - }, - "rup": { - "english_name": "Romanian, Macedo-" - }, - "mry": { - "english_name": "Mandaya" - }, - "bhs": { - "english_name": "Buwal" - }, - "neg": { - "english_name": "Negidal" - }, - "kmz": { - "english_name": "Khorasani Turkish" - }, - "gaz": { - "english_name": "Oromo, West Central" - }, - "gue": { - "english_name": "Gurinji" - }, - "nnz": { - "english_name": "Nda'nda'" - }, - "ngb": { - "english_name": "Ngbandi, Northern" - }, - "bxr": { - "english_name": "Buriat, Russia" - }, - "mrh": { - "english_name": "Chin, Mara" - }, - "akx": { - "english_name": "Aka-Kede" - }, - "wo": { - "english_name": "Wolof" - }, - "nov": { - "english_name": "Novial" - }, - "uya": { - "english_name": "Doko-Uyanga" - }, - "fqs": { - "english_name": "Fas" - }, - "ngl": { - "english_name": "Lomwe" - }, - "bac": { - "english_name": "Badui" - }, - "lay": { - "english_name": "Lama (Myanmar)" - }, - "tnp": { - "english_name": "Whitesands" - }, - "bxm": { - "english_name": "Buriat, Mongolia" - }, - "nnv": { - "english_name": "Nugunu (Australia)" - }, - "xsu": { - "english_name": "Sanumá" - }, - "rin": { - "english_name": "Nungu" - }, - "cma": { - "english_name": "Maa" - }, - "xsy": { - "english_name": "Saisiyat" - }, - "dby": { - "english_name": "Dibiyaso" - }, - "snm": { - "english_name": "Ma'di, Southern" - }, - "knv": { - "english_name": "Tabo" - }, - "mvp": { - "english_name": "Duri" - }, - "kwd": { - "english_name": "Kwaio" - }, - "mqg": { - "english_name": "Malay, Kota Bangun Kutai" - }, - "elo": { - "english_name": "El Molo" - }, - "ukw": { - "english_name": "Ukwuani-Aboh-Ndoni" - }, - "tud": { - "english_name": "Tuxá" - }, - "kbh": { - "english_name": "Camsá" - }, - "xlc": { - "english_name": "Lycian" - }, - "bpx": { - "english_name": "Bareli, Palya" - }, - "hav": { - "english_name": "Havu" - }, - "nng": { - "english_name": "Naga, Maring" - }, - "cth": { - "english_name": "Chin, Thaiphum" - }, - "tlx": { - "english_name": "Khehek" - }, - "efa": { - "english_name": "Efai" - }, - "ael": { - "english_name": "Ambele" - }, - "byk": { - "english_name": "Biao" - }, - "lrz": { - "english_name": "Lemerig" - }, - "bko": { - "english_name": "Kwa'" - }, - "isc": { - "english_name": "Isconahua" - }, - "pkb": { - "english_name": "Pokomo" - }, - "mcy": { - "english_name": "Watut, South" - }, - "lov": { - "english_name": "Lopi" - }, - "loc": { - "english_name": "Inonhan" - }, - "xlo": { - "english_name": "Loup A" - }, - "stw": { - "english_name": "Satawalese" - }, - "lww": { - "english_name": "Lewo" - }, - "sny": { - "english_name": "Saniyo-Hiyewe" - }, - "ypm": { - "english_name": "Phuma" - }, - "ait": { - "english_name": "Arikem" - }, - "lgz": { - "english_name": "Ligenza" - }, - "dun": { - "english_name": "Dusun Deyah" - }, - "kvi": { - "english_name": "Kwang" - }, - "wtw": { - "english_name": "Wotu" - }, - "tzm": { - "english_name": "Tamazight, Central Atlas" - }, - "nab": { - "english_name": "Nambikuára, Southern" - }, - "brr": { - "english_name": "Birao" - }, - "xdk": { - "english_name": "Dharuk" - }, - "uz": { - "english_name": "Uzbek" - }, - "hvk": { - "english_name": "Haveke" - }, - "bwg": { - "english_name": "Barwe" - }, - "svc": { - "english_name": "Creole English, Vincentian" - }, - "amf": { - "english_name": "Hamer-Banna" - }, - "adz": { - "english_name": "Adzera" - }, - "ilv": { - "english_name": "Ilue" - }, - "ybl": { - "english_name": "Yukuben" - }, - "tae": { - "english_name": "Tariana" - }, - "qwm": { - "english_name": "Kuman (Russia)" - }, - "oro": { - "english_name": "Orokolo" - }, - "pnj": { - "english_name": "Pinjarup" - }, - "udi": { - "english_name": "Udi" - }, - "kwj": { - "english_name": "Kwanga" - }, - "keq": { - "english_name": "Kamar" - }, - "ltn": { - "english_name": "Latundê" - }, - "ppo": { - "english_name": "Folopa" - }, - "blg": { - "english_name": "Balau" - }, - "xtt": { - "english_name": "Mixtec, Tacahua" - }, - "aww": { - "english_name": "Awun" - }, - "wub": { - "english_name": "Wunambal" - }, - "dwr": { - "english_name": "Dawro" - }, - "xhu": { - "english_name": "Hurrian" - }, - "pca": { - "english_name": "Popoloca, Santa Inés Ahuatempan" - }, - "sos": { - "english_name": "Seeku" - }, - "mfz": { - "english_name": "Mabaan" - }, - "jel": { - "english_name": "Yelmek" - }, - "bns": { - "english_name": "Bundeli" - }, - "nqk": { - "english_name": "Ede Nago, Kura" - }, - "mik": { - "english_name": "Mikasuki" - }, - "peg": { - "english_name": "Pengo" - }, - "sbj": { - "english_name": "Surbakhal" - }, - "cpx": { - "english_name": "Chinese, Pu-Xian" - }, - "tem": { - "english_name": "Timne" - }, - "mxm": { - "english_name": "Meramera" - }, - "yaj": { - "english_name": "Banda-Yangere" - }, - "ltc": { - "english_name": "Chinese, Late Middle" - }, - "zro": { - "english_name": "Záparo" - }, - "duk": { - "english_name": "Uyajitaya" - }, - "tuo": { - "english_name": "Tucano" - }, - "itv": { - "english_name": "Itawit" - }, - "nkn": { - "english_name": "Nkangala" - }, - "kdu": { - "english_name": "Kadaru" - }, - "xwl": { - "english_name": "Gbe, Western Xwla" - }, - "jak": { - "english_name": "Jakun" - }, - "ik": { - "english_name": "Inupiaq" - }, - "tln": { - "english_name": "Talondo'" - }, - "asb": { - "english_name": "Assiniboine" - }, - "gml": { - "english_name": "German, Middle Low" - }, - "gjk": { - "english_name": "Koli, Kachi" - }, - "pls": { - "english_name": "Popoloca, San Marcos Tlalcoyalco" - }, - "mkw": { - "english_name": "Kituba (Congo)" - }, - "csz": { - "english_name": "Coos" - }, - "won": { - "english_name": "Wongo" - }, - "iou": { - "english_name": "Tuma-Irumu" - }, - "rml": { - "english_name": "Romani, Baltic" - }, - "idu": { - "english_name": "Idoma" - }, - "ons": { - "english_name": "Ono" - }, - "mhr": { - "english_name": "Mari, Eastern" - }, - "psh": { - "english_name": "Pashayi, Southwest" - }, - "kch": { - "english_name": "Vono" - }, - "tyu": { - "english_name": "Kua" - }, - "pir": { - "english_name": "Piratapuyo" - }, - "xao": { - "english_name": "Khao" - }, - "dio": { - "english_name": "Dibo" - }, - "bhx": { - "english_name": "Bhalay" - }, - "lag": { - "english_name": "Langi" - }, - "rmo": { - "english_name": "Romani, Sinte" - }, - "noh": { - "english_name": "Nomu" - }, - "rop": { - "english_name": "Kriol" - }, - "cou": { - "english_name": "Wamey" - }, - "kra": { - "english_name": "Kumhali" - }, - "gmy": { - "english_name": "Greek, Mycenaean" - }, - "lch": { - "english_name": "Luchazi" - }, - "big": { - "english_name": "Biangai" - }, - "kzu": { - "english_name": "Kayupulau" - }, - "wly": { - "english_name": "Waling" - }, - "bmn": { - "english_name": "Bina (Papua New Guinea)" - }, - "sbx": { - "english_name": "Seberuang" - }, - "hr": { - "english_name": "Croatian", - "name": "hrvatski" - }, - "szn": { - "english_name": "Sula" - }, - "lid": { - "english_name": "Nyindrou" - }, - "oks": { - "english_name": "Oko-Eni-Osayen" - }, - "pim": { - "english_name": "Powhatan" - }, - "kwb": { - "english_name": "Kwa" - }, - "mtk": { - "english_name": "Mbe'" - }, - "bqw": { - "english_name": "Buru (Nigeria)" - }, - "heg": { - "english_name": "Helong" - }, - "azd": { - "english_name": "Nahuatl, Eastern Durango" - }, - "tei": { - "english_name": "Torricelli" - }, - "bxj": { - "english_name": "Bayungu" - }, - "xch": { - "english_name": "Chemakum" - }, - "xmn": { - "english_name": "Persian, Manichaean Middle" - }, - "xra": { - "english_name": "Krahô" - }, - "eyo": { - "english_name": "Keiyo" - }, - "gta": { - "english_name": "Guató" - }, - "oku": { - "english_name": "Oku" - }, - "rme": { - "english_name": "Angloromani" - }, - "mwh": { - "english_name": "Mouk-Aria" - }, - "qxl": { - "english_name": "Quichua, Salasaca Highland" - }, - "qus": { - "english_name": "Quichua, Santiago del Estero" - }, - "doo": { - "english_name": "Dongo" - }, - "ler": { - "english_name": "Lenkau" - }, - "fsl": { - "english_name": "French Sign Language" - }, - "lld": { - "english_name": "Ladin" - }, - "sci": { - "english_name": "Creole Malay, Sri Lankan" - }, - "aeq": { - "english_name": "Aer" - }, - "kus": { - "english_name": "Kusaal" - }, - "bki": { - "english_name": "Baki" - }, - "tpy": { - "english_name": "Trumai" - }, - "neo": { - "english_name": "Ná-Meo" - }, - "aaq": { - "english_name": "Abnaki, Eastern" - }, - "bvx": { - "english_name": "Dibole" - }, - "jma": { - "english_name": "Dima" - }, - "ncx": { - "english_name": "Nahuatl, Central Puebla" - }, - "ruk": { - "english_name": "Che" - }, - "nce": { - "english_name": "Yale" - }, - "xmx": { - "english_name": "Maden" - }, - "zna": { - "english_name": "Zan Gula" - }, - "mbv": { - "english_name": "Mbulungish" - }, - "apd": { - "english_name": "Arabic, Sudanese" - }, - "ung": { - "english_name": "Ngarinyin" - }, - "zpg": { - "english_name": "Zapotec, Guevea De Humboldt" - }, - "kuw": { - "english_name": "Kpagua" - }, - "ask": { - "english_name": "Ashkun" - }, - "wow": { - "english_name": "Wawonii" - }, - "lmw": { - "english_name": "Miwok, Lake" - }, - "xvo": { - "english_name": "Volscian" - }, - "njl": { - "english_name": "Njalgulgule" - }, - "nct": { - "english_name": "Naga, Chothe" - }, - "ure": { - "english_name": "Uru" - }, - "typ": { - "english_name": "Thaypan" - }, - "lre": { - "english_name": "Laurentian" - }, - "xtn": { - "english_name": "Mixtec, Northern Tlaxiaco" - }, - "puf": { - "english_name": "Punan Merah" - }, - "upi": { - "english_name": "Umeda" - }, - "igb": { - "english_name": "Ebira" - }, - "alc": { - "english_name": "Qawasqar" - }, - "nym": { - "english_name": "Nyamwezi" - }, - "khn": { - "english_name": "Khandesi" - }, - "jsl": { - "english_name": "Japanese Sign Language" - }, - "zlq": { - "english_name": "Zhuang, Liuqian" - }, - "bzh": { - "english_name": "Buang, Mapos" - }, - "xop": { - "english_name": "Kopar" - }, - "xkq": { - "english_name": "Koroni" - }, - "apn": { - "english_name": "Apinayé" - }, - "fmu": { - "english_name": "Muria, Far Western" - }, - "gke": { - "english_name": "Ndai" - }, - "gdr": { - "english_name": "Wipi" - }, - "swl": { - "english_name": "Swedish Sign Language" - }, - "lbo": { - "english_name": "Laven" - }, - "npi": { - "english_name": "Nepali (individual language)" - }, - "yay": { - "english_name": "Agwagwune" - }, - "sjs": { - "english_name": "Senhaja De Srair" - }, - "sza": { - "english_name": "Semelai" - }, - "zlj": { - "english_name": "Zhuang, Liujiang" - }, - "xbx": { - "english_name": "Kabixí" - }, - "mhq": { - "english_name": "Mandan" - }, - "emp": { - "english_name": "Emberá, Northern" - }, - "sfs": { - "english_name": "South African Sign Language" - }, - "ttd": { - "english_name": "Tauade" - }, - "llm": { - "english_name": "Lasalimu" - }, - "tqm": { - "english_name": "Turumsa" - }, - "ymi": { - "english_name": "Moji" - }, - "mqb": { - "english_name": "Mbuko" - }, - "lbq": { - "english_name": "Wampar" - }, - "dho": { - "english_name": "Dhodia" - }, - "sqa": { - "english_name": "Shama-Sambuga" - }, - "weh": { - "english_name": "Weh" - }, - "mqw": { - "english_name": "Murupi" - }, - "ctn": { - "english_name": "Chhintange" - }, - "taa": { - "english_name": "Tanana, Lower" - }, - "nbd": { - "english_name": "Ngbinda" - }, - "ykt": { - "english_name": "Kathu" - }, - "ctu": { - "english_name": "Chol" - }, - "ngv": { - "english_name": "Nagumi" - }, - "kho": { - "english_name": "Khotanese" - }, - "lwl": { - "english_name": "Lawa, Eastern" - }, - "omi": { - "english_name": "Omi" - }, - "bhy": { - "english_name": "Bhele" - }, - "an": { - "english_name": "Aragonese" - }, - "tes": { - "english_name": "Tengger" - }, - "haq": { - "english_name": "Ha" - }, - "cja": { - "english_name": "Cham, Western" - }, - "alp": { - "english_name": "Alune" - }, - "puy": { - "english_name": "Purisimeño" - }, - "szl": { - "english_name": "Silesian" - }, - "atp": { - "english_name": "Atta, Pudtol" - }, - "nal": { - "english_name": "Nalik" - }, - "bi": { - "english_name": "Bislama" - }, - "tvm": { - "english_name": "Tela-Masbuar" - }, - "bph": { - "english_name": "Botlikh" - }, - "jit": { - "english_name": "Jita" - }, - "pgu": { - "english_name": "Pagu" - }, - "ozm": { - "english_name": "Koonzime" - }, - "tmw": { - "english_name": "Temuan" - }, - "okv": { - "english_name": "Orokaiva" - }, - "dth": { - "english_name": "Adithinngithigh" - }, - "zeg": { - "english_name": "Zenag" - }, - "pap": { - "english_name": "Papiamento" - }, - "huk": { - "english_name": "Hulung" - }, - "jaf": { - "english_name": "Jara" - }, - "yph": { - "english_name": "Phupha" - }, - "djd": { - "english_name": "Djamindjung" - }, - "sgb": { - "english_name": "Ayta, Mag-antsi" - }, - "kru": { - "english_name": "Kurukh" - }, - "pmd": { - "english_name": "Pallanganmiddang" - }, - "kdw": { - "english_name": "Koneraw" - }, - "sui": { - "english_name": "Suki" - }, - "dus": { - "english_name": "Dumi" - }, - "rga": { - "english_name": "Roria" - }, - "ruz": { - "english_name": "Ruma" - }, - "niq": { - "english_name": "Nandi" - }, - "wat": { - "english_name": "Kaninuwa" - }, - "xtj": { - "english_name": "Mixtec, San Juan Teita" - }, - "hts": { - "english_name": "Hadza" - }, - "roo": { - "english_name": "Rotokas" - }, - "txa": { - "english_name": "Tombonuo" - }, - "jau": { - "english_name": "Yaur" - }, - "wth": { - "english_name": "Wathawurrung" - }, - "lzn": { - "english_name": "Naga, Leinong" - }, - "boh": { - "english_name": "Boma" - }, - "hrp": { - "english_name": "Nhirrpi" - }, - "kjr": { - "english_name": "Kurudu" - }, - "mit": { - "english_name": "Mixtec, Southern Puebla" - }, - "kxk": { - "english_name": "Karen, Zayein" - }, - "ssv": { - "english_name": "Shark Bay" - }, - "mnu": { - "english_name": "Mer" - }, - "wnd": { - "english_name": "Wandarang" - }, - "ciw": { - "english_name": "Chippewa" - }, - "mqe": { - "english_name": "Matepi" - }, - "jbk": { - "english_name": "Barikewa" - }, - "raj": { - "english_name": "Rajasthani" - }, - "pch": { - "english_name": "Pardhan" - }, - "seg": { - "english_name": "Segeju" - }, - "loe": { - "english_name": "Saluan" - }, - "frs": { - "english_name": "Frisian, Eastern" - }, - "neu": { - "english_name": "Neo" - }, - "kcr": { - "english_name": "Katla" - }, - "dgx": { - "english_name": "Doghoro" - }, - "oml": { - "english_name": "Ombo" - }, - "vem": { - "english_name": "Vemgo-Mabas" - }, - "knq": { - "english_name": "Kintaq" - }, - "pad": { - "english_name": "Paumarí" - }, - "lts": { - "english_name": "Tachoni" - }, - "kae": { - "english_name": "Ketangalan" - }, - "twa": { - "english_name": "Twana" - }, - "scs": { - "english_name": "Slavey, North" - }, - "ill": { - "english_name": "Iranun" - }, - "nml": { - "english_name": "Ndemli" - }, - "bqt": { - "english_name": "Bamukumbit" - }, - "mdk": { - "english_name": "Mangbutu" - }, - "bep": { - "english_name": "Besoa" - }, - "pmo": { - "english_name": "Pom" - }, - "ktj": { - "english_name": "Krumen, Plapo" - }, - "knt": { - "english_name": "Katukína, Panoan" - }, - "pkn": { - "english_name": "Pakanha" - }, - "yol": { - "english_name": "Yola" - }, - "try": { - "english_name": "Turung" - }, - "ssl": { - "english_name": "Sisaala, Western" - }, - "dtk": { - "english_name": "Dogon, Tene Kan" - }, - "kwt": { - "english_name": "Kwesten" - }, - "pdc": { - "english_name": "German, Pennsylvania" - }, - "onj": { - "english_name": "Onjob" - }, - "mye": { - "english_name": "Myene" - }, - "hhy": { - "english_name": "Hoyahoya" - }, - "olk": { - "english_name": "Olkol" - }, - "yon": { - "english_name": "Yongkom" - }, - "nnq": { - "english_name": "Ngindo" - }, - "xuu": { - "english_name": "Kxoe" - }, - "pma": { - "english_name": "Paama" - }, - "mlk": { - "english_name": "Ilwana" - }, - "kkg": { - "english_name": "Kalinga, Mabaka Valley" - }, - "tqq": { - "english_name": "Tunni" - }, - "nfr": { - "english_name": "Nafaanra" - }, - "jaz": { - "english_name": "Jawe" - }, - "mjs": { - "english_name": "Miship" - }, - "kah": { - "english_name": "Kara (Central African Republic)" - }, - "kws": { - "english_name": "Kwese" - }, - "seh": { - "english_name": "Sena" - }, - "thz": { - "english_name": "Tamajeq, Tayart" - }, - "toq": { - "english_name": "Toposa" - }, - "mpy": { - "english_name": "Mapia" - }, - "kwr": { - "english_name": "Kwer" - }, - "eot": { - "english_name": "Beti (Côte d'Ivoire)" - }, - "kuh": { - "english_name": "Kushi" - }, - "nkp": { - "english_name": "Niuatoputapu" - }, - "mgc": { - "english_name": "Morokodo" - }, - "st": { - "english_name": "Sotho, Southern" - }, - "ots": { - "english_name": "Otomi, Estado de México" - }, - "dkk": { - "english_name": "Dakka" - }, - "yev": { - "english_name": "Yapunda" - }, - "iri": { - "english_name": "Irigwe" - }, - "ktm": { - "english_name": "Kurti" - }, - "xto": { - "english_name": "Tokharian A" - }, - "agg": { - "english_name": "Angor" - }, - "bjh": { - "english_name": "Bahinemo" - }, - "asg": { - "english_name": "Cishingini" - }, - "boe": { - "english_name": "Mundabli" - }, - "opa": { - "english_name": "Okpamheri" - }, - "aub": { - "english_name": "Alugu" - }, - "oac": { - "english_name": "Oroch" - }, - "tbg": { - "english_name": "Tairora, North" - }, - "dge": { - "english_name": "Degenan" - }, - "atu": { - "english_name": "Reel" - }, - "lkd": { - "english_name": "Lakondê" - }, - "lhi": { - "english_name": "Lahu Shi" - }, - "pep": { - "english_name": "Kunja" - }, - "sil": { - "english_name": "Sisaala, Tumulung" - }, - "luk": { - "english_name": "Lunanakha" - }, - "ths": { - "english_name": "Thakali" - }, - "itb": { - "english_name": "Itneg, Binongan" - }, - "trq": { - "english_name": "Triqui, San Martín Itunyoso" - }, - "wdk": { - "english_name": "Wadikali" - }, - "akv": { - "english_name": "Akhvakh" - }, - "cla": { - "english_name": "Ron" - }, - "sk": { - "english_name": "Slovak", - "name": "Slovenský" - }, - "mqs": { - "english_name": "Makian, West" - }, - "smz": { - "english_name": "Simeku" - }, - "yuw": { - "english_name": "Yau (Morobe Province)" - }, - "faz": { - "english_name": "Fars, Northwestern" - }, - "mmp": { - "english_name": "Siawi" - }, - "tov": { - "english_name": "Taromi, Upper" - }, - "elk": { - "english_name": "Elkei" - }, - "ztt": { - "english_name": "Zapotec, Tejalapan" - }, - "dhx": { - "english_name": "Dhungaloo" - }, - "bg": { - "english_name": "Bulgarian", - "name": "Български" - }, - "mxs": { - "english_name": "Mixtec, Huitepec" - }, - "ett": { - "english_name": "Etruscan" - }, - "nbg": { - "english_name": "Nagarchal" - }, - "dkx": { - "english_name": "Mazagway" - }, - "kie": { - "english_name": "Kibet" - }, - "gww": { - "english_name": "Kwini" - }, - "tcp": { - "english_name": "Chin, Tawr" - }, - "kyu": { - "english_name": "Kayah, Western" - }, - "una": { - "english_name": "Watut, North" - }, - "brk": { - "english_name": "Birked" - }, - "hoi": { - "english_name": "Holikachuk" - }, - "nyi": { - "english_name": "Ama (Sudan)" - }, - "mzz": { - "english_name": "Maiadomu" - }, - "sez": { - "english_name": "Chin, Senthang" - }, - "ksi": { - "english_name": "Krisa" - }, - "ktu": { - "english_name": "Kituba (Democratic Republic of Congo)" - }, - "giu": { - "english_name": "Mulao" - }, - "cot": { - "english_name": "Caquinte" - }, - "box": { - "english_name": "Buamu" - }, - "wyy": { - "english_name": "Fijian, Western" - }, - "tqb": { - "english_name": "Tembé" - }, - "prx": { - "english_name": "Purik" - }, - "btq": { - "english_name": "Batek" - }, - "sbv": { - "english_name": "Sabine" - }, - "mko": { - "english_name": "Mingang Doso" - }, - "xwt": { - "english_name": "Wotjobaluk" - }, - "srt": { - "english_name": "Sauri" - }, - "juc": { - "english_name": "Jurchen" - }, - "lmp": { - "english_name": "Limbum" - }, - "kks": { - "english_name": "Giiwo" - }, - "imy": { - "english_name": "Milyan" - }, - "nuw": { - "english_name": "Nguluwan" - }, - "ach": { - "english_name": "Acoli" - }, - "ybo": { - "english_name": "Yabong" - }, - "iki": { - "english_name": "Iko" - }, - "mco": { - "english_name": "Mixe, Coatlán" - }, - "ghe": { - "english_name": "Ghale, Southern" - }, - "leb": { - "english_name": "Lala-Bisa" - }, - "jqr": { - "english_name": "Jaqaru" - }, - "ynl": { - "english_name": "Yangulam" - }, - "rmc": { - "english_name": "Romani, Carpathian" - }, - "nre": { - "english_name": "Naga, Southern Rengma" - }, - "lnb": { - "english_name": "Mbalanhu" - }, - "zua": { - "english_name": "Zeem" - }, - "plj": { - "english_name": "Polci" - }, - "dyb": { - "english_name": "Dyaberdyaber" - }, - "bzj": { - "english_name": "Kriol English, Belize" - }, - "jua": { - "english_name": "Júma" - }, - "kak": { - "english_name": "Kallahan, Kayapa" - }, - "ala": { - "english_name": "Alago" - }, - "bei": { - "english_name": "Bekati'" - }, - "slw": { - "english_name": "Sialum" - }, - "bhq": { - "english_name": "Tukang Besi South" - }, - "nyu": { - "english_name": "Nyungwe" - }, - "sty": { - "english_name": "Tatar, Siberian" - }, - "kmn": { - "english_name": "Awtuw" - }, - "sop": { - "english_name": "Songe" - }, - "aou": { - "english_name": "A'ou" - }, - "nne": { - "english_name": "Ngandyera" - }, - "bzo": { - "english_name": "Bozaba" - }, - "lnj": { - "english_name": "Leningitij" - }, - "isu": { - "english_name": "Isu (Menchum Division)" - }, - "tsj": { - "english_name": "Tshangla" - }, - "hpo": { - "english_name": "Hpon" - }, - "yxm": { - "english_name": "Yinwum" - }, - "yag": { - "english_name": "Yámana" - }, - "cwt": { - "english_name": "Kuwaataay" - }, - "tpu": { - "english_name": "Tampuan" - }, - "ntj": { - "english_name": "Ngaanyatjarra" - }, - "pti": { - "english_name": "Pintiini" - }, - "dto": { - "english_name": "Dogon, Tommo So" - }, - "vay": { - "english_name": "Wayu" - }, - "ban": { - "english_name": "Balinese" - }, - "ivv": { - "english_name": "Ivatan" - }, - "kfw": { - "english_name": "Naga, Kharam" - }, - "gqa": { - "english_name": "Ga'anda" - }, - "zgr": { - "english_name": "Magori" - }, - "nnw": { - "english_name": "Nuni, Southern" - }, - "oyd": { - "english_name": "Oyda" - }, - "jhs": { - "english_name": "Jhankot Sign Language" - }, - "kxd": { - "english_name": "Brunei" - }, - "dkr": { - "english_name": "Kuijau" - }, - "lmk": { - "english_name": "Lamkang" - }, - "znk": { - "english_name": "Manangkari" - }, - "gsn": { - "english_name": "Gusan" - }, - "mrx": { - "english_name": "Maremgi" - }, - "csb": { - "english_name": "Kashubian" - }, - "itw": { - "english_name": "Ito" - }, - "gae": { - "english_name": "Guarequena" - }, - "obt": { - "english_name": "Breton, Old" - }, - "ee": { - "english_name": "Ewe" - }, - "mgu": { - "english_name": "Mailu" - }, - "pku": { - "english_name": "Paku" - }, - "cme": { - "english_name": "Cerma" - }, - "srb": { - "english_name": "Sora" - }, - "xrd": { - "english_name": "Gundungurra" - }, - "aer": { - "english_name": "Arrernte, Eastern" - }, - "tnq": { - "english_name": "Taino" - }, - "sm": { - "english_name": "Samoan" - }, - "yrw": { - "english_name": "Yarawata" - }, - "mmu": { - "english_name": "Mmaala" - }, - "kva": { - "english_name": "Bagvalal" - }, - "eja": { - "english_name": "Ejamat" - }, - "amm": { - "english_name": "Ama (Papua New Guinea)" - }, - "asr": { - "english_name": "Asuri" - }, - "bqm": { - "english_name": "Wumboko" - }, - "bxa": { - "english_name": "Tairaha" - }, - "de": { - "english_name": "German", - "name": "Deutsch" - }, - "sey": { - "english_name": "Secoya" - }, - "pla": { - "english_name": "Miani" - }, - "bgd": { - "english_name": "Bareli, Rathwi" - }, - "myp": { - "english_name": "Pirahã" - }, - "nkh": { - "english_name": "Naga, Khezha" - }, - "nqq": { - "english_name": "Naga, Kyan-Karyaw" - }, - "gsw": { - "english_name": "German, Swiss" - }, - "sjr": { - "english_name": "Siar-Lak" - }, - "bkv": { - "english_name": "Bekwarra" - }, - "zao": { - "english_name": "Zapotec, Ozolotepec" - }, - "ked": { - "english_name": "Kerewe" - }, - "lby": { - "english_name": "Lamu-Lamu" - }, - "xoc": { - "english_name": "O'chi'chi'" - }, - "biw": { - "english_name": "Kol (Cameroon)" - }, - "tya": { - "english_name": "Tauya" - }, - "bbe": { - "english_name": "Bangba" - }, - "pnz": { - "english_name": "Pana (Central African Republic)" - }, - "nao": { - "english_name": "Naaba" - }, - "qwa": { - "english_name": "Quechua, Corongo Ancash" - }, - "tmg": { - "english_name": "Ternateño" - }, - "rmt": { - "english_name": "Domari" - }, - "ruh": { - "english_name": "Ruga" - }, - "ate": { - "english_name": "Atemble" - }, - "tsc": { - "english_name": "Tswa" - }, - "nwe": { - "english_name": "Ngwe" - }, - "bgj": { - "english_name": "Bangolan" - }, - "wan": { - "english_name": "Wan" - }, - "enc": { - "english_name": "En" - }, - "bvm": { - "english_name": "Bamunka" - }, - "bvf": { - "english_name": "Boor" - }, - "mak": { - "english_name": "Makasar" - }, - "dnv": { - "english_name": "Danu" - }, - "phl": { - "english_name": "Phalura" - }, - "mce": { - "english_name": "Mixtec, Itundujia" - }, - "luq": { - "english_name": "Lucumi" - }, - "psl": { - "english_name": "Puerto Rican Sign Language" - }, - "nbq": { - "english_name": "Nggem" - }, - "guq": { - "english_name": "Aché" - }, - "blk": { - "english_name": "Karen, Pa'o" - }, - "slz": { - "english_name": "Ma'ya" - }, - "kkm": { - "english_name": "Kiong" - }, - "teq": { - "english_name": "Temein" - }, - "lou": { - "english_name": "Creole French, Louisiana" - }, - "bza": { - "english_name": "Bandi" - }, - "bdj": { - "english_name": "Bai" - }, - "plw": { - "english_name": "Palawano, Brooke's Point" - }, - "mfp": { - "english_name": "Malay, Makassar" - }, - "kia": { - "english_name": "Kim" - }, - "kzd": { - "english_name": "Kadai" - }, - "xpa": { - "english_name": "Pirriya" - }, - "tor": { - "english_name": "Banda, Togbo-Vara" - }, - "ksw": { - "english_name": "Karen, S'gaw" - }, - "lua": { - "english_name": "Luba-Lulua" - }, - "kbn": { - "english_name": "Kare (Central African Republic)" - }, - "dma": { - "english_name": "Duma" - }, - "mdn": { - "english_name": "Mbati" - }, - "mha": { - "english_name": "Manda (India)" - }, - "zmd": { - "english_name": "Maridan" - }, - "pqm": { - "english_name": "Malecite-Passamaquoddy" - }, - "ghc": { - "english_name": "Gaelic, Hiberno-Scottish" - }, - "ema": { - "english_name": "Emai-Iuleha-Ora" - }, - "ylr": { - "english_name": "Yalarnnga" - }, - "aeu": { - "english_name": "Akeu" - }, - "njn": { - "english_name": "Naga, Liangmai" - }, - "xgw": { - "english_name": "Guwa" - }, - "jpr": { - "english_name": "Judeo-Persian" - }, - "mbb": { - "english_name": "Manobo, Western Bukidnon" - }, - "oty": { - "english_name": "Tamil, Old" - }, - "liq": { - "english_name": "Libido" - }, - "aib": { - "english_name": "Ainu (China)" - }, - "mzt": { - "english_name": "Mintil" - }, - "qvz": { - "english_name": "Quichua, Northern Pastaza" - }, - "daq": { - "english_name": "Maria, Dandami" - }, - "bbm": { - "english_name": "Babango" - }, - "crs": { - "english_name": "Creole French, Seselwa" - }, - "orc": { - "english_name": "Orma" - }, - "liy": { - "english_name": "Banda-Bambari" - }, - "teu": { - "english_name": "Soo" - }, - "clu": { - "english_name": "Caluyanun" - }, - "el": { - "english_name": "Greek, Modern (1453-)", - "name": "Ελληνικά" - }, - "deh": { - "english_name": "Dehwari" - }, - "quv": { - "english_name": "Sacapulteco" - }, - "plt": { - "english_name": "Malagasy, Plateau" - }, - "iws": { - "english_name": "Iwam, Sepik" - }, - "qws": { - "english_name": "Quechua, Sihuas Ancash" - }, - "pua": { - "english_name": "Purepecha, Western Highland" - }, - "orv": { - "english_name": "Russian, Old" - }, - "pmt": { - "english_name": "Tuamotuan" - }, - "law": { - "english_name": "Lauje" - }, - "mzj": { - "english_name": "Manya" - }, - "sia": { - "english_name": "Sami, Akkala" - }, - "mrr": { - "english_name": "Maria (India)" - }, - "mfn": { - "english_name": "Mbembe, Cross River" - }, - "bng": { - "english_name": "Benga" - }, - "ren": { - "english_name": "Rengao" - }, - "dmx": { - "english_name": "Dema" - }, - "sht": { - "english_name": "Shasta" - }, - "nhh": { - "english_name": "Nahari" - }, - "bkg": { - "english_name": "Buraka" - }, - "ket": { - "english_name": "Ket" - }, - "zam": { - "english_name": "Zapotec, Miahuatlán" - }, - "rwo": { - "english_name": "Rawa" - }, - "bdu": { - "english_name": "Oroko" - }, - "ztp": { - "english_name": "Zapotec, Loxicha" - }, - "xnu": { - "english_name": "Nukunul" - }, - "tpt": { - "english_name": "Tepehua, Tlachichilco" - }, - "mqq": { - "english_name": "Minokok" - }, - "saf": { - "english_name": "Safaliba" - }, - "hmv": { - "english_name": "Hmong Dô" - }, - "hss": { - "english_name": "Harsusi" - }, - "bcr": { - "english_name": "Babine" - }, - "twy": { - "english_name": "Tawoyan" - }, - "ko": { - "english_name": "Korean", - "name": "한국어" - }, - "rwa": { - "english_name": "Rawo" - }, - "pro": { - "english_name": "Provençal, Old (to 1500)" - }, - "vbb": { - "english_name": "Babar, Southeast" - }, - "inp": { - "english_name": "Iñapari" - }, - "tpj": { - "english_name": "Tapieté" - }, - "stn": { - "english_name": "Owa" - }, - "jao": { - "english_name": "Yanyuwa" - }, - "mn": { - "english_name": "Mongolian", - "name": "Монгол" - }, - "oog": { - "english_name": "Ong" - }, - "abm": { - "english_name": "Abanyom" - }, - "yly": { - "english_name": "Nyâlayu" - }, - "mde": { - "english_name": "Maba (Chad)" - }, - "moh": { - "english_name": "Mohawk" - }, - "ica": { - "english_name": "Ede Ica" - }, - "urx": { - "english_name": "Urimo" - }, - "mcr": { - "english_name": "Menya" - }, - "mgn": { - "english_name": "Mbangi" - }, - "att": { - "english_name": "Atta, Pamplona" - }, - "mfx": { - "english_name": "Melo" - }, - "chc": { - "english_name": "Catawba" - }, - "kkf": { - "english_name": "Monpa, Kalaktang" - }, - "dbd": { - "english_name": "Dadiya" - }, - "fuh": { - "english_name": "Fulfulde, Western Niger" - }, - "myi": { - "english_name": "Mina (India)" - }, - "oav": { - "english_name": "Avar, Old" - }, - "ruq": { - "english_name": "Romanian, Megleno" - }, - "mrm": { - "english_name": "Merlav" - }, - "mmd": { - "english_name": "Maonan" - }, - "tbx": { - "english_name": "Kapin" - }, - "khj": { - "english_name": "Kuturmi" - }, - "dit": { - "english_name": "Dirari" - }, - "njr": { - "english_name": "Njerep" - }, - "buo": { - "english_name": "Terei" - }, - "pip": { - "english_name": "Pero" - }, - "ia": { - "english_name": "Interlingua (International Auxiliary Language Association)" - }, - "zrp": { - "english_name": "Zarphatic" - }, - "ymr": { - "english_name": "Malasar" - }, - "mrt": { - "english_name": "Marghi Central" - }, - "jnd": { - "english_name": "Jandavra" - }, - "tjo": { - "english_name": "Tamazight, Temacine" - }, - "quy": { - "english_name": "Quechua, Ayacucho" - }, - "emw": { - "english_name": "Emplawas" - }, - "vit": { - "english_name": "Viti" - }, - "mor": { - "english_name": "Moro" - }, - "xsi": { - "english_name": "Sio" - }, - "xke": { - "english_name": "Kereho" - }, - "tby": { - "english_name": "Tabaru" - }, - "gil": { - "english_name": "Gilbertese" - }, - "ffi": { - "english_name": "Foia Foia" - }, - "lwg": { - "english_name": "Wanga" - }, - "tga": { - "english_name": "Sagalla" - }, - "bcu": { - "english_name": "Awad Bing" - }, - "plg": { - "english_name": "Pilagá" - }, - "tpw": { - "english_name": "Tupí" - }, - "xad": { - "english_name": "Adai" - }, - "pnn": { - "english_name": "Pinai-Hagahai" - }, - "jms": { - "english_name": "Mashi (Nigeria)" - }, - "kbc": { - "english_name": "Kadiwéu" - }, - "stf": { - "english_name": "Seta" - }, - "tob": { - "english_name": "Toba" - }, - "aqz": { - "english_name": "Akuntsu" - }, - "mrz": { - "english_name": "Marind" - }, - "bbc": { - "english_name": "Batak Toba" - }, - "szb": { - "english_name": "Ngalum" - }, - "tml": { - "english_name": "Citak, Tamnim" - }, - "gqr": { - "english_name": "Gor" - }, - "ntk": { - "english_name": "Ikoma-Nata-Isenye" - }, - "mxr": { - "english_name": "Murik (Malaysia)" - }, - "jbw": { - "english_name": "Yawijibaya" - }, - "alf": { - "english_name": "Alege" - }, - "gxx": { - "english_name": "Wè Southern" - }, - "ors": { - "english_name": "Orang Seletar" - }, - "bfl": { - "english_name": "Banda-Ndélé" - }, - "ssd": { - "english_name": "Siroi" - }, - "krl": { - "english_name": "Karelian" - }, - "thr": { - "english_name": "Tharu, Rana" - }, - "mvl": { - "english_name": "Mbara (Australia)" - }, - "bwx": { - "english_name": "Bunu, Bu-Nao" - }, - "ele": { - "english_name": "Elepi" - }, - "myu": { - "english_name": "Mundurukú" - }, - "jup": { - "english_name": "Hupdë" - }, - "bvh": { - "english_name": "Bure" - }, - "odu": { - "english_name": "Odual" - }, - "wrv": { - "english_name": "Waruna" - }, - "afs": { - "english_name": "Creole, Afro-Seminole" - }, - "sws": { - "english_name": "Seluwasan" - }, - "anb": { - "english_name": "Andoa" - }, - "hmu": { - "english_name": "Hamap" - }, - "xng": { - "english_name": "Mongolian, Middle" - }, - "cra": { - "english_name": "Chara" - }, - "msb": { - "english_name": "Masbatenyo" - }, - "uda": { - "english_name": "Uda" - }, - "gdg": { - "english_name": "Ga'dang" - }, - "tkr": { - "english_name": "Tsakhur" - }, - "onr": { - "english_name": "One, Northern" - }, - "hbu": { - "english_name": "Habu" - }, - "abb": { - "english_name": "Bankon" - }, - "suc": { - "english_name": "Subanon, Western" - }, - "lmc": { - "english_name": "Limilngan" - }, - "thi": { - "english_name": "Tai Long" - }, - "pmf": { - "english_name": "Pamona" - }, - "umn": { - "english_name": "Naga, Makyan" - }, - "xla": { - "english_name": "Kamula" - }, - "wam": { - "english_name": "Wampanoag" - }, - "ghh": { - "english_name": "Ghale, Northern" - }, - "fut": { - "english_name": "Futuna-Aniwa" - }, - "sck": { - "english_name": "Sadri" - }, - "sd": { - "english_name": "Sindhi" - }, - "xrt": { - "english_name": "Aranama-Tamique" - }, - "ahk": { - "english_name": "Akha" - }, - "dja": { - "english_name": "Djadjawurrung" - }, - "kyn": { - "english_name": "Binukidnon, Northern" - }, - "ymd": { - "english_name": "Muda" - }, - "afh": { - "english_name": "Afrihili" - }, - "tba": { - "english_name": "Aikanã" - }, - "ebr": { - "english_name": "Ebrié" - }, - "asz": { - "english_name": "As" - }, - "pkr": { - "english_name": "Kurumba, Attapady" - }, - "gss": { - "english_name": "Greek Sign Language" - }, - "xwc": { - "english_name": "Woccon" - }, - "tmk": { - "english_name": "Tamang, Northwestern" - }, - "kyw": { - "english_name": "Kudmali" - }, - "acv": { - "english_name": "Achumawi" - }, - "goc": { - "english_name": "Gorakor" - }, - "mqu": { - "english_name": "Mandari" - }, - "lrt": { - "english_name": "Malay, Larantuka" - }, - "lda": { - "english_name": "Kla-Dan" - }, - "jeg": { - "english_name": "Jeng" - }, - "kym": { - "english_name": "Kpatili" - }, - "sbe": { - "english_name": "Saliba" - }, - "swp": { - "english_name": "Suau" - }, - "raq": { - "english_name": "Saam" - }, - "mxe": { - "english_name": "Mele-Fila" - }, - "mfg": { - "english_name": "Mogofin" - }, - "ygu": { - "english_name": "Yugul" - }, - "yur": { - "english_name": "Yurok" - }, - "rki": { - "english_name": "Rakhine" - }, - "kpd": { - "english_name": "Koba" - }, - "pev": { - "english_name": "Pémono" - }, - "ndw": { - "english_name": "Ndobo" - }, - "mid": { - "english_name": "Mandaic" - }, - "eze": { - "english_name": "Uzekwe" - }, - "kny": { - "english_name": "Kanyok" - }, - "kwh": { - "english_name": "Kowiai" - }, - "thn": { - "english_name": "Thachanadan" - }, - "rdb": { - "english_name": "Rudbari" - }, - "dib": { - "english_name": "Dinka, South Central" - }, - "wed": { - "english_name": "Wedau" - }, - "zpr": { - "english_name": "Zapotec, Santiago Xanica" - }, - "nyx": { - "english_name": "Nganyaywana" - }, - "plz": { - "english_name": "Paluan" - }, - "pop": { - "english_name": "Pwapwâ" - }, - "msx": { - "english_name": "Moresada" - }, - "tgo": { - "english_name": "Sudest" - }, - "gaf": { - "english_name": "Gende" - }, - "gew": { - "english_name": "Gera" - }, - "dhm": { - "english_name": "Zemba" - }, - "tbh": { - "english_name": "Thurawal" - }, - "asq": { - "english_name": "Austrian Sign Language" - }, - "uha": { - "english_name": "Uhami" - }, - "chb": { - "english_name": "Chibcha" - }, - "awt": { - "english_name": "Araweté" - }, - "mho": { - "english_name": "Mashi (Zambia)" - }, - "ibb": { - "english_name": "Ibibio" - }, - "klx": { - "english_name": "Koluwawa" - }, - "msj": { - "english_name": "Ma (Democratic Republic of Congo)" - }, - "acq": { - "english_name": "Arabic, Ta'izzi-Adeni" - }, - "ggk": { - "english_name": "Kungarakany" - }, - "szg": { - "english_name": "Sengele" - }, - "igl": { - "english_name": "Igala" - }, - "kxu": { - "english_name": "Kui (India)" - }, - "slr": { - "english_name": "Salar" - }, - "cnl": { - "english_name": "Chinantec, Lalana" - }, - "kfb": { - "english_name": "Kolami, Northwestern" - }, - "pao": { - "english_name": "Paiute, Northern" - }, - "rnp": { - "english_name": "Rongpo" - }, - "kph": { - "english_name": "Kplang" - }, - "kzi": { - "english_name": "Kelabit" - }, - "asp": { - "english_name": "Algerian Sign Language" - }, - "yxu": { - "english_name": "Yuyu" - }, - "waa": { - "english_name": "Walla Walla" - }, - "cms": { - "english_name": "Messapic" - }, - "skr": { - "english_name": "Seraiki" - }, - "nak": { - "english_name": "Nakanai" - }, - "zpt": { - "english_name": "Zapotec, San Vicente Coatlán" - }, - "tgy": { - "english_name": "Togoyo" - }, - "vto": { - "english_name": "Vitou" - }, - "bof": { - "english_name": "Bolon" - }, - "awv": { - "english_name": "Awyu, Jair" - }, - "smj": { - "english_name": "Lule Sami" - }, - "csd": { - "english_name": "Chiangmai Sign Language" - }, - "amu": { - "english_name": "Amuzgo, Guerrero" - }, - "xtw": { - "english_name": "Tawandê" - }, - "onb": { - "english_name": "Lingao" - }, - "ttt": { - "english_name": "Tat, Muslim" - }, - "biq": { - "english_name": "Bipi" - }, - "mbw": { - "english_name": "Maring" - }, - "ybk": { - "english_name": "Bokha" - }, - "umc": { - "english_name": "Marrucinian" - }, - "bnx": { - "english_name": "Bangubangu" - }, - "ve": { - "english_name": "Venda", - "name": "Venda" - }, - "xnb": { - "english_name": "Kanakanabu" - }, - "yup": { - "english_name": "Yukpa" - }, - "jiv": { - "english_name": "Shuar" - }, - "sry": { - "english_name": "Sera" - }, - "xrq": { - "english_name": "Karranga" - }, - "gjm": { - "english_name": "Gunditjmara" - }, - "byw": { - "english_name": "Belhariya" - }, - "kux": { - "english_name": "Kukatja" - }, - "win": { - "english_name": "Ho-Chunk" - }, - "mep": { - "english_name": "Miriwung" - }, - "oin": { - "english_name": "One, Inebu" - }, - "htx": { - "english_name": "Hittite, Middle" - }, - "cuv": { - "english_name": "Cuvok" - }, - "cod": { - "english_name": "Cocama-Cocamilla" - }, - "tow": { - "english_name": "Jemez" - }, - "ekp": { - "english_name": "Ekpeye" - }, - "qui": { - "english_name": "Quileute" - }, - "vmf": { - "english_name": "Mainfränkisch" - }, - "li": { - "english_name": "Limburgan" - }, - "med": { - "english_name": "Melpa" - }, - "xed": { - "english_name": "Hdi" - }, - "hgm": { - "english_name": "Hai//om" - }, - "syl": { - "english_name": "Sylheti" - }, - "aur": { - "english_name": "Aruek" - }, - "alt": { - "english_name": "Altai, Southern" - }, - "kna": { - "english_name": "Dera (Nigeria)" - }, - "yud": { - "english_name": "Arabic, Judeo-Tripolitanian" - }, - "afi": { - "english_name": "Akrukay" - }, - "bku": { - "english_name": "Buhid" - }, - "yeu": { - "english_name": "Yerukula" - }, - "gwc": { - "english_name": "Kalami" - }, - "hwa": { - "english_name": "Wané" - }, - "klz": { - "english_name": "Kabola" - }, - "kzo": { - "english_name": "Kaningi" - }, - "ngs": { - "english_name": "Gvoko" - }, - "bbr": { - "english_name": "Girawa" - }, - "as": { - "english_name": "Assamese" - }, - "qun": { - "english_name": "Quinault" - }, - "tbj": { - "english_name": "Tiang" - }, - "snv": { - "english_name": "Sa'ban" - }, - "tcd": { - "english_name": "Tafi" - }, - "ndn": { - "english_name": "Ngundi" - }, - "uku": { - "english_name": "Ukue" - }, - "cde": { - "english_name": "Chenchu" - }, - "nwr": { - "english_name": "Nawaru" - }, - "wgo": { - "english_name": "Waigeo" - }, - "afe": { - "english_name": "Putukwam" - }, - "mou": { - "english_name": "Mogum" - }, - "dbj": { - "english_name": "Ida'an" - }, - "dbf": { - "english_name": "Edopi" - }, - "nch": { - "english_name": "Nahuatl, Central Huasteca" - }, - "bsi": { - "english_name": "Bassossi" - }, - "jng": { - "english_name": "Yangman" - }, - "geq": { - "english_name": "Geme" - }, - "cjv": { - "english_name": "Chuave" - }, - "khv": { - "english_name": "Khvarshi" - }, - "llh": { - "english_name": "Lamu" - }, - "bxd": { - "english_name": "Pela" - }, - "ush": { - "english_name": "Ushojo" - }, - "zyp": { - "english_name": "Chin, Zyphe" - }, - "okg": { - "english_name": "Koko Babangk" - }, - "tkp": { - "english_name": "Tikopia" - }, - "kql": { - "english_name": "Kyenele" - }, - "spl": { - "english_name": "Selepet" - }, - "mer": { - "english_name": "Meru" - }, - "csy": { - "english_name": "Chin, Siyin" - }, - "abw": { - "english_name": "Pal" - }, - "bn": { - "english_name": "Bengali", - "name": "বাংলা" - }, - "puc": { - "english_name": "Punan Merap" - }, - "xte": { - "english_name": "Ketengban" - }, - "lwh": { - "english_name": "Lachi, White" - }, - "mlc": { - "english_name": "Cao Lan" - }, - "nlg": { - "english_name": "Gela" - }, - "onu": { - "english_name": "Unua" - }, - "uzn": { - "english_name": "Uzbek, Northern" - }, - "mvg": { - "english_name": "Mixtec, Yucuañe" - }, - "miz": { - "english_name": "Mixtec, Coatzospan" - }, - "inn": { - "english_name": "Isinai" - }, - "ofo": { - "english_name": "Ofo" - }, - "kuo": { - "english_name": "Kumukio" - }, - "isg": { - "english_name": "Irish Sign Language" - }, - "bsc": { - "english_name": "Bassari" - }, - "ula": { - "english_name": "Fungwa" - }, - "djo": { - "english_name": "Jangkang" - }, - "lfa": { - "english_name": "Lefa" - }, - "ddr": { - "english_name": "Dhudhuroa" - }, - "dbb": { - "english_name": "Deno" - }, - "jet": { - "english_name": "Manem" - }, - "kfu": { - "english_name": "Katkari" - }, - "bxc": { - "english_name": "Molengue" - }, - "sni": { - "english_name": "Sensi" - }, - "ase": { - "english_name": "American Sign Language" - }, - "nby": { - "english_name": "Ningera" - }, - "kuk": { - "english_name": "Kepo'" - }, - "noj": { - "english_name": "Nonuya" - }, - "bvp": { - "english_name": "Bumang" - }, - "myw": { - "english_name": "Muyuw" - }, - "zbw": { - "english_name": "Berawan, West" - }, - "bjb": { - "english_name": "Banggarla" - }, - "ffm": { - "english_name": "Fulfulde, Maasina" - }, - "ijn": { - "english_name": "Kalabari" - }, - "rmh": { - "english_name": "Murkim" - }, - "nxm": { - "english_name": "Numidian" - }, - "tpr": { - "english_name": "Tuparí" - }, - "hul": { - "english_name": "Hula" - }, - "bqa": { - "english_name": "Tchumbuli" - }, - "kmc": { - "english_name": "Dong, Southern" - }, - "jus": { - "english_name": "Jumla Sign Language" - }, - "zqe": { - "english_name": "Zhuang, Qiubei" - }, - "wms": { - "english_name": "Wambon" - }, - "sej": { - "english_name": "Sene" - }, - "nsr": { - "english_name": "Maritime Sign Language" - }, - "jib": { - "english_name": "Jibu" - }, - "dip": { - "english_name": "Dinka, Northeastern" - }, - "mae": { - "english_name": "Bo-Rukul" - }, - "smx": { - "english_name": "Samba" - }, - "ikx": { - "english_name": "Ik" - }, - "baj": { - "english_name": "Barakai" - }, - "apc": { - "english_name": "Arabic, North Levantine" - }, - "kby": { - "english_name": "Kanuri, Manga" - }, - "czo": { - "english_name": "Chinese, Min Zhong" - }, - "hop": { - "english_name": "Hopi" - }, - "sgj": { - "english_name": "Surgujia" - }, - "ldh": { - "english_name": "Lamja-Dengsa-Tola" - }, - "ulm": { - "english_name": "Ulumanda'" - }, - "da": { - "english_name": "Danish", - "name": "Dansk" - }, - "psy": { - "english_name": "Piscataway" - }, - "ahb": { - "english_name": "Axamb" - }, - "nkv": { - "english_name": "Nyika (Malawi and Zambia)" - }, - "doi": { - "english_name": "Dogri (macrolanguage)" - }, - "pmq": { - "english_name": "Pame, Northern" - }, - "tdf": { - "english_name": "Talieng" - }, - "zwa": { - "english_name": "Zay" - }, - "scv": { - "english_name": "Sheni" - }, - "xcb": { - "english_name": "Cumbric" - }, - "scx": { - "english_name": "Sicel" - }, - "ihw": { - "english_name": "Bidhawal" - }, - "bqj": { - "english_name": "Bandial" - }, - "nga": { - "english_name": "Ngbaka" - }, - "nbs": { - "english_name": "Namibian Sign Language" - }, - "soj": { - "english_name": "Soi" - }, - "row": { - "english_name": "Dela-Oenale" - }, - "hbs": { - "english_name": "Serbo-Croatian" - }, - "sug": { - "english_name": "Suganga" - }, - "ztx": { - "english_name": "Zapotec, Zaachila" - }, - "lpo": { - "english_name": "Lipo" - }, - "hvn": { - "english_name": "Sabu" - }, - "unr": { - "english_name": "Mundari" - }, - "adi": { - "english_name": "Adi" - }, - "gox": { - "english_name": "Gobu" - }, - "qyp": { - "english_name": "Quiripi" - }, - "nxd": { - "english_name": "Ngando (Democratic Republic of Congo)" - }, - "goy": { - "english_name": "Goundo" - }, - "gse": { - "english_name": "Ghanaian Sign Language" - }, - "kda": { - "english_name": "Worimi" - }, - "wbh": { - "english_name": "Wanda" - }, - "hro": { - "english_name": "Haroi" - }, - "lvs": { - "english_name": "Latvian, Standard" - }, - "dol": { - "english_name": "Doso" - }, - "hwc": { - "english_name": "Creole English, Hawai'i" - }, - "maw": { - "english_name": "Mampruli" - }, - "syb": { - "english_name": "Subanen, Central" - }, - "lsa": { - "english_name": "Lasgerdi" - }, - "mwp": { - "english_name": "Kala Lagaw Ya" - }, - "wlg": { - "english_name": "Kunbarlang" - }, - "xbr": { - "english_name": "Kambera" - }, - "mau": { - "english_name": "Mazatec, Huautla" - }, - "kid": { - "english_name": "Koshin" - }, - "aaz": { - "english_name": "Amarasi" - }, - "kzx": { - "english_name": "Kamarian" - }, - "tro": { - "english_name": "Naga, Tarao" - }, - "vmb": { - "english_name": "Barbaram" - }, - "cbb": { - "english_name": "Cabiyarí" - }, - "enf": { - "english_name": "Enets, Forest" - }, - "dgu": { - "english_name": "Degaru" - }, - "kju": { - "english_name": "Kashaya" - }, - "kre": { - "english_name": "Panará" - }, - "kaq": { - "english_name": "Capanahua" - }, - "ojg": { - "english_name": "Ojibwa, Eastern" - }, - "tgs": { - "english_name": "Nume" - }, - "pax": { - "english_name": "Pankararé" - }, - "mwk": { - "english_name": "Maninkakan, Kita" - }, - "woi": { - "english_name": "Kamang" - }, - "kun": { - "english_name": "Kunama" - }, - "dis": { - "english_name": "Dimasa" - }, - "cad": { - "english_name": "Caddo" - }, - "odt": { - "english_name": "Dutch, Old" - }, - "mgg": { - "english_name": "Mpumpong" - }, - "lue": { - "english_name": "Luvale" - }, - "frk": { - "english_name": "Frankish" - }, - "aye": { - "english_name": "Ayere" - }, - "loa": { - "english_name": "Loloda" - }, - "kjc": { - "english_name": "Konjo, Coastal" - }, - "dpp": { - "english_name": "Papar" - }, - "ymo": { - "english_name": "Yangum Mon" - }, - "kce": { - "english_name": "Kaivi" - }, - "mhy": { - "english_name": "Ma'anyan" - }, - "jig": { - "english_name": "Djingili" - }, - "gol": { - "english_name": "Gola" - }, - "mza": { - "english_name": "Mixtec, Santa María Zacatepec" - }, - "bdl": { - "english_name": "Bajau, Indonesian" - }, - "btt": { - "english_name": "Bete-Bendi" - }, - "lg": { - "english_name": "Ganda" - }, - "gbm": { - "english_name": "Garhwali" - }, - "xut": { - "english_name": "Kuthant" - }, - "cas": { - "english_name": "Tsimané" - }, - "mig": { - "english_name": "Mixtec, San Miguel El Grande" - }, - "chw": { - "english_name": "Chuwabu" - }, - "tvk": { - "english_name": "Ambrym, Southeast" - }, - "dna": { - "english_name": "Dani, Upper Grand Valley" - }, - "pau": { - "english_name": "Palauan" - }, - "flr": { - "english_name": "Fuliiru" - }, - "gdq": { - "english_name": "Mehri" - }, - "sii": { - "english_name": "Shom Peng" - }, - "gbb": { - "english_name": "Kaytetye" - }, - "yii": { - "english_name": "Yidiny" - }, - "nnd": { - "english_name": "Ambae, West" - }, - "drg": { - "english_name": "Rungus" - }, - "gza": { - "english_name": "Ganza" - }, - "nyk": { - "english_name": "Nyaneka" - }, - "pht": { - "english_name": "Phu Thai" - }, - "myr": { - "english_name": "Muniche" - }, - "boz": { - "english_name": "Bozo, Tiéyaxo" - }, - "vnp": { - "english_name": "Vunapu" - }, - "niu": { - "english_name": "Niuean" - }, - "zik": { - "english_name": "Zimakani" - }, - "diq": { - "english_name": "Dimli (individual language)" - }, - "oru": { - "english_name": "Ormuri" - }, - "mzq": { - "english_name": "Mori Atas" - }, - "tgh": { - "english_name": "Creole English, Tobagonian" - }, - "wbv": { - "english_name": "Wajarri" - }, - "lrn": { - "english_name": "Lorang" - }, - "waf": { - "english_name": "Wakoná" - }, - "mte": { - "english_name": "Mono (Solomon Islands)" - }, - "hns": { - "english_name": "Hindustani, Caribbean" - }, - "xrr": { - "english_name": "Raetic" - }, - "grz": { - "english_name": "Guramalum" - }, - "toz": { - "english_name": "To" - }, - "lei": { - "english_name": "Lemio" - }, - "mso": { - "english_name": "Mombum" - }, - "tra": { - "english_name": "Tirahi" - }, - "adg": { - "english_name": "Andegerebinha" - }, - "oyb": { - "english_name": "Oy" - }, - "mds": { - "english_name": "Maria (Papua New Guinea)" - }, - "upv": { - "english_name": "Uripiv-Wala-Rano-Atchin" - }, - "cbr": { - "english_name": "Cashibo-Cacataibo" - }, - "kmk": { - "english_name": "Kalinga, Limos" - }, - "oua": { - "english_name": "Tagargrent" - }, - "oui": { - "english_name": "Uighur, Old" - }, - "slq": { - "english_name": "Salchuq" - }, - "tvu": { - "english_name": "Tunen" - }, - "loz": { - "english_name": "Lozi" - }, - "kvc": { - "english_name": "Kove" - }, - "tys": { - "english_name": "Tày Sa Pa" - }, - "sxr": { - "english_name": "Saaroa" - }, - "xmq": { - "english_name": "Kuku-Mangk" - }, - "bfg": { - "english_name": "Kayan, Busang" - }, - "mbu": { - "english_name": "Mbula-Bwazza" - }, - "ykn": { - "english_name": "Kua-nsi" - }, - "bkj": { - "english_name": "Pande" - }, - "ega": { - "english_name": "Ega" - }, - "wes": { - "english_name": "Pidgin, Cameroon" - }, - "kbu": { - "english_name": "Kabutra" - }, - "dsh": { - "english_name": "Daasanach" - }, - "wnn": { - "english_name": "Wunumara" - }, - "raz": { - "english_name": "Rahambuu" - }, - "bej": { - "english_name": "Beja" - }, - "put": { - "english_name": "Putoh" - }, - "bas": { - "english_name": "Basa (Cameroon)" - }, - "mtd": { - "english_name": "Mualang" - }, - "ihb": { - "english_name": "Iha Based Pidgin" - }, - "kcq": { - "english_name": "Kamo" - }, - "blx": { - "english_name": "Ayta, Mag-Indi" - }, - "sbi": { - "english_name": "Seti" - }, - "ojw": { - "english_name": "Ojibwa, Western" - }, - "gry": { - "english_name": "Grebo, Barclayville" - }, - "pmr": { - "english_name": "Paynamar" - }, - "nkb": { - "english_name": "Naga, Khoibu" - }, - "sba": { - "english_name": "Ngambay" - }, - "avm": { - "english_name": "Angkamuthi" - }, - "ryu": { - "english_name": "Okinawan, Central" - }, - "irk": { - "english_name": "Iraqw" - }, - "rmv": { - "english_name": "Romanova" - }, - "kxt": { - "english_name": "Koiwat" - }, - "nek": { - "english_name": "Neku" - }, - "xku": { - "english_name": "Kaamba" - }, - "szp": { - "english_name": "Suabo" - }, - "uum": { - "english_name": "Urum" - }, - "nvo": { - "english_name": "Nyokon" - }, - "gkn": { - "english_name": "Gokana" - }, - "ii": { - "english_name": "Yi, Sichuan" - }, - "xkv": { - "english_name": "Kgalagadi" - }, - "mgj": { - "english_name": "Abureni" - }, - "ig": { - "english_name": "Igbo" - }, - "ukh": { - "english_name": "Ukhwejo" - }, - "lki": { - "english_name": "Laki" - }, - "lil": { - "english_name": "Lillooet" - }, - "kxz": { - "english_name": "Kerewo" - }, - "yaw": { - "english_name": "Yawalapití" - }, - "wmh": { - "english_name": "Waima'a" - }, - "kps": { - "english_name": "Tehit" - }, - "gcr": { - "english_name": "Creole French, Guianese" - }, - "bvd": { - "english_name": "Baeggu" - }, - "bjr": { - "english_name": "Binumarien" - }, - "llx": { - "english_name": "Lauan" - }, - "kyi": { - "english_name": "Kiput" - }, - "awa": { - "english_name": "Awadhi" - }, - "mpe": { - "english_name": "Majang" - }, - "mlu": { - "english_name": "To'abaita" - }, - "bux": { - "english_name": "Boghom" - }, - "ong": { - "english_name": "Olo" - }, - "mbj": { - "english_name": "Nadëb" - }, - "yub": { - "english_name": "Yugambal" - }, - "mrl": { - "english_name": "Mortlockese" - }, - "tav": { - "english_name": "Tatuyo" - }, - "umd": { - "english_name": "Umbindhamu" - }, - "ncd": { - "english_name": "Nachering" - }, - "les": { - "english_name": "Lese" - }, - "yet": { - "english_name": "Yetfa" - }, - "agm": { - "english_name": "Angaataha" - }, - "the": { - "english_name": "Tharu, Chitwania" - }, - "lix": { - "english_name": "Liabuku" - }, - "qvp": { - "english_name": "Quechua, Pacaraos" - }, - "eno": { - "english_name": "Enggano" - }, - "pcn": { - "english_name": "Piti" - }, - "gyg": { - "english_name": "Gbayi" - }, - "gok": { - "english_name": "Gowli" - }, - "bpo": { - "english_name": "Anasi" - }, - "mwm": { - "english_name": "Sar" - }, - "ptu": { - "english_name": "Bambam" - }, - "meu": { - "english_name": "Motu" - }, - "gvs": { - "english_name": "Gumawana" - }, - "ckn": { - "english_name": "Chin, Kaang" - }, - "nrl": { - "english_name": "Ngarluma" - }, - "mqj": { - "english_name": "Mamasa" - }, - "mea": { - "english_name": "Menka" - }, - "kzf": { - "english_name": "Kaili, Da'a" - }, - "lla": { - "english_name": "Lala-Roba" - }, - "wae": { - "english_name": "Walser" - }, - "nny": { - "english_name": "Nyangga" - }, - "kpf": { - "english_name": "Komba" - }, - "wut": { - "english_name": "Wutung" - }, - "aii": { - "english_name": "Neo-Aramaic, Assyrian" - }, - "urv": { - "english_name": "Uruava" - }, - "six": { - "english_name": "Sumau" - }, - "ngo": { - "english_name": "Ngoni" - }, - "nod": { - "english_name": "Thai, Northern" - }, - "mdg": { - "english_name": "Massalat" - }, - "lew": { - "english_name": "Kaili, Ledo" - }, - "lzl": { - "english_name": "Litzlitz" - }, - "kld": { - "english_name": "Gamilaraay" - }, - "ksg": { - "english_name": "Kusaghe" - }, - "qup": { - "english_name": "Quechua, Southern Pastaza" - }, - "wud": { - "english_name": "Wudu" - }, - "pbp": { - "english_name": "Badyara" - }, - "ohu": { - "english_name": "Hungarian, Old" - }, - "say": { - "english_name": "Saya" - }, - "nse": { - "english_name": "Nsenga" - }, - "mlw": { - "english_name": "Moloko" - }, - "ktp": { - "english_name": "Kaduo" - }, - "zum": { - "english_name": "Kumzari" - }, - "urf": { - "english_name": "Uradhi" - }, - "ako": { - "english_name": "Akurio" - }, - "pny": { - "english_name": "Pinyin" - }, - "kxn": { - "english_name": "Melanau, Kanowit-Tanjong" - }, - "msr": { - "english_name": "Mongolian Sign Language" - }, - "bgt": { - "english_name": "Bughotu" - }, - "aho": { - "english_name": "Ahom" - }, - "rys": { - "english_name": "Yaeyama" - }, - "bot": { - "english_name": "Bongo" - }, - "gus": { - "english_name": "Guinean Sign Language" - }, - "ssj": { - "english_name": "Sausi" - }, - "kqo": { - "english_name": "Krahn, Eastern" - }, - "mwi": { - "english_name": "Labo" - }, - "faf": { - "english_name": "Fagani" - }, - "bdx": { - "english_name": "Budong-Budong" - }, - "mnd": { - "english_name": "Mondé" - }, - "neb": { - "english_name": "Toura (Côte d'Ivoire)" - }, - "hmf": { - "english_name": "Hmong Don" - }, - "agk": { - "english_name": "Agta, Isarog" - }, - "nts": { - "english_name": "Natagaimas" - }, - "mkn": { - "english_name": "Malay, Kupang" - }, - "nty": { - "english_name": "Mantsi" - }, - "zpf": { - "english_name": "Zapotec, San Pedro Quiatoni" - }, - "ers": { - "english_name": "Ersu" - }, - "cle": { - "english_name": "Chinantec, Lealao" - }, - "xhc": { - "english_name": "Hunnic" - }, - "xpy": { - "english_name": "Puyo" - }, - "fia": { - "english_name": "Nobiin" - }, - "yko": { - "english_name": "Yasa" - }, - "nug": { - "english_name": "Nungali" - }, - "tof": { - "english_name": "Gizrra" - }, - "mzo": { - "english_name": "Matipuhy" - }, - "sln": { - "english_name": "Salinan" - }, - "sjm": { - "english_name": "Mapun" - }, - "ngw": { - "english_name": "Ngwaba" - }, - "zmy": { - "english_name": "Mariyedi" - }, - "gbl": { - "english_name": "Gamit" - }, - "lad": { - "english_name": "Ladino" - }, - "bhe": { - "english_name": "Bhaya" - }, - "xpe": { - "english_name": "Kpelle, Liberia" - }, - "tg": { - "english_name": "Tajik" - }, - "xpc": { - "english_name": "Pecheneg" - }, - "chj": { - "english_name": "Chinantec, Ojitlán" - }, - "kfr": { - "english_name": "Kachchi" - }, - "ero": { - "english_name": "Horpa" - }, - "mrs": { - "english_name": "Maragus" - }, - "ntu": { - "english_name": "Natügu" - }, - "abg": { - "english_name": "Abaga" - }, - "pon": { - "english_name": "Pohnpeian" - }, - "mzc": { - "english_name": "Madagascar Sign Language" - }, - "pre": { - "english_name": "Principense" - }, - "dtr": { - "english_name": "Lotud" - }, - "lun": { - "english_name": "Lunda" - }, - "bpg": { - "english_name": "Bonggo" - }, - "bee": { - "english_name": "Byangsi" - }, - "oum": { - "english_name": "Ouma" - }, - "dir": { - "english_name": "Dirim" - }, - "sxu": { - "english_name": "Saxon, Upper" - }, - "kfq": { - "english_name": "Korku" - }, - "ald": { - "english_name": "Alladian" - }, - "kkc": { - "english_name": "Odoodee" - }, - "kza": { - "english_name": "Karaboro, Western" - }, - "rmi": { - "english_name": "Lomavren" - }, - "pwo": { - "english_name": "Karen, Pwo Western" - }, - "krf": { - "english_name": "Koro (Vanuatu)" - }, - "kky": { - "english_name": "Guguyimidjir" - }, - "hz": { - "english_name": "Herero" - }, - "snz": { - "english_name": "Sinsauru" - }, - "ecr": { - "english_name": "Eteocretan" - }, - "nas": { - "english_name": "Naasioi" - }, - "kyj": { - "english_name": "Karao" - }, - "tge": { - "english_name": "Tamang, Eastern Gorkha" - }, - "nou": { - "english_name": "Ewage-Notu" - }, - "ixl": { - "english_name": "Ixil" - }, - "llq": { - "english_name": "Lolak" - }, - "dtt": { - "english_name": "Dogon, Toro Tegu" - }, - "hms": { - "english_name": "Miao, Southern Qiandong" - }, - "lrg": { - "english_name": "Laragia" - }, - "nbv": { - "english_name": "Ngamambo" - }, - "skj": { - "english_name": "Seke (Nepal)" - }, - "frq": { - "english_name": "Forak" - }, - "kqs": { - "english_name": "Kissi, Northern" - }, - "fan": { - "english_name": "Fang (Equatorial Guinea)" - }, - "nhf": { - "english_name": "Nhuwala" - }, - "eth": { - "english_name": "Ethiopian Sign Language" - }, - "swm": { - "english_name": "Samosa" - }, - "ywl": { - "english_name": "Lalu, Western" - }, - "mpt": { - "english_name": "Mian" - }, - "dv": { - "english_name": "Dhivehi" - }, - "orw": { - "english_name": "Oro Win" - }, - "mlh": { - "english_name": "Mape" - }, - "xcu": { - "english_name": "Curonian" - }, - "nin": { - "english_name": "Ninzo" - }, - "cen": { - "english_name": "Cen" - }, - "dam": { - "english_name": "Damakawa" - }, - "jrt": { - "english_name": "Jorto" - }, - "wok": { - "english_name": "Longto" - }, - "mmw": { - "english_name": "Emae" - }, - "bfu": { - "english_name": "Gahri" - }, - "beh": { - "english_name": "Biali" - }, - "kbj": { - "english_name": "Kari" - }, - "ksu": { - "english_name": "Khamyang" - }, - "mxp": { - "english_name": "Mixe, Tlahuitoltepec" - }, - "ygp": { - "english_name": "Gepo" - }, - "he": { - "english_name": "Hebrew", - "name": "עברית" - }, - "inh": { - "english_name": "Ingush" - }, - "phk": { - "english_name": "Phake" - }, - "sgc": { - "english_name": "Kipsigis" - }, - "noi": { - "english_name": "Noiri" - }, - "xbm": { - "english_name": "Breton, Middle" - }, - "krn": { - "english_name": "Sapo" - }, - "pbo": { - "english_name": "Papel" - }, - "nli": { - "english_name": "Grangali" - }, - "frm": { - "english_name": "French, Middle (ca. 1400-1600)" - }, - "urr": { - "english_name": "Lehalurup" - }, - "zkg": { - "english_name": "Koguryo" - }, - "xpu": { - "english_name": "Punic" - }, - "pie": { - "english_name": "Piro" - }, - "pfe": { - "english_name": "Peere" - }, - "ral": { - "english_name": "Ralte" - }, - "luj": { - "english_name": "Luna" - }, - "wiy": { - "english_name": "Wiyot" - }, - "tpo": { - "english_name": "Tai Pao" - }, - "sjl": { - "english_name": "Sajalong" - }, - "nix": { - "english_name": "Hema" - }, - "axg": { - "english_name": "Arára, Mato Grosso" - }, - "kve": { - "english_name": "Kalabakan" - }, - "lor": { - "english_name": "Téén" - }, - "goq": { - "english_name": "Gorap" - }, - "ted": { - "english_name": "Krumen, Tepo" - }, - "ddj": { - "english_name": "Jaru" - }, - "ayy": { - "english_name": "Ayta, Tayabas" - }, - "tno": { - "english_name": "Toromono" - }, - "bkp": { - "english_name": "Boko (Democratic Republic of Congo)" - }, - "mqi": { - "english_name": "Mariri" - }, - "kdp": { - "english_name": "Kaningdon-Nindem" - }, - "pac": { - "english_name": "Pacoh" - }, - "cfg": { - "english_name": "Como Karim" - }, - "huc": { - "english_name": "=/Hua" - }, - "mgk": { - "english_name": "Mawes" - }, - "xtl": { - "english_name": "Mixtec, Tijaltepec" - }, - "bjz": { - "english_name": "Baruga" - }, - "xkx": { - "english_name": "Karore" - }, - "svr": { - "english_name": "Savara" - }, - "mwe": { - "english_name": "Mwera (Chimwera)" - }, - "dji": { - "english_name": "Djinang" - }, - "kl": { - "english_name": "Kalaallisut" - }, - "kjs": { - "english_name": "Kewa, East" - }, - "nki": { - "english_name": "Naga, Thangal" - }, - "twb": { - "english_name": "Tawbuid, Western" - }, - "sqq": { - "english_name": "Sou" - }, - "nso": { - "english_name": "Pedi", - "name": "Pedi" - }, - "kzb": { - "english_name": "Kaibobo" - }, - "lto": { - "english_name": "Tsotso" - }, - "weu": { - "english_name": "Chin, Rawngtu" - }, - "bft": { - "english_name": "Balti" - }, - "lax": { - "english_name": "Tiwa" - }, - "jgb": { - "english_name": "Ngbee" - }, - "hbb": { - "english_name": "Huba" - }, - "yra": { - "english_name": "Yerakai" - }, - "rac": { - "english_name": "Rasawa" - }, - "ctg": { - "english_name": "Chittagonian" - }, - "tvl": { - "english_name": "Tuvalu" - }, - "kpt": { - "english_name": "Karata" - }, - "bhv": { - "english_name": "Bahau" - }, - "pbs": { - "english_name": "Pame, Central" - }, - "lce": { - "english_name": "Loncong" - }, - "myy": { - "english_name": "Macuna" - }, - "awr": { - "english_name": "Awera" - }, - "brv": { - "english_name": "Bru, Western" - }, - "bio": { - "english_name": "Nai" - }, - "shd": { - "english_name": "Kundal Shahi" - }, - "zmf": { - "english_name": "Mfinu" - }, - "aoa": { - "english_name": "Angolar" - }, - "ats": { - "english_name": "Gros Ventre" - }, - "doz": { - "english_name": "Dorze" - }, - "acn": { - "english_name": "Achang" - }, - "smn": { - "english_name": "Sami, Inari" - }, - "pwb": { - "english_name": "Panawa" - }, - "xfa": { - "english_name": "Faliscan" - }, - "tjm": { - "english_name": "Timucua" - }, - "wtk": { - "english_name": "Watakataui" - }, - "bzf": { - "english_name": "Boikin" - }, - "sfb": { - "english_name": "Langue des signes de Belgique Francophone" - }, - "clw": { - "english_name": "Chulym" - }, - "mum": { - "english_name": "Maiwala" - }, - "ksa": { - "english_name": "Shuwa-Zamani" - }, - "bcj": { - "english_name": "Bardi" - }, - "pto": { - "english_name": "Zo'é" - }, - "jgk": { - "english_name": "Gwak" - }, - "ncu": { - "english_name": "Chumburung" - }, - "usi": { - "english_name": "Usui" - }, - "nhd": { - "english_name": "Chiripá" - }, - "wiv": { - "english_name": "Vitu" - }, - "mkb": { - "english_name": "Mal Paharia" - }, - "atm": { - "english_name": "Ata" - }, - "wrw": { - "english_name": "Gugu Warra" - }, - "tkt": { - "english_name": "Tharu, Kathoriya" - }, - "msk": { - "english_name": "Mansaka" - }, - "oke": { - "english_name": "Okpe (Southwestern Edo)" - }, - "nun": { - "english_name": "Anong" - }, - "ajp": { - "english_name": "Arabic, South Levantine" - }, - "bov": { - "english_name": "Tuwuli" - }, - "xub": { - "english_name": "Kurumba, Betta" - }, - "yby": { - "english_name": "Yaweyuha" - }, - "toj": { - "english_name": "Tojolabal" - }, - "nyf": { - "english_name": "Giryama" - }, - "xhv": { - "english_name": "Khua" - }, - "koo": { - "english_name": "Konzo" - }, - "nhv": { - "english_name": "Nahuatl, Temascaltepec" - }, - "jrb": { - "english_name": "Judeo-Arabic" - }, - "bgq": { - "english_name": "Bagri" - }, - "quc": { - "english_name": "K'iche'" - }, - "kqj": { - "english_name": "Koromira" - }, - "ved": { - "english_name": "Veddah" - }, - "mwa": { - "english_name": "Mwatebu" - }, - "mxz": { - "english_name": "Masela, Central" - }, - "ojb": { - "english_name": "Ojibwa, Northwestern" - }, - "dmu": { - "english_name": "Dubu" - }, - "zkd": { - "english_name": "Kadu" - }, - "vas": { - "english_name": "Vasavi" - }, - "pom": { - "english_name": "Pomo, Southeastern" - }, - "cte": { - "english_name": "Chinantec, Tepinapa" - }, - "aby": { - "english_name": "Aneme Wake" - }, - "mkk": { - "english_name": "Byep" - }, - "dak": { - "english_name": "Dakota" - }, - "swx": { - "english_name": "Suruahá" - }, - "xas": { - "english_name": "Kamas" - }, - "rei": { - "english_name": "Reli" - }, - "taj": { - "english_name": "Tamang, Eastern" - }, - "zma": { - "english_name": "Manda (Australia)" - }, - "nri": { - "english_name": "Naga, Chokri" - }, - "sqt": { - "english_name": "Soqotri" - }, - "gag": { - "english_name": "Gagauz" - }, - "oda": { - "english_name": "Odut" - }, - "lsl": { - "english_name": "Latvian Sign Language" - }, - "bzn": { - "english_name": "Boano (Maluku)" - }, - "blb": { - "english_name": "Bilua" - }, - "fuj": { - "english_name": "Ko" - }, - "mkg": { - "english_name": "Mak (China)" - }, - "yea": { - "english_name": "Ravula" - }, - "ybe": { - "english_name": "Yugur, West" - }, - "czn": { - "english_name": "Chatino, Zenzontepec" - }, - "qxp": { - "english_name": "Quechua, Puno" - }, - "mrv": { - "english_name": "Mangareva" - }, - "bfj": { - "english_name": "Bafanji" - }, - "bkr": { - "english_name": "Bakumpai" - }, - "bwc": { - "english_name": "Bwile" - }, - "dgt": { - "english_name": "Ndra'ngith" - }, - "kbz": { - "english_name": "Duhwa" - }, - "mts": { - "english_name": "Yora" - }, - "vrs": { - "english_name": "Varisi" - }, - "gqi": { - "english_name": "Guiqiong" - }, - "rn": { - "english_name": "Rundi" - }, - "oka": { - "english_name": "Okanagan" - }, - "jmc": { - "english_name": "Machame" - }, - "lur": { - "english_name": "Laura" - }, - "bcb": { - "english_name": "Bainouk-Samik" - }, - "pui": { - "english_name": "Puinave" - }, - "nnm": { - "english_name": "Namia" - }, - "kov": { - "english_name": "Kudu-Camo" - }, - "ycp": { - "english_name": "Chepya" - }, - "yah": { - "english_name": "Yazgulyam" - }, - "ifm": { - "english_name": "Teke-Fuumu" - }, - "agx": { - "english_name": "Aghul" - }, - "omo": { - "english_name": "Utarmbung" - }, - "nnc": { - "english_name": "Nancere" - }, - "bys": { - "english_name": "Burak" - }, - "str": { - "english_name": "Salish, Straits" - }, - "oco": { - "english_name": "Cornish, Old" - }, - "prn": { - "english_name": "Prasuni" - }, - "wmb": { - "english_name": "Wambaya" - }, - "cdz": { - "english_name": "Koda" - }, - "mif": { - "english_name": "Mofu-Gudur" - }, - "bta": { - "english_name": "Bata" - }, - "lpa": { - "english_name": "Lelepa" - }, - "csj": { - "english_name": "Chin, Songlai" - }, - "kum": { - "english_name": "Kumyk" - }, - "app": { - "english_name": "Apma" - }, - "kse": { - "english_name": "Kuni" - }, - "mag": { - "english_name": "Magahi" - }, - "yua": { - "english_name": "Yucateco" - }, - "sbd": { - "english_name": "Samo, Southern" - }, - "mpb": { - "english_name": "Mullukmulluk" - }, - "xwr": { - "english_name": "Kwerba Mamberamo" - }, - "ahr": { - "english_name": "Ahirani" - }, - "rmp": { - "english_name": "Rempi" - }, - "veo": { - "english_name": "Ventureño" - }, - "eit": { - "english_name": "Eitiep" - }, - "apy": { - "english_name": "Apalaí" - }, - "pbf": { - "english_name": "Popoloca, Coyotepec" - }, - "tbz": { - "english_name": "Ditammari" - }, - "rim": { - "english_name": "Nyaturu" - }, - "mpq": { - "english_name": "Matís" - }, - "yda": { - "english_name": "Yanda" - }, - "ist": { - "english_name": "Istriot" - }, - "mxt": { - "english_name": "Mixtec, Jamiltepec" - }, - "swg": { - "english_name": "Swabian" - }, - "bwd": { - "english_name": "Bwaidoka" - }, - "zgm": { - "english_name": "Zhuang, Minz" - }, - "ysp": { - "english_name": "Lolopo, Southern" - }, - "ksc": { - "english_name": "Kalinga, Southern" - }, - "xkh": { - "english_name": "Karahawyana" - }, - "tfo": { - "english_name": "Tefaro" - }, - "rmu": { - "english_name": "Romani, Tavringer" - }, - "xjb": { - "english_name": "Minjungbal" - }, - "tbd": { - "english_name": "Kaki Ae" - }, - "kyb": { - "english_name": "Kalinga, Butbut" - }, - "doc": { - "english_name": "Dong, Northern" - }, - "rsi": { - "english_name": "Rennellese Sign Language" - }, - "otn": { - "english_name": "Otomi, Tenango" - }, - "nwg": { - "english_name": "Ngayawung" - }, - "xdy": { - "english_name": "Dayak, Malayic" - }, - "njx": { - "english_name": "Kunyi" - }, - "sxc": { - "english_name": "Sicanian" - }, - "aoe": { - "english_name": "Angal Enen" - }, - "gdh": { - "english_name": "Gadjerawang" - }, - "tn": { - "english_name": "Tswana" - }, - "pnh": { - "english_name": "Penrhyn" - }, - "mvv": { - "english_name": "Murut, Tagal" - }, - "kvf": { - "english_name": "Kabalai" - }, - "etb": { - "english_name": "Etebi" - }, - "sel": { - "english_name": "Selkup" - }, - "tcu": { - "english_name": "Tarahumara, Southeastern" - }, - "bjp": { - "english_name": "Fanamaket" - }, - "aft": { - "english_name": "Afitti" - }, - "kje": { - "english_name": "Kisar" - }, - "xud": { - "english_name": "Umiida" - }, - "yac": { - "english_name": "Yali, Pass Valley" - }, - "amz": { - "english_name": "Atampaya" - }, - "ekk": { - "english_name": "Estonian, Standard" - }, - "npl": { - "english_name": "Nahuatl, Southeastern Puebla" - }, - "bjy": { - "english_name": "Bayali" - }, - "xai": { - "english_name": "Kaimbé" - }, - "mxg": { - "english_name": "Mbangala" - }, - "jac": { - "english_name": "Popti'" - }, - "luu": { - "english_name": "Lumba-Yakkha" - }, - "cko": { - "english_name": "Anufo" - }, - "kxl": { - "english_name": "Kurux, Nepali" - }, - "mtt": { - "english_name": "Mota" - }, - "tgp": { - "english_name": "Tangoa" - }, - "oti": { - "english_name": "Oti" - }, - "bqq": { - "english_name": "Biritai" - }, - "sur": { - "english_name": "Mwaghavul" - }, - "nus": { - "english_name": "Nuer" - }, - "miu": { - "english_name": "Mixtec, Cacaloxtepec" - }, - "gel": { - "english_name": "ut-Ma'in" - }, - "yij": { - "english_name": "Yindjibarndi" - }, - "ypo": { - "english_name": "Phola, Alo" - }, - "mxj": { - "english_name": "Miju-Mishmi" - }, - "jni": { - "english_name": "Janji" - }, - "mwv": { - "english_name": "Mentawai" - }, - "ncb": { - "english_name": "Nicobarese, Central" - }, - "wwr": { - "english_name": "Warrwa" - }, - "scg": { - "english_name": "Sanggau" - }, - "ncm": { - "english_name": "Nambo" - }, - "ari": { - "english_name": "Arikara" - }, - "lmo": { - "english_name": "Lombard" - }, - "ibl": { - "english_name": "Ibaloi" - }, - "yil": { - "english_name": "Yindjilandji" - }, - "tls": { - "english_name": "Tambotalo" - }, - "lcm": { - "english_name": "Tungag" - }, - "xeg": { - "english_name": "//Xegwi" - }, - "zak": { - "english_name": "Zanaki" - }, - "izz": { - "english_name": "Izii" - }, - "wnm": { - "english_name": "Wanggamala" - }, - "mda": { - "english_name": "Mada (Nigeria)" - }, - "nuu": { - "english_name": "Ngbundu" - }, - "sri": { - "english_name": "Siriano" - }, - "ahn": { - "english_name": "Àhàn" - }, - "myb": { - "english_name": "Mbay" - }, - "acs": { - "english_name": "Acroá" - }, - "bld": { - "english_name": "Bolango" - }, - "boi": { - "english_name": "Barbareño" - }, - "nef": { - "english_name": "Nefamese" - }, - "cu": { - "english_name": "Slavic, Church" - }, - "kpa": { - "english_name": "Kutto" - }, - "kfj": { - "english_name": "Kemiehua" - }, - "nyr": { - "english_name": "Nyiha (Malawi)" - }, - "tou": { - "english_name": "Tho" - }, - "ssx": { - "english_name": "Samberigi" - }, - "myh": { - "english_name": "Makah" - }, - "vsl": { - "english_name": "Venezuelan Sign Language" - }, - "atq": { - "english_name": "Aralle-Tabulahan" - }, - "kuc": { - "english_name": "Kwinsu" - }, - "pid": { - "english_name": "Piaroa" - }, - "emy": { - "english_name": "Mayan, Epigraphic" - }, - "kxx": { - "english_name": "Likuba" - }, - "hik": { - "english_name": "Seit-Kaitetu" - }, - "kmp": { - "english_name": "Gimme" - }, - "ljl": { - "english_name": "Li'o" - }, - "syi": { - "english_name": "Seki" - }, - "bxv": { - "english_name": "Berakou" - }, - "cjs": { - "english_name": "Shor" - }, - "hhr": { - "english_name": "Kerak" - }, - "apl": { - "english_name": "Apache, Lipan" - }, - "vmi": { - "english_name": "Miwa" - }, - "oia": { - "english_name": "Oirata" - }, - "ihp": { - "english_name": "Iha" - }, - "ssf": { - "english_name": "Thao" - }, - "gn": { - "english_name": "Guarani" - }, - "yiq": { - "english_name": "Miqie" - }, - "cdy": { - "english_name": "Chadong" - }, - "hbn": { - "english_name": "Heiban" - }, - "efi": { - "english_name": "Efik" - }, - "new": { - "english_name": "Newari" - }, - "tlv": { - "english_name": "Taliabu" - }, - "zka": { - "english_name": "Kaimbulawa" - }, - "sbk": { - "english_name": "Safwa" - }, - "dtd": { - "english_name": "Ditidaht" - }, - "ggg": { - "english_name": "Gurgula" - }, - "ncg": { - "english_name": "Nisga'a" - }, - "pgl": { - "english_name": "Irish, Primitive" - }, - "tsz": { - "english_name": "Purepecha" - }, - "tlf": { - "english_name": "Telefol" - }, - "nke": { - "english_name": "Duke" - }, - "daw": { - "english_name": "Davawenyo" - }, - "xrg": { - "english_name": "Minang" - }, - "nco": { - "english_name": "Sibe" - }, - "jui": { - "english_name": "Ngadjuri" - }, - "ng": { - "english_name": "Ndonga" - }, - "zoh": { - "english_name": "Zoque, Chimalapa" - }, - "mjg": { - "english_name": "Tu" - }, - "ur": { - "english_name": "Urdu" - }, - "kli": { - "english_name": "Kalumpang" - }, - "atz": { - "english_name": "Arta" - }, - "cic": { - "english_name": "Chickasaw" - }, - "lmb": { - "english_name": "Merei" - }, - "ecs": { - "english_name": "Ecuadorian Sign Language" - }, - "ywq": { - "english_name": "Yi, Wuding-Luquan" - }, - "lri": { - "english_name": "Marachi" - }, - "xvs": { - "english_name": "Vestinian" - }, - "mwx": { - "english_name": "Mediak" - }, - "haa": { - "english_name": "Han" - }, - "iru": { - "english_name": "Irula" - }, - "gbu": { - "english_name": "Gagadu" - }, - "bzd": { - "english_name": "Bribri" - }, - "xip": { - "english_name": "Xipináwa" - }, - "jnj": { - "english_name": "Yemsa" - }, - "bmt": { - "english_name": "Biao Mon" - }, - "tli": { - "english_name": "Tlingit" - }, - "pcp": { - "english_name": "Pacahuara" - }, - "rma": { - "english_name": "Rama" - }, - "kdf": { - "english_name": "Mamusi" - }, - "bga": { - "english_name": "Gwamhi-Wuri" - }, - "jns": { - "english_name": "Jaunsari" - }, - "apx": { - "english_name": "Aputai" - }, - "dbg": { - "english_name": "Dogon, Dogul Dom" - }, - "nii": { - "english_name": "Nii" - }, - "aip": { - "english_name": "Burumakok" - }, - "swk": { - "english_name": "Sena, Malawi" - }, - "koc": { - "english_name": "Kpati" - }, - "clk": { - "english_name": "Idu-Mishmi" - }, - "lcd": { - "english_name": "Lola" - }, - "msz": { - "english_name": "Momare" - }, - "baf": { - "english_name": "Nubaca" - }, - "too": { - "english_name": "Totonac, Xicotepec De Juárez" - }, - "gej": { - "english_name": "Gen" - }, - "tcw": { - "english_name": "Totonac, Tecpatlán" - }, - "xns": { - "english_name": "Kanashi" - }, - "dje": { - "english_name": "Zarma" - }, - "skb": { - "english_name": "Saek" - }, - "erg": { - "english_name": "Sie" - }, - "xod": { - "english_name": "Kokoda" - }, - "abv": { - "english_name": "Arabic, Baharna" - }, - "iqw": { - "english_name": "Ikwo" - }, - "nmu": { - "english_name": "Maidu, Northeast" - }, - "pkc": { - "english_name": "Paekche" - }, - "nop": { - "english_name": "Numanggang" - }, - "mkl": { - "english_name": "Mokole" - }, - "blc": { - "english_name": "Bella Coola" - }, - "bgu": { - "english_name": "Mbongno" - }, - "mqm": { - "english_name": "Marquesan, South" - }, - "gwg": { - "english_name": "Moo" - }, - "kzy": { - "english_name": "Kango (Tshopo District)" - }, - "ywr": { - "english_name": "Yawuru" - }, - "osc": { - "english_name": "Oscan" - }, - "khy": { - "english_name": "Kele (Democratic Republic of Congo)" - }, - "kef": { - "english_name": "Kpessi" - }, - "kwv": { - "english_name": "Sara Kaba Náà" - }, - "svx": { - "english_name": "Skalvian" - }, - "rwm": { - "english_name": "Amba (Uganda)" - }, - "sdf": { - "english_name": "Sarli" - }, - "wtm": { - "english_name": "Mewati" - }, - "ikt": { - "english_name": "Inuinnaqtun" - }, - "pdu": { - "english_name": "Kayan" - }, - "fcs": { - "english_name": "Quebec Sign Language" - }, - "ott": { - "english_name": "Otomi, Temoaya" - }, - "nyn": { - "english_name": "Nyankole" - }, - "scu": { - "english_name": "Shumcho" - }, - "pwg": { - "english_name": "Gapapaiwa" - }, - "wbp": { - "english_name": "Warlpiri" - }, - "pmk": { - "english_name": "Pamlico" - }, - "olr": { - "english_name": "Olrat" - }, - "huj": { - "english_name": "Hmong, Northern Guiyang" - }, - "cek": { - "english_name": "Chin, Eastern Khumi" - }, - "ena": { - "english_name": "Apali" - }, - "txn": { - "english_name": "Tarangan, West" - }, - "kng": { - "english_name": "Koongo" - }, - "njs": { - "english_name": "Nisa" - }, - "mes": { - "english_name": "Masmaje" - }, - "sth": { - "english_name": "Shelta" - }, - "pia": { - "english_name": "Pima Bajo" - }, - "zmn": { - "english_name": "Mbangwe" - }, - "mvn": { - "english_name": "Minaveha" - }, - "tcb": { - "english_name": "Tanacross" - }, - "mcm": { - "english_name": "Creole Portuguese, Malaccan" - }, - "umr": { - "english_name": "Umbugarla" - }, - "msv": { - "english_name": "Maslam" - }, - "xul": { - "english_name": "Ngunawal" - }, - "dop": { - "english_name": "Lukpa" - }, - "txs": { - "english_name": "Tonsea" - }, - "onp": { - "english_name": "Sartang" - }, - "yzk": { - "english_name": "Zokhuo" - }, - "ank": { - "english_name": "Goemai" - } + "aaa": { + "english_name": "Ghotuo" }, - "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" - ], - "swisscows": [], - "wikipedia": { - "nl": { - "articles": 1954031, - "english_name": "Dutch", - "name": "Nederlands" - }, - "ceb": { - "articles": 5376890, - "english_name": "Cebuano", - "name": "Sinugboanong Binisaya" - }, - "jam": { - "articles": 1632, - "english_name": "Jamaican Patois", - "name": "Jumiekan Kryuol" - }, - "crh": { - "articles": 6172, - "english_name": "Crimean Tatar", - "name": "Qırımtatarca" - }, - "st": { - "articles": 544, - "english_name": "Sesotho", - "name": "Sesotho" - }, - "id": { - "articles": 449446, - "english_name": "Indonesian", - "name": "Bahasa Indonesia" - }, - "szl": { - "articles": 7812, - "english_name": "Silesian", - "name": "Ślůnski" - }, - "zh-yue": { - "articles": 70490, - "english_name": "Cantonese", - "name": "粵語" - }, - "ca": { - "articles": 599790, - "english_name": "Catalan", - "name": "Català" - }, - "ab": { - "articles": 3452, - "english_name": "Abkhazian", - "name": "Аҧсуа" - }, - "lad": { - "articles": 3828, - "english_name": "Ladino", - "name": "Dzhudezmo" - }, - "rue": { - "articles": 6891, - "english_name": "Rusyn", - "name": "Русиньскый" - }, - "om": { - "articles": 775, - "english_name": "Oromo", - "name": "Oromoo" - }, - "azb": { - "articles": 118928, - "english_name": "South Azerbaijani", - "name": "تۆرکجه" - }, - "sr": { - "articles": 614180, - "english_name": "Serbian", - "name": "Српски / Srpski" - }, - "tg": { - "articles": 96078, - "english_name": "Tajik", - "name": "Тоҷикӣ" - }, - "ee": { - "articles": 350, - "english_name": "Ewe", - "name": "Eʋegbe" - }, - "hsb": { - "articles": 13357, - "english_name": "Upper Sorbian", - "name": "Hornjoserbsce" - }, - "pag": { - "articles": 2521, - "english_name": "Pangasinan", - "name": "Pangasinan" - }, - "tyv": { - "articles": 1738, - "english_name": "Tuvan", - "name": "Тыва" - }, - "got": { - "articles": 588, - "english_name": "Gothic", - "name": "𐌲𐌿𐍄𐌹𐍃𐌺" - }, - "ss": { - "articles": 450, - "english_name": "Swati", - "name": "SiSwati" - }, - "stq": { - "articles": 3998, - "english_name": "Saterland Frisian", - "name": "Seeltersk" - }, - "is": { - "articles": 46096, - "english_name": "Icelandic", - "name": "Íslenska" - }, - "az": { - "articles": 141672, - "english_name": "Azerbaijani", - "name": "Azərbaycanca" - }, - "vec": { - "articles": 11266, - "english_name": "Venetian", - "name": "Vèneto" - }, - "na": { - "articles": 1305, - "english_name": "Nauruan", - "name": "dorerin Naoero" - }, - "an": { - "articles": 34148, - "english_name": "Aragonese", - "name": "Aragonés" - }, - "tk": { - "articles": 5514, - "english_name": "Turkmen", - "name": "Türkmen" - }, - "zea": { - "articles": 4580, - "english_name": "Zeelandic", - "name": "Zeêuws" - }, - "la": { - "articles": 129779, - "english_name": "Latin", - "name": "Latina" - }, - "kv": { - "articles": 5308, - "english_name": "Komi", - "name": "Коми" - }, - "vo": { - "articles": 122174, - "english_name": "Volapük", - "name": "Volapük" - }, - "el": { - "articles": 157114, - "english_name": "Greek", - "name": "Ελληνικά" - }, - "hu": { - "articles": 442291, - "english_name": "Hungarian", - "name": "Magyar" - }, - "bi": { - "articles": 1179, - "english_name": "Bislama", - "name": "Bislama" - }, - "fr": { - "articles": 2070378, - "english_name": "French", - "name": "Français" - }, - "th": { - "articles": 128977, - "english_name": "Thai", - "name": "ไทย" - }, - "zh": { - "articles": 1038913, - "english_name": "Chinese", - "name": "中文" - }, - "de": { - "articles": 2256718, - "english_name": "German", - "name": "Deutsch" - }, - "pms": { - "articles": 64391, - "english_name": "Piedmontese", - "name": "Piemontèis" - }, - "gn": { - "articles": 3637, - "english_name": "Guarani", - "name": "Avañe'ẽ" - }, - "lo": { - "articles": 3101, - "english_name": "Lao", - "name": "ລາວ" - }, - "bxr": { - "articles": 2124, - "english_name": "Buryat", - "name": "Буряад" - }, - "ast": { - "articles": 99530, - "english_name": "Asturian", - "name": "Asturianu" - }, - "wo": { - "articles": 1177, - "english_name": "Wolof", - "name": "Wolof" - }, - "pap": { - "articles": 1953, - "english_name": "Papiamentu", - "name": "Papiamentu" - }, - "fa": { - "articles": 655431, - "english_name": "Persian", - "name": "فارسی" - }, - "roa-tara": { - "articles": 9243, - "english_name": "Tarantino", - "name": "Tarandíne" - }, - "af": { - "articles": 68807, - "english_name": "Afrikaans", - "name": "Afrikaans" - }, - "lbe": { - "articles": 1216, - "english_name": "Lak", - "name": "Лакку" - }, - "frp": { - "articles": 3254, - "english_name": "Franco-Provençal", - "name": "Arpitan" - }, - "mt": { - "articles": 3336, - "english_name": "Maltese", - "name": "Malti" - }, - "bcl": { - "articles": 8664, - "english_name": "Central Bicolano", - "name": "Bikol" - }, - "bh": { - "articles": 6686, - "english_name": "Bihari", - "name": "भोजपुरी" - }, - "csb": { - "articles": 5258, - "english_name": "Kashubian", - "name": "Kaszëbsczi" - }, - "scn": { - "articles": 26060, - "english_name": "Sicilian", - "name": "Sicilianu" - }, - "sw": { - "articles": 47744, - "english_name": "Swahili", - "name": "Kiswahili" - }, - "kw": { - "articles": 3839, - "english_name": "Cornish", - "name": "Kernewek/Karnuack" - }, - "lrc": { - "articles": 5357, - "english_name": "Northern Luri", - "name": "لۊری شومالی" - }, - "wa": { - "articles": 14790, - "english_name": "Walloon", - "name": "Walon" - }, - "arz": { - "articles": 20166, - "english_name": "Egyptian Arabic", - "name": "مصرى (Maṣri)" - }, - "pfl": { - "articles": 2502, - "english_name": "Palatinate German", - "name": "Pälzisch" - }, - "tt": { - "articles": 82594, - "english_name": "Tatar", - "name": "Tatarça / Татарча" - }, - "ks": { - "articles": 324, - "english_name": "Kashmiri", - "name": "कश्मीरी / كشميري" - }, - "srn": { - "articles": 1061, - "english_name": "Sranan", - "name": "Sranantongo" - }, - "lfn": { - "articles": 3083, - "english_name": "Lingua Franca Nova", - "name": "Lingua franca nova" - }, - "kbd": { - "articles": 1578, - "english_name": "Kabardian Circassian", - "name": "Адыгэбзэ (Adighabze)" - }, - "simple": { - "articles": 141947, - "english_name": "Simple English", - "name": "Simple English" - }, - "sc": { - "articles": 5907, - "english_name": "Sardinian", - "name": "Sardu" - }, - "ta": { - "articles": 119140, - "english_name": "Tamil", - "name": "தமிழ்" - }, - "lg": { - "articles": 1155, - "english_name": "Luganda", - "name": "Luganda" - }, - "ckb": { - "articles": 22870, - "english_name": "Sorani", - "name": "Soranî / کوردی" - }, - "ht": { - "articles": 54219, - "english_name": "Haitian", - "name": "Krèyol ayisyen" - }, - "ve": { - "articles": 265, - "english_name": "Venda", - "name": "Tshivenda" - }, - "nds": { - "articles": 41178, - "english_name": "Low Saxon", - "name": "Plattdüütsch" - }, - "km": { - "articles": 7105, - "english_name": "Khmer", - "name": "ភាសាខ្មែរ" - }, - "ay": { - "articles": 4402, - "english_name": "Aymara", - "name": "Aymar" - }, - "mg": { - "articles": 90635, - "english_name": "Malagasy", - "name": "Malagasy" - }, - "frr": { - "articles": 8460, - "english_name": "North Frisian", - "name": "Nordfriisk" - }, - "zh-classical": { - "articles": 8663, - "english_name": "Classical Chinese", - "name": "古文 / 文言文" - }, - "ny": { - "articles": 487, - "english_name": "Chichewa", - "name": "Chichewa" - }, - "eo": { - "articles": 253490, - "english_name": "Esperanto", - "name": "Esperanto" - }, - "dty": { - "articles": 2967, - "english_name": "Doteli", - "name": "डोटेली" - }, - "ki": { - "articles": 1358, - "english_name": "Kikuyu", - "name": "Gĩkũyũ" - }, - "ko": { - "articles": 438644, - "english_name": "Korean", - "name": "한국어" - }, - "ig": { - "articles": 1376, - "english_name": "Igbo", - "name": "Igbo" - }, - "sah": { - "articles": 11943, - "english_name": "Sakha", - "name": "Саха тыла (Saxa Tyla)" - }, - "ar": { - "articles": 656175, - "english_name": "Arabic", - "name": "العربية" - }, - "mk": { - "articles": 98050, - "english_name": "Macedonian", - "name": "Македонски" - }, - "ff": { - "articles": 228, - "english_name": "Fula", - "name": "Fulfulde" - }, - "he": { - "articles": 236237, - "english_name": "Hebrew", - "name": "עברית" - }, - "inh": { - "articles": 791, - "english_name": "Ingush", - "name": "Гӏалгӏай" - }, - "av": { - "articles": 2309, - "english_name": "Avar", - "name": "Авар" - }, - "mai": { - "articles": 13164, - "english_name": "Maithili", - "name": "मैथिली" - }, - "zu": { - "articles": 1050, - "english_name": "Zulu", - "name": "isiZulu" - }, - "eml": { - "articles": 11866, - "english_name": "Emilian-Romagnol", - "name": "Emiliàn e rumagnòl" - }, - "ti": { - "articles": 168, - "english_name": "Tigrinya", - "name": "ትግርኛ" - }, - "lmo": { - "articles": 38071, - "english_name": "Lombard", - "name": "Lumbaart" - }, - "et": { - "articles": 185271, - "english_name": "Estonian", - "name": "Eesti" - }, - "myv": { - "articles": 5415, - "english_name": "Erzya", - "name": "Эрзянь (Erzjanj Kelj)" - }, - "si": { - "articles": 14918, - "english_name": "Sinhalese", - "name": "සිංහල" - }, - "ln": { - "articles": 3049, - "english_name": "Lingala", - "name": "Lingala" - }, - "shn": { - "articles": 3239, - "english_name": "ၽႃႇသႃႇတႆး ", - "name": "Shan" - }, - "sh": { - "articles": 447497, - "english_name": "Serbo-Croatian", - "name": "Srpskohrvatski / Српскохрватски" - }, - "it": { - "articles": 1491690, - "english_name": "Italian", - "name": "Italiano" - }, - "pam": { - "articles": 8825, - "english_name": "Kapampangan", - "name": "Kapampangan" - }, - "fy": { - "articles": 41308, - "english_name": "West Frisian", - "name": "Frysk" - }, - "ha": { - "articles": 2740, - "english_name": "Hausa", - "name": "Hausa / هَوُسَ" - }, - "diq": { - "articles": 9107, - "english_name": "Zazaki", - "name": "Zazaki" - }, - "ty": { - "articles": 1199, - "english_name": "Tahitian", - "name": "Reo Mā`ohi" - }, - "sa": { - "articles": 11357, - "english_name": "Sanskrit", - "name": "संस्कृतम्" - }, - "ku": { - "articles": 24022, - "english_name": "Kurdish", - "name": "Kurdî / كوردی" - }, - "io": { - "articles": 28134, - "english_name": "Ido", - "name": "Ido" - }, - "bjn": { - "articles": 1918, - "english_name": "Banjar", - "name": "Bahasa Banjar" - }, - "mwl": { - "articles": 3674, - "english_name": "Mirandese", - "name": "Mirandés" - }, - "se": { - "articles": 7464, - "english_name": "Northern Sami", - "name": "Sámegiella" - }, - "tet": { - "articles": 1440, - "english_name": "Tetum", - "name": "Tetun" - }, - "gom": { - "articles": 3598, - "english_name": "Goan Konkani", - "name": "गोंयची कोंकणी / Gõychi Konknni" - }, - "lij": { - "articles": 3456, - "english_name": "Ligurian", - "name": "Líguru" - }, - "ga": { - "articles": 49639, - "english_name": "Irish", - "name": "Gaeilge" - }, - "roa-rup": { - "articles": 1216, - "english_name": "Aromanian", - "name": "Armãneashce" - }, - "pdc": { - "articles": 1858, - "english_name": "Pennsylvania German", - "name": "Deitsch" - }, - "cs": { - "articles": 419392, - "english_name": "Czech", - "name": "Čeština" - }, - "uz": { - "articles": 130227, - "english_name": "Uzbek", - "name": "O‘zbek" - }, - "ch": { - "articles": 472, - "english_name": "Chamorro", - "name": "Chamoru" - }, - "rn": { - "articles": 609, - "english_name": "Kirundi", - "name": "Kirundi" - }, - "or": { - "articles": 14550, - "english_name": "Oriya", - "name": "ଓଡ଼ିଆ" - }, - "gl": { - "articles": 153607, - "english_name": "Galician", - "name": "Galego" - }, - "atj": { - "articles": 626, - "english_name": "Atikamekw", - "name": "Atikamekw" - }, - "pi": { - "articles": 2535, - "english_name": "Pali", - "name": "पाऴि" - }, - "fur": { - "articles": 3289, - "english_name": "Friulian", - "name": "Furlan" - }, - "li": { - "articles": 12316, - "english_name": "Limburgish", - "name": "Limburgs" - }, - "yi": { - "articles": 14571, - "english_name": "Yiddish", - "name": "ייִדיש" - }, - "lv": { - "articles": 90266, - "english_name": "Latvian", - "name": "Latviešu" - }, - "ro": { - "articles": 390804, - "english_name": "Romanian", - "name": "Română" - }, - "bm": { - "articles": 651, - "english_name": "Bambara", - "name": "Bamanankan" - }, - "ja": { - "articles": 1134685, - "english_name": "Japanese", - "name": "日本語" - }, - "cy": { - "articles": 102137, - "english_name": "Welsh", - "name": "Cymraeg" - }, - "wuu": { - "articles": 16289, - "english_name": "Wu", - "name": "吴语" - }, - "cv": { - "articles": 41622, - "english_name": "Chuvash", - "name": "Чăваш" - }, - "ady": { - "articles": 411, - "english_name": "Adyghe", - "name": "Адыгэбзэ" - }, - "min": { - "articles": 222492, - "english_name": "Minangkabau", - "name": "Minangkabau" - }, - "be-tarask": { - "articles": 65655, - "english_name": "Belarusian (Taraškievica)", - "name": "Беларуская (тарашкевіца)" - }, - "kl": { - "articles": 1663, - "english_name": "Greenlandic", - "name": "Kalaallisut" - }, - "am": { - "articles": 14482, - "english_name": "Amharic", - "name": "አማርኛ" - }, - "ie": { - "articles": 4303, - "english_name": "Interlingue", - "name": "Interlingue" - }, - "sn": { - "articles": 4227, - "english_name": "Shona", - "name": "chiShona" - }, - "pnb": { - "articles": 47107, - "english_name": "Western Punjabi", - "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)" - }, - "sm": { - "articles": 801, - "english_name": "Samoan", - "name": "Gagana Samoa" - }, - "hak": { - "articles": 8894, - "english_name": "Hakka", - "name": "Hak-kâ-fa / 客家話" - }, - "nso": { - "articles": 8094, - "english_name": "Northern Sotho", - "name": "Sepedi" - }, - "fj": { - "articles": 425, - "english_name": "Fijian", - "name": "Na Vosa Vakaviti" - }, - "da": { - "articles": 242006, - "english_name": "Danish", - "name": "Dansk" - }, - "ky": { - "articles": 79376, - "english_name": "Kirghiz", - "name": "Кыргызча" - }, - "to": { - "articles": 1693, - "english_name": "Tongan", - "name": "faka Tonga" - }, - "udm": { - "articles": 4565, - "english_name": "Udmurt", - "name": "Удмурт кыл" - }, - "nds-nl": { - "articles": 6812, - "english_name": "Dutch Low Saxon", - "name": "Nedersaksisch" - }, - "kaa": { - "articles": 1910, - "english_name": "Karakalpak", - "name": "Qaraqalpaqsha" - }, - "as": { - "articles": 5141, - "english_name": "Assamese", - "name": "অসমীয়া" - }, - "sg": { - "articles": 258, - "english_name": "Sango", - "name": "Sängö" - }, - "ik": { - "articles": 262, - "english_name": "Inupiak", - "name": "Iñupiak" - }, - "gd": { - "articles": 14774, - "english_name": "Scottish Gaelic", - "name": "Gàidhlig" - }, - "tpi": { - "articles": 1486, - "english_name": "Tok Pisin", - "name": "Tok Pisin" - }, - "lez": { - "articles": 3963, - "english_name": "Lezgian", - "name": "Лезги чІал (Lezgi č’al)" - }, - "new": { - "articles": 72212, - "english_name": "Newar", - "name": "नेपाल भाषा" - }, - "kg": { - "articles": 1184, - "english_name": "Kongo", - "name": "KiKongo" - }, - "cdo": { - "articles": 14111, - "english_name": "Min Dong", - "name": "Mìng-dĕ̤ng-ngṳ̄" - }, - "oc": { - "articles": 85227, - "english_name": "Occitan", - "name": "Occitan" - }, - "nap": { - "articles": 14576, - "english_name": "Neapolitan", - "name": "Nnapulitano" - }, - "be": { - "articles": 160751, - "english_name": "Belarusian", - "name": "Беларуская" - }, - "kk": { - "articles": 223486, - "english_name": "Kazakh", - "name": "Қазақша" - }, - "bs": { - "articles": 79235, - "english_name": "Bosnian", - "name": "Bosanski" - }, - "bug": { - "articles": 14121, - "english_name": "Buginese", - "name": "Basa Ugi" - }, - "sq": { - "articles": 75615, - "english_name": "Albanian", - "name": "Shqip" - }, - "mhr": { - "articles": 10046, - "english_name": "Meadow Mari", - "name": "Олык Марий (Olyk Marij)" - }, - "eu": { - "articles": 309974, - "english_name": "Basque", - "name": "Euskara" - }, - "ka": { - "articles": 126147, - "english_name": "Georgian", - "name": "ქართული" - }, - "ba": { - "articles": 46046, - "english_name": "Bashkir", - "name": "Башҡорт" - }, - "hi": { - "articles": 128996, - "english_name": "Hindi", - "name": "हिन्दी" - }, - "rw": { - "articles": 1822, - "english_name": "Kinyarwanda", - "name": "Ikinyarwanda" - }, - "pnt": { - "articles": 462, - "english_name": "Pontic", - "name": "Ποντιακά" - }, - "kab": { - "articles": 2860, - "english_name": "Kabyle", - "name": "Taqbaylit" - }, - "nv": { - "articles": 6991, - "english_name": "Navajo", - "name": "Diné bizaad" - }, - "mrj": { - "articles": 10269, - "english_name": "Hill Mari", - "name": "Кырык Мары (Kyryk Mary)" - }, - "mn": { - "articles": 18356, - "english_name": "Mongolian", - "name": "Монгол" - }, - "ang": { - "articles": 3077, - "english_name": "Anglo-Saxon", - "name": "Englisc" - }, - "tw": { - "articles": 657, - "english_name": "Twi", - "name": "Twi" - }, - "ur": { - "articles": 142712, - "english_name": "Urdu", - "name": "اردو" - }, - "tn": { - "articles": 640, - "english_name": "Tswana", - "name": "Setswana" - }, - "krc": { - "articles": 2028, - "english_name": "Karachay-Balkar", - "name": "Къарачай-Малкъар (Qarachay-Malqar)" - }, - "sk": { - "articles": 228015, - "english_name": "Slovak", - "name": "Slovenčina" - }, - "sv": { - "articles": 3760984, - "english_name": "Swedish", - "name": "Svenska" - }, - "pl": { - "articles": 1314525, - "english_name": "Polish", - "name": "Polski" - }, - "uk": { - "articles": 878251, - "english_name": "Ukrainian", - "name": "Українська" - }, - "pt": { - "articles": 1014081, - "english_name": "Portuguese", - "name": "Português" - }, - "xal": { - "articles": 2075, - "english_name": "Kalmyk", - "name": "Хальмг" - }, - "nn": { - "articles": 141839, - "english_name": "Norwegian (Nynorsk)", - "name": "Nynorsk" - }, - "fo": { - "articles": 12891, - "english_name": "Faroese", - "name": "Føroyskt" - }, - "gor": { - "articles": 1926, - "english_name": "Gorontalo", - "name": "Hulontalo" - }, - "te": { - "articles": 69978, - "english_name": "Telugu", - "name": "తెలుగు" - }, - "lb": { - "articles": 55377, - "english_name": "Luxembourgish", - "name": "Lëtzebuergesch" - }, - "chy": { - "articles": 611, - "english_name": "Cheyenne", - "name": "Tsetsêhestâhese" - }, - "bn": { - "articles": 63523, - "english_name": "Bengali", - "name": "বাংলা" - }, - "hy": { - "articles": 250045, - "english_name": "Armenian", - "name": "Հայերեն" - }, - "ug": { - "articles": 4104, - "english_name": "Uyghur", - "name": "ئۇيغۇر تىلى" - }, - "bg": { - "articles": 248452, - "english_name": "Bulgarian", - "name": "Български" - }, - "arc": { - "articles": 1628, - "english_name": "Aramaic", - "name": "ܐܪܡܝܐ" - }, - "hr": { - "articles": 201383, - "english_name": "Croatian", - "name": "Hrvatski" - }, - "ml": { - "articles": 61227, - "english_name": "Malayalam", - "name": "മലയാളം" - }, - "so": { - "articles": 5530, - "english_name": "Somali", - "name": "Soomaali" - }, - "bpy": { - "articles": 25081, - "english_name": "Bishnupriya Manipuri", - "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী" - }, - "tr": { - "articles": 321169, - "english_name": "Turkish", - "name": "Türkçe" - }, - "mr": { - "articles": 52667, - "english_name": "Marathi", - "name": "मराठी" - }, - "ce": { - "articles": 208906, - "english_name": "Chechen", - "name": "Нохчийн" - }, - "yo": { - "articles": 31774, - "english_name": "Yoruba", - "name": "Yorùbá" - }, - "no": { - "articles": 500849, - "english_name": "Norwegian (Bokmål)", - "name": "Norsk (Bokmål)" - }, - "fi": { - "articles": 449407, - "english_name": "Finnish", - "name": "Suomi" - }, - "nah": { - "articles": 6925, - "english_name": "Nahuatl", - "name": "Nāhuatl" - }, - "ia": { - "articles": 21225, - "english_name": "Interlingua", - "name": "Interlingua" - }, - "tl": { - "articles": 77677, - "english_name": "Tagalog", - "name": "Tagalog" - }, - "vep": { - "articles": 5880, - "english_name": "Vepsian", - "name": "Vepsän" - }, - "ne": { - "articles": 31633, - "english_name": "Nepali", - "name": "नेपाली" - }, - "cr": { - "articles": 103, - "english_name": "Cree", - "name": "Nehiyaw" - }, - "gv": { - "articles": 4968, - "english_name": "Manx", - "name": "Gaelg" - }, - "hif": { - "articles": 9756, - "english_name": "Fiji Hindi", - "name": "Fiji Hindi" - }, - "ksh": { - "articles": 2842, - "english_name": "Ripuarian", - "name": "Ripoarisch" - }, - "jbo": { - "articles": 1233, - "english_name": "Lojban", - "name": "Lojban" - }, - "ilo": { - "articles": 11592, - "english_name": "Ilokano", - "name": "Ilokano" - }, - "ltg": { - "articles": 815, - "english_name": "Latgalian", - "name": "Latgaļu" - }, - "dv": { - "articles": 3024, - "english_name": "Divehi", - "name": "ދިވެހިބަސް" - }, - "vls": { - "articles": 6703, - "english_name": "West Flemish", - "name": "West-Vlams" - }, - "co": { - "articles": 5643, - "english_name": "Corsican", - "name": "Corsu" - }, - "bat-smg": { - "articles": 16427, - "english_name": "Samogitian", - "name": "Žemaitėška" - }, - "zh-min-nan": { - "articles": 227702, - "english_name": "Min Nan", - "name": "Bân-lâm-gú" - }, - "glk": { - "articles": 5666, - "english_name": "Gilaki", - "name": "گیلکی" - }, - "bo": { - "articles": 5827, - "english_name": "Tibetan", - "name": "བོད་སྐད" - }, - "sl": { - "articles": 163198, - "english_name": "Slovenian", - "name": "Slovenščina" - }, - "os": { - "articles": 11225, - "english_name": "Ossetian", - "name": "Иронау" - }, - "sat": { - "articles": 532, - "english_name": "Santali", - "name": "ᱥᱟᱱᱛᱟᱲᱤ" - }, - "qu": { - "articles": 20900, - "english_name": "Quechua", - "name": "Runa Simi" - }, - "za": { - "articles": 1867, - "english_name": "Zhuang", - "name": "Cuengh" - }, - "tcy": { - "articles": 994, - "english_name": "Tulu", - "name": "ತುಳು" - }, - "ps": { - "articles": 9702, - "english_name": "Pashto", - "name": "پښتو" - }, - "pih": { - "articles": 681, - "english_name": "Norfolk", - "name": "Norfuk" - }, - "cbk-zam": { - "articles": 3000, - "english_name": "Zamboanga Chavacano", - "name": "Chavacano de Zamboanga" - }, - "mdf": { - "articles": 1188, - "english_name": "Moksha", - "name": "Мокшень (Mokshanj Kälj)" - }, - "mi": { - "articles": 7145, - "english_name": "Maori", - "name": "Māori" - }, - "sco": { - "articles": 53388, - "english_name": "Scots", - "name": "Scots" - }, - "dsb": { - "articles": 3210, - "english_name": "Lower Sorbian", - "name": "Dolnoserbski" - }, - "gag": { - "articles": 2763, - "english_name": "Gagauz", - "name": "Gagauz" - }, - "haw": { - "articles": 3234, - "english_name": "Hawaiian", - "name": "Hawai`i" - }, - "rm": { - "articles": 3564, - "english_name": "Romansh", - "name": "Rumantsch" - }, - "bar": { - "articles": 27285, - "english_name": "Bavarian", - "name": "Boarisch" - }, - "kn": { - "articles": 24065, - "english_name": "Kannada", - "name": "ಕನ್ನಡ" - }, - "olo": { - "articles": 2812, - "english_name": "Livvi-Karelian", - "name": "Karjalan" - }, - "als": { - "articles": 25337, - "english_name": "Alemannic", - "name": "Alemannisch" - }, - "kbp": { - "articles": 1479, - "english_name": "Kabiye", - "name": "Kabɩyɛ" - }, - "map-bms": { - "articles": 13336, - "english_name": "Banyumasan", - "name": "Basa Banyumasan" - }, - "koi": { - "articles": 3451, - "english_name": "Komi-Permyak", - "name": "Перем Коми (Perem Komi)" - }, - "pcd": { - "articles": 4258, - "english_name": "Picard", - "name": "Picard" - }, - "ru": { - "articles": 1519724, - "english_name": "Russian", - "name": "Русский" - }, - "su": { - "articles": 39840, - "english_name": "Sundanese", - "name": "Basa Sunda" - }, - "lt": { - "articles": 193352, - "english_name": "Lithuanian", - "name": "Lietuvių" - }, - "vi": { - "articles": 1198961, - "english_name": "Vietnamese", - "name": "Tiếng Việt" - }, - "ms": { - "articles": 323274, - "english_name": "Malay", - "name": "Bahasa Melayu" - }, - "my": { - "articles": 42128, - "english_name": "Burmese", - "name": "မြန်မာဘာသာ" - }, - "jv": { - "articles": 55104, - "english_name": "Javanese", - "name": "Basa Jawa" - }, - "war": { - "articles": 1263483, - "english_name": "Waray-Waray", - "name": "Winaray" - }, - "cu": { - "articles": 669, - "english_name": "Old Church Slavonic", - "name": "Словѣньскъ" - }, - "ace": { - "articles": 7602, - "english_name": "Acehnese", - "name": "Bahsa Acèh" - }, - "gan": { - "articles": 6411, - "english_name": "Gan", - "name": "贛語" - }, - "xh": { - "articles": 751, - "english_name": "Xhosa", - "name": "isiXhosa" - }, - "rmy": { - "articles": 660, - "english_name": "Romani", - "name": "romani - रोमानी" - }, - "xmf": { - "articles": 12678, - "english_name": "Mingrelian", - "name": "მარგალური (Margaluri)" - }, - "en": { - "articles": 5781855, - "english_name": "English", - "name": "English" - }, - "nov": { - "articles": 1661, - "english_name": "Novial", - "name": "Novial" - }, - "ak": { - "articles": 567, - "english_name": "Akan", - "name": "Akana" - }, - "fiu-vro": { - "articles": 5463, - "english_name": "Võro", - "name": "Võro" - }, - "mzn": { - "articles": 12786, - "english_name": "Mazandarani", - "name": "مَزِروني" - }, - "ts": { - "articles": 583, - "english_name": "Tsonga", - "name": "Xitsonga" - }, - "dz": { - "articles": 218, - "english_name": "Dzongkha", - "name": "ཇོང་ཁ" - }, - "es": { - "articles": 1497393, - "english_name": "Spanish", - "name": "Español" - }, - "gu": { - "articles": 28289, - "english_name": "Gujarati", - "name": "ગુજરાતી" - }, - "br": { - "articles": 66053, - "english_name": "Breton", - "name": "Brezhoneg" - }, - "sd": { - "articles": 11114, - "english_name": "Sindhi", - "name": "سنڌي، سندھی ، सिन्ध" - }, - "nrm": { - "articles": 4029, - "english_name": "Norman", - "name": "Nouormand/Normaund" - }, - "iu": { - "articles": 401, - "english_name": "Inuktitut", - "name": "ᐃᓄᒃᑎᑐᑦ" - }, - "tum": { - "articles": 572, - "english_name": "Tumbuka", - "name": "chiTumbuka" - }, - "chr": { - "articles": 855, - "english_name": "Cherokee", - "name": "ᏣᎳᎩ" - }, - "pa": { - "articles": 30886, - "english_name": "Punjabi", - "name": "ਪੰਜਾਬੀ" - }, - "ext": { - "articles": 3020, - "english_name": "Extremaduran", - "name": "Estremeñu" - } + "aab": { + "english_name": "Alumu-Tesu" }, - "qwant images": [ - "bg-BG", - "br-FR", - "ca-AD", - "ca-ES", - "ca-FR", - "co-FR", - "cs-CZ", - "cy-GB", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es-AD", - "es-AR", - "es-CL", - "es-ES", - "es-MX", - "et-EE", - "eu-ES", - "eu-FR", - "fi-FI", - "fr-AD", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "gd-GB", - "he-IL", - "hu-HU", - "it-CH", - "it-IT", - "ja-JP", - "ko-KR", - "ms-MY", - "nl-BE", - "nl-NL", - "no-NO", - "pl-PL", - "pt-AD", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sv-SE", - "th-TH", - "tr-TR" - ], - "google": { - "nl": { - "name": "Nederlands" - }, - "eo": { - "name": "Esperanto" - }, - "ko": { - "name": "한국어" - }, - "id": { - "name": "Indonesia" - }, - "ca": { - "name": "Català" - }, - "ar": { - "name": "العربية" - }, - "sl": { - "name": "Slovenščina" - }, - "sr": { - "name": "Српски" - }, - "sv": { - "name": "Svenska" - }, - "be": { - "name": "Беларуская" - }, - "et": { - "name": "Eesti" - }, - "sw": { - "name": "Kiswahili" - }, - "is": { - "name": "Íslenska" - }, - "it": { - "name": "Italiano" - }, - "hi": { - "name": "हिन्दी" - }, - "pl": { - "name": "Polski" - }, - "el": { - "name": "Ελληνικά" - }, - "hu": { - "name": "Magyar" - }, - "fr": { - "name": "Français" - }, - "th": { - "name": "ไทย" - }, - "tl": { - "name": "Filipino" - }, - "de": { - "name": "Deutsch" - }, - "ru": { - "name": "Русский" - }, - "sk": { - "name": "Slovenčina" - }, - "lt": { - "name": "Lietuvių" - }, - "vi": { - "name": "Tiếng Việt" - }, - "uk": { - "name": "Українська" - }, - "pt": { - "name": "Português" - }, - "zh-TW": { - "name": "中文 (繁體)" - }, - "cs": { - "name": "Čeština" - }, - "fa": { - "name": "فارسی" - }, - "af": { - "name": "Afrikaans" - }, - "hy": { - "name": "Հայերեն" - }, - "bg": { - "name": "Български" - }, - "hr": { - "name": "Hrvatski" - }, - "en": { - "name": "English" - }, - "tr": { - "name": "Türkçe" - }, - "lv": { - "name": "Latviešu" - }, - "ro": { - "name": "Română" - }, - "zh-CN": { - "name": "中文 (简体)" - }, - "ja": { - "name": "日本語" - }, - "iw": { - "name": "עברית" - }, - "es": { - "name": "Español" - }, - "fi": { - "name": "Suomi" - }, - "no": { - "name": "Norsk" - }, - "da": { - "name": "Dansk" - } + "aac": { + "english_name": "Ari" }, - "wikidata": { - "nl": { - "articles": 1954031, - "english_name": "Dutch", - "name": "Nederlands" - }, - "ceb": { - "articles": 5376890, - "english_name": "Cebuano", - "name": "Sinugboanong Binisaya" - }, - "jam": { - "articles": 1632, - "english_name": "Jamaican Patois", - "name": "Jumiekan Kryuol" - }, - "crh": { - "articles": 6172, - "english_name": "Crimean Tatar", - "name": "Qırımtatarca" - }, - "st": { - "articles": 544, - "english_name": "Sesotho", - "name": "Sesotho" - }, - "id": { - "articles": 449446, - "english_name": "Indonesian", - "name": "Bahasa Indonesia" - }, - "szl": { - "articles": 7812, - "english_name": "Silesian", - "name": "Ślůnski" - }, - "zh-yue": { - "articles": 70490, - "english_name": "Cantonese", - "name": "粵語" - }, - "ca": { - "articles": 599790, - "english_name": "Catalan", - "name": "Català" - }, - "ab": { - "articles": 3452, - "english_name": "Abkhazian", - "name": "Аҧсуа" - }, - "lad": { - "articles": 3828, - "english_name": "Ladino", - "name": "Dzhudezmo" - }, - "rue": { - "articles": 6891, - "english_name": "Rusyn", - "name": "Русиньскый" - }, - "om": { - "articles": 775, - "english_name": "Oromo", - "name": "Oromoo" - }, - "azb": { - "articles": 118928, - "english_name": "South Azerbaijani", - "name": "تۆرکجه" - }, - "sr": { - "articles": 614180, - "english_name": "Serbian", - "name": "Српски / Srpski" - }, - "tg": { - "articles": 96078, - "english_name": "Tajik", - "name": "Тоҷикӣ" - }, - "ee": { - "articles": 350, - "english_name": "Ewe", - "name": "Eʋegbe" - }, - "hsb": { - "articles": 13357, - "english_name": "Upper Sorbian", - "name": "Hornjoserbsce" - }, - "pag": { - "articles": 2521, - "english_name": "Pangasinan", - "name": "Pangasinan" - }, - "tyv": { - "articles": 1738, - "english_name": "Tuvan", - "name": "Тыва" - }, - "got": { - "articles": 588, - "english_name": "Gothic", - "name": "𐌲𐌿𐍄𐌹𐍃𐌺" - }, - "ss": { - "articles": 450, - "english_name": "Swati", - "name": "SiSwati" - }, - "stq": { - "articles": 3998, - "english_name": "Saterland Frisian", - "name": "Seeltersk" - }, - "is": { - "articles": 46096, - "english_name": "Icelandic", - "name": "Íslenska" - }, - "az": { - "articles": 141672, - "english_name": "Azerbaijani", - "name": "Azərbaycanca" - }, - "vec": { - "articles": 11266, - "english_name": "Venetian", - "name": "Vèneto" - }, - "na": { - "articles": 1305, - "english_name": "Nauruan", - "name": "dorerin Naoero" - }, - "an": { - "articles": 34148, - "english_name": "Aragonese", - "name": "Aragonés" - }, - "tk": { - "articles": 5514, - "english_name": "Turkmen", - "name": "Türkmen" - }, - "zea": { - "articles": 4580, - "english_name": "Zeelandic", - "name": "Zeêuws" - }, - "la": { - "articles": 129779, - "english_name": "Latin", - "name": "Latina" - }, - "kv": { - "articles": 5308, - "english_name": "Komi", - "name": "Коми" - }, - "vo": { - "articles": 122174, - "english_name": "Volapük", - "name": "Volapük" - }, - "el": { - "articles": 157114, - "english_name": "Greek", - "name": "Ελληνικά" - }, - "hu": { - "articles": 442291, - "english_name": "Hungarian", - "name": "Magyar" - }, - "bi": { - "articles": 1179, - "english_name": "Bislama", - "name": "Bislama" - }, - "fr": { - "articles": 2070378, - "english_name": "French", - "name": "Français" - }, - "th": { - "articles": 128977, - "english_name": "Thai", - "name": "ไทย" - }, - "zh": { - "articles": 1038913, - "english_name": "Chinese", - "name": "中文" - }, - "de": { - "articles": 2256718, - "english_name": "German", - "name": "Deutsch" - }, - "pms": { - "articles": 64391, - "english_name": "Piedmontese", - "name": "Piemontèis" - }, - "gn": { - "articles": 3637, - "english_name": "Guarani", - "name": "Avañe'ẽ" - }, - "lo": { - "articles": 3101, - "english_name": "Lao", - "name": "ລາວ" - }, - "bxr": { - "articles": 2124, - "english_name": "Buryat", - "name": "Буряад" - }, - "ast": { - "articles": 99530, - "english_name": "Asturian", - "name": "Asturianu" - }, - "wo": { - "articles": 1177, - "english_name": "Wolof", - "name": "Wolof" - }, - "pap": { - "articles": 1953, - "english_name": "Papiamentu", - "name": "Papiamentu" - }, - "fa": { - "articles": 655431, - "english_name": "Persian", - "name": "فارسی" - }, - "roa-tara": { - "articles": 9243, - "english_name": "Tarantino", - "name": "Tarandíne" - }, - "af": { - "articles": 68807, - "english_name": "Afrikaans", - "name": "Afrikaans" - }, - "lbe": { - "articles": 1216, - "english_name": "Lak", - "name": "Лакку" - }, - "frp": { - "articles": 3254, - "english_name": "Franco-Provençal", - "name": "Arpitan" - }, - "mt": { - "articles": 3336, - "english_name": "Maltese", - "name": "Malti" - }, - "bcl": { - "articles": 8664, - "english_name": "Central Bicolano", - "name": "Bikol" - }, - "bh": { - "articles": 6686, - "english_name": "Bihari", - "name": "भोजपुरी" - }, - "csb": { - "articles": 5258, - "english_name": "Kashubian", - "name": "Kaszëbsczi" - }, - "scn": { - "articles": 26060, - "english_name": "Sicilian", - "name": "Sicilianu" - }, - "sw": { - "articles": 47744, - "english_name": "Swahili", - "name": "Kiswahili" - }, - "kw": { - "articles": 3839, - "english_name": "Cornish", - "name": "Kernewek/Karnuack" - }, - "lrc": { - "articles": 5357, - "english_name": "Northern Luri", - "name": "لۊری شومالی" - }, - "wa": { - "articles": 14790, - "english_name": "Walloon", - "name": "Walon" - }, - "arz": { - "articles": 20166, - "english_name": "Egyptian Arabic", - "name": "مصرى (Maṣri)" - }, - "pfl": { - "articles": 2502, - "english_name": "Palatinate German", - "name": "Pälzisch" - }, - "tt": { - "articles": 82594, - "english_name": "Tatar", - "name": "Tatarça / Татарча" - }, - "ks": { - "articles": 324, - "english_name": "Kashmiri", - "name": "कश्मीरी / كشميري" - }, - "srn": { - "articles": 1061, - "english_name": "Sranan", - "name": "Sranantongo" - }, - "lfn": { - "articles": 3083, - "english_name": "Lingua Franca Nova", - "name": "Lingua franca nova" - }, - "kbd": { - "articles": 1578, - "english_name": "Kabardian Circassian", - "name": "Адыгэбзэ (Adighabze)" - }, - "simple": { - "articles": 141947, - "english_name": "Simple English", - "name": "Simple English" - }, - "sc": { - "articles": 5907, - "english_name": "Sardinian", - "name": "Sardu" - }, - "ta": { - "articles": 119140, - "english_name": "Tamil", - "name": "தமிழ்" - }, - "lg": { - "articles": 1155, - "english_name": "Luganda", - "name": "Luganda" - }, - "ckb": { - "articles": 22870, - "english_name": "Sorani", - "name": "Soranî / کوردی" - }, - "ht": { - "articles": 54219, - "english_name": "Haitian", - "name": "Krèyol ayisyen" - }, - "ve": { - "articles": 265, - "english_name": "Venda", - "name": "Tshivenda" - }, - "nds": { - "articles": 41178, - "english_name": "Low Saxon", - "name": "Plattdüütsch" - }, - "km": { - "articles": 7105, - "english_name": "Khmer", - "name": "ភាសាខ្មែរ" - }, - "ay": { - "articles": 4402, - "english_name": "Aymara", - "name": "Aymar" - }, - "mg": { - "articles": 90635, - "english_name": "Malagasy", - "name": "Malagasy" - }, - "frr": { - "articles": 8460, - "english_name": "North Frisian", - "name": "Nordfriisk" - }, - "zh-classical": { - "articles": 8663, - "english_name": "Classical Chinese", - "name": "古文 / 文言文" - }, - "ny": { - "articles": 487, - "english_name": "Chichewa", - "name": "Chichewa" - }, - "eo": { - "articles": 253490, - "english_name": "Esperanto", - "name": "Esperanto" - }, - "dty": { - "articles": 2967, - "english_name": "Doteli", - "name": "डोटेली" - }, - "ki": { - "articles": 1358, - "english_name": "Kikuyu", - "name": "Gĩkũyũ" - }, - "ko": { - "articles": 438644, - "english_name": "Korean", - "name": "한국어" - }, - "ig": { - "articles": 1376, - "english_name": "Igbo", - "name": "Igbo" - }, - "sah": { - "articles": 11943, - "english_name": "Sakha", - "name": "Саха тыла (Saxa Tyla)" - }, - "ar": { - "articles": 656175, - "english_name": "Arabic", - "name": "العربية" - }, - "mk": { - "articles": 98050, - "english_name": "Macedonian", - "name": "Македонски" - }, - "ff": { - "articles": 228, - "english_name": "Fula", - "name": "Fulfulde" - }, - "he": { - "articles": 236237, - "english_name": "Hebrew", - "name": "עברית" - }, - "inh": { - "articles": 791, - "english_name": "Ingush", - "name": "Гӏалгӏай" - }, - "av": { - "articles": 2309, - "english_name": "Avar", - "name": "Авар" - }, - "mai": { - "articles": 13164, - "english_name": "Maithili", - "name": "मैथिली" - }, - "zu": { - "articles": 1050, - "english_name": "Zulu", - "name": "isiZulu" - }, - "eml": { - "articles": 11866, - "english_name": "Emilian-Romagnol", - "name": "Emiliàn e rumagnòl" - }, - "ti": { - "articles": 168, - "english_name": "Tigrinya", - "name": "ትግርኛ" - }, - "lmo": { - "articles": 38071, - "english_name": "Lombard", - "name": "Lumbaart" - }, - "et": { - "articles": 185271, - "english_name": "Estonian", - "name": "Eesti" - }, - "myv": { - "articles": 5415, - "english_name": "Erzya", - "name": "Эрзянь (Erzjanj Kelj)" - }, - "si": { - "articles": 14918, - "english_name": "Sinhalese", - "name": "සිංහල" - }, - "ln": { - "articles": 3049, - "english_name": "Lingala", - "name": "Lingala" - }, - "shn": { - "articles": 3239, - "english_name": "ၽႃႇသႃႇတႆး ", - "name": "Shan" - }, - "sh": { - "articles": 447497, - "english_name": "Serbo-Croatian", - "name": "Srpskohrvatski / Српскохрватски" - }, - "it": { - "articles": 1491690, - "english_name": "Italian", - "name": "Italiano" - }, - "pam": { - "articles": 8825, - "english_name": "Kapampangan", - "name": "Kapampangan" - }, - "fy": { - "articles": 41308, - "english_name": "West Frisian", - "name": "Frysk" - }, - "ha": { - "articles": 2740, - "english_name": "Hausa", - "name": "Hausa / هَوُسَ" - }, - "diq": { - "articles": 9107, - "english_name": "Zazaki", - "name": "Zazaki" - }, - "ty": { - "articles": 1199, - "english_name": "Tahitian", - "name": "Reo Mā`ohi" - }, - "sa": { - "articles": 11357, - "english_name": "Sanskrit", - "name": "संस्कृतम्" - }, - "ku": { - "articles": 24022, - "english_name": "Kurdish", - "name": "Kurdî / كوردی" - }, - "io": { - "articles": 28134, - "english_name": "Ido", - "name": "Ido" - }, - "bjn": { - "articles": 1918, - "english_name": "Banjar", - "name": "Bahasa Banjar" - }, - "mwl": { - "articles": 3674, - "english_name": "Mirandese", - "name": "Mirandés" - }, - "se": { - "articles": 7464, - "english_name": "Northern Sami", - "name": "Sámegiella" - }, - "tet": { - "articles": 1440, - "english_name": "Tetum", - "name": "Tetun" - }, - "gom": { - "articles": 3598, - "english_name": "Goan Konkani", - "name": "गोंयची कोंकणी / Gõychi Konknni" - }, - "lij": { - "articles": 3456, - "english_name": "Ligurian", - "name": "Líguru" - }, - "ga": { - "articles": 49639, - "english_name": "Irish", - "name": "Gaeilge" - }, - "roa-rup": { - "articles": 1216, - "english_name": "Aromanian", - "name": "Armãneashce" - }, - "pdc": { - "articles": 1858, - "english_name": "Pennsylvania German", - "name": "Deitsch" - }, - "cs": { - "articles": 419392, - "english_name": "Czech", - "name": "Čeština" - }, - "uz": { - "articles": 130227, - "english_name": "Uzbek", - "name": "O‘zbek" - }, - "ch": { - "articles": 472, - "english_name": "Chamorro", - "name": "Chamoru" - }, - "rn": { - "articles": 609, - "english_name": "Kirundi", - "name": "Kirundi" - }, - "or": { - "articles": 14550, - "english_name": "Oriya", - "name": "ଓଡ଼ିଆ" - }, - "gl": { - "articles": 153607, - "english_name": "Galician", - "name": "Galego" - }, - "atj": { - "articles": 626, - "english_name": "Atikamekw", - "name": "Atikamekw" - }, - "pi": { - "articles": 2535, - "english_name": "Pali", - "name": "पाऴि" - }, - "fur": { - "articles": 3289, - "english_name": "Friulian", - "name": "Furlan" - }, - "li": { - "articles": 12316, - "english_name": "Limburgish", - "name": "Limburgs" - }, - "yi": { - "articles": 14571, - "english_name": "Yiddish", - "name": "ייִדיש" - }, - "lv": { - "articles": 90266, - "english_name": "Latvian", - "name": "Latviešu" - }, - "ro": { - "articles": 390804, - "english_name": "Romanian", - "name": "Română" - }, - "bm": { - "articles": 651, - "english_name": "Bambara", - "name": "Bamanankan" - }, - "ja": { - "articles": 1134685, - "english_name": "Japanese", - "name": "日本語" - }, - "cy": { - "articles": 102137, - "english_name": "Welsh", - "name": "Cymraeg" - }, - "wuu": { - "articles": 16289, - "english_name": "Wu", - "name": "吴语" - }, - "cv": { - "articles": 41622, - "english_name": "Chuvash", - "name": "Чăваш" - }, - "ady": { - "articles": 411, - "english_name": "Adyghe", - "name": "Адыгэбзэ" - }, - "min": { - "articles": 222492, - "english_name": "Minangkabau", - "name": "Minangkabau" - }, - "be-tarask": { - "articles": 65655, - "english_name": "Belarusian (Taraškievica)", - "name": "Беларуская (тарашкевіца)" - }, - "kl": { - "articles": 1663, - "english_name": "Greenlandic", - "name": "Kalaallisut" - }, - "am": { - "articles": 14482, - "english_name": "Amharic", - "name": "አማርኛ" - }, - "ie": { - "articles": 4303, - "english_name": "Interlingue", - "name": "Interlingue" - }, - "sn": { - "articles": 4227, - "english_name": "Shona", - "name": "chiShona" - }, - "pnb": { - "articles": 47107, - "english_name": "Western Punjabi", - "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)" - }, - "sm": { - "articles": 801, - "english_name": "Samoan", - "name": "Gagana Samoa" - }, - "hak": { - "articles": 8894, - "english_name": "Hakka", - "name": "Hak-kâ-fa / 客家話" - }, - "nso": { - "articles": 8094, - "english_name": "Northern Sotho", - "name": "Sepedi" - }, - "fj": { - "articles": 425, - "english_name": "Fijian", - "name": "Na Vosa Vakaviti" - }, - "da": { - "articles": 242006, - "english_name": "Danish", - "name": "Dansk" - }, - "ky": { - "articles": 79376, - "english_name": "Kirghiz", - "name": "Кыргызча" - }, - "to": { - "articles": 1693, - "english_name": "Tongan", - "name": "faka Tonga" - }, - "udm": { - "articles": 4565, - "english_name": "Udmurt", - "name": "Удмурт кыл" - }, - "nds-nl": { - "articles": 6812, - "english_name": "Dutch Low Saxon", - "name": "Nedersaksisch" - }, - "kaa": { - "articles": 1910, - "english_name": "Karakalpak", - "name": "Qaraqalpaqsha" - }, - "as": { - "articles": 5141, - "english_name": "Assamese", - "name": "অসমীয়া" - }, - "sg": { - "articles": 258, - "english_name": "Sango", - "name": "Sängö" - }, - "ik": { - "articles": 262, - "english_name": "Inupiak", - "name": "Iñupiak" - }, - "gd": { - "articles": 14774, - "english_name": "Scottish Gaelic", - "name": "Gàidhlig" - }, - "tpi": { - "articles": 1486, - "english_name": "Tok Pisin", - "name": "Tok Pisin" - }, - "lez": { - "articles": 3963, - "english_name": "Lezgian", - "name": "Лезги чІал (Lezgi č’al)" - }, - "new": { - "articles": 72212, - "english_name": "Newar", - "name": "नेपाल भाषा" - }, - "kg": { - "articles": 1184, - "english_name": "Kongo", - "name": "KiKongo" - }, - "cdo": { - "articles": 14111, - "english_name": "Min Dong", - "name": "Mìng-dĕ̤ng-ngṳ̄" - }, - "oc": { - "articles": 85227, - "english_name": "Occitan", - "name": "Occitan" - }, - "nap": { - "articles": 14576, - "english_name": "Neapolitan", - "name": "Nnapulitano" - }, - "be": { - "articles": 160751, - "english_name": "Belarusian", - "name": "Беларуская" - }, - "kk": { - "articles": 223486, - "english_name": "Kazakh", - "name": "Қазақша" - }, - "bs": { - "articles": 79235, - "english_name": "Bosnian", - "name": "Bosanski" - }, - "bug": { - "articles": 14121, - "english_name": "Buginese", - "name": "Basa Ugi" - }, - "sq": { - "articles": 75615, - "english_name": "Albanian", - "name": "Shqip" - }, - "mhr": { - "articles": 10046, - "english_name": "Meadow Mari", - "name": "Олык Марий (Olyk Marij)" - }, - "eu": { - "articles": 309974, - "english_name": "Basque", - "name": "Euskara" - }, - "ka": { - "articles": 126147, - "english_name": "Georgian", - "name": "ქართული" - }, - "ba": { - "articles": 46046, - "english_name": "Bashkir", - "name": "Башҡорт" - }, - "hi": { - "articles": 128996, - "english_name": "Hindi", - "name": "हिन्दी" - }, - "rw": { - "articles": 1822, - "english_name": "Kinyarwanda", - "name": "Ikinyarwanda" - }, - "pnt": { - "articles": 462, - "english_name": "Pontic", - "name": "Ποντιακά" - }, - "kab": { - "articles": 2860, - "english_name": "Kabyle", - "name": "Taqbaylit" - }, - "nv": { - "articles": 6991, - "english_name": "Navajo", - "name": "Diné bizaad" - }, - "mrj": { - "articles": 10269, - "english_name": "Hill Mari", - "name": "Кырык Мары (Kyryk Mary)" - }, - "mn": { - "articles": 18356, - "english_name": "Mongolian", - "name": "Монгол" - }, - "ang": { - "articles": 3077, - "english_name": "Anglo-Saxon", - "name": "Englisc" - }, - "tw": { - "articles": 657, - "english_name": "Twi", - "name": "Twi" - }, - "ur": { - "articles": 142712, - "english_name": "Urdu", - "name": "اردو" - }, - "tn": { - "articles": 640, - "english_name": "Tswana", - "name": "Setswana" - }, - "krc": { - "articles": 2028, - "english_name": "Karachay-Balkar", - "name": "Къарачай-Малкъар (Qarachay-Malqar)" - }, - "sk": { - "articles": 228015, - "english_name": "Slovak", - "name": "Slovenčina" - }, - "sv": { - "articles": 3760984, - "english_name": "Swedish", - "name": "Svenska" - }, - "pl": { - "articles": 1314525, - "english_name": "Polish", - "name": "Polski" - }, - "uk": { - "articles": 878251, - "english_name": "Ukrainian", - "name": "Українська" - }, - "pt": { - "articles": 1014081, - "english_name": "Portuguese", - "name": "Português" - }, - "xal": { - "articles": 2075, - "english_name": "Kalmyk", - "name": "Хальмг" - }, - "nn": { - "articles": 141839, - "english_name": "Norwegian (Nynorsk)", - "name": "Nynorsk" - }, - "fo": { - "articles": 12891, - "english_name": "Faroese", - "name": "Føroyskt" - }, - "gor": { - "articles": 1926, - "english_name": "Gorontalo", - "name": "Hulontalo" - }, - "te": { - "articles": 69978, - "english_name": "Telugu", - "name": "తెలుగు" - }, - "lb": { - "articles": 55377, - "english_name": "Luxembourgish", - "name": "Lëtzebuergesch" - }, - "chy": { - "articles": 611, - "english_name": "Cheyenne", - "name": "Tsetsêhestâhese" - }, - "bn": { - "articles": 63523, - "english_name": "Bengali", - "name": "বাংলা" - }, - "hy": { - "articles": 250045, - "english_name": "Armenian", - "name": "Հայերեն" - }, - "ug": { - "articles": 4104, - "english_name": "Uyghur", - "name": "ئۇيغۇر تىلى" - }, - "bg": { - "articles": 248452, - "english_name": "Bulgarian", - "name": "Български" - }, - "arc": { - "articles": 1628, - "english_name": "Aramaic", - "name": "ܐܪܡܝܐ" - }, - "hr": { - "articles": 201383, - "english_name": "Croatian", - "name": "Hrvatski" - }, - "ml": { - "articles": 61227, - "english_name": "Malayalam", - "name": "മലയാളം" - }, - "so": { - "articles": 5530, - "english_name": "Somali", - "name": "Soomaali" - }, - "bpy": { - "articles": 25081, - "english_name": "Bishnupriya Manipuri", - "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী" - }, - "tr": { - "articles": 321169, - "english_name": "Turkish", - "name": "Türkçe" - }, - "mr": { - "articles": 52667, - "english_name": "Marathi", - "name": "मराठी" - }, - "ce": { - "articles": 208906, - "english_name": "Chechen", - "name": "Нохчийн" - }, - "yo": { - "articles": 31774, - "english_name": "Yoruba", - "name": "Yorùbá" - }, - "no": { - "articles": 500849, - "english_name": "Norwegian (Bokmål)", - "name": "Norsk (Bokmål)" - }, - "fi": { - "articles": 449407, - "english_name": "Finnish", - "name": "Suomi" - }, - "nah": { - "articles": 6925, - "english_name": "Nahuatl", - "name": "Nāhuatl" - }, - "ia": { - "articles": 21225, - "english_name": "Interlingua", - "name": "Interlingua" - }, - "tl": { - "articles": 77677, - "english_name": "Tagalog", - "name": "Tagalog" - }, - "vep": { - "articles": 5880, - "english_name": "Vepsian", - "name": "Vepsän" - }, - "ne": { - "articles": 31633, - "english_name": "Nepali", - "name": "नेपाली" - }, - "cr": { - "articles": 103, - "english_name": "Cree", - "name": "Nehiyaw" - }, - "gv": { - "articles": 4968, - "english_name": "Manx", - "name": "Gaelg" - }, - "hif": { - "articles": 9756, - "english_name": "Fiji Hindi", - "name": "Fiji Hindi" - }, - "ksh": { - "articles": 2842, - "english_name": "Ripuarian", - "name": "Ripoarisch" - }, - "jbo": { - "articles": 1233, - "english_name": "Lojban", - "name": "Lojban" - }, - "ilo": { - "articles": 11592, - "english_name": "Ilokano", - "name": "Ilokano" - }, - "ltg": { - "articles": 815, - "english_name": "Latgalian", - "name": "Latgaļu" - }, - "dv": { - "articles": 3024, - "english_name": "Divehi", - "name": "ދިވެހިބަސް" - }, - "vls": { - "articles": 6703, - "english_name": "West Flemish", - "name": "West-Vlams" - }, - "co": { - "articles": 5643, - "english_name": "Corsican", - "name": "Corsu" - }, - "bat-smg": { - "articles": 16427, - "english_name": "Samogitian", - "name": "Žemaitėška" - }, - "zh-min-nan": { - "articles": 227702, - "english_name": "Min Nan", - "name": "Bân-lâm-gú" - }, - "glk": { - "articles": 5666, - "english_name": "Gilaki", - "name": "گیلکی" - }, - "bo": { - "articles": 5827, - "english_name": "Tibetan", - "name": "བོད་སྐད" - }, - "sl": { - "articles": 163198, - "english_name": "Slovenian", - "name": "Slovenščina" - }, - "os": { - "articles": 11225, - "english_name": "Ossetian", - "name": "Иронау" - }, - "sat": { - "articles": 532, - "english_name": "Santali", - "name": "ᱥᱟᱱᱛᱟᱲᱤ" - }, - "qu": { - "articles": 20900, - "english_name": "Quechua", - "name": "Runa Simi" - }, - "za": { - "articles": 1867, - "english_name": "Zhuang", - "name": "Cuengh" - }, - "tcy": { - "articles": 994, - "english_name": "Tulu", - "name": "ತುಳು" - }, - "ps": { - "articles": 9702, - "english_name": "Pashto", - "name": "پښتو" - }, - "pih": { - "articles": 681, - "english_name": "Norfolk", - "name": "Norfuk" - }, - "cbk-zam": { - "articles": 3000, - "english_name": "Zamboanga Chavacano", - "name": "Chavacano de Zamboanga" - }, - "mdf": { - "articles": 1188, - "english_name": "Moksha", - "name": "Мокшень (Mokshanj Kälj)" - }, - "mi": { - "articles": 7145, - "english_name": "Maori", - "name": "Māori" - }, - "sco": { - "articles": 53388, - "english_name": "Scots", - "name": "Scots" - }, - "dsb": { - "articles": 3210, - "english_name": "Lower Sorbian", - "name": "Dolnoserbski" - }, - "gag": { - "articles": 2763, - "english_name": "Gagauz", - "name": "Gagauz" - }, - "haw": { - "articles": 3234, - "english_name": "Hawaiian", - "name": "Hawai`i" - }, - "rm": { - "articles": 3564, - "english_name": "Romansh", - "name": "Rumantsch" - }, - "bar": { - "articles": 27285, - "english_name": "Bavarian", - "name": "Boarisch" - }, - "kn": { - "articles": 24065, - "english_name": "Kannada", - "name": "ಕನ್ನಡ" - }, - "olo": { - "articles": 2812, - "english_name": "Livvi-Karelian", - "name": "Karjalan" - }, - "als": { - "articles": 25337, - "english_name": "Alemannic", - "name": "Alemannisch" - }, - "kbp": { - "articles": 1479, - "english_name": "Kabiye", - "name": "Kabɩyɛ" - }, - "map-bms": { - "articles": 13336, - "english_name": "Banyumasan", - "name": "Basa Banyumasan" - }, - "koi": { - "articles": 3451, - "english_name": "Komi-Permyak", - "name": "Перем Коми (Perem Komi)" - }, - "pcd": { - "articles": 4258, - "english_name": "Picard", - "name": "Picard" - }, - "ru": { - "articles": 1519724, - "english_name": "Russian", - "name": "Русский" - }, - "su": { - "articles": 39840, - "english_name": "Sundanese", - "name": "Basa Sunda" - }, - "lt": { - "articles": 193352, - "english_name": "Lithuanian", - "name": "Lietuvių" - }, - "vi": { - "articles": 1198961, - "english_name": "Vietnamese", - "name": "Tiếng Việt" - }, - "ms": { - "articles": 323274, - "english_name": "Malay", - "name": "Bahasa Melayu" - }, - "my": { - "articles": 42128, - "english_name": "Burmese", - "name": "မြန်မာဘာသာ" - }, - "jv": { - "articles": 55104, - "english_name": "Javanese", - "name": "Basa Jawa" - }, - "war": { - "articles": 1263483, - "english_name": "Waray-Waray", - "name": "Winaray" - }, - "cu": { - "articles": 669, - "english_name": "Old Church Slavonic", - "name": "Словѣньскъ" - }, - "ace": { - "articles": 7602, - "english_name": "Acehnese", - "name": "Bahsa Acèh" - }, - "gan": { - "articles": 6411, - "english_name": "Gan", - "name": "贛語" - }, - "xh": { - "articles": 751, - "english_name": "Xhosa", - "name": "isiXhosa" - }, - "rmy": { - "articles": 660, - "english_name": "Romani", - "name": "romani - रोमानी" - }, - "xmf": { - "articles": 12678, - "english_name": "Mingrelian", - "name": "მარგალური (Margaluri)" - }, - "en": { - "articles": 5781855, - "english_name": "English", - "name": "English" - }, - "nov": { - "articles": 1661, - "english_name": "Novial", - "name": "Novial" - }, - "ak": { - "articles": 567, - "english_name": "Akan", - "name": "Akana" - }, - "fiu-vro": { - "articles": 5463, - "english_name": "Võro", - "name": "Võro" - }, - "mzn": { - "articles": 12786, - "english_name": "Mazandarani", - "name": "مَزِروني" - }, - "ts": { - "articles": 583, - "english_name": "Tsonga", - "name": "Xitsonga" - }, - "dz": { - "articles": 218, - "english_name": "Dzongkha", - "name": "ཇོང་ཁ" - }, - "es": { - "articles": 1497393, - "english_name": "Spanish", - "name": "Español" - }, - "gu": { - "articles": 28289, - "english_name": "Gujarati", - "name": "ગુજરાતી" - }, - "br": { - "articles": 66053, - "english_name": "Breton", - "name": "Brezhoneg" - }, - "sd": { - "articles": 11114, - "english_name": "Sindhi", - "name": "سنڌي، سندھی ، सिन्ध" - }, - "nrm": { - "articles": 4029, - "english_name": "Norman", - "name": "Nouormand/Normaund" - }, - "iu": { - "articles": 401, - "english_name": "Inuktitut", - "name": "ᐃᓄᒃᑎᑐᑦ" - }, - "tum": { - "articles": 572, - "english_name": "Tumbuka", - "name": "chiTumbuka" - }, - "chr": { - "articles": 855, - "english_name": "Cherokee", - "name": "ᏣᎳᎩ" - }, - "pa": { - "articles": 30886, - "english_name": "Punjabi", - "name": "ਪੰਜਾਬੀ" - }, - "ext": { - "articles": 3020, - "english_name": "Extremaduran", - "name": "Estremeñu" - } + "aad": { + "english_name": "Amal" }, - "yahoo news": [ - "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" - ] + "aae": { + "english_name": "Albanian, Arb\u00ebresh\u00eb" + }, + "aaf": { + "english_name": "Aranadan" + }, + "aag": { + "english_name": "Ambrak" + }, + "aah": { + "english_name": "Arapesh, Abu'" + }, + "aai": { + "english_name": "Arifama-Miniafia" + }, + "aak": { + "english_name": "Ankave" + }, + "aal": { + "english_name": "Afade" + }, + "aan": { + "english_name": "Anamb\u00e9" + }, + "aao": { + "english_name": "Arabic, Algerian Saharan" + }, + "aap": { + "english_name": "Ar\u00e1ra, Par\u00e1" + }, + "aaq": { + "english_name": "Abnaki, Eastern" + }, + "aas": { + "english_name": "Aas\u00e1x" + }, + "aat": { + "english_name": "Albanian, Arvanitika" + }, + "aau": { + "english_name": "Abau" + }, + "aaw": { + "english_name": "Solong" + }, + "aax": { + "english_name": "Mandobo Atas" + }, + "aaz": { + "english_name": "Amarasi" + }, + "ab": { + "english_name": "Abkhazian" + }, + "aba": { + "english_name": "Ab\u00e9" + }, + "abb": { + "english_name": "Bankon" + }, + "abc": { + "english_name": "Ayta, Ambala" + }, + "abd": { + "english_name": "Manide" + }, + "abe": { + "english_name": "Abnaki, Western" + }, + "abf": { + "english_name": "Abai Sungai" + }, + "abg": { + "english_name": "Abaga" + }, + "abh": { + "english_name": "Arabic, Tajiki" + }, + "abi": { + "english_name": "Abidji" + }, + "abj": { + "english_name": "Aka-Bea" + }, + "abl": { + "english_name": "Lampung Nyo" + }, + "abm": { + "english_name": "Abanyom" + }, + "abn": { + "english_name": "Abua" + }, + "abo": { + "english_name": "Abon" + }, + "abp": { + "english_name": "Ayta, Abellen" + }, + "abq": { + "english_name": "Abaza" + }, + "abr": { + "english_name": "Abron" + }, + "abs": { + "english_name": "Malay, Ambonese" + }, + "abt": { + "english_name": "Ambulas" + }, + "abu": { + "english_name": "Abure" + }, + "abv": { + "english_name": "Arabic, Baharna" + }, + "abw": { + "english_name": "Pal" + }, + "abx": { + "english_name": "Inabaknon" + }, + "aby": { + "english_name": "Aneme Wake" + }, + "abz": { + "english_name": "Abui" + }, + "aca": { + "english_name": "Achagua" + }, + "acb": { + "english_name": "\u00c1nc\u00e1" + }, + "acd": { + "english_name": "Gikyode" + }, + "ace": { + "english_name": "Achinese" + }, + "acf": { + "english_name": "Creole French, Saint Lucian" + }, + "ach": { + "english_name": "Acoli" + }, + "aci": { + "english_name": "Aka-Cari" + }, + "ack": { + "english_name": "Aka-Kora" + }, + "acl": { + "english_name": "Akar-Bale" + }, + "acm": { + "english_name": "Arabic, Mesopotamian" + }, + "acn": { + "english_name": "Achang" + }, + "acp": { + "english_name": "Acipa, Eastern" + }, + "acq": { + "english_name": "Arabic, Ta'izzi-Adeni" + }, + "acr": { + "english_name": "Achi" + }, + "acs": { + "english_name": "Acro\u00e1" + }, + "act": { + "english_name": "Achterhoeks" + }, + "acu": { + "english_name": "Achuar-Shiwiar" + }, + "acv": { + "english_name": "Achumawi" + }, + "acw": { + "english_name": "Arabic, Hijazi" + }, + "acx": { + "english_name": "Arabic, Omani" + }, + "acy": { + "english_name": "Arabic, Cypriot" + }, + "acz": { + "english_name": "Acheron" + }, + "ada": { + "english_name": "Adangme" + }, + "adb": { + "english_name": "Adabe" + }, + "add": { + "english_name": "Dzodinka" + }, + "ade": { + "english_name": "Adele" + }, + "adf": { + "english_name": "Arabic, Dhofari" + }, + "adg": { + "english_name": "Andegerebinha" + }, + "adh": { + "english_name": "Adhola" + }, + "adi": { + "english_name": "Adi" + }, + "adj": { + "english_name": "Adioukrou" + }, + "adl": { + "english_name": "Galo" + }, + "adn": { + "english_name": "Adang" + }, + "ado": { + "english_name": "Abu" + }, + "adq": { + "english_name": "Adangbe" + }, + "adr": { + "english_name": "Adonara" + }, + "ads": { + "english_name": "Adamorobe Sign Language" + }, + "adt": { + "english_name": "Adnyamathanha" + }, + "adu": { + "english_name": "Aduge" + }, + "adw": { + "english_name": "Amundava" + }, + "adx": { + "english_name": "Tibetan, Amdo" + }, + "ady": { + "english_name": "Adyghe" + }, + "adz": { + "english_name": "Adzera" + }, + "ae": { + "english_name": "Avestan" + }, + "aea": { + "english_name": "Areba" + }, + "aeb": { + "english_name": "Arabic, Tunisian" + }, + "aec": { + "english_name": "Arabic, Saidi" + }, + "aed": { + "english_name": "Argentine Sign Language" + }, + "aee": { + "english_name": "Pashayi, Northeast" + }, + "aek": { + "english_name": "Haeke" + }, + "ael": { + "english_name": "Ambele" + }, + "aem": { + "english_name": "Arem" + }, + "aen": { + "english_name": "Armenian Sign Language" + }, + "aeq": { + "english_name": "Aer" + }, + "aer": { + "english_name": "Arrernte, Eastern" + }, + "aes": { + "english_name": "Alsea" + }, + "aeu": { + "english_name": "Akeu" + }, + "aew": { + "english_name": "Ambakich" + }, + "aey": { + "english_name": "Amele" + }, + "aez": { + "english_name": "Aeka" + }, + "af": { + "english_name": "Afrikaans", + "name": "Afrikaans" + }, + "afb": { + "english_name": "Arabic, Gulf" + }, + "afd": { + "english_name": "Andai" + }, + "afe": { + "english_name": "Putukwam" + }, + "afg": { + "english_name": "Afghan Sign Language" + }, + "afh": { + "english_name": "Afrihili" + }, + "afi": { + "english_name": "Akrukay" + }, + "afk": { + "english_name": "Nanubae" + }, + "afn": { + "english_name": "Defaka" + }, + "afo": { + "english_name": "Eloyi" + }, + "afp": { + "english_name": "Tapei" + }, + "afs": { + "english_name": "Creole, Afro-Seminole" + }, + "aft": { + "english_name": "Afitti" + }, + "afu": { + "english_name": "Awutu" + }, + "afz": { + "english_name": "Obokuitai" + }, + "aga": { + "english_name": "Aguano" + }, + "agb": { + "english_name": "Legbo" + }, + "agc": { + "english_name": "Agatu" + }, + "agd": { + "english_name": "Agarabi" + }, + "age": { + "english_name": "Angal" + }, + "agf": { + "english_name": "Arguni" + }, + "agg": { + "english_name": "Angor" + }, + "agh": { + "english_name": "Ngelima" + }, + "agi": { + "english_name": "Agariya" + }, + "agj": { + "english_name": "Argobba" + }, + "agk": { + "english_name": "Agta, Isarog" + }, + "agl": { + "english_name": "Fembe" + }, + "agm": { + "english_name": "Angaataha" + }, + "agn": { + "english_name": "Agutaynen" + }, + "ago": { + "english_name": "Tainae" + }, + "agq": { + "english_name": "Aghem" + }, + "agr": { + "english_name": "Aguaruna" + }, + "ags": { + "english_name": "Esimbi" + }, + "agt": { + "english_name": "Agta, Central Cagayan" + }, + "agu": { + "english_name": "Aguacateco" + }, + "agv": { + "english_name": "Dumagat, Remontado" + }, + "agw": { + "english_name": "Kahua" + }, + "agx": { + "english_name": "Aghul" + }, + "agy": { + "english_name": "Alta, Southern" + }, + "agz": { + "english_name": "Agta, Mt. Iriga" + }, + "aha": { + "english_name": "Ahanta" + }, + "ahb": { + "english_name": "Axamb" + }, + "ahg": { + "english_name": "Qimant" + }, + "ahh": { + "english_name": "Aghu" + }, + "ahi": { + "english_name": "Aizi, Tiagbamrin" + }, + "ahk": { + "english_name": "Akha" + }, + "ahl": { + "english_name": "Igo" + }, + "ahm": { + "english_name": "Aizi, Mobumrin" + }, + "ahn": { + "english_name": "\u00c0h\u00e0n" + }, + "aho": { + "english_name": "Ahom" + }, + "ahp": { + "english_name": "Aizi, Aproumu" + }, + "ahr": { + "english_name": "Ahirani" + }, + "ahs": { + "english_name": "Ashe" + }, + "aht": { + "english_name": "Ahtena" + }, + "aia": { + "english_name": "Arosi" + }, + "aib": { + "english_name": "Ainu (China)" + }, + "aic": { + "english_name": "Ainbai" + }, + "aid": { + "english_name": "Alngith" + }, + "aie": { + "english_name": "Amara" + }, + "aif": { + "english_name": "Agi" + }, + "aig": { + "english_name": "Creole English, Antigua and Barbuda" + }, + "aih": { + "english_name": "Ai-Cham" + }, + "aii": { + "english_name": "Neo-Aramaic, Assyrian" + }, + "aij": { + "english_name": "Lishanid Noshan" + }, + "aik": { + "english_name": "Ake" + }, + "ail": { + "english_name": "Aimele" + }, + "aim": { + "english_name": "Aimol" + }, + "ain": { + "english_name": "Ainu (Japan)" + }, + "aio": { + "english_name": "Aiton" + }, + "aip": { + "english_name": "Burumakok" + }, + "aiq": { + "english_name": "Aimaq" + }, + "air": { + "english_name": "Airoran" + }, + "ais": { + "english_name": "Amis, Nataoran" + }, + "ait": { + "english_name": "Arikem" + }, + "aiw": { + "english_name": "Aari" + }, + "aix": { + "english_name": "Aighon" + }, + "aiy": { + "english_name": "Ali" + }, + "aja": { + "english_name": "Aja (Sudan)" + }, + "ajg": { + "english_name": "Aja (Benin)" + }, + "aji": { + "english_name": "Aji\u00eb" + }, + "ajn": { + "english_name": "Andajin" + }, + "ajp": { + "english_name": "Arabic, South Levantine" + }, + "ajt": { + "english_name": "Arabic, Judeo-Tunisian" + }, + "aju": { + "english_name": "Arabic, Judeo-Moroccan" + }, + "ajw": { + "english_name": "Ajawa" + }, + "ajz": { + "english_name": "Karbi, Amri" + }, + "ak": { + "english_name": "Akan" + }, + "akb": { + "english_name": "Batak Angkola" + }, + "akc": { + "english_name": "Mpur" + }, + "akd": { + "english_name": "Ukpet-Ehom" + }, + "ake": { + "english_name": "Akawaio" + }, + "akf": { + "english_name": "Akpa" + }, + "akg": { + "english_name": "Anakalangu" + }, + "akh": { + "english_name": "Angal Heneng" + }, + "aki": { + "english_name": "Aiome" + }, + "akj": { + "english_name": "Aka-Jeru" + }, + "akk": { + "english_name": "Akkadian" + }, + "akl": { + "english_name": "Aklanon" + }, + "akm": { + "english_name": "Aka-Bo" + }, + "ako": { + "english_name": "Akurio" + }, + "akp": { + "english_name": "Siwu" + }, + "akq": { + "english_name": "Ak" + }, + "akr": { + "english_name": "Araki" + }, + "aks": { + "english_name": "Akaselem" + }, + "akt": { + "english_name": "Akolet" + }, + "aku": { + "english_name": "Akum" + }, + "akv": { + "english_name": "Akhvakh" + }, + "akw": { + "english_name": "Akwa" + }, + "akx": { + "english_name": "Aka-Kede" + }, + "aky": { + "english_name": "Aka-Kol" + }, + "akz": { + "english_name": "Alabama" + }, + "ala": { + "english_name": "Alago" + }, + "alc": { + "english_name": "Qawasqar" + }, + "ald": { + "english_name": "Alladian" + }, + "ale": { + "english_name": "Aleut" + }, + "alf": { + "english_name": "Alege" + }, + "alh": { + "english_name": "Alawa" + }, + "ali": { + "english_name": "Amaimon" + }, + "alj": { + "english_name": "Alangan" + }, + "alk": { + "english_name": "Alak" + }, + "all": { + "english_name": "Allar" + }, + "alm": { + "english_name": "Amblong" + }, + "aln": { + "english_name": "Albanian, Gheg" + }, + "alo": { + "english_name": "Larike-Wakasihu" + }, + "alp": { + "english_name": "Alune" + }, + "alq": { + "english_name": "Algonquin" + }, + "alr": { + "english_name": "Alutor" + }, + "als": { + "english_name": "Albanian, Tosk" + }, + "alt": { + "english_name": "Altai, Southern" + }, + "alu": { + "english_name": "'Are'are" + }, + "alw": { + "english_name": "Alaba-K\u2019abeena" + }, + "alx": { + "english_name": "Amol" + }, + "aly": { + "english_name": "Alyawarr" + }, + "alz": { + "english_name": "Alur" + }, + "am": { + "english_name": "Amharic", + "name": "\u12a0\u121b\u122d\u129b" + }, + "ama": { + "english_name": "Amanay\u00e9" + }, + "amb": { + "english_name": "Ambo" + }, + "amc": { + "english_name": "Amahuaca" + }, + "ame": { + "english_name": "Yanesha'" + }, + "amf": { + "english_name": "Hamer-Banna" + }, + "amg": { + "english_name": "Amurdak" + }, + "ami": { + "english_name": "Amis" + }, + "amj": { + "english_name": "Amdang" + }, + "amk": { + "english_name": "Ambai" + }, + "aml": { + "english_name": "War-Jaintia" + }, + "amm": { + "english_name": "Ama (Papua New Guinea)" + }, + "amn": { + "english_name": "Amanab" + }, + "amo": { + "english_name": "Amo" + }, + "amp": { + "english_name": "Alamblak" + }, + "amq": { + "english_name": "Amahai" + }, + "amr": { + "english_name": "Amarakaeri" + }, + "ams": { + "english_name": "Amami-Oshima, Southern" + }, + "amt": { + "english_name": "Amto" + }, + "amu": { + "english_name": "Amuzgo, Guerrero" + }, + "amv": { + "english_name": "Ambelau" + }, + "amw": { + "english_name": "Neo-Aramaic, Western" + }, + "amx": { + "english_name": "Anmatyerre" + }, + "amy": { + "english_name": "Ami" + }, + "amz": { + "english_name": "Atampaya" + }, + "an": { + "english_name": "Aragonese" + }, + "ana": { + "english_name": "Andaqui" + }, + "anb": { + "english_name": "Andoa" + }, + "anc": { + "english_name": "Ngas" + }, + "and": { + "english_name": "Ansus" + }, + "ane": { + "english_name": "X\u00e2r\u00e2c\u00f9\u00f9" + }, + "anf": { + "english_name": "Animere" + }, + "ang": { + "english_name": "English, Old (ca. 450-1100)" + }, + "anh": { + "english_name": "Nend" + }, + "ani": { + "english_name": "Andi" + }, + "anj": { + "english_name": "Anor" + }, + "ank": { + "english_name": "Goemai" + }, + "anl": { + "english_name": "Chin, Anu-Hkongso" + }, + "anm": { + "english_name": "Anal" + }, + "ann": { + "english_name": "Obolo" + }, + "ano": { + "english_name": "Andoque" + }, + "anp": { + "english_name": "Angika" + }, + "anq": { + "english_name": "Jarawa (India)" + }, + "anr": { + "english_name": "Andh" + }, + "ans": { + "english_name": "Anserma" + }, + "ant": { + "english_name": "Antakarinya" + }, + "anu": { + "english_name": "Anuak" + }, + "anv": { + "english_name": "Denya" + }, + "anw": { + "english_name": "Anaang" + }, + "anx": { + "english_name": "Andra-Hus" + }, + "any": { + "english_name": "Anyin" + }, + "anz": { + "english_name": "Anem" + }, + "aoa": { + "english_name": "Angolar" + }, + "aob": { + "english_name": "Abom" + }, + "aoc": { + "english_name": "Pemon" + }, + "aod": { + "english_name": "Andarum" + }, + "aoe": { + "english_name": "Angal Enen" + }, + "aof": { + "english_name": "Bragat" + }, + "aog": { + "english_name": "Angoram" + }, + "aoh": { + "english_name": "Arma" + }, + "aoi": { + "english_name": "Anindilyakwa" + }, + "aoj": { + "english_name": "Mufian" + }, + "aok": { + "english_name": "Arh\u00f6" + }, + "aol": { + "english_name": "Alor" + }, + "aom": { + "english_name": "\u00d6mie" + }, + "aon": { + "english_name": "Arapesh, Bumbita" + }, + "aor": { + "english_name": "Aore" + }, + "aos": { + "english_name": "Taikat" + }, + "aot": { + "english_name": "A'tong" + }, + "aou": { + "english_name": "A'ou" + }, + "aox": { + "english_name": "Atorada" + }, + "aoz": { + "english_name": "Uab Meto" + }, + "apb": { + "english_name": "Sa'a" + }, + "apc": { + "english_name": "Arabic, North Levantine" + }, + "apd": { + "english_name": "Arabic, Sudanese" + }, + "ape": { + "english_name": "Bukiyip" + }, + "apf": { + "english_name": "Agta, Pahanan" + }, + "apg": { + "english_name": "Ampanang" + }, + "aph": { + "english_name": "Athpariya" + }, + "api": { + "english_name": "Apiak\u00e1" + }, + "apj": { + "english_name": "Apache, Jicarilla" + }, + "apk": { + "english_name": "Apache, Kiowa" + }, + "apl": { + "english_name": "Apache, Lipan" + }, + "apm": { + "english_name": "Apache, Mescalero-Chiricahua" + }, + "apn": { + "english_name": "Apinay\u00e9" + }, + "apo": { + "english_name": "Ambul" + }, + "app": { + "english_name": "Apma" + }, + "apq": { + "english_name": "A-Pucikwar" + }, + "apr": { + "english_name": "Arop-Lokep" + }, + "aps": { + "english_name": "Arop-Sissano" + }, + "apt": { + "english_name": "Apatani" + }, + "apu": { + "english_name": "Apurin\u00e3" + }, + "apv": { + "english_name": "Alapmunte" + }, + "apw": { + "english_name": "Apache, Western" + }, + "apx": { + "english_name": "Aputai" + }, + "apy": { + "english_name": "Apala\u00ed" + }, + "apz": { + "english_name": "Safeyoka" + }, + "aqc": { + "english_name": "Archi" + }, + "aqd": { + "english_name": "Dogon, Ampari" + }, + "aqg": { + "english_name": "Arigidi" + }, + "aqm": { + "english_name": "Atohwaim" + }, + "aqn": { + "english_name": "Alta, Northern" + }, + "aqp": { + "english_name": "Atakapa" + }, + "aqr": { + "english_name": "Arh\u00e2" + }, + "aqz": { + "english_name": "Akuntsu" + }, + "ar": { + "english_name": "Arabic", + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "arb": { + "english_name": "Arabic, Standard" + }, + "arc": { + "english_name": "Aramaic, Official (700-300 BCE)" + }, + "ard": { + "english_name": "Arabana" + }, + "are": { + "english_name": "Arrarnta, Western" + }, + "arh": { + "english_name": "Arhuaco" + }, + "ari": { + "english_name": "Arikara" + }, + "arj": { + "english_name": "Arapaso" + }, + "ark": { + "english_name": "Arikap\u00fa" + }, + "arl": { + "english_name": "Arabela" + }, + "arn": { + "english_name": "Mapudungun" + }, + "aro": { + "english_name": "Araona" + }, + "arp": { + "english_name": "Arapaho" + }, + "arq": { + "english_name": "Arabic, Algerian" + }, + "arr": { + "english_name": "Karo (Brazil)" + }, + "ars": { + "english_name": "Arabic, Najdi" + }, + "aru": { + "english_name": "Aru\u00e1 (Amazonas State)" + }, + "arv": { + "english_name": "Arbore" + }, + "arw": { + "english_name": "Arawak" + }, + "arx": { + "english_name": "Aru\u00e1 (Rodonia State)" + }, + "ary": { + "english_name": "Arabic, Moroccan" + }, + "arz": { + "english_name": "Arabic, Egyptian" + }, + "as": { + "english_name": "Assamese" + }, + "asa": { + "english_name": "Asu (Tanzania)" + }, + "asb": { + "english_name": "Assiniboine" + }, + "asc": { + "english_name": "Asmat, Casuarina Coast" + }, + "asd": { + "english_name": "Asas" + }, + "ase": { + "english_name": "American Sign Language" + }, + "asf": { + "english_name": "Australian Sign Language" + }, + "asg": { + "english_name": "Cishingini" + }, + "ash": { + "english_name": "Abishira" + }, + "asi": { + "english_name": "Buruwai" + }, + "asj": { + "english_name": "Sari" + }, + "ask": { + "english_name": "Ashkun" + }, + "asl": { + "english_name": "Asilulu" + }, + "asn": { + "english_name": "Asurin\u00ed, Xing\u00fa" + }, + "aso": { + "english_name": "Dano" + }, + "asp": { + "english_name": "Algerian Sign Language" + }, + "asq": { + "english_name": "Austrian Sign Language" + }, + "asr": { + "english_name": "Asuri" + }, + "ass": { + "english_name": "Ipulo" + }, + "ast": { + "english_name": "Asturian", + "name": "Asturianu" + }, + "asu": { + "english_name": "Asurini, Tocantins" + }, + "asv": { + "english_name": "Asoa" + }, + "asw": { + "english_name": "Australian Aborigines Sign Language" + }, + "asx": { + "english_name": "Muratayak" + }, + "asy": { + "english_name": "Asmat, Yaosakor" + }, + "asz": { + "english_name": "As" + }, + "ata": { + "english_name": "Pele-Ata" + }, + "atb": { + "english_name": "Zaiwa" + }, + "atc": { + "english_name": "Atsahuaca" + }, + "atd": { + "english_name": "Manobo, Ata" + }, + "ate": { + "english_name": "Atemble" + }, + "atg": { + "english_name": "Ivbie North-Okpela-Arhe" + }, + "ati": { + "english_name": "Atti\u00e9" + }, + "atj": { + "english_name": "Atikamekw" + }, + "atk": { + "english_name": "Ati" + }, + "atl": { + "english_name": "Agta, Mt. Iraya" + }, + "atm": { + "english_name": "Ata" + }, + "atn": { + "english_name": "Ashtiani" + }, + "ato": { + "english_name": "Atong" + }, + "atp": { + "english_name": "Atta, Pudtol" + }, + "atq": { + "english_name": "Aralle-Tabulahan" + }, + "atr": { + "english_name": "Waimiri-Atroari" + }, + "ats": { + "english_name": "Gros Ventre" + }, + "att": { + "english_name": "Atta, Pamplona" + }, + "atu": { + "english_name": "Reel" + }, + "atv": { + "english_name": "Altai, Northern" + }, + "atw": { + "english_name": "Atsugewi" + }, + "atx": { + "english_name": "Arutani" + }, + "aty": { + "english_name": "Aneityum" + }, + "atz": { + "english_name": "Arta" + }, + "aua": { + "english_name": "Asumboa" + }, + "aub": { + "english_name": "Alugu" + }, + "auc": { + "english_name": "Waorani" + }, + "aud": { + "english_name": "Anuta" + }, + "aug": { + "english_name": "Aguna" + }, + "auh": { + "english_name": "Aushi" + }, + "aui": { + "english_name": "Anuki" + }, + "auj": { + "english_name": "Awjilah" + }, + "auk": { + "english_name": "Heyo" + }, + "aul": { + "english_name": "Aulua" + }, + "aum": { + "english_name": "Asu (Nigeria)" + }, + "aun": { + "english_name": "One, Molmo" + }, + "auo": { + "english_name": "Auyokawa" + }, + "aup": { + "english_name": "Makayam" + }, + "auq": { + "english_name": "Anus" + }, + "aur": { + "english_name": "Aruek" + }, + "aut": { + "english_name": "Austral" + }, + "auu": { + "english_name": "Auye" + }, + "auw": { + "english_name": "Awyi" + }, + "aux": { + "english_name": "Aur\u00e1" + }, + "auy": { + "english_name": "Awiyaana" + }, + "auz": { + "english_name": "Arabic, Uzbeki" + }, + "av": { + "english_name": "Avaric" + }, + "avb": { + "english_name": "Avau" + }, + "avd": { + "english_name": "Alviri-Vidari" + }, + "avi": { + "english_name": "Avikam" + }, + "avk": { + "english_name": "Kotava" + }, + "avl": { + "english_name": "Arabic, Eastern Egyptian Bedawi" + }, + "avm": { + "english_name": "Angkamuthi" + }, + "avn": { + "english_name": "Avatime" + }, + "avo": { + "english_name": "Agavotaguerra" + }, + "avs": { + "english_name": "Aushiri" + }, + "avt": { + "english_name": "Au" + }, + "avu": { + "english_name": "Avokaya" + }, + "avv": { + "english_name": "Av\u00e1-Canoeiro" + }, + "awa": { + "english_name": "Awadhi" + }, + "awb": { + "english_name": "Awa (Papua New Guinea)" + }, + "awc": { + "english_name": "Cicipu" + }, + "awe": { + "english_name": "Awet\u00ed" + }, + "awg": { + "english_name": "Anguthimri" + }, + "awh": { + "english_name": "Awbono" + }, + "awi": { + "english_name": "Aekyom" + }, + "awk": { + "english_name": "Awabakal" + }, + "awm": { + "english_name": "Arawum" + }, + "awn": { + "english_name": "Awngi" + }, + "awo": { + "english_name": "Awak" + }, + "awr": { + "english_name": "Awera" + }, + "aws": { + "english_name": "Awyu, South" + }, + "awt": { + "english_name": "Arawet\u00e9" + }, + "awu": { + "english_name": "Awyu, Central" + }, + "awv": { + "english_name": "Awyu, Jair" + }, + "aww": { + "english_name": "Awun" + }, + "awx": { + "english_name": "Awara" + }, + "awy": { + "english_name": "Awyu, Edera" + }, + "axb": { + "english_name": "Abipon" + }, + "axe": { + "english_name": "Ayerrerenge" + }, + "axg": { + "english_name": "Ar\u00e1ra, Mato Grosso" + }, + "axk": { + "english_name": "Yaka (Central African Republic)" + }, + "axl": { + "english_name": "Aranda, Lower Southern" + }, + "axm": { + "english_name": "Armenian, Middle" + }, + "axx": { + "english_name": "X\u00e2r\u00e2gur\u00e8" + }, + "ay": { + "english_name": "Aymara" + }, + "aya": { + "english_name": "Awar" + }, + "ayb": { + "english_name": "Gbe, Ayizo" + }, + "ayc": { + "english_name": "Aymara, Southern" + }, + "ayd": { + "english_name": "Ayabadhu" + }, + "aye": { + "english_name": "Ayere" + }, + "ayg": { + "english_name": "Ginyanga" + }, + "ayh": { + "english_name": "Arabic, Hadrami" + }, + "ayi": { + "english_name": "Leyigha" + }, + "ayk": { + "english_name": "Akuku" + }, + "ayl": { + "english_name": "Arabic, Libyan" + }, + "ayn": { + "english_name": "Arabic, Sanaani" + }, + "ayo": { + "english_name": "Ayoreo" + }, + "ayp": { + "english_name": "Arabic, North Mesopotamian" + }, + "ayq": { + "english_name": "Ayi (Papua New Guinea)" + }, + "ayr": { + "english_name": "Aymara, Central" + }, + "ays": { + "english_name": "Ayta, Sorsogon" + }, + "ayt": { + "english_name": "Ayta, Magbukun" + }, + "ayu": { + "english_name": "Ayu" + }, + "ayy": { + "english_name": "Ayta, Tayabas" + }, + "ayz": { + "english_name": "Mai Brat" + }, + "az": { + "english_name": "Azerbaijani", + "name": "Azerbaijani" + }, + "aza": { + "english_name": "Azha" + }, + "azb": { + "english_name": "Azerbaijani, South" + }, + "azd": { + "english_name": "Nahuatl, Eastern Durango" + }, + "azg": { + "english_name": "Amuzgo, San Pedro Amuzgos" + }, + "azj": { + "english_name": "Azerbaijani, North" + }, + "azm": { + "english_name": "Amuzgo, Ipalapa" + }, + "azn": { + "english_name": "Nahuatl, Western Durango" + }, + "azo": { + "english_name": "Awing" + }, + "azt": { + "english_name": "Atta, Faire" + }, + "azz": { + "english_name": "Nahuatl, Highland Puebla" + }, + "ba": { + "english_name": "Bashkir" + }, + "baa": { + "english_name": "Babatana" + }, + "bab": { + "english_name": "Bainouk-Gunyu\u00f1o" + }, + "bac": { + "english_name": "Badui" + }, + "bae": { + "english_name": "Bar\u00e9" + }, + "baf": { + "english_name": "Nubaca" + }, + "bag": { + "english_name": "Tuki" + }, + "bah": { + "english_name": "Creole English, Bahamas" + }, + "baj": { + "english_name": "Barakai" + }, + "bal": { + "english_name": "Baluchi" + }, + "ban": { + "english_name": "Balinese" + }, + "bao": { + "english_name": "Waimaha" + }, + "bap": { + "english_name": "Bantawa" + }, + "bar": { + "english_name": "Bavarian" + }, + "bas": { + "english_name": "Basa (Cameroon)" + }, + "bau": { + "english_name": "Bada (Nigeria)" + }, + "bav": { + "english_name": "Vengo" + }, + "baw": { + "english_name": "Bambili-Bambui" + }, + "bax": { + "english_name": "Bamun" + }, + "bay": { + "english_name": "Batuley" + }, + "bba": { + "english_name": "Baatonum" + }, + "bbb": { + "english_name": "Barai" + }, + "bbc": { + "english_name": "Batak Toba" + }, + "bbd": { + "english_name": "Bau" + }, + "bbe": { + "english_name": "Bangba" + }, + "bbf": { + "english_name": "Baibai" + }, + "bbg": { + "english_name": "Barama" + }, + "bbh": { + "english_name": "Bugan" + }, + "bbi": { + "english_name": "Barombi" + }, + "bbj": { + "english_name": "Ghom\u00e1l\u00e1'" + }, + "bbk": { + "english_name": "Babanki" + }, + "bbl": { + "english_name": "Bats" + }, + "bbm": { + "english_name": "Babango" + }, + "bbn": { + "english_name": "Uneapa" + }, + "bbo": { + "english_name": "Bobo Madar\u00e9, Northern" + }, + "bbp": { + "english_name": "Banda, West Central" + }, + "bbq": { + "english_name": "Bamali" + }, + "bbr": { + "english_name": "Girawa" + }, + "bbs": { + "english_name": "Bakpinka" + }, + "bbt": { + "english_name": "Mburku" + }, + "bbu": { + "english_name": "Kulung (Nigeria)" + }, + "bbv": { + "english_name": "Karnai" + }, + "bbw": { + "english_name": "Baba" + }, + "bbx": { + "english_name": "Bubia" + }, + "bby": { + "english_name": "Befang" + }, + "bbz": { + "english_name": "Creole Arabic, Babalia" + }, + "bca": { + "english_name": "Bai, Central" + }, + "bcb": { + "english_name": "Bainouk-Samik" + }, + "bcc": { + "english_name": "Balochi, Southern" + }, + "bcd": { + "english_name": "Babar, North" + }, + "bce": { + "english_name": "Bamenyam" + }, + "bcf": { + "english_name": "Bamu" + }, + "bcg": { + "english_name": "Baga Binari" + }, + "bch": { + "english_name": "Bariai" + }, + "bci": { + "english_name": "Baoul\u00e9" + }, + "bcj": { + "english_name": "Bardi" + }, + "bck": { + "english_name": "Bunaba" + }, + "bcl": { + "english_name": "Bikol, Central" + }, + "bcm": { + "english_name": "Bannoni" + }, + "bcn": { + "english_name": "Bali (Nigeria)" + }, + "bco": { + "english_name": "Kaluli" + }, + "bcp": { + "english_name": "Bali (Democratic Republic of Congo)" + }, + "bcq": { + "english_name": "Bench" + }, + "bcr": { + "english_name": "Babine" + }, + "bcs": { + "english_name": "Kohumono" + }, + "bct": { + "english_name": "Bendi" + }, + "bcu": { + "english_name": "Awad Bing" + }, + "bcv": { + "english_name": "Shoo-Minda-Nye" + }, + "bcw": { + "english_name": "Bana" + }, + "bcy": { + "english_name": "Bacama" + }, + "bcz": { + "english_name": "Bainouk-Gunyaamolo" + }, + "bda": { + "english_name": "Bayot" + }, + "bdb": { + "english_name": "Basap" + }, + "bdc": { + "english_name": "Ember\u00e1-Baud\u00f3" + }, + "bdd": { + "english_name": "Bunama" + }, + "bde": { + "english_name": "Bade" + }, + "bdf": { + "english_name": "Biage" + }, + "bdg": { + "english_name": "Bonggi" + }, + "bdh": { + "english_name": "Baka (Sudan)" + }, + "bdi": { + "english_name": "Burun" + }, + "bdj": { + "english_name": "Bai" + }, + "bdk": { + "english_name": "Budukh" + }, + "bdl": { + "english_name": "Bajau, Indonesian" + }, + "bdm": { + "english_name": "Buduma" + }, + "bdn": { + "english_name": "Baldemu" + }, + "bdo": { + "english_name": "Morom" + }, + "bdp": { + "english_name": "Bende" + }, + "bdq": { + "english_name": "Bahnar" + }, + "bdr": { + "english_name": "Bajau, West Coast" + }, + "bds": { + "english_name": "Burunge" + }, + "bdt": { + "english_name": "Bokoto" + }, + "bdu": { + "english_name": "Oroko" + }, + "bdv": { + "english_name": "Bodo Parja" + }, + "bdw": { + "english_name": "Baham" + }, + "bdx": { + "english_name": "Budong-Budong" + }, + "bdy": { + "english_name": "Bandjalang" + }, + "bdz": { + "english_name": "Badeshi" + }, + "be": { + "english_name": "Belarusian" + }, + "bea": { + "english_name": "Beaver" + }, + "beb": { + "english_name": "Bebele" + }, + "bec": { + "english_name": "Iceve-Maci" + }, + "bed": { + "english_name": "Bedoanas" + }, + "bee": { + "english_name": "Byangsi" + }, + "bef": { + "english_name": "Benabena" + }, + "beg": { + "english_name": "Belait" + }, + "beh": { + "english_name": "Biali" + }, + "bei": { + "english_name": "Bekati'" + }, + "bej": { + "english_name": "Beja" + }, + "bek": { + "english_name": "Bebeli" + }, + "bem": { + "english_name": "Bemba (Zambia)" + }, + "beo": { + "english_name": "Beami" + }, + "bep": { + "english_name": "Besoa" + }, + "beq": { + "english_name": "Beembe" + }, + "bes": { + "english_name": "Besme" + }, + "bet": { + "english_name": "B\u00e9te, Guiberoua" + }, + "beu": { + "english_name": "Blagar" + }, + "bev": { + "english_name": "B\u00e9t\u00e9, Daloa" + }, + "bew": { + "english_name": "Betawi" + }, + "bex": { + "english_name": "Jur Modo" + }, + "bey": { + "english_name": "Beli (Papua New Guinea)" + }, + "bez": { + "english_name": "Bena (Tanzania)" + }, + "bfa": { + "english_name": "Bari" + }, + "bfb": { + "english_name": "Bareli, Pauri" + }, + "bfc": { + "english_name": "Bai, Northern" + }, + "bfd": { + "english_name": "Bafut" + }, + "bfe": { + "english_name": "Betaf" + }, + "bff": { + "english_name": "Bofi" + }, + "bfg": { + "english_name": "Kayan, Busang" + }, + "bfh": { + "english_name": "Blafe" + }, + "bfi": { + "english_name": "British Sign Language" + }, + "bfj": { + "english_name": "Bafanji" + }, + "bfk": { + "english_name": "Ban Khor Sign Language" + }, + "bfl": { + "english_name": "Banda-Nd\u00e9l\u00e9" + }, + "bfm": { + "english_name": "Mmen" + }, + "bfn": { + "english_name": "Bunak" + }, + "bfo": { + "english_name": "Birifor, Malba" + }, + "bfp": { + "english_name": "Beba" + }, + "bfq": { + "english_name": "Badaga" + }, + "bfr": { + "english_name": "Bazigar" + }, + "bfs": { + "english_name": "Bai, Southern" + }, + "bft": { + "english_name": "Balti" + }, + "bfu": { + "english_name": "Gahri" + }, + "bfw": { + "english_name": "Bondo" + }, + "bfx": { + "english_name": "Bantayanon" + }, + "bfy": { + "english_name": "Bagheli" + }, + "bfz": { + "english_name": "Pahari, Mahasu" + }, + "bg": { + "english_name": "Bulgarian", + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "bga": { + "english_name": "Gwamhi-Wuri" + }, + "bgb": { + "english_name": "Bobongko" + }, + "bgc": { + "english_name": "Haryanvi" + }, + "bgd": { + "english_name": "Bareli, Rathwi" + }, + "bge": { + "english_name": "Bauria" + }, + "bgf": { + "english_name": "Bangandu" + }, + "bgg": { + "english_name": "Bugun" + }, + "bgi": { + "english_name": "Giangan" + }, + "bgj": { + "english_name": "Bangolan" + }, + "bgk": { + "english_name": "Bit" + }, + "bgl": { + "english_name": "Bo (Laos)" + }, + "bgm": { + "english_name": "Baga Mboteni" + }, + "bgn": { + "english_name": "Balochi, Western" + }, + "bgo": { + "english_name": "Baga Koga" + }, + "bgp": { + "english_name": "Balochi, Eastern" + }, + "bgq": { + "english_name": "Bagri" + }, + "bgr": { + "english_name": "Chin, Bawm" + }, + "bgs": { + "english_name": "Tagabawa" + }, + "bgt": { + "english_name": "Bughotu" + }, + "bgu": { + "english_name": "Mbongno" + }, + "bgv": { + "english_name": "Warkay-Bipim" + }, + "bgw": { + "english_name": "Bhatri" + }, + "bgx": { + "english_name": "Turkish, Balkan Gagauz" + }, + "bgy": { + "english_name": "Benggoi" + }, + "bgz": { + "english_name": "Banggai" + }, + "bha": { + "english_name": "Bharia" + }, + "bhb": { + "english_name": "Bhili" + }, + "bhc": { + "english_name": "Biga" + }, + "bhd": { + "english_name": "Bhadrawahi" + }, + "bhe": { + "english_name": "Bhaya" + }, + "bhf": { + "english_name": "Odiai" + }, + "bhg": { + "english_name": "Binandere" + }, + "bhh": { + "english_name": "Bukharic" + }, + "bhi": { + "english_name": "Bhilali" + }, + "bhj": { + "english_name": "Bahing" + }, + "bhl": { + "english_name": "Bimin" + }, + "bhm": { + "english_name": "Bathari" + }, + "bhn": { + "english_name": "Neo-Aramaic, Bohtan" + }, + "bho": { + "english_name": "Bhojpuri" + }, + "bhp": { + "english_name": "Bima" + }, + "bhq": { + "english_name": "Tukang Besi South" + }, + "bhr": { + "english_name": "Malagasy, Bara" + }, + "bhs": { + "english_name": "Buwal" + }, + "bht": { + "english_name": "Bhattiyali" + }, + "bhu": { + "english_name": "Bhunjia" + }, + "bhv": { + "english_name": "Bahau" + }, + "bhw": { + "english_name": "Biak" + }, + "bhx": { + "english_name": "Bhalay" + }, + "bhy": { + "english_name": "Bhele" + }, + "bhz": { + "english_name": "Bada (Indonesia)" + }, + "bi": { + "english_name": "Bislama" + }, + "bia": { + "english_name": "Badimaya" + }, + "bib": { + "english_name": "Bissa" + }, + "bic": { + "english_name": "Bikaru" + }, + "bid": { + "english_name": "Bidiyo" + }, + "bie": { + "english_name": "Bepour" + }, + "bif": { + "english_name": "Biafada" + }, + "big": { + "english_name": "Biangai" + }, + "bij": { + "english_name": "Vaghat-Ya-Bijim-Legeri" + }, + "bik": { + "english_name": "Bikol" + }, + "bil": { + "english_name": "Bile" + }, + "bim": { + "english_name": "Bimoba" + }, + "bin": { + "english_name": "Bini" + }, + "bio": { + "english_name": "Nai" + }, + "bip": { + "english_name": "Bila" + }, + "biq": { + "english_name": "Bipi" + }, + "bir": { + "english_name": "Bisorio" + }, + "bit": { + "english_name": "Berinomo" + }, + "biu": { + "english_name": "Biete" + }, + "biv": { + "english_name": "Birifor, Southern" + }, + "biw": { + "english_name": "Kol (Cameroon)" + }, + "bix": { + "english_name": "Bijori" + }, + "biy": { + "english_name": "Birhor" + }, + "biz": { + "english_name": "Baloi" + }, + "bja": { + "english_name": "Budza" + }, + "bjb": { + "english_name": "Banggarla" + }, + "bjc": { + "english_name": "Bariji" + }, + "bje": { + "english_name": "Mien, Biao-Jiao" + }, + "bjf": { + "english_name": "Neo-Aramaic, Barzani Jewish" + }, + "bjg": { + "english_name": "Bidyogo" + }, + "bjh": { + "english_name": "Bahinemo" + }, + "bji": { + "english_name": "Burji" + }, + "bjj": { + "english_name": "Kanauji" + }, + "bjk": { + "english_name": "Barok" + }, + "bjl": { + "english_name": "Bulu (Papua New Guinea)" + }, + "bjm": { + "english_name": "Bajelani" + }, + "bjn": { + "english_name": "Banjar" + }, + "bjo": { + "english_name": "Banda, Mid-Southern" + }, + "bjp": { + "english_name": "Fanamaket" + }, + "bjr": { + "english_name": "Binumarien" + }, + "bjs": { + "english_name": "Bajan" + }, + "bjt": { + "english_name": "Balanta-Ganja" + }, + "bju": { + "english_name": "Busuu" + }, + "bjv": { + "english_name": "Bedjond" + }, + "bjw": { + "english_name": "Bakw\u00e9" + }, + "bjx": { + "english_name": "Itneg, Banao" + }, + "bjy": { + "english_name": "Bayali" + }, + "bjz": { + "english_name": "Baruga" + }, + "bka": { + "english_name": "Kyak" + }, + "bkc": { + "english_name": "Baka (Cameroon)" + }, + "bkd": { + "english_name": "Binukid" + }, + "bkf": { + "english_name": "Beeke" + }, + "bkg": { + "english_name": "Buraka" + }, + "bkh": { + "english_name": "Bakoko" + }, + "bki": { + "english_name": "Baki" + }, + "bkj": { + "english_name": "Pande" + }, + "bkk": { + "english_name": "Brokskat" + }, + "bkl": { + "english_name": "Berik" + }, + "bkm": { + "english_name": "Kom (Cameroon)" + }, + "bkn": { + "english_name": "Bukitan" + }, + "bko": { + "english_name": "Kwa'" + }, + "bkp": { + "english_name": "Boko (Democratic Republic of Congo)" + }, + "bkq": { + "english_name": "Bakair\u00ed" + }, + "bkr": { + "english_name": "Bakumpai" + }, + "bks": { + "english_name": "Sorsoganon, Northern" + }, + "bkt": { + "english_name": "Boloki" + }, + "bku": { + "english_name": "Buhid" + }, + "bkv": { + "english_name": "Bekwarra" + }, + "bkw": { + "english_name": "Bekwel" + }, + "bkx": { + "english_name": "Baikeno" + }, + "bky": { + "english_name": "Bokyi" + }, + "bkz": { + "english_name": "Bungku" + }, + "bla": { + "english_name": "Siksika" + }, + "blb": { + "english_name": "Bilua" + }, + "blc": { + "english_name": "Bella Coola" + }, + "bld": { + "english_name": "Bolango" + }, + "ble": { + "english_name": "Balanta-Kentohe" + }, + "blf": { + "english_name": "Buol" + }, + "blg": { + "english_name": "Balau" + }, + "blh": { + "english_name": "Kuwaa" + }, + "bli": { + "english_name": "Bolia" + }, + "blj": { + "english_name": "Bolongan" + }, + "blk": { + "english_name": "Karen, Pa'o" + }, + "bll": { + "english_name": "Biloxi" + }, + "blm": { + "english_name": "Beli (Sudan)" + }, + "bln": { + "english_name": "Bikol, Southern Catanduanes" + }, + "blo": { + "english_name": "Anii" + }, + "blp": { + "english_name": "Blablanga" + }, + "blq": { + "english_name": "Baluan-Pam" + }, + "blr": { + "english_name": "Blang" + }, + "bls": { + "english_name": "Balaesang" + }, + "blt": { + "english_name": "Tai Dam" + }, + "blv": { + "english_name": "Bolo" + }, + "blw": { + "english_name": "Balangao" + }, + "blx": { + "english_name": "Ayta, Mag-Indi" + }, + "bly": { + "english_name": "Notre" + }, + "blz": { + "english_name": "Balantak" + }, + "bm": { + "english_name": "Bambara" + }, + "bma": { + "english_name": "Lame" + }, + "bmb": { + "english_name": "Bembe" + }, + "bmc": { + "english_name": "Biem" + }, + "bmd": { + "english_name": "Manduri, Baga" + }, + "bme": { + "english_name": "Limassa" + }, + "bmf": { + "english_name": "Bom" + }, + "bmg": { + "english_name": "Bamwe" + }, + "bmh": { + "english_name": "Kein" + }, + "bmi": { + "english_name": "Bagirmi" + }, + "bmj": { + "english_name": "Bote-Majhi" + }, + "bmk": { + "english_name": "Ghayavi" + }, + "bml": { + "english_name": "Bomboli" + }, + "bmm": { + "english_name": "Malagasy, Northern Betsimisaraka" + }, + "bmn": { + "english_name": "Bina (Papua New Guinea)" + }, + "bmo": { + "english_name": "Bambalang" + }, + "bmp": { + "english_name": "Bulgebi" + }, + "bmq": { + "english_name": "Bomu" + }, + "bmr": { + "english_name": "Muinane" + }, + "bms": { + "english_name": "Kanuri, Bilma" + }, + "bmt": { + "english_name": "Biao Mon" + }, + "bmu": { + "english_name": "Somba-Siawari" + }, + "bmv": { + "english_name": "Bum" + }, + "bmw": { + "english_name": "Bomwali" + }, + "bmx": { + "english_name": "Baimak" + }, + "bmz": { + "english_name": "Baramu" + }, + "bn": { + "english_name": "Bengali", + "name": "\u09ac\u09be\u0982\u09b2\u09be" + }, + "bna": { + "english_name": "Bonerate" + }, + "bnb": { + "english_name": "Bookan" + }, + "bnc": { + "english_name": "Bontok" + }, + "bnd": { + "english_name": "Banda (Indonesia)" + }, + "bne": { + "english_name": "Bintauna" + }, + "bnf": { + "english_name": "Masiwang" + }, + "bng": { + "english_name": "Benga" + }, + "bni": { + "english_name": "Bangi" + }, + "bnj": { + "english_name": "Tawbuid, Eastern" + }, + "bnk": { + "english_name": "Bierebo" + }, + "bnl": { + "english_name": "Boon" + }, + "bnm": { + "english_name": "Batanga" + }, + "bnn": { + "english_name": "Bunun" + }, + "bno": { + "english_name": "Bantoanon" + }, + "bnp": { + "english_name": "Bola" + }, + "bnq": { + "english_name": "Bantik" + }, + "bnr": { + "english_name": "Butmas-Tur" + }, + "bns": { + "english_name": "Bundeli" + }, + "bnu": { + "english_name": "Bentong" + }, + "bnv": { + "english_name": "Bonerif" + }, + "bnw": { + "english_name": "Bisis" + }, + "bnx": { + "english_name": "Bangubangu" + }, + "bny": { + "english_name": "Bintulu" + }, + "bnz": { + "english_name": "Beezen" + }, + "bo": { + "english_name": "Tibetan" + }, + "boa": { + "english_name": "Bora" + }, + "bob": { + "english_name": "Aweer" + }, + "boe": { + "english_name": "Mundabli" + }, + "bof": { + "english_name": "Bolon" + }, + "bog": { + "english_name": "Bamako Sign Language" + }, + "boh": { + "english_name": "Boma" + }, + "boi": { + "english_name": "Barbare\u00f1o" + }, + "boj": { + "english_name": "Anjam" + }, + "bok": { + "english_name": "Bonjo" + }, + "bol": { + "english_name": "Bole" + }, + "bom": { + "english_name": "Berom" + }, + "bon": { + "english_name": "Bine" + }, + "boo": { + "english_name": "Bozo, Tiemac\u00e8w\u00e8" + }, + "bop": { + "english_name": "Bonkiman" + }, + "boq": { + "english_name": "Bogaya" + }, + "bor": { + "english_name": "Bor\u00f4ro" + }, + "bot": { + "english_name": "Bongo" + }, + "bou": { + "english_name": "Bondei" + }, + "bov": { + "english_name": "Tuwuli" + }, + "bow": { + "english_name": "Rema" + }, + "box": { + "english_name": "Buamu" + }, + "boy": { + "english_name": "Bodo (Central African Republic)" + }, + "boz": { + "english_name": "Bozo, Ti\u00e9yaxo" + }, + "bpa": { + "english_name": "Daakaka" + }, + "bpb": { + "english_name": "Barbacoas" + }, + "bpd": { + "english_name": "Banda-Banda" + }, + "bpg": { + "english_name": "Bonggo" + }, + "bph": { + "english_name": "Botlikh" + }, + "bpi": { + "english_name": "Bagupi" + }, + "bpj": { + "english_name": "Binji" + }, + "bpk": { + "english_name": "Orowe" + }, + "bpl": { + "english_name": "Broome Pearling Lugger Pidgin" + }, + "bpm": { + "english_name": "Biyom" + }, + "bpn": { + "english_name": "Dzao Min" + }, + "bpo": { + "english_name": "Anasi" + }, + "bpp": { + "english_name": "Kaure" + }, + "bpq": { + "english_name": "Malay, Banda" + }, + "bpr": { + "english_name": "Blaan, Koronadal" + }, + "bps": { + "english_name": "Blaan, Sarangani" + }, + "bpt": { + "english_name": "Barrow Point" + }, + "bpu": { + "english_name": "Bongu" + }, + "bpv": { + "english_name": "Marind, Bian" + }, + "bpw": { + "english_name": "Bo (Papua New Guinea)" + }, + "bpx": { + "english_name": "Bareli, Palya" + }, + "bpy": { + "english_name": "Bishnupriya" + }, + "bpz": { + "english_name": "Bilba" + }, + "bqa": { + "english_name": "Tchumbuli" + }, + "bqb": { + "english_name": "Bagusa" + }, + "bqc": { + "english_name": "Boko (Benin)" + }, + "bqd": { + "english_name": "Bung" + }, + "bqf": { + "english_name": "Baga Kaloum" + }, + "bqg": { + "english_name": "Bago-Kusuntu" + }, + "bqh": { + "english_name": "Baima" + }, + "bqi": { + "english_name": "Bakhtiari" + }, + "bqj": { + "english_name": "Bandial" + }, + "bqk": { + "english_name": "Banda-Mbr\u00e8s" + }, + "bql": { + "english_name": "Bilakura" + }, + "bqm": { + "english_name": "Wumboko" + }, + "bqn": { + "english_name": "Bulgarian Sign Language" + }, + "bqo": { + "english_name": "Balo" + }, + "bqp": { + "english_name": "Busa" + }, + "bqq": { + "english_name": "Biritai" + }, + "bqr": { + "english_name": "Burusu" + }, + "bqs": { + "english_name": "Bosngun" + }, + "bqt": { + "english_name": "Bamukumbit" + }, + "bqu": { + "english_name": "Boguru" + }, + "bqv": { + "english_name": "Koro Wachi" + }, + "bqw": { + "english_name": "Buru (Nigeria)" + }, + "bqx": { + "english_name": "Baangi" + }, + "bqy": { + "english_name": "Bengkala Sign Language" + }, + "bqz": { + "english_name": "Bakaka" + }, + "br": { + "english_name": "Breton", + "name": "Brezhoneg" + }, + "bra": { + "english_name": "Braj" + }, + "brb": { + "english_name": "Lave" + }, + "brc": { + "english_name": "Creole Dutch, Berbice" + }, + "brd": { + "english_name": "Baraamu" + }, + "brf": { + "english_name": "Bera" + }, + "brg": { + "english_name": "Baure" + }, + "brh": { + "english_name": "Brahui" + }, + "bri": { + "english_name": "Mokpwe" + }, + "brj": { + "english_name": "Bieria" + }, + "brk": { + "english_name": "Birked" + }, + "brl": { + "english_name": "Birwa" + }, + "brm": { + "english_name": "Barambu" + }, + "brn": { + "english_name": "Boruca" + }, + "bro": { + "english_name": "Brokkat" + }, + "brp": { + "english_name": "Barapasi" + }, + "brq": { + "english_name": "Breri" + }, + "brr": { + "english_name": "Birao" + }, + "brs": { + "english_name": "Baras" + }, + "brt": { + "english_name": "Bitare" + }, + "bru": { + "english_name": "Bru, Eastern" + }, + "brv": { + "english_name": "Bru, Western" + }, + "brw": { + "english_name": "Bellari" + }, + "brx": { + "english_name": "Bodo (India)" + }, + "bry": { + "english_name": "Burui" + }, + "brz": { + "english_name": "Bilbil" + }, + "bs": { + "english_name": "Bosnian", + "name": "Bosnian" + }, + "bsa": { + "english_name": "Abinomn" + }, + "bsb": { + "english_name": "Bisaya, Brunei" + }, + "bsc": { + "english_name": "Bassari" + }, + "bse": { + "english_name": "Wushi" + }, + "bsf": { + "english_name": "Bauchi" + }, + "bsg": { + "english_name": "Bashkardi" + }, + "bsh": { + "english_name": "Kati" + }, + "bsi": { + "english_name": "Bassossi" + }, + "bsj": { + "english_name": "Bangwinji" + }, + "bsk": { + "english_name": "Burushaski" + }, + "bsl": { + "english_name": "Basa-Gumna" + }, + "bsm": { + "english_name": "Busami" + }, + "bsn": { + "english_name": "Barasana-Eduria" + }, + "bso": { + "english_name": "Buso" + }, + "bsp": { + "english_name": "Baga Sitemu" + }, + "bsq": { + "english_name": "Bassa" + }, + "bsr": { + "english_name": "Bassa-Kontagora" + }, + "bss": { + "english_name": "Akoose" + }, + "bst": { + "english_name": "Basketo" + }, + "bsu": { + "english_name": "Bahonsuai" + }, + "bsv": { + "english_name": "Baga Soban\u00e9" + }, + "bsw": { + "english_name": "Baiso" + }, + "bsx": { + "english_name": "Yangkam" + }, + "bsy": { + "english_name": "Bisaya, Sabah" + }, + "bta": { + "english_name": "Bata" + }, + "btc": { + "english_name": "Bati (Cameroon)" + }, + "btd": { + "english_name": "Batak Dairi" + }, + "bte": { + "english_name": "Gamo-Ningi" + }, + "btf": { + "english_name": "Birgit" + }, + "btg": { + "english_name": "B\u00e9t\u00e9, Gagnoa" + }, + "bth": { + "english_name": "Bidayuh, Biatah" + }, + "bti": { + "english_name": "Burate" + }, + "btj": { + "english_name": "Malay, Bacanese" + }, + "btl": { + "english_name": "Bhatola" + }, + "btm": { + "english_name": "Batak Mandailing" + }, + "btn": { + "english_name": "Ratagnon" + }, + "bto": { + "english_name": "Bikol, Rinconada" + }, + "btp": { + "english_name": "Budibud" + }, + "btq": { + "english_name": "Batek" + }, + "btr": { + "english_name": "Baetora" + }, + "bts": { + "english_name": "Batak Simalungun" + }, + "btt": { + "english_name": "Bete-Bendi" + }, + "btu": { + "english_name": "Batu" + }, + "btv": { + "english_name": "Bateri" + }, + "btw": { + "english_name": "Butuanon" + }, + "btx": { + "english_name": "Batak Karo" + }, + "bty": { + "english_name": "Bobot" + }, + "btz": { + "english_name": "Batak Alas-Kluet" + }, + "bua": { + "english_name": "Buriat" + }, + "bub": { + "english_name": "Bua" + }, + "buc": { + "english_name": "Bushi" + }, + "bud": { + "english_name": "Ntcham" + }, + "bue": { + "english_name": "Beothuk" + }, + "buf": { + "english_name": "Bushoong" + }, + "bug": { + "english_name": "Buginese" + }, + "buh": { + "english_name": "Bunu, Younuo" + }, + "bui": { + "english_name": "Bongili" + }, + "buj": { + "english_name": "Basa-Gurmana" + }, + "buk": { + "english_name": "Bugawac" + }, + "bum": { + "english_name": "Bulu (Cameroon)" + }, + "bun": { + "english_name": "Sherbro" + }, + "buo": { + "english_name": "Terei" + }, + "bup": { + "english_name": "Busoa" + }, + "buq": { + "english_name": "Brem" + }, + "bus": { + "english_name": "Bokobaru" + }, + "but": { + "english_name": "Bungain" + }, + "buu": { + "english_name": "Budu" + }, + "buv": { + "english_name": "Bun" + }, + "buw": { + "english_name": "Bubi" + }, + "bux": { + "english_name": "Boghom" + }, + "buy": { + "english_name": "Bullom So" + }, + "buz": { + "english_name": "Bukwen" + }, + "bva": { + "english_name": "Barein" + }, + "bvb": { + "english_name": "Bube" + }, + "bvc": { + "english_name": "Baelelea" + }, + "bvd": { + "english_name": "Baeggu" + }, + "bve": { + "english_name": "Malay, Berau" + }, + "bvf": { + "english_name": "Boor" + }, + "bvg": { + "english_name": "Bonkeng" + }, + "bvh": { + "english_name": "Bure" + }, + "bvi": { + "english_name": "Belanda Viri" + }, + "bvj": { + "english_name": "Baan" + }, + "bvk": { + "english_name": "Bukat" + }, + "bvl": { + "english_name": "Bolivian Sign Language" + }, + "bvm": { + "english_name": "Bamunka" + }, + "bvn": { + "english_name": "Buna" + }, + "bvo": { + "english_name": "Bolgo" + }, + "bvp": { + "english_name": "Bumang" + }, + "bvq": { + "english_name": "Birri" + }, + "bvr": { + "english_name": "Burarra" + }, + "bvt": { + "english_name": "Bati (Indonesia)" + }, + "bvu": { + "english_name": "Malay, Bukit" + }, + "bvv": { + "english_name": "Baniva" + }, + "bvw": { + "english_name": "Boga" + }, + "bvx": { + "english_name": "Dibole" + }, + "bvy": { + "english_name": "Baybayanon" + }, + "bvz": { + "english_name": "Bauzi" + }, + "bwa": { + "english_name": "Bwatoo" + }, + "bwb": { + "english_name": "Namosi-Naitasiri-Serua" + }, + "bwc": { + "english_name": "Bwile" + }, + "bwd": { + "english_name": "Bwaidoka" + }, + "bwe": { + "english_name": "Karen, Bwe" + }, + "bwf": { + "english_name": "Boselewa" + }, + "bwg": { + "english_name": "Barwe" + }, + "bwh": { + "english_name": "Bishuo" + }, + "bwi": { + "english_name": "Baniwa" + }, + "bwj": { + "english_name": "Bwamu, L\u00e1\u00e1 L\u00e1\u00e1" + }, + "bwk": { + "english_name": "Bauwaki" + }, + "bwl": { + "english_name": "Bwela" + }, + "bwm": { + "english_name": "Biwat" + }, + "bwn": { + "english_name": "Bunu, Wunai" + }, + "bwo": { + "english_name": "Boro (Ethiopia)" + }, + "bwp": { + "english_name": "Mandobo Bawah" + }, + "bwq": { + "english_name": "Bobo Madar\u00e9, Southern" + }, + "bwr": { + "english_name": "Bura-Pabir" + }, + "bws": { + "english_name": "Bomboma" + }, + "bwt": { + "english_name": "Bafaw-Balong" + }, + "bwu": { + "english_name": "Buli (Ghana)" + }, + "bww": { + "english_name": "Bwa" + }, + "bwx": { + "english_name": "Bunu, Bu-Nao" + }, + "bwy": { + "english_name": "Bwamu, Cwi" + }, + "bwz": { + "english_name": "Bwisi" + }, + "bxa": { + "english_name": "Tairaha" + }, + "bxb": { + "english_name": "Bor, Belanda" + }, + "bxc": { + "english_name": "Molengue" + }, + "bxd": { + "english_name": "Pela" + }, + "bxe": { + "english_name": "Birale" + }, + "bxf": { + "english_name": "Bilur" + }, + "bxg": { + "english_name": "Bangala" + }, + "bxh": { + "english_name": "Buhutu" + }, + "bxi": { + "english_name": "Pirlatapa" + }, + "bxj": { + "english_name": "Bayungu" + }, + "bxk": { + "english_name": "Bukusu" + }, + "bxl": { + "english_name": "Jalkunan" + }, + "bxm": { + "english_name": "Buriat, Mongolia" + }, + "bxn": { + "english_name": "Burduna" + }, + "bxo": { + "english_name": "Barikanchi" + }, + "bxp": { + "english_name": "Bebil" + }, + "bxq": { + "english_name": "Beele" + }, + "bxr": { + "english_name": "Buriat, Russia" + }, + "bxs": { + "english_name": "Busam" + }, + "bxu": { + "english_name": "Buriat, China" + }, + "bxv": { + "english_name": "Berakou" + }, + "bxw": { + "english_name": "Bankagooma" + }, + "bxz": { + "english_name": "Binahari" + }, + "bya": { + "english_name": "Batak" + }, + "byb": { + "english_name": "Bikya" + }, + "byc": { + "english_name": "Ubaghara" + }, + "byd": { + "english_name": "Benyadu'" + }, + "bye": { + "english_name": "Pouye" + }, + "byf": { + "english_name": "Bete" + }, + "byg": { + "english_name": "Baygo" + }, + "byh": { + "english_name": "Bhujel" + }, + "byi": { + "english_name": "Buyu" + }, + "byj": { + "english_name": "Bina (Nigeria)" + }, + "byk": { + "english_name": "Biao" + }, + "byl": { + "english_name": "Bayono" + }, + "bym": { + "english_name": "Bidyara" + }, + "byn": { + "english_name": "Bilin", + "name": "Bilin" + }, + "byo": { + "english_name": "Biyo" + }, + "byp": { + "english_name": "Bumaji" + }, + "byq": { + "english_name": "Basay" + }, + "byr": { + "english_name": "Baruya" + }, + "bys": { + "english_name": "Burak" + }, + "byt": { + "english_name": "Berti" + }, + "byv": { + "english_name": "Medumba" + }, + "byw": { + "english_name": "Belhariya" + }, + "byx": { + "english_name": "Qaqet" + }, + "byz": { + "english_name": "Banaro" + }, + "bza": { + "english_name": "Bandi" + }, + "bzb": { + "english_name": "Andio" + }, + "bzc": { + "english_name": "Malagasy, Southern Betsimisaraka" + }, + "bzd": { + "english_name": "Bribri" + }, + "bze": { + "english_name": "Bozo, Jenaama" + }, + "bzf": { + "english_name": "Boikin" + }, + "bzg": { + "english_name": "Babuza" + }, + "bzh": { + "english_name": "Buang, Mapos" + }, + "bzi": { + "english_name": "Bisu" + }, + "bzj": { + "english_name": "Kriol English, Belize" + }, + "bzk": { + "english_name": "Creole English, Nicaragua" + }, + "bzl": { + "english_name": "Boano (Sulawesi)" + }, + "bzm": { + "english_name": "Bolondo" + }, + "bzn": { + "english_name": "Boano (Maluku)" + }, + "bzo": { + "english_name": "Bozaba" + }, + "bzp": { + "english_name": "Kemberano" + }, + "bzq": { + "english_name": "Buli (Indonesia)" + }, + "bzr": { + "english_name": "Biri" + }, + "bzs": { + "english_name": "Brazilian Sign Language" + }, + "bzt": { + "english_name": "Brithenig" + }, + "bzu": { + "english_name": "Burmeso" + }, + "bzv": { + "english_name": "Naami" + }, + "bzw": { + "english_name": "Basa (Nigeria)" + }, + "bzx": { + "english_name": "Bozo, K\u025bl\u025bngaxo" + }, + "bzy": { + "english_name": "Obanliku" + }, + "bzz": { + "english_name": "Evant" + }, + "ca": { + "english_name": "Catalan", + "name": "Catal\u00e0" + }, + "caa": { + "english_name": "Chort\u00ed" + }, + "cab": { + "english_name": "Garifuna" + }, + "cac": { + "english_name": "Chuj" + }, + "cad": { + "english_name": "Caddo" + }, + "cae": { + "english_name": "Lehar" + }, + "caf": { + "english_name": "Carrier, Southern" + }, + "cag": { + "english_name": "Nivacl\u00e9" + }, + "cah": { + "english_name": "Cahuarano" + }, + "caj": { + "english_name": "Chan\u00e9" + }, + "cak": { + "english_name": "Kaqchikel" + }, + "cal": { + "english_name": "Carolinian" + }, + "cam": { + "english_name": "Cemuh\u00ee" + }, + "can": { + "english_name": "Chambri" + }, + "cao": { + "english_name": "Ch\u00e1cobo" + }, + "cap": { + "english_name": "Chipaya" + }, + "caq": { + "english_name": "Nicobarese, Car" + }, + "car": { + "english_name": "Carib, Galibi" + }, + "cas": { + "english_name": "Tsiman\u00e9" + }, + "cav": { + "english_name": "Cavine\u00f1a" + }, + "caw": { + "english_name": "Callawalla" + }, + "cax": { + "english_name": "Chiquitano" + }, + "cay": { + "english_name": "Cayuga" + }, + "caz": { + "english_name": "Canichana" + }, + "cbb": { + "english_name": "Cabiyar\u00ed" + }, + "cbc": { + "english_name": "Carapana" + }, + "cbd": { + "english_name": "Carijona" + }, + "cbe": { + "english_name": "Chipiajes" + }, + "cbg": { + "english_name": "Chimila" + }, + "cbh": { + "english_name": "Cagua" + }, + "cbi": { + "english_name": "Chachi" + }, + "cbj": { + "english_name": "Ede Cabe" + }, + "cbk": { + "english_name": "Chavacano" + }, + "cbl": { + "english_name": "Chin, Bualkhaw" + }, + "cbn": { + "english_name": "Nyahkur" + }, + "cbo": { + "english_name": "Izora" + }, + "cbr": { + "english_name": "Cashibo-Cacataibo" + }, + "cbs": { + "english_name": "Cashinahua" + }, + "cbt": { + "english_name": "Chayahuita" + }, + "cbu": { + "english_name": "Candoshi-Shapra" + }, + "cbv": { + "english_name": "Cacua" + }, + "cbw": { + "english_name": "Kinabalian" + }, + "cby": { + "english_name": "Carabayo" + }, + "cca": { + "english_name": "Cauca" + }, + "ccc": { + "english_name": "Chamicuro" + }, + "ccd": { + "english_name": "Creole, Cafundo" + }, + "cce": { + "english_name": "Chopi" + }, + "ccg": { + "english_name": "Daka, Samba" + }, + "cch": { + "english_name": "Atsam" + }, + "ccj": { + "english_name": "Kasanga" + }, + "ccl": { + "english_name": "Cutchi-Swahili" + }, + "ccm": { + "english_name": "Creole Malay, Malaccan" + }, + "cco": { + "english_name": "Chinantec, Comaltepec" + }, + "ccp": { + "english_name": "Chakma" + }, + "ccr": { + "english_name": "Cacaopera" + }, + "cda": { + "english_name": "Choni" + }, + "cde": { + "english_name": "Chenchu" + }, + "cdf": { + "english_name": "Chiru" + }, + "cdg": { + "english_name": "Chamari" + }, + "cdh": { + "english_name": "Chambeali" + }, + "cdi": { + "english_name": "Chodri" + }, + "cdj": { + "english_name": "Churahi" + }, + "cdm": { + "english_name": "Chepang" + }, + "cdn": { + "english_name": "Chaudangsi" + }, + "cdo": { + "english_name": "Chinese, Min Dong" + }, + "cdr": { + "english_name": "Cinda-Regi-Tiyal" + }, + "cds": { + "english_name": "Chadian Sign Language" + }, + "cdy": { + "english_name": "Chadong" + }, + "cdz": { + "english_name": "Koda" + }, + "ce": { + "english_name": "Chechen" + }, + "cea": { + "english_name": "Chehalis, Lower" + }, + "ceb": { + "english_name": "Cebuano" + }, + "ceg": { + "english_name": "Chamacoco" + }, + "cek": { + "english_name": "Chin, Eastern Khumi" + }, + "cen": { + "english_name": "Cen" + }, + "cet": { + "english_name": "Cent\u00fa\u00fam" + }, + "cfa": { + "english_name": "Dijim-Bwilim" + }, + "cfd": { + "english_name": "Cara" + }, + "cfg": { + "english_name": "Como Karim" + }, + "cfm": { + "english_name": "Chin, Falam" + }, + "cga": { + "english_name": "Changriwa" + }, + "cgc": { + "english_name": "Kagayanen" + }, + "cgg": { + "english_name": "Chiga" + }, + "cgk": { + "english_name": "Chocangacakha" + }, + "ch": { + "english_name": "Chamorro" + }, + "chb": { + "english_name": "Chibcha" + }, + "chc": { + "english_name": "Catawba" + }, + "chd": { + "english_name": "Chontal, Highland Oaxaca" + }, + "chf": { + "english_name": "Chontal, Tabasco" + }, + "chg": { + "english_name": "Chagatai" + }, + "chh": { + "english_name": "Chinook" + }, + "chj": { + "english_name": "Chinantec, Ojitl\u00e1n" + }, + "chk": { + "english_name": "Chuukese" + }, + "chl": { + "english_name": "Cahuilla" + }, + "chm": { + "english_name": "Mari (Russia)" + }, + "chn": { + "english_name": "Chinook jargon" + }, + "cho": { + "english_name": "Choctaw" + }, + "chp": { + "english_name": "Chipewyan" + }, + "chq": { + "english_name": "Chinantec, Quiotepec" + }, + "chr": { + "english_name": "Cherokee" + }, + "cht": { + "english_name": "Chol\u00f3n" + }, + "chw": { + "english_name": "Chuwabu" + }, + "chx": { + "english_name": "Chantyal" + }, + "chy": { + "english_name": "Cheyenne" + }, + "chz": { + "english_name": "Chinantec, Ozumac\u00edn" + }, + "cia": { + "english_name": "Cia-Cia" + }, + "cib": { + "english_name": "Gbe, Ci" + }, + "cic": { + "english_name": "Chickasaw" + }, + "cid": { + "english_name": "Chimariko" + }, + "cie": { + "english_name": "Cineni" + }, + "cih": { + "english_name": "Chinali" + }, + "cik": { + "english_name": "Kinnauri, Chitkuli" + }, + "cim": { + "english_name": "Cimbrian" + }, + "cin": { + "english_name": "Cinta Larga" + }, + "cip": { + "english_name": "Chiapanec" + }, + "cir": { + "english_name": "Tiri" + }, + "ciw": { + "english_name": "Chippewa" + }, + "ciy": { + "english_name": "Chaima" + }, + "cja": { + "english_name": "Cham, Western" + }, + "cje": { + "english_name": "Chru" + }, + "cjh": { + "english_name": "Chehalis, Upper" + }, + "cji": { + "english_name": "Chamalal" + }, + "cjk": { + "english_name": "Chokwe" + }, + "cjm": { + "english_name": "Cham, Eastern" + }, + "cjn": { + "english_name": "Chenapian" + }, + "cjo": { + "english_name": "Ash\u00e9ninka Pajonal" + }, + "cjp": { + "english_name": "Cab\u00e9car" + }, + "cjs": { + "english_name": "Shor" + }, + "cjv": { + "english_name": "Chuave" + }, + "cjy": { + "english_name": "Chinese, Jinyu" + }, + "ckb": { + "english_name": "Kurdish, Central" + }, + "ckh": { + "english_name": "Chak" + }, + "ckl": { + "english_name": "Cibak" + }, + "ckn": { + "english_name": "Chin, Kaang" + }, + "cko": { + "english_name": "Anufo" + }, + "ckq": { + "english_name": "Kajakse" + }, + "ckr": { + "english_name": "Kairak" + }, + "cks": { + "english_name": "Tayo" + }, + "ckt": { + "english_name": "Chukot" + }, + "cku": { + "english_name": "Koasati" + }, + "ckv": { + "english_name": "Kavalan" + }, + "ckx": { + "english_name": "Caka" + }, + "cky": { + "english_name": "Cakfem-Mushere" + }, + "ckz": { + "english_name": "Cakchiquel-Quich\u00e9 Mixed Language" + }, + "cla": { + "english_name": "Ron" + }, + "clc": { + "english_name": "Chilcotin" + }, + "cld": { + "english_name": "Neo-Aramaic, Chaldean" + }, + "cle": { + "english_name": "Chinantec, Lealao" + }, + "clh": { + "english_name": "Chilisso" + }, + "cli": { + "english_name": "Chakali" + }, + "clj": { + "english_name": "Chin, Laitu" + }, + "clk": { + "english_name": "Idu-Mishmi" + }, + "cll": { + "english_name": "Chala" + }, + "clm": { + "english_name": "Clallam" + }, + "clo": { + "english_name": "Chontal, Lowland Oaxaca" + }, + "clt": { + "english_name": "Chin, Lautu" + }, + "clu": { + "english_name": "Caluyanun" + }, + "clw": { + "english_name": "Chulym" + }, + "cly": { + "english_name": "Chatino, Eastern Highland" + }, + "cma": { + "english_name": "Maa" + }, + "cme": { + "english_name": "Cerma" + }, + "cmg": { + "english_name": "Mongolian, Classical" + }, + "cmi": { + "english_name": "Ember\u00e1-Cham\u00ed" + }, + "cml": { + "english_name": "Campalagian" + }, + "cmm": { + "english_name": "Michigamea" + }, + "cmn": { + "english_name": "Chinese, Mandarin" + }, + "cmo": { + "english_name": "Mnong, Central" + }, + "cmr": { + "english_name": "Chin, Mro-Khimi" + }, + "cms": { + "english_name": "Messapic" + }, + "cmt": { + "english_name": "Camtho" + }, + "cna": { + "english_name": "Changthang" + }, + "cnb": { + "english_name": "Chin, Chinbon" + }, + "cnc": { + "english_name": "C\u00f4\u00f4ng" + }, + "cng": { + "english_name": "Qiang, Northern" + }, + "cnh": { + "english_name": "Chin, Haka" + }, + "cni": { + "english_name": "Ash\u00e1ninka" + }, + "cnk": { + "english_name": "Chin, Khumi" + }, + "cnl": { + "english_name": "Chinantec, Lalana" + }, + "cno": { + "english_name": "Con" + }, + "cns": { + "english_name": "Asmat, Central" + }, + "cnt": { + "english_name": "Chinantec, Tepetotutla" + }, + "cnu": { + "english_name": "Chenoua" + }, + "cnw": { + "english_name": "Chin, Ngawn" + }, + "cnx": { + "english_name": "Cornish, Middle" + }, + "co": { + "english_name": "Corsican" + }, + "coa": { + "english_name": "Malay, Cocos Islands" + }, + "cob": { + "english_name": "Chicomuceltec" + }, + "coc": { + "english_name": "Cocopa" + }, + "cod": { + "english_name": "Cocama-Cocamilla" + }, + "coe": { + "english_name": "Koreguaje" + }, + "cof": { + "english_name": "Colorado" + }, + "cog": { + "english_name": "Chong" + }, + "coh": { + "english_name": "Chonyi-Dzihana-Kauma" + }, + "coj": { + "english_name": "Cochimi" + }, + "cok": { + "english_name": "Cora, Santa Teresa" + }, + "col": { + "english_name": "Columbia-Wenatchi" + }, + "com": { + "english_name": "Comanche" + }, + "con": { + "english_name": "Cof\u00e1n" + }, + "coo": { + "english_name": "Comox" + }, + "cop": { + "english_name": "Coptic" + }, + "coq": { + "english_name": "Coquille" + }, + "cot": { + "english_name": "Caquinte" + }, + "cou": { + "english_name": "Wamey" + }, + "cov": { + "english_name": "Cao Miao" + }, + "cow": { + "english_name": "Cowlitz" + }, + "cox": { + "english_name": "Nanti" + }, + "coy": { + "english_name": "Coyaima" + }, + "coz": { + "english_name": "Chochotec" + }, + "cpa": { + "english_name": "Chinantec, Palantla" + }, + "cpb": { + "english_name": "Ash\u00e9ninka, Ucayali-Yur\u00faa" + }, + "cpc": { + "english_name": "Ajy\u00edninka Apurucayali" + }, + "cpg": { + "english_name": "Greek, Cappadocian" + }, + "cpi": { + "english_name": "Pidgin English, Chinese" + }, + "cpn": { + "english_name": "Cherepon" + }, + "cpo": { + "english_name": "Kpeego" + }, + "cps": { + "english_name": "Capiznon" + }, + "cpu": { + "english_name": "Ash\u00e9ninka, Pichis" + }, + "cpx": { + "english_name": "Chinese, Pu-Xian" + }, + "cpy": { + "english_name": "Ash\u00e9ninka, South Ucayali" + }, + "cqd": { + "english_name": "Miao, Chuanqiandian Cluster" + }, + "cqu": { + "english_name": "Quechua, Chilean" + }, + "cr": { + "english_name": "Cree" + }, + "cra": { + "english_name": "Chara" + }, + "crb": { + "english_name": "Carib, Island" + }, + "crc": { + "english_name": "Lonwolwol" + }, + "crd": { + "english_name": "Coeur d'Alene" + }, + "crf": { + "english_name": "Caramanta" + }, + "crg": { + "english_name": "Michif" + }, + "crh": { + "english_name": "Tatar, Crimean", + "name": "Tatar, Crimean" + }, + "cri": { + "english_name": "S\u00e3otomense" + }, + "crj": { + "english_name": "Cree, Southern East" + }, + "crk": { + "english_name": "Cree, Plains" + }, + "crl": { + "english_name": "Cree, Northern East" + }, + "crm": { + "english_name": "Cree, Moose" + }, + "crn": { + "english_name": "Cora, El Nayar" + }, + "cro": { + "english_name": "Crow" + }, + "crq": { + "english_name": "Chorote, Iyo'wujwa" + }, + "crr": { + "english_name": "Algonquian, Carolina" + }, + "crs": { + "english_name": "Creole French, Seselwa" + }, + "crt": { + "english_name": "Chorote, Iyojwa'ja" + }, + "crv": { + "english_name": "Chaura" + }, + "crw": { + "english_name": "Chrau" + }, + "crx": { + "english_name": "Carrier" + }, + "cry": { + "english_name": "Cori" + }, + "crz": { + "english_name": "Cruze\u00f1o" + }, + "cs": { + "english_name": "Czech", + "name": "\u010de\u0161tina" + }, + "csa": { + "english_name": "Chinantec, Chiltepec" + }, + "csb": { + "english_name": "Kashubian" + }, + "csc": { + "english_name": "Catalan Sign Language" + }, + "csd": { + "english_name": "Chiangmai Sign Language" + }, + "cse": { + "english_name": "Czech Sign Language" + }, + "csf": { + "english_name": "Cuba Sign Language" + }, + "csg": { + "english_name": "Chilean Sign Language" + }, + "csh": { + "english_name": "Chin, Asho" + }, + "csi": { + "english_name": "Miwok, Coast" + }, + "csj": { + "english_name": "Chin, Songlai" + }, + "csk": { + "english_name": "Jola-Kasa" + }, + "csl": { + "english_name": "Chinese Sign Language" + }, + "csm": { + "english_name": "Miwok, Central Sierra" + }, + "csn": { + "english_name": "Colombian Sign Language" + }, + "cso": { + "english_name": "Chinantec, Sochiapam" + }, + "csq": { + "english_name": "Croatia Sign Language" + }, + "csr": { + "english_name": "Costa Rican Sign Language" + }, + "css": { + "english_name": "Ohlone, Southern" + }, + "cst": { + "english_name": "Ohlone, Northern" + }, + "csv": { + "english_name": "Chin, Sumtu" + }, + "csw": { + "english_name": "Cree, Swampy" + }, + "csy": { + "english_name": "Chin, Siyin" + }, + "csz": { + "english_name": "Coos" + }, + "cta": { + "english_name": "Chatino, Tataltepec" + }, + "ctc": { + "english_name": "Chetco" + }, + "ctd": { + "english_name": "Chin, Tedim" + }, + "cte": { + "english_name": "Chinantec, Tepinapa" + }, + "ctg": { + "english_name": "Chittagonian" + }, + "cth": { + "english_name": "Chin, Thaiphum" + }, + "ctl": { + "english_name": "Chinantec, Tlacoatzintepec" + }, + "ctm": { + "english_name": "Chitimacha" + }, + "ctn": { + "english_name": "Chhintange" + }, + "cto": { + "english_name": "Ember\u00e1-Cat\u00edo" + }, + "ctp": { + "english_name": "Chatino, Western Highland" + }, + "cts": { + "english_name": "Bikol, Northern Catanduanes" + }, + "ctt": { + "english_name": "Chetti, Wayanad" + }, + "ctu": { + "english_name": "Chol" + }, + "ctz": { + "english_name": "Chatino, Zacatepec" + }, + "cu": { + "english_name": "Slavic, Church" + }, + "cua": { + "english_name": "Cua" + }, + "cub": { + "english_name": "Cubeo" + }, + "cuc": { + "english_name": "Chinantec, Usila" + }, + "cug": { + "english_name": "Cung" + }, + "cuh": { + "english_name": "Chuka" + }, + "cui": { + "english_name": "Cuiba" + }, + "cuj": { + "english_name": "Mashco Piro" + }, + "cuk": { + "english_name": "Kuna, San Blas" + }, + "cul": { + "english_name": "Culina" + }, + "cum": { + "english_name": "Cumeral" + }, + "cuo": { + "english_name": "Cumanagoto" + }, + "cup": { + "english_name": "Cupe\u00f1o" + }, + "cuq": { + "english_name": "Cun" + }, + "cur": { + "english_name": "Chhulung" + }, + "cut": { + "english_name": "Cuicatec, Teutila" + }, + "cuu": { + "english_name": "Tai Ya" + }, + "cuv": { + "english_name": "Cuvok" + }, + "cuw": { + "english_name": "Chukwa" + }, + "cux": { + "english_name": "Cuicatec, Tepeuxila" + }, + "cv": { + "english_name": "Chuvash" + }, + "cvg": { + "english_name": "Chug" + }, + "cvn": { + "english_name": "Chinantec, Valle Nacional" + }, + "cwa": { + "english_name": "Kabwa" + }, + "cwb": { + "english_name": "Maindo" + }, + "cwd": { + "english_name": "Cree, Woods" + }, + "cwe": { + "english_name": "Kwere" + }, + "cwg": { + "english_name": "Chewong" + }, + "cwt": { + "english_name": "Kuwaataay" + }, + "cy": { + "english_name": "Welsh", + "name": "Cymraeg" + }, + "cya": { + "english_name": "Chatino, Nopala" + }, + "cyb": { + "english_name": "Cayubaba" + }, + "cyo": { + "english_name": "Cuyonon" + }, + "czh": { + "english_name": "Chinese, Huizhou" + }, + "czk": { + "english_name": "Knaanic" + }, + "czn": { + "english_name": "Chatino, Zenzontepec" + }, + "czo": { + "english_name": "Chinese, Min Zhong" + }, + "czt": { + "english_name": "Chin, Zotung" + }, + "da": { + "english_name": "Danish", + "name": "Dansk" + }, + "daa": { + "english_name": "Dangal\u00e9at" + }, + "dac": { + "english_name": "Dambi" + }, + "dad": { + "english_name": "Marik" + }, + "dae": { + "english_name": "Duupa" + }, + "dag": { + "english_name": "Dagbani" + }, + "dah": { + "english_name": "Gwahatike" + }, + "dai": { + "english_name": "Day" + }, + "daj": { + "english_name": "Daju, Dar Fur" + }, + "dak": { + "english_name": "Dakota" + }, + "dal": { + "english_name": "Dahalo" + }, + "dam": { + "english_name": "Damakawa" + }, + "dao": { + "english_name": "Chin, Daai" + }, + "daq": { + "english_name": "Maria, Dandami" + }, + "dar": { + "english_name": "Dargwa" + }, + "das": { + "english_name": "Daho-Doo" + }, + "dau": { + "english_name": "Daju, Dar Sila" + }, + "dav": { + "english_name": "Taita" + }, + "daw": { + "english_name": "Davawenyo" + }, + "dax": { + "english_name": "Dayi" + }, + "daz": { + "english_name": "Dao" + }, + "dba": { + "english_name": "Bangime" + }, + "dbb": { + "english_name": "Deno" + }, + "dbd": { + "english_name": "Dadiya" + }, + "dbe": { + "english_name": "Dabe" + }, + "dbf": { + "english_name": "Edopi" + }, + "dbg": { + "english_name": "Dogon, Dogul Dom" + }, + "dbi": { + "english_name": "Doka" + }, + "dbj": { + "english_name": "Ida'an" + }, + "dbl": { + "english_name": "Dyirbal" + }, + "dbm": { + "english_name": "Duguri" + }, + "dbn": { + "english_name": "Duriankere" + }, + "dbo": { + "english_name": "Dulbu" + }, + "dbp": { + "english_name": "Duwai" + }, + "dbq": { + "english_name": "Daba" + }, + "dbr": { + "english_name": "Dabarre" + }, + "dbt": { + "english_name": "Dogon, Ben Tey" + }, + "dbu": { + "english_name": "Dogon, Bondum Dom" + }, + "dbv": { + "english_name": "Dungu" + }, + "dbw": { + "english_name": "Dogon, Bankan Tey" + }, + "dby": { + "english_name": "Dibiyaso" + }, + "dcc": { + "english_name": "Deccan" + }, + "dcr": { + "english_name": "Negerhollands" + }, + "dda": { + "english_name": "Dadi Dadi" + }, + "ddd": { + "english_name": "Dongotono" + }, + "dde": { + "english_name": "Doondo" + }, + "ddg": { + "english_name": "Fataluku" + }, + "ddi": { + "english_name": "Goodenough, West" + }, + "ddj": { + "english_name": "Jaru" + }, + "ddn": { + "english_name": "Dendi (Benin)" + }, + "ddo": { + "english_name": "Dido" + }, + "ddr": { + "english_name": "Dhudhuroa" + }, + "dds": { + "english_name": "Dogon, Donno So" + }, + "ddw": { + "english_name": "Dawera-Daweloor" + }, + "de": { + "english_name": "German", + "name": "Deutsch" + }, + "dec": { + "english_name": "Dagik" + }, + "ded": { + "english_name": "Dedua" + }, + "dee": { + "english_name": "Dewoin" + }, + "def": { + "english_name": "Dezfuli" + }, + "deg": { + "english_name": "Degema" + }, + "deh": { + "english_name": "Dehwari" + }, + "dei": { + "english_name": "Demisa" + }, + "dek": { + "english_name": "Dek" + }, + "del": { + "english_name": "Delaware" + }, + "dem": { + "english_name": "Dem" + }, + "den": { + "english_name": "Slave (Athapascan)" + }, + "dep": { + "english_name": "Delaware, Pidgin" + }, + "deq": { + "english_name": "Dendi (Central African Republic)" + }, + "der": { + "english_name": "Deori" + }, + "des": { + "english_name": "Desano" + }, + "dev": { + "english_name": "Domung" + }, + "dez": { + "english_name": "Dengese" + }, + "dga": { + "english_name": "Dagaare, Southern" + }, + "dgb": { + "english_name": "Dogon, Bunoge" + }, + "dgc": { + "english_name": "Agta, Casiguran Dumagat" + }, + "dgd": { + "english_name": "Dagaari Dioula" + }, + "dge": { + "english_name": "Degenan" + }, + "dgg": { + "english_name": "Doga" + }, + "dgh": { + "english_name": "Dghwede" + }, + "dgi": { + "english_name": "Dagara, Northern" + }, + "dgk": { + "english_name": "Dagba" + }, + "dgl": { + "english_name": "Andaandi" + }, + "dgn": { + "english_name": "Dagoman" + }, + "dgo": { + "english_name": "Dogri (individual language)" + }, + "dgr": { + "english_name": "Dogrib" + }, + "dgs": { + "english_name": "Dogoso" + }, + "dgt": { + "english_name": "Ndra'ngith" + }, + "dgu": { + "english_name": "Degaru" + }, + "dgw": { + "english_name": "Daungwurrung" + }, + "dgx": { + "english_name": "Doghoro" + }, + "dgz": { + "english_name": "Daga" + }, + "dhd": { + "english_name": "Dhundari" + }, + "dhg": { + "english_name": "Djangu" + }, + "dhi": { + "english_name": "Dhimal" + }, + "dhl": { + "english_name": "Dhalandji" + }, + "dhm": { + "english_name": "Zemba" + }, + "dhn": { + "english_name": "Dhanki" + }, + "dho": { + "english_name": "Dhodia" + }, + "dhr": { + "english_name": "Dhargari" + }, + "dhs": { + "english_name": "Dhaiso" + }, + "dhu": { + "english_name": "Dhurga" + }, + "dhv": { + "english_name": "Dehu" + }, + "dhw": { + "english_name": "Dhanwar (Nepal)" + }, + "dhx": { + "english_name": "Dhungaloo" + }, + "dia": { + "english_name": "Dia" + }, + "dib": { + "english_name": "Dinka, South Central" + }, + "dic": { + "english_name": "Dida, Lakota" + }, + "did": { + "english_name": "Didinga" + }, + "dif": { + "english_name": "Dieri" + }, + "dig": { + "english_name": "Digo" + }, + "dih": { + "english_name": "Kumiai" + }, + "dii": { + "english_name": "Dimbong" + }, + "dij": { + "english_name": "Dai" + }, + "dik": { + "english_name": "Dinka, Southwestern" + }, + "dil": { + "english_name": "Dilling" + }, + "dim": { + "english_name": "Dime" + }, + "din": { + "english_name": "Dinka" + }, + "dio": { + "english_name": "Dibo" + }, + "dip": { + "english_name": "Dinka, Northeastern" + }, + "diq": { + "english_name": "Dimli (individual language)" + }, + "dir": { + "english_name": "Dirim" + }, + "dis": { + "english_name": "Dimasa" + }, + "dit": { + "english_name": "Dirari" + }, + "diu": { + "english_name": "Diriku" + }, + "diw": { + "english_name": "Dinka, Northwestern" + }, + "dix": { + "english_name": "Dixon Reef" + }, + "diy": { + "english_name": "Diuwe" + }, + "diz": { + "english_name": "Ding" + }, + "dja": { + "english_name": "Djadjawurrung" + }, + "djb": { + "english_name": "Djinba" + }, + "djc": { + "english_name": "Daju, Dar Daju" + }, + "djd": { + "english_name": "Djamindjung" + }, + "dje": { + "english_name": "Zarma" + }, + "djf": { + "english_name": "Djangun" + }, + "dji": { + "english_name": "Djinang" + }, + "djj": { + "english_name": "Djeebbana" + }, + "djk": { + "english_name": "Eastern Maroon Creole" + }, + "djm": { + "english_name": "Dogon, Jamsay" + }, + "djn": { + "english_name": "Djauan" + }, + "djo": { + "english_name": "Jangkang" + }, + "djr": { + "english_name": "Djambarrpuyngu" + }, + "dju": { + "english_name": "Kapriman" + }, + "djw": { + "english_name": "Djawi" + }, + "dka": { + "english_name": "Dakpakha" + }, + "dkk": { + "english_name": "Dakka" + }, + "dkr": { + "english_name": "Kuijau" + }, + "dks": { + "english_name": "Dinka, Southeastern" + }, + "dkx": { + "english_name": "Mazagway" + }, + "dlg": { + "english_name": "Dolgan" + }, + "dlk": { + "english_name": "Dahalik" + }, + "dlm": { + "english_name": "Dalmatian" + }, + "dln": { + "english_name": "Darlong" + }, + "dma": { + "english_name": "Duma" + }, + "dmb": { + "english_name": "Dogon, Mombo" + }, + "dmc": { + "english_name": "Gavak" + }, + "dmd": { + "english_name": "Madhi Madhi" + }, + "dme": { + "english_name": "Dugwor" + }, + "dmg": { + "english_name": "Kinabatangan, Upper" + }, + "dmk": { + "english_name": "Domaaki" + }, + "dml": { + "english_name": "Dameli" + }, + "dmm": { + "english_name": "Dama" + }, + "dmo": { + "english_name": "Kemedzung" + }, + "dmr": { + "english_name": "Damar, East" + }, + "dms": { + "english_name": "Dampelas" + }, + "dmu": { + "english_name": "Dubu" + }, + "dmv": { + "english_name": "Dumpas" + }, + "dmw": { + "english_name": "Mudburra" + }, + "dmx": { + "english_name": "Dema" + }, + "dmy": { + "english_name": "Demta" + }, + "dna": { + "english_name": "Dani, Upper Grand Valley" + }, + "dnd": { + "english_name": "Daonda" + }, + "dne": { + "english_name": "Ndendeule" + }, + "dng": { + "english_name": "Dungan" + }, + "dni": { + "english_name": "Dani, Lower Grand Valley" + }, + "dnj": { + "english_name": "Dan" + }, + "dnk": { + "english_name": "Dengka" + }, + "dnn": { + "english_name": "Dz\u00f9\u00f9ngoo" + }, + "dnr": { + "english_name": "Danaru" + }, + "dnt": { + "english_name": "Dani, Mid Grand Valley" + }, + "dnu": { + "english_name": "Danau" + }, + "dnv": { + "english_name": "Danu" + }, + "dnw": { + "english_name": "Dani, Western" + }, + "dny": { + "english_name": "Den\u00ed" + }, + "doa": { + "english_name": "Dom" + }, + "dob": { + "english_name": "Dobu" + }, + "doc": { + "english_name": "Dong, Northern" + }, + "doe": { + "english_name": "Doe" + }, + "dof": { + "english_name": "Domu" + }, + "doh": { + "english_name": "Dong" + }, + "doi": { + "english_name": "Dogri (macrolanguage)" + }, + "dok": { + "english_name": "Dondo" + }, + "dol": { + "english_name": "Doso" + }, + "don": { + "english_name": "Toura (Papua New Guinea)" + }, + "doo": { + "english_name": "Dongo" + }, + "dop": { + "english_name": "Lukpa" + }, + "doq": { + "english_name": "Dominican Sign Language" + }, + "dor": { + "english_name": "Dori'o" + }, + "dos": { + "english_name": "Dogos\u00e9" + }, + "dot": { + "english_name": "Dass" + }, + "dov": { + "english_name": "Dombe" + }, + "dow": { + "english_name": "Doyayo" + }, + "dox": { + "english_name": "Bussa" + }, + "doy": { + "english_name": "Dompo" + }, + "doz": { + "english_name": "Dorze" + }, + "dpp": { + "english_name": "Papar" + }, + "drb": { + "english_name": "Dair" + }, + "drc": { + "english_name": "Minderico" + }, + "drd": { + "english_name": "Darmiya" + }, + "dre": { + "english_name": "Dolpo" + }, + "drg": { + "english_name": "Rungus" + }, + "dri": { + "english_name": "C'lela" + }, + "drl": { + "english_name": "Paakantyi" + }, + "drn": { + "english_name": "Damar, West" + }, + "dro": { + "english_name": "Melanau, Daro-Matu" + }, + "drq": { + "english_name": "Dura" + }, + "drr": { + "english_name": "Dororo" + }, + "drs": { + "english_name": "Gedeo" + }, + "drt": { + "english_name": "Drents" + }, + "dru": { + "english_name": "Rukai" + }, + "dry": { + "english_name": "Darai" + }, + "dsb": { + "english_name": "Sorbian, Lower" + }, + "dse": { + "english_name": "Dutch Sign Language" + }, + "dsh": { + "english_name": "Daasanach" + }, + "dsi": { + "english_name": "Disa" + }, + "dsl": { + "english_name": "Danish Sign Language" + }, + "dsn": { + "english_name": "Dusner" + }, + "dso": { + "english_name": "Desiya" + }, + "dsq": { + "english_name": "Tadaksahak" + }, + "dta": { + "english_name": "Daur" + }, + "dtb": { + "english_name": "Kadazan, Labuk-Kinabatangan" + }, + "dtd": { + "english_name": "Ditidaht" + }, + "dth": { + "english_name": "Adithinngithigh" + }, + "dti": { + "english_name": "Dogon, Ana Tinga" + }, + "dtk": { + "english_name": "Dogon, Tene Kan" + }, + "dtm": { + "english_name": "Dogon, Tomo Kan" + }, + "dto": { + "english_name": "Dogon, Tommo So" + }, + "dtp": { + "english_name": "Dusun, Central" + }, + "dtr": { + "english_name": "Lotud" + }, + "dts": { + "english_name": "Dogon, Toro So" + }, + "dtt": { + "english_name": "Dogon, Toro Tegu" + }, + "dtu": { + "english_name": "Dogon, Tebul Ure" + }, + "dty": { + "english_name": "Dotyali" + }, + "dua": { + "english_name": "Duala" + }, + "dub": { + "english_name": "Dubli" + }, + "duc": { + "english_name": "Duna" + }, + "dud": { + "english_name": "Hun-Saare" + }, + "due": { + "english_name": "Agta, Umiray Dumaget" + }, + "duf": { + "english_name": "Dumbea" + }, + "dug": { + "english_name": "Duruma" + }, + "duh": { + "english_name": "Dungra Bhil" + }, + "dui": { + "english_name": "Dumun" + }, + "duj": { + "english_name": "Dhuwal" + }, + "duk": { + "english_name": "Uyajitaya" + }, + "dul": { + "english_name": "Agta, Alabat Island" + }, + "dum": { + "english_name": "Dutch, Middle (ca. 1050-1350)" + }, + "dun": { + "english_name": "Dusun Deyah" + }, + "duo": { + "english_name": "Agta, Dupaninan" + }, + "dup": { + "english_name": "Duano" + }, + "duq": { + "english_name": "Dusun Malang" + }, + "dur": { + "english_name": "Dii" + }, + "dus": { + "english_name": "Dumi" + }, + "duu": { + "english_name": "Drung" + }, + "duv": { + "english_name": "Duvle" + }, + "duw": { + "english_name": "Dusun Witu" + }, + "dux": { + "english_name": "Duungooma" + }, + "duy": { + "english_name": "Agta, Dicamay" + }, + "duz": { + "english_name": "Duli" + }, + "dv": { + "english_name": "Dhivehi" + }, + "dva": { + "english_name": "Duau" + }, + "dwa": { + "english_name": "Diri" + }, + "dwr": { + "english_name": "Dawro" + }, + "dws": { + "english_name": "Dutton World Speedwords" + }, + "dww": { + "english_name": "Dawawa" + }, + "dya": { + "english_name": "Dyan" + }, + "dyb": { + "english_name": "Dyaberdyaber" + }, + "dyd": { + "english_name": "Dyugun" + }, + "dyg": { + "english_name": "Agta, Villa Viciosa" + }, + "dyi": { + "english_name": "Senoufo, Djimini" + }, + "dym": { + "english_name": "Dogon, Yanda Dom" + }, + "dyn": { + "english_name": "Dyangadi" + }, + "dyo": { + "english_name": "Jola-Fonyi" + }, + "dyu": { + "english_name": "Dyula" + }, + "dyy": { + "english_name": "Dyaabugay" + }, + "dz": { + "english_name": "Dzongkha" + }, + "dza": { + "english_name": "Tunzu" + }, + "dze": { + "english_name": "Djiwarli" + }, + "dzg": { + "english_name": "Dazaga" + }, + "dzl": { + "english_name": "Dzalakha" + }, + "dzn": { + "english_name": "Dzando" + }, + "eaa": { + "english_name": "Karenggapa" + }, + "ebg": { + "english_name": "Ebughu" + }, + "ebk": { + "english_name": "Bontok, Eastern" + }, + "ebo": { + "english_name": "Teke-Ebo" + }, + "ebr": { + "english_name": "Ebri\u00e9" + }, + "ebu": { + "english_name": "Embu" + }, + "ecr": { + "english_name": "Eteocretan" + }, + "ecs": { + "english_name": "Ecuadorian Sign Language" + }, + "ecy": { + "english_name": "Eteocypriot" + }, + "ee": { + "english_name": "Ewe" + }, + "eee": { + "english_name": "E" + }, + "efa": { + "english_name": "Efai" + }, + "efe": { + "english_name": "Efe" + }, + "efi": { + "english_name": "Efik" + }, + "ega": { + "english_name": "Ega" + }, + "egl": { + "english_name": "Emilian" + }, + "ego": { + "english_name": "Eggon" + }, + "egy": { + "english_name": "Egyptian (Ancient)" + }, + "ehu": { + "english_name": "Ehueun" + }, + "eip": { + "english_name": "Eipomek" + }, + "eit": { + "english_name": "Eitiep" + }, + "eiv": { + "english_name": "Askopan" + }, + "eja": { + "english_name": "Ejamat" + }, + "eka": { + "english_name": "Ekajuk" + }, + "ekc": { + "english_name": "Karnic, Eastern" + }, + "eke": { + "english_name": "Ekit" + }, + "ekg": { + "english_name": "Ekari" + }, + "eki": { + "english_name": "Eki" + }, + "ekk": { + "english_name": "Estonian, Standard" + }, + "ekl": { + "english_name": "Kol (Bangladesh)" + }, + "ekm": { + "english_name": "Elip" + }, + "eko": { + "english_name": "Koti" + }, + "ekp": { + "english_name": "Ekpeye" + }, + "ekr": { + "english_name": "Yace" + }, + "eky": { + "english_name": "Kayah, Eastern" + }, + "el": { + "english_name": "Greek, Modern (1453-)", + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "ele": { + "english_name": "Elepi" + }, + "elh": { + "english_name": "El Hugeirat" + }, + "eli": { + "english_name": "Nding" + }, + "elk": { + "english_name": "Elkei" + }, + "elm": { + "english_name": "Eleme" + }, + "elo": { + "english_name": "El Molo" + }, + "elu": { + "english_name": "Elu" + }, + "elx": { + "english_name": "Elamite" + }, + "ema": { + "english_name": "Emai-Iuleha-Ora" + }, + "emb": { + "english_name": "Embaloh" + }, + "eme": { + "english_name": "Emerillon" + }, + "emg": { + "english_name": "Meohang, Eastern" + }, + "emi": { + "english_name": "Mussau-Emira" + }, + "emk": { + "english_name": "Maninkakan, Eastern" + }, + "emm": { + "english_name": "Mamulique" + }, + "emn": { + "english_name": "Eman" + }, + "emp": { + "english_name": "Ember\u00e1, Northern" + }, + "ems": { + "english_name": "Yupik, Pacific Gulf" + }, + "emu": { + "english_name": "Muria, Eastern" + }, + "emw": { + "english_name": "Emplawas" + }, + "emx": { + "english_name": "Erromintxela" + }, + "emy": { + "english_name": "Mayan, Epigraphic" + }, + "en": { + "english_name": "English" + }, + "ena": { + "english_name": "Apali" + }, + "enb": { + "english_name": "Markweeta" + }, + "enc": { + "english_name": "En" + }, + "end": { + "english_name": "Ende" + }, + "enf": { + "english_name": "Enets, Forest" + }, + "enh": { + "english_name": "Enets, Tundra" + }, + "enm": { + "english_name": "English, Middle (1100-1500)" + }, + "enn": { + "english_name": "Engenni" + }, + "eno": { + "english_name": "Enggano" + }, + "enq": { + "english_name": "Enga" + }, + "enr": { + "english_name": "Emumu" + }, + "enu": { + "english_name": "Enu" + }, + "env": { + "english_name": "Enwan (Edu State)" + }, + "enw": { + "english_name": "Enwan (Akwa Ibom State)" + }, + "eo": { + "english_name": "Esperanto", + "name": "Esperanto" + }, + "eot": { + "english_name": "Beti (C\u00f4te d'Ivoire)" + }, + "epi": { + "english_name": "Epie" + }, + "era": { + "english_name": "Eravallan" + }, + "erg": { + "english_name": "Sie" + }, + "erh": { + "english_name": "Eruwa" + }, + "eri": { + "english_name": "Ogea" + }, + "erk": { + "english_name": "Efate, South" + }, + "ero": { + "english_name": "Horpa" + }, + "err": { + "english_name": "Erre" + }, + "ers": { + "english_name": "Ersu" + }, + "ert": { + "english_name": "Eritai" + }, + "erw": { + "english_name": "Erokwanas" + }, + "es": { + "english_name": "Spanish", + "name": "Espa\u00f1ol" + }, + "ese": { + "english_name": "Ese Ejja" + }, + "esh": { + "english_name": "Eshtehardi" + }, + "esi": { + "english_name": "Inupiatun, North Alaskan" + }, + "esk": { + "english_name": "Inupiatun, Northwest Alaska" + }, + "esl": { + "english_name": "Egypt Sign Language" + }, + "esm": { + "english_name": "Esuma" + }, + "esn": { + "english_name": "Salvadoran Sign Language" + }, + "eso": { + "english_name": "Estonian Sign Language" + }, + "esq": { + "english_name": "Esselen" + }, + "ess": { + "english_name": "Yupik, Central Siberian" + }, + "esu": { + "english_name": "Yupik, Central" + }, + "et": { + "english_name": "Estonian", + "name": "Eesti" + }, + "etb": { + "english_name": "Etebi" + }, + "etc": { + "english_name": "Etchemin" + }, + "eth": { + "english_name": "Ethiopian Sign Language" + }, + "etn": { + "english_name": "Eton (Vanuatu)" + }, + "eto": { + "english_name": "Eton (Cameroon)" + }, + "etr": { + "english_name": "Edolo" + }, + "ets": { + "english_name": "Yekhee" + }, + "ett": { + "english_name": "Etruscan" + }, + "etu": { + "english_name": "Ejagham" + }, + "etx": { + "english_name": "Eten" + }, + "etz": { + "english_name": "Semimi" + }, + "eu": { + "english_name": "Basque", + "name": "Euskara" + }, + "eve": { + "english_name": "Even" + }, + "evh": { + "english_name": "Uvbie" + }, + "evn": { + "english_name": "Evenki" + }, + "ewo": { + "english_name": "Ewondo" + }, + "ext": { + "english_name": "Extremaduran" + }, + "eya": { + "english_name": "Eyak" + }, + "eyo": { + "english_name": "Keiyo" + }, + "eza": { + "english_name": "Ezaa" + }, + "eze": { + "english_name": "Uzekwe" + }, + "fa": { + "english_name": "Persian", + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "faa": { + "english_name": "Fasu" + }, + "fab": { + "english_name": "Fa d'Ambu" + }, + "fad": { + "english_name": "Wagi" + }, + "faf": { + "english_name": "Fagani" + }, + "fag": { + "english_name": "Finongan" + }, + "fah": { + "english_name": "Fali, Baissa" + }, + "fai": { + "english_name": "Faiwol" + }, + "faj": { + "english_name": "Faita" + }, + "fak": { + "english_name": "Fang (Cameroon)" + }, + "fal": { + "english_name": "Fali, South" + }, + "fam": { + "english_name": "Fam" + }, + "fan": { + "english_name": "Fang (Equatorial Guinea)" + }, + "fap": { + "english_name": "Palor" + }, + "far": { + "english_name": "Fataleka" + }, + "fat": { + "english_name": "Fanti" + }, + "fau": { + "english_name": "Fayu" + }, + "fax": { + "english_name": "Fala" + }, + "fay": { + "english_name": "Fars, Southwestern" + }, + "faz": { + "english_name": "Fars, Northwestern" + }, + "fbl": { + "english_name": "Bikol, West Albay" + }, + "fcs": { + "english_name": "Quebec Sign Language" + }, + "fer": { + "english_name": "Feroge" + }, + "ff": { + "english_name": "Fulah" + }, + "ffi": { + "english_name": "Foia Foia" + }, + "ffm": { + "english_name": "Fulfulde, Maasina" + }, + "fgr": { + "english_name": "Fongoro" + }, + "fi": { + "english_name": "Finnish", + "name": "suomi" + }, + "fia": { + "english_name": "Nobiin" + }, + "fie": { + "english_name": "Fyer" + }, + "fil": { + "english_name": "Filipino" + }, + "fip": { + "english_name": "Fipa" + }, + "fir": { + "english_name": "Firan" + }, + "fit": { + "english_name": "Finnish, Tornedalen" + }, + "fiw": { + "english_name": "Fiwaga" + }, + "fj": { + "english_name": "Fijian" + }, + "fkk": { + "english_name": "Kirya-Konz\u0259l" + }, + "fkv": { + "english_name": "Finnish, Kven" + }, + "fla": { + "english_name": "Kalispel-Pend d'Oreille" + }, + "flh": { + "english_name": "Foau" + }, + "fli": { + "english_name": "Fali" + }, + "fll": { + "english_name": "Fali, North" + }, + "fln": { + "english_name": "Flinders Island" + }, + "flr": { + "english_name": "Fuliiru" + }, + "fly": { + "english_name": "Tsotsitaal" + }, + "fmp": { + "english_name": "Fe'fe'" + }, + "fmu": { + "english_name": "Muria, Far Western" + }, + "fng": { + "english_name": "Fanagalo" + }, + "fni": { + "english_name": "Fania" + }, + "fo": { + "english_name": "Faroese" + }, + "fod": { + "english_name": "Foodo" + }, + "foi": { + "english_name": "Foi" + }, + "fom": { + "english_name": "Foma" + }, + "fon": { + "english_name": "Fon" + }, + "for": { + "english_name": "Fore" + }, + "fos": { + "english_name": "Siraya" + }, + "fpe": { + "english_name": "Creole English, Fernando Po" + }, + "fqs": { + "english_name": "Fas" + }, + "fr": { + "english_name": "French", + "name": "fran\u00e7ais" + }, + "frc": { + "english_name": "French, Cajun" + }, + "frd": { + "english_name": "Fordata" + }, + "frk": { + "english_name": "Frankish" + }, + "frm": { + "english_name": "French, Middle (ca. 1400-1600)" + }, + "fro": { + "english_name": "French, Old (842-ca. 1400)" + }, + "frp": { + "english_name": "Arpitan" + }, + "frq": { + "english_name": "Forak" + }, + "frr": { + "english_name": "Frisian, Northern" + }, + "frs": { + "english_name": "Frisian, Eastern" + }, + "frt": { + "english_name": "Fortsenal" + }, + "fse": { + "english_name": "Finnish Sign Language" + }, + "fsl": { + "english_name": "French Sign Language" + }, + "fss": { + "english_name": "Finland-Swedish Sign Language" + }, + "fub": { + "english_name": "Fulfulde, Adamawa" + }, + "fuc": { + "english_name": "Pulaar" + }, + "fud": { + "english_name": "Futuna, East" + }, + "fue": { + "english_name": "Fulfulde, Borgu" + }, + "fuf": { + "english_name": "Pular" + }, + "fuh": { + "english_name": "Fulfulde, Western Niger" + }, + "fui": { + "english_name": "Fulfulde, Bagirmi" + }, + "fuj": { + "english_name": "Ko" + }, + "fum": { + "english_name": "Fum" + }, + "fun": { + "english_name": "Fulni\u00f4" + }, + "fuq": { + "english_name": "Fulfulde, Central-Eastern Niger" + }, + "fur": { + "english_name": "Friulian" + }, + "fut": { + "english_name": "Futuna-Aniwa" + }, + "fuu": { + "english_name": "Furu" + }, + "fuv": { + "english_name": "Fulfulde, Nigerian" + }, + "fuy": { + "english_name": "Fuyug" + }, + "fvr": { + "english_name": "Fur" + }, + "fwa": { + "english_name": "Fw\u00e2i" + }, + "fwe": { + "english_name": "Fwe" + }, + "fy": { + "english_name": "Frisian, Western" + }, + "ga": { + "english_name": "Irish", + "name": "Gaeilge" + }, + "gaa": { + "english_name": "Ga" + }, + "gab": { + "english_name": "Gabri" + }, + "gac": { + "english_name": "Great Andamanese, Mixed" + }, + "gad": { + "english_name": "Gaddang" + }, + "gae": { + "english_name": "Guarequena" + }, + "gaf": { + "english_name": "Gende" + }, + "gag": { + "english_name": "Gagauz" + }, + "gah": { + "english_name": "Alekano" + }, + "gai": { + "english_name": "Borei" + }, + "gaj": { + "english_name": "Gadsup" + }, + "gak": { + "english_name": "Gamkonora" + }, + "gal": { + "english_name": "Galolen" + }, + "gam": { + "english_name": "Kandawo" + }, + "gan": { + "english_name": "Chinese, Gan" + }, + "gao": { + "english_name": "Gants" + }, + "gap": { + "english_name": "Gal" + }, + "gaq": { + "english_name": "Gata'" + }, + "gar": { + "english_name": "Galeya" + }, + "gas": { + "english_name": "Garasia, Adiwasi" + }, + "gat": { + "english_name": "Kenati" + }, + "gau": { + "english_name": "Gadaba, Mudhili" + }, + "gaw": { + "english_name": "Nobonob" + }, + "gax": { + "english_name": "Oromo, Borana-Arsi-Guji" + }, + "gay": { + "english_name": "Gayo" + }, + "gaz": { + "english_name": "Oromo, West Central" + }, + "gba": { + "english_name": "Gbaya (Central African Republic)" + }, + "gbb": { + "english_name": "Kaytetye" + }, + "gbd": { + "english_name": "Karadjeri" + }, + "gbe": { + "english_name": "Niksek" + }, + "gbf": { + "english_name": "Gaikundi" + }, + "gbg": { + "english_name": "Gbanziri" + }, + "gbh": { + "english_name": "Gbe, Defi" + }, + "gbi": { + "english_name": "Galela" + }, + "gbj": { + "english_name": "Gadaba, Bodo" + }, + "gbk": { + "english_name": "Gaddi" + }, + "gbl": { + "english_name": "Gamit" + }, + "gbm": { + "english_name": "Garhwali" + }, + "gbn": { + "english_name": "Mo'da" + }, + "gbo": { + "english_name": "Grebo, Northern" + }, + "gbp": { + "english_name": "Gbaya-Bossangoa" + }, + "gbq": { + "english_name": "Gbaya-Bozoum" + }, + "gbr": { + "english_name": "Gbagyi" + }, + "gbs": { + "english_name": "Gbe, Gbesi" + }, + "gbu": { + "english_name": "Gagadu" + }, + "gbv": { + "english_name": "Gbanu" + }, + "gbw": { + "english_name": "Gabi-Gabi" + }, + "gbx": { + "english_name": "Gbe, Eastern Xwla" + }, + "gby": { + "english_name": "Gbari" + }, + "gbz": { + "english_name": "Dari, Zoroastrian" + }, + "gcc": { + "english_name": "Mali" + }, + "gcd": { + "english_name": "Ganggalida" + }, + "gce": { + "english_name": "Galice" + }, + "gcf": { + "english_name": "Creole French, Guadeloupean" + }, + "gcl": { + "english_name": "Creole English, Grenadian" + }, + "gcn": { + "english_name": "Gaina" + }, + "gcr": { + "english_name": "Creole French, Guianese" + }, + "gct": { + "english_name": "German, Colonia Tovar" + }, + "gd": { + "english_name": "Gaelic, Scottish" + }, + "gda": { + "english_name": "Lohar, Gade" + }, + "gdb": { + "english_name": "Gadaba, Pottangi Ollar" + }, + "gdc": { + "english_name": "Gugu Badhun" + }, + "gdd": { + "english_name": "Gedaged" + }, + "gde": { + "english_name": "Gude" + }, + "gdf": { + "english_name": "Guduf-Gava" + }, + "gdg": { + "english_name": "Ga'dang" + }, + "gdh": { + "english_name": "Gadjerawang" + }, + "gdi": { + "english_name": "Gundi" + }, + "gdj": { + "english_name": "Gurdjar" + }, + "gdk": { + "english_name": "Gadang" + }, + "gdl": { + "english_name": "Dirasha" + }, + "gdm": { + "english_name": "Laal" + }, + "gdn": { + "english_name": "Umanakaina" + }, + "gdo": { + "english_name": "Ghodoberi" + }, + "gdq": { + "english_name": "Mehri" + }, + "gdr": { + "english_name": "Wipi" + }, + "gds": { + "english_name": "Ghandruk Sign Language" + }, + "gdt": { + "english_name": "Kungardutyi" + }, + "gdu": { + "english_name": "Gudu" + }, + "gdx": { + "english_name": "Godwari" + }, + "gea": { + "english_name": "Geruma" + }, + "geb": { + "english_name": "Kire" + }, + "gec": { + "english_name": "Grebo, Gboloo" + }, + "ged": { + "english_name": "Gade" + }, + "geg": { + "english_name": "Gengle" + }, + "geh": { + "english_name": "German, Hutterite" + }, + "gei": { + "english_name": "Gebe" + }, + "gej": { + "english_name": "Gen" + }, + "gek": { + "english_name": "Yiwom" + }, + "gel": { + "english_name": "ut-Ma'in" + }, + "geq": { + "english_name": "Geme" + }, + "ges": { + "english_name": "Geser-Gorom" + }, + "gew": { + "english_name": "Gera" + }, + "gex": { + "english_name": "Garre" + }, + "gey": { + "english_name": "Enya" + }, + "gez": { + "english_name": "Geez", + "name": "\u130d\u12d5\u12dd\u129b" + }, + "gfk": { + "english_name": "Patpatar" + }, + "gft": { + "english_name": "Gafat" + }, + "gga": { + "english_name": "Gao" + }, + "ggb": { + "english_name": "Gbii" + }, + "ggd": { + "english_name": "Gugadj" + }, + "gge": { + "english_name": "Guragone" + }, + "ggg": { + "english_name": "Gurgula" + }, + "ggk": { + "english_name": "Kungarakany" + }, + "ggl": { + "english_name": "Ganglau" + }, + "ggn": { + "english_name": "Gurung, Eastern" + }, + "ggo": { + "english_name": "Gondi, Southern" + }, + "ggt": { + "english_name": "Gitua" + }, + "ggu": { + "english_name": "Gagu" + }, + "ggw": { + "english_name": "Gogodala" + }, + "gha": { + "english_name": "Ghadam\u00e8s" + }, + "ghc": { + "english_name": "Gaelic, Hiberno-Scottish" + }, + "ghe": { + "english_name": "Ghale, Southern" + }, + "ghh": { + "english_name": "Ghale, Northern" + }, + "ghk": { + "english_name": "Karen, Geko" + }, + "ghl": { + "english_name": "Ghulfan" + }, + "ghn": { + "english_name": "Ghanongga" + }, + "gho": { + "english_name": "Ghomara" + }, + "ghr": { + "english_name": "Ghera" + }, + "ghs": { + "english_name": "Guhu-Samane" + }, + "ght": { + "english_name": "Kuke" + }, + "gia": { + "english_name": "Kitja" + }, + "gib": { + "english_name": "Gibanawa" + }, + "gic": { + "english_name": "Gail" + }, + "gid": { + "english_name": "Gidar" + }, + "gig": { + "english_name": "Goaria" + }, + "gih": { + "english_name": "Githabul" + }, + "gil": { + "english_name": "Gilbertese" + }, + "gim": { + "english_name": "Gimi (Eastern Highlands)" + }, + "gin": { + "english_name": "Hinukh" + }, + "gip": { + "english_name": "Gimi (West New Britain)" + }, + "giq": { + "english_name": "Gelao, Green" + }, + "gir": { + "english_name": "Gelao, Red" + }, + "gis": { + "english_name": "Giziga, North" + }, + "git": { + "english_name": "Gitxsan" + }, + "giu": { + "english_name": "Mulao" + }, + "giw": { + "english_name": "Gelao, White" + }, + "gix": { + "english_name": "Gilima" + }, + "giy": { + "english_name": "Giyug" + }, + "giz": { + "english_name": "Giziga, South" + }, + "gji": { + "english_name": "Geji" + }, + "gjk": { + "english_name": "Koli, Kachi" + }, + "gjm": { + "english_name": "Gunditjmara" + }, + "gjn": { + "english_name": "Gonja" + }, + "gju": { + "english_name": "Gujari" + }, + "gka": { + "english_name": "Guya" + }, + "gke": { + "english_name": "Ndai" + }, + "gkn": { + "english_name": "Gokana" + }, + "gko": { + "english_name": "Kok-Nar" + }, + "gkp": { + "english_name": "Kpelle, Guinea" + }, + "gl": { + "english_name": "Galician", + "name": "Galego" + }, + "glc": { + "english_name": "Bon Gula" + }, + "gld": { + "english_name": "Nanai" + }, + "glh": { + "english_name": "Pashayi, Northwest" + }, + "gli": { + "english_name": "Guliguli" + }, + "glj": { + "english_name": "Gula Iro" + }, + "glk": { + "english_name": "Gilaki" + }, + "gll": { + "english_name": "Garlali" + }, + "glo": { + "english_name": "Galambu" + }, + "glr": { + "english_name": "Glaro-Twabo" + }, + "glu": { + "english_name": "Gula (Chad)" + }, + "glw": { + "english_name": "Glavda" + }, + "gly": { + "english_name": "Gule" + }, + "gma": { + "english_name": "Gambera" + }, + "gmb": { + "english_name": "Gula'alaa" + }, + "gmd": { + "english_name": "M\u00e1ghd\u00ec" + }, + "gmh": { + "english_name": "German, Middle High (ca. 1050-1500)" + }, + "gml": { + "english_name": "German, Middle Low" + }, + "gmm": { + "english_name": "Gbaya-Mbodomo" + }, + "gmn": { + "english_name": "Gimnime" + }, + "gmu": { + "english_name": "Gumalu" + }, + "gmv": { + "english_name": "Gamo" + }, + "gmx": { + "english_name": "Magoma" + }, + "gmy": { + "english_name": "Greek, Mycenaean" + }, + "gmz": { + "english_name": "Mgbolizhia" + }, + "gn": { + "english_name": "Guarani" + }, + "gna": { + "english_name": "Kaansa" + }, + "gnb": { + "english_name": "Gangte" + }, + "gnc": { + "english_name": "Guanche" + }, + "gnd": { + "english_name": "Zulgo-Gemzek" + }, + "gne": { + "english_name": "Ganang" + }, + "gng": { + "english_name": "Ngangam" + }, + "gnh": { + "english_name": "Lere" + }, + "gni": { + "english_name": "Gooniyandi" + }, + "gnk": { + "english_name": "//Gana" + }, + "gnl": { + "english_name": "Gangulu" + }, + "gnm": { + "english_name": "Ginuman" + }, + "gnn": { + "english_name": "Gumatj" + }, + "gno": { + "english_name": "Gondi, Northern" + }, + "gnq": { + "english_name": "Gana" + }, + "gnr": { + "english_name": "Gureng Gureng" + }, + "gnt": { + "english_name": "Guntai" + }, + "gnu": { + "english_name": "Gnau" + }, + "gnw": { + "english_name": "Guaran\u00ed, Western Bolivian" + }, + "gnz": { + "english_name": "Ganzi" + }, + "goa": { + "english_name": "Guro" + }, + "gob": { + "english_name": "Playero" + }, + "goc": { + "english_name": "Gorakor" + }, + "god": { + "english_name": "Godi\u00e9" + }, + "goe": { + "english_name": "Gongduk" + }, + "gof": { + "english_name": "Gofa" + }, + "gog": { + "english_name": "Gogo" + }, + "goh": { + "english_name": "German, Old High (ca. 750-1050)" + }, + "goi": { + "english_name": "Gobasi" + }, + "goj": { + "english_name": "Gowlan" + }, + "gok": { + "english_name": "Gowli" + }, + "gol": { + "english_name": "Gola" + }, + "gom": { + "english_name": "Konkani, Goan" + }, + "gon": { + "english_name": "Gondi" + }, + "goo": { + "english_name": "Gone Dau" + }, + "gop": { + "english_name": "Yeretuar" + }, + "goq": { + "english_name": "Gorap" + }, + "gor": { + "english_name": "Gorontalo" + }, + "gos": { + "english_name": "Gronings" + }, + "got": { + "english_name": "Gothic" + }, + "gou": { + "english_name": "Gavar" + }, + "gow": { + "english_name": "Gorowa" + }, + "gox": { + "english_name": "Gobu" + }, + "goy": { + "english_name": "Goundo" + }, + "goz": { + "english_name": "Gozarkhani" + }, + "gpa": { + "english_name": "Gupa-Abawa" + }, + "gpe": { + "english_name": "Pidgin English, Ghanaian" + }, + "gpn": { + "english_name": "Taiap" + }, + "gqa": { + "english_name": "Ga'anda" + }, + "gqi": { + "english_name": "Guiqiong" + }, + "gqn": { + "english_name": "Guana (Brazil)" + }, + "gqr": { + "english_name": "Gor" + }, + "gqu": { + "english_name": "Qau" + }, + "gra": { + "english_name": "Garasia, Rajput" + }, + "grb": { + "english_name": "Grebo" + }, + "grc": { + "english_name": "Greek, Ancient (to 1453)" + }, + "grd": { + "english_name": "Guruntum-Mbaaru" + }, + "grg": { + "english_name": "Madi" + }, + "grh": { + "english_name": "Gbiri-Niragu" + }, + "gri": { + "english_name": "Ghari" + }, + "grj": { + "english_name": "Grebo, Southern" + }, + "grm": { + "english_name": "Kota Marudu Talantang" + }, + "gro": { + "english_name": "Groma" + }, + "grq": { + "english_name": "Gorovu" + }, + "grr": { + "english_name": "Taznatit" + }, + "grs": { + "english_name": "Gresi" + }, + "grt": { + "english_name": "Garo" + }, + "gru": { + "english_name": "Kistane" + }, + "grv": { + "english_name": "Grebo, Central" + }, + "grw": { + "english_name": "Gweda" + }, + "grx": { + "english_name": "Guriaso" + }, + "gry": { + "english_name": "Grebo, Barclayville" + }, + "grz": { + "english_name": "Guramalum" + }, + "gse": { + "english_name": "Ghanaian Sign Language" + }, + "gsg": { + "english_name": "German Sign Language" + }, + "gsl": { + "english_name": "Gusilay" + }, + "gsm": { + "english_name": "Guatemalan Sign Language" + }, + "gsn": { + "english_name": "Gusan" + }, + "gso": { + "english_name": "Gbaya, Southwest" + }, + "gsp": { + "english_name": "Wasembo" + }, + "gss": { + "english_name": "Greek Sign Language" + }, + "gsw": { + "english_name": "German, Swiss" + }, + "gta": { + "english_name": "Guat\u00f3" + }, + "gtu": { + "english_name": "Aghu-Tharnggala" + }, + "gu": { + "english_name": "Gujarati", + "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" + }, + "gua": { + "english_name": "Shiki" + }, + "gub": { + "english_name": "Guajaj\u00e1ra" + }, + "guc": { + "english_name": "Wayuu" + }, + "gud": { + "english_name": "Dida, Yocobou\u00e9" + }, + "gue": { + "english_name": "Gurinji" + }, + "guf": { + "english_name": "Gupapuyngu" + }, + "gug": { + "english_name": "Guaran\u00ed, Paraguayan" + }, + "guh": { + "english_name": "Guahibo" + }, + "gui": { + "english_name": "Guaran\u00ed, Eastern Bolivian" + }, + "guk": { + "english_name": "Gumuz" + }, + "gul": { + "english_name": "Creole English, Sea Island" + }, + "gum": { + "english_name": "Guambiano" + }, + "gun": { + "english_name": "Guaran\u00ed, Mby\u00e1" + }, + "guo": { + "english_name": "Guayabero" + }, + "gup": { + "english_name": "Gunwinggu" + }, + "guq": { + "english_name": "Ach\u00e9" + }, + "gur": { + "english_name": "Farefare" + }, + "gus": { + "english_name": "Guinean Sign Language" + }, + "gut": { + "english_name": "Mal\u00e9ku Ja\u00edka" + }, + "guu": { + "english_name": "Yanomam\u00f6" + }, + "guv": { + "english_name": "Gey" + }, + "guw": { + "english_name": "Gun" + }, + "gux": { + "english_name": "Gourmanch\u00e9ma" + }, + "guz": { + "english_name": "Gusii" + }, + "gv": { + "english_name": "Manx" + }, + "gva": { + "english_name": "Guana (Paraguay)" + }, + "gvc": { + "english_name": "Guanano" + }, + "gve": { + "english_name": "Duwet" + }, + "gvf": { + "english_name": "Golin" + }, + "gvj": { + "english_name": "Guaj\u00e1" + }, + "gvl": { + "english_name": "Gulay" + }, + "gvm": { + "english_name": "Gurmana" + }, + "gvn": { + "english_name": "Kuku-Yalanji" + }, + "gvo": { + "english_name": "Gavi\u00e3o Do Jiparan\u00e1" + }, + "gvp": { + "english_name": "Gavi\u00e3o, Par\u00e1" + }, + "gvr": { + "english_name": "Gurung, Western" + }, + "gvs": { + "english_name": "Gumawana" + }, + "gvy": { + "english_name": "Guyani" + }, + "gwa": { + "english_name": "Mbato" + }, + "gwb": { + "english_name": "Gwa" + }, + "gwc": { + "english_name": "Kalami" + }, + "gwd": { + "english_name": "Gawwada" + }, + "gwe": { + "english_name": "Gweno" + }, + "gwf": { + "english_name": "Gowro" + }, + "gwg": { + "english_name": "Moo" + }, + "gwi": { + "english_name": "Gwich\u02bcin" + }, + "gwj": { + "english_name": "/Gwi" + }, + "gwm": { + "english_name": "Awngthim" + }, + "gwn": { + "english_name": "Gwandara" + }, + "gwr": { + "english_name": "Gwere" + }, + "gwt": { + "english_name": "Gawar-Bati" + }, + "gwu": { + "english_name": "Guwamu" + }, + "gww": { + "english_name": "Kwini" + }, + "gwx": { + "english_name": "Gua" + }, + "gxx": { + "english_name": "W\u00e8 Southern" + }, + "gya": { + "english_name": "Gbaya, Northwest" + }, + "gyb": { + "english_name": "Garus" + }, + "gyd": { + "english_name": "Kayardild" + }, + "gye": { + "english_name": "Gyem" + }, + "gyf": { + "english_name": "Gungabula" + }, + "gyg": { + "english_name": "Gbayi" + }, + "gyi": { + "english_name": "Gyele" + }, + "gyl": { + "english_name": "Gayil" + }, + "gym": { + "english_name": "Ng\u00e4bere" + }, + "gyn": { + "english_name": "Creole English, Guyanese" + }, + "gyr": { + "english_name": "Guarayu" + }, + "gyy": { + "english_name": "Gunya" + }, + "gza": { + "english_name": "Ganza" + }, + "gzi": { + "english_name": "Gazi" + }, + "gzn": { + "english_name": "Gane" + }, + "ha": { + "english_name": "Hausa" + }, + "haa": { + "english_name": "Han" + }, + "hab": { + "english_name": "Hanoi Sign Language" + }, + "hac": { + "english_name": "Gurani" + }, + "had": { + "english_name": "Hatam" + }, + "hae": { + "english_name": "Oromo, Eastern" + }, + "haf": { + "english_name": "Haiphong Sign Language" + }, + "hag": { + "english_name": "Hanga" + }, + "hah": { + "english_name": "Hahon" + }, + "hai": { + "english_name": "Haida" + }, + "haj": { + "english_name": "Hajong" + }, + "hak": { + "english_name": "Chinese, Hakka" + }, + "hal": { + "english_name": "Halang" + }, + "ham": { + "english_name": "Hewa" + }, + "han": { + "english_name": "Hangaza" + }, + "hao": { + "english_name": "Hak\u00f6" + }, + "hap": { + "english_name": "Hupla" + }, + "haq": { + "english_name": "Ha" + }, + "har": { + "english_name": "Harari" + }, + "has": { + "english_name": "Haisla" + }, + "hav": { + "english_name": "Havu" + }, + "haw": { + "english_name": "Hawaiian" + }, + "hax": { + "english_name": "Haida, Southern" + }, + "hay": { + "english_name": "Haya" + }, + "haz": { + "english_name": "Hazaragi" + }, + "hba": { + "english_name": "Hamba" + }, + "hbb": { + "english_name": "Huba" + }, + "hbn": { + "english_name": "Heiban" + }, + "hbo": { + "english_name": "Hebrew, Ancient" + }, + "hbs": { + "english_name": "Serbo-Croatian" + }, + "hbu": { + "english_name": "Habu" + }, + "hca": { + "english_name": "Creole Hindi, Andaman" + }, + "hch": { + "english_name": "Huichol" + }, + "hdn": { + "english_name": "Haida, Northern" + }, + "hds": { + "english_name": "Honduras Sign Language" + }, + "hdy": { + "english_name": "Hadiyya" + }, + "he": { + "english_name": "Hebrew", + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "hea": { + "english_name": "Miao, Northern Qiandong" + }, + "hed": { + "english_name": "Herd\u00e9" + }, + "heg": { + "english_name": "Helong" + }, + "heh": { + "english_name": "Hehe" + }, + "hei": { + "english_name": "Heiltsuk" + }, + "hem": { + "english_name": "Hemba" + }, + "hgm": { + "english_name": "Hai//om" + }, + "hgw": { + "english_name": "Haigwai" + }, + "hhi": { + "english_name": "Hoia Hoia" + }, + "hhr": { + "english_name": "Kerak" + }, + "hhy": { + "english_name": "Hoyahoya" + }, + "hi": { + "english_name": "Hindi", + "name": "\u0939\u093f\u0902\u0926\u0940" + }, + "hia": { + "english_name": "Lamang" + }, + "hib": { + "english_name": "Hibito" + }, + "hid": { + "english_name": "Hidatsa" + }, + "hif": { + "english_name": "Hindi, Fiji" + }, + "hig": { + "english_name": "Kamwe" + }, + "hih": { + "english_name": "Pamosu" + }, + "hii": { + "english_name": "Hinduri" + }, + "hij": { + "english_name": "Hijuk" + }, + "hik": { + "english_name": "Seit-Kaitetu" + }, + "hil": { + "english_name": "Hiligaynon" + }, + "hio": { + "english_name": "Tsoa" + }, + "hir": { + "english_name": "Himarim\u00e3" + }, + "hit": { + "english_name": "Hittite" + }, + "hiw": { + "english_name": "Hiw" + }, + "hix": { + "english_name": "Hixkary\u00e1na" + }, + "hji": { + "english_name": "Haji" + }, + "hka": { + "english_name": "Kahe" + }, + "hke": { + "english_name": "Hunde" + }, + "hkk": { + "english_name": "Hunjara-Kaina Ke" + }, + "hks": { + "english_name": "Hong Kong Sign Language" + }, + "hla": { + "english_name": "Halia" + }, + "hlb": { + "english_name": "Halbi" + }, + "hld": { + "english_name": "Halang Doan" + }, + "hle": { + "english_name": "Hlersu" + }, + "hlt": { + "english_name": "Chin, Matu" + }, + "hlu": { + "english_name": "Luwian, Hieroglyphic" + }, + "hma": { + "english_name": "Hmong, Southern Mashan" + }, + "hmb": { + "english_name": "Songhay, Humburi Senni" + }, + "hmc": { + "english_name": "Hmong, Central Huishui" + }, + "hmd": { + "english_name": "Miao, Large Flowery" + }, + "hme": { + "english_name": "Hmong, Eastern Huishui" + }, + "hmf": { + "english_name": "Hmong Don" + }, + "hmg": { + "english_name": "Hmong, Southwestern Guiyang" + }, + "hmh": { + "english_name": "Hmong, Southwestern Huishui" + }, + "hmi": { + "english_name": "Hmong, Northern Huishui" + }, + "hmj": { + "english_name": "Ge" + }, + "hmk": { + "english_name": "Maek" + }, + "hml": { + "english_name": "Hmong, Luopohe" + }, + "hmm": { + "english_name": "Hmong, Central Mashan" + }, + "hmn": { + "english_name": "Hmong" + }, + "hmp": { + "english_name": "Hmong, Northern Mashan" + }, + "hmq": { + "english_name": "Miao, Eastern Qiandong" + }, + "hmr": { + "english_name": "Hmar" + }, + "hms": { + "english_name": "Miao, Southern Qiandong" + }, + "hmt": { + "english_name": "Hamtai" + }, + "hmu": { + "english_name": "Hamap" + }, + "hmv": { + "english_name": "Hmong D\u00f4" + }, + "hmw": { + "english_name": "Hmong, Western Mashan" + }, + "hmy": { + "english_name": "Hmong, Southern Guiyang" + }, + "hmz": { + "english_name": "Hmong Shua" + }, + "hna": { + "english_name": "Mina (Cameroon)" + }, + "hnd": { + "english_name": "Hindko, Southern" + }, + "hne": { + "english_name": "Chhattisgarhi" + }, + "hnh": { + "english_name": "//Ani" + }, + "hni": { + "english_name": "Hani" + }, + "hnj": { + "english_name": "Hmong Njua" + }, + "hnn": { + "english_name": "Hanunoo" + }, + "hno": { + "english_name": "Hindko, Northern" + }, + "hns": { + "english_name": "Hindustani, Caribbean" + }, + "hnu": { + "english_name": "Hung" + }, + "ho": { + "english_name": "Hiri Motu" + }, + "hoa": { + "english_name": "Hoava" + }, + "hob": { + "english_name": "Mari (Madang Province)" + }, + "hoc": { + "english_name": "Ho" + }, + "hod": { + "english_name": "Holma" + }, + "hoe": { + "english_name": "Horom" + }, + "hoh": { + "english_name": "Hoby\u00f3t" + }, + "hoi": { + "english_name": "Holikachuk" + }, + "hoj": { + "english_name": "Hadothi" + }, + "hol": { + "english_name": "Holu" + }, + "hom": { + "english_name": "Homa" + }, + "hoo": { + "english_name": "Holoholo" + }, + "hop": { + "english_name": "Hopi" + }, + "hor": { + "english_name": "Horo" + }, + "hos": { + "english_name": "Ho Chi Minh City Sign Language" + }, + "hot": { + "english_name": "Hote" + }, + "hov": { + "english_name": "Hovongan" + }, + "how": { + "english_name": "Honi" + }, + "hoy": { + "english_name": "Holiya" + }, + "hoz": { + "english_name": "Hozo" + }, + "hpo": { + "english_name": "Hpon" + }, + "hps": { + "english_name": "Hawai'i Pidgin Sign Language" + }, + "hr": { + "english_name": "Croatian", + "name": "hrvatski" + }, + "hra": { + "english_name": "Hrangkhol" + }, + "hrc": { + "english_name": "Niwer Mil" + }, + "hre": { + "english_name": "Hre" + }, + "hrk": { + "english_name": "Haruku" + }, + "hrm": { + "english_name": "Miao, Horned" + }, + "hro": { + "english_name": "Haroi" + }, + "hrp": { + "english_name": "Nhirrpi" + }, + "hrt": { + "english_name": "H\u00e9rtevin" + }, + "hru": { + "english_name": "Hruso" + }, + "hrw": { + "english_name": "Warwar Feni" + }, + "hrx": { + "english_name": "Hunsrik" + }, + "hrz": { + "english_name": "Harzani" + }, + "hsb": { + "english_name": "Sorbian, Upper" + }, + "hsh": { + "english_name": "Hungarian Sign Language" + }, + "hsl": { + "english_name": "Hausa Sign Language" + }, + "hsn": { + "english_name": "Chinese, Xiang" + }, + "hss": { + "english_name": "Harsusi" + }, + "ht": { + "english_name": "Haitian" + }, + "hti": { + "english_name": "Hoti" + }, + "hto": { + "english_name": "Huitoto, Minica" + }, + "hts": { + "english_name": "Hadza" + }, + "htu": { + "english_name": "Hitu" + }, + "htx": { + "english_name": "Hittite, Middle" + }, + "hu": { + "english_name": "Hungarian", + "name": "magyar" + }, + "hub": { + "english_name": "Huambisa" + }, + "huc": { + "english_name": "=/Hua" + }, + "hud": { + "english_name": "Huaulu" + }, + "hue": { + "english_name": "Huave, San Francisco Del Mar" + }, + "huf": { + "english_name": "Humene" + }, + "hug": { + "english_name": "Huachipaeri" + }, + "huh": { + "english_name": "Huilliche" + }, + "hui": { + "english_name": "Huli" + }, + "huj": { + "english_name": "Hmong, Northern Guiyang" + }, + "huk": { + "english_name": "Hulung" + }, + "hul": { + "english_name": "Hula" + }, + "hum": { + "english_name": "Hungana" + }, + "huo": { + "english_name": "Hu" + }, + "hup": { + "english_name": "Hupa" + }, + "huq": { + "english_name": "Tsat" + }, + "hur": { + "english_name": "Halkomelem" + }, + "hus": { + "english_name": "Huastec" + }, + "hut": { + "english_name": "Humla" + }, + "huu": { + "english_name": "Huitoto, Murui" + }, + "huv": { + "english_name": "Huave, San Mateo Del Mar" + }, + "huw": { + "english_name": "Hukumina" + }, + "hux": { + "english_name": "Huitoto, N\u00fcpode" + }, + "huy": { + "english_name": "Hulaul\u00e1" + }, + "huz": { + "english_name": "Hunzib" + }, + "hvc": { + "english_name": "Haitian Vodoun Culture Language" + }, + "hve": { + "english_name": "Huave, San Dionisio Del Mar" + }, + "hvk": { + "english_name": "Haveke" + }, + "hvn": { + "english_name": "Sabu" + }, + "hvv": { + "english_name": "Huave, Santa Mar\u00eda Del Mar" + }, + "hwa": { + "english_name": "Wan\u00e9" + }, + "hwc": { + "english_name": "Creole English, Hawai'i" + }, + "hwo": { + "english_name": "Hwana" + }, + "hy": { + "english_name": "Armenian" + }, + "hya": { + "english_name": "Hya" + }, + "hz": { + "english_name": "Herero" + }, + "ia": { + "english_name": "Interlingua (International Auxiliary Language Association)" + }, + "iai": { + "english_name": "Iaai" + }, + "ian": { + "english_name": "Iatmul" + }, + "iap": { + "english_name": "Iapama" + }, + "iar": { + "english_name": "Purari" + }, + "iba": { + "english_name": "Iban" + }, + "ibb": { + "english_name": "Ibibio" + }, + "ibd": { + "english_name": "Iwaidja" + }, + "ibe": { + "english_name": "Akpes" + }, + "ibg": { + "english_name": "Ibanag" + }, + "ibl": { + "english_name": "Ibaloi" + }, + "ibm": { + "english_name": "Agoi" + }, + "ibn": { + "english_name": "Ibino" + }, + "ibr": { + "english_name": "Ibuoro" + }, + "ibu": { + "english_name": "Ibu" + }, + "iby": { + "english_name": "Ibani" + }, + "ica": { + "english_name": "Ede Ica" + }, + "ich": { + "english_name": "Etkywan" + }, + "icl": { + "english_name": "Icelandic Sign Language" + }, + "icr": { + "english_name": "Creole English, Islander" + }, + "id": { + "english_name": "Indonesian", + "name": "Indonesian" + }, + "ida": { + "english_name": "Idakho-Isukha-Tiriki" + }, + "idb": { + "english_name": "Indo-Portuguese" + }, + "idc": { + "english_name": "Idon" + }, + "idd": { + "english_name": "Ede Idaca" + }, + "ide": { + "english_name": "Idere" + }, + "idi": { + "english_name": "Idi" + }, + "idr": { + "english_name": "Indri" + }, + "ids": { + "english_name": "Idesa" + }, + "idt": { + "english_name": "Idat\u00e9" + }, + "idu": { + "english_name": "Idoma" + }, + "ie": { + "english_name": "Interlingue" + }, + "ifa": { + "english_name": "Ifugao, Amganad" + }, + "ifb": { + "english_name": "Ifugao, Batad" + }, + "ife": { + "english_name": "If\u00e8" + }, + "iff": { + "english_name": "Ifo" + }, + "ifk": { + "english_name": "Ifugao, Tuwali" + }, + "ifm": { + "english_name": "Teke-Fuumu" + }, + "ifu": { + "english_name": "Ifugao, Mayoyao" + }, + "ify": { + "english_name": "Kallahan, Keley-I" + }, + "ig": { + "english_name": "Igbo" + }, + "igb": { + "english_name": "Ebira" + }, + "ige": { + "english_name": "Igede" + }, + "igg": { + "english_name": "Igana" + }, + "igl": { + "english_name": "Igala" + }, + "igm": { + "english_name": "Kanggape" + }, + "ign": { + "english_name": "Ignaciano" + }, + "igo": { + "english_name": "Isebe" + }, + "igs": { + "english_name": "Interglossa" + }, + "igw": { + "english_name": "Igwe" + }, + "ihb": { + "english_name": "Iha Based Pidgin" + }, + "ihi": { + "english_name": "Ihievbe" + }, + "ihp": { + "english_name": "Iha" + }, + "ihw": { + "english_name": "Bidhawal" + }, + "ii": { + "english_name": "Yi, Sichuan" + }, + "iin": { + "english_name": "Thiin" + }, + "ijc": { + "english_name": "Izon" + }, + "ije": { + "english_name": "Biseni" + }, + "ijj": { + "english_name": "Ede Ije" + }, + "ijn": { + "english_name": "Kalabari" + }, + "ijs": { + "english_name": "Ijo, Southeast" + }, + "ik": { + "english_name": "Inupiaq" + }, + "ike": { + "english_name": "Inuktitut, Eastern Canadian" + }, + "iki": { + "english_name": "Iko" + }, + "ikk": { + "english_name": "Ika" + }, + "ikl": { + "english_name": "Ikulu" + }, + "iko": { + "english_name": "Olulumo-Ikom" + }, + "ikp": { + "english_name": "Ikpeshi" + }, + "ikr": { + "english_name": "Ikaranggal" + }, + "ikt": { + "english_name": "Inuinnaqtun" + }, + "ikv": { + "english_name": "Iku-Gora-Ankwa" + }, + "ikw": { + "english_name": "Ikwere" + }, + "ikx": { + "english_name": "Ik" + }, + "ikz": { + "english_name": "Ikizu" + }, + "ila": { + "english_name": "Ile Ape" + }, + "ilb": { + "english_name": "Ila" + }, + "ilg": { + "english_name": "Garig-Ilgar" + }, + "ili": { + "english_name": "Ili Turki" + }, + "ilk": { + "english_name": "Ilongot" + }, + "ill": { + "english_name": "Iranun" + }, + "ilo": { + "english_name": "Iloko" + }, + "ils": { + "english_name": "International Sign" + }, + "ilu": { + "english_name": "Ili'uun" + }, + "ilv": { + "english_name": "Ilue" + }, + "ima": { + "english_name": "Malasar, Mala" + }, + "imi": { + "english_name": "Anamgura" + }, + "iml": { + "english_name": "Miluk" + }, + "imn": { + "english_name": "Imonda" + }, + "imo": { + "english_name": "Imbongu" + }, + "imr": { + "english_name": "Imroing" + }, + "ims": { + "english_name": "Marsian" + }, + "imy": { + "english_name": "Milyan" + }, + "inb": { + "english_name": "Inga" + }, + "ing": { + "english_name": "Degexit'an" + }, + "inh": { + "english_name": "Ingush" + }, + "inj": { + "english_name": "Inga, Jungle" + }, + "inl": { + "english_name": "Indonesian Sign Language" + }, + "inm": { + "english_name": "Minaean" + }, + "inn": { + "english_name": "Isinai" + }, + "ino": { + "english_name": "Inoke-Yate" + }, + "inp": { + "english_name": "I\u00f1apari" + }, + "ins": { + "english_name": "Indian Sign Language" + }, + "int": { + "english_name": "Intha" + }, + "inz": { + "english_name": "Inese\u00f1o" + }, + "io": { + "english_name": "Ido" + }, + "ior": { + "english_name": "Inor" + }, + "iou": { + "english_name": "Tuma-Irumu" + }, + "iow": { + "english_name": "Iowa-Oto" + }, + "ipi": { + "english_name": "Ipili" + }, + "ipo": { + "english_name": "Ipiko" + }, + "iqu": { + "english_name": "Iquito" + }, + "iqw": { + "english_name": "Ikwo" + }, + "ire": { + "english_name": "Iresim" + }, + "irh": { + "english_name": "Irarutu" + }, + "iri": { + "english_name": "Irigwe" + }, + "irk": { + "english_name": "Iraqw" + }, + "irn": { + "english_name": "Ir\u00e1ntxe" + }, + "irr": { + "english_name": "Ir" + }, + "iru": { + "english_name": "Irula" + }, + "irx": { + "english_name": "Kamberau" + }, + "iry": { + "english_name": "Iraya" + }, + "is": { + "english_name": "Icelandic", + "name": "\u00cdslenska" + }, + "isa": { + "english_name": "Isabi" + }, + "isc": { + "english_name": "Isconahua" + }, + "isd": { + "english_name": "Isnag" + }, + "ise": { + "english_name": "Italian Sign Language" + }, + "isg": { + "english_name": "Irish Sign Language" + }, + "ish": { + "english_name": "Esan" + }, + "isi": { + "english_name": "Nkem-Nkum" + }, + "isk": { + "english_name": "Ishkashimi" + }, + "ism": { + "english_name": "Masimasi" + }, + "isn": { + "english_name": "Isanzu" + }, + "iso": { + "english_name": "Isoko" + }, + "isr": { + "english_name": "Israeli Sign Language" + }, + "ist": { + "english_name": "Istriot" + }, + "isu": { + "english_name": "Isu (Menchum Division)" + }, + "it": { + "english_name": "Italian", + "name": "Italiano" + }, + "itb": { + "english_name": "Itneg, Binongan" + }, + "ite": { + "english_name": "Itene" + }, + "iti": { + "english_name": "Itneg, Inlaod" + }, + "itk": { + "english_name": "Judeo-Italian" + }, + "itl": { + "english_name": "Itelmen" + }, + "itm": { + "english_name": "Itu Mbon Uzo" + }, + "ito": { + "english_name": "Itonama" + }, + "itr": { + "english_name": "Iteri" + }, + "its": { + "english_name": "Isekiri" + }, + "itt": { + "english_name": "Itneg, Maeng" + }, + "itv": { + "english_name": "Itawit" + }, + "itw": { + "english_name": "Ito" + }, + "itx": { + "english_name": "Itik" + }, + "ity": { + "english_name": "Itneg, Moyadan" + }, + "itz": { + "english_name": "Itz\u00e1" + }, + "iu": { + "english_name": "Inuktitut" + }, + "ium": { + "english_name": "Mien, Iu" + }, + "ivb": { + "english_name": "Ibatan" + }, + "ivv": { + "english_name": "Ivatan" + }, + "iwk": { + "english_name": "I-Wak" + }, + "iwm": { + "english_name": "Iwam" + }, + "iwo": { + "english_name": "Iwur" + }, + "iws": { + "english_name": "Iwam, Sepik" + }, + "ixc": { + "english_name": "Ixcatec" + }, + "ixl": { + "english_name": "Ixil" + }, + "iya": { + "english_name": "Iyayu" + }, + "iyo": { + "english_name": "Mesaka" + }, + "iyx": { + "english_name": "Yaka (Congo)" + }, + "izh": { + "english_name": "Ingrian" + }, + "izr": { + "english_name": "Izere" + }, + "izz": { + "english_name": "Izii" + }, + "ja": { + "english_name": "Japanese", + "name": "\u65e5\u672c\u8a9e" + }, + "jaa": { + "english_name": "Jamamad\u00ed" + }, + "jab": { + "english_name": "Hyam" + }, + "jac": { + "english_name": "Popti'" + }, + "jad": { + "english_name": "Jahanka" + }, + "jae": { + "english_name": "Yabem" + }, + "jaf": { + "english_name": "Jara" + }, + "jah": { + "english_name": "Jah Hut" + }, + "jaj": { + "english_name": "Zazao" + }, + "jak": { + "english_name": "Jakun" + }, + "jal": { + "english_name": "Yalahatan" + }, + "jam": { + "english_name": "Creole English, Jamaican" + }, + "jan": { + "english_name": "Jandai" + }, + "jao": { + "english_name": "Yanyuwa" + }, + "jaq": { + "english_name": "Yaqay" + }, + "jas": { + "english_name": "Javanese, New Caledonian" + }, + "jat": { + "english_name": "Jakati" + }, + "jau": { + "english_name": "Yaur" + }, + "jax": { + "english_name": "Malay, Jambi" + }, + "jay": { + "english_name": "Yan-nhangu" + }, + "jaz": { + "english_name": "Jawe" + }, + "jbe": { + "english_name": "Judeo-Berber" + }, + "jbi": { + "english_name": "Badjiri" + }, + "jbj": { + "english_name": "Arandai" + }, + "jbk": { + "english_name": "Barikewa" + }, + "jbn": { + "english_name": "Nafusi" + }, + "jbo": { + "english_name": "Lojban" + }, + "jbr": { + "english_name": "Jofotek-Bromnya" + }, + "jbt": { + "english_name": "Jabut\u00ed" + }, + "jbu": { + "english_name": "Jukun Takum" + }, + "jbw": { + "english_name": "Yawijibaya" + }, + "jcs": { + "english_name": "Jamaican Country Sign Language" + }, + "jct": { + "english_name": "Krymchak" + }, + "jda": { + "english_name": "Jad" + }, + "jdg": { + "english_name": "Jadgali" + }, + "jdt": { + "english_name": "Judeo-Tat" + }, + "jeb": { + "english_name": "Jebero" + }, + "jee": { + "english_name": "Jerung" + }, + "jeg": { + "english_name": "Jeng" + }, + "jeh": { + "english_name": "Jeh" + }, + "jei": { + "english_name": "Yei" + }, + "jek": { + "english_name": "Jeri Kuo" + }, + "jel": { + "english_name": "Yelmek" + }, + "jen": { + "english_name": "Dza" + }, + "jer": { + "english_name": "Jere" + }, + "jet": { + "english_name": "Manem" + }, + "jeu": { + "english_name": "Jonkor Bourmataguil" + }, + "jgb": { + "english_name": "Ngbee" + }, + "jge": { + "english_name": "Judeo-Georgian" + }, + "jgk": { + "english_name": "Gwak" + }, + "jgo": { + "english_name": "Ngomba" + }, + "jhi": { + "english_name": "Jehai" + }, + "jhs": { + "english_name": "Jhankot Sign Language" + }, + "jia": { + "english_name": "Jina" + }, + "jib": { + "english_name": "Jibu" + }, + "jic": { + "english_name": "Tol" + }, + "jid": { + "english_name": "Bu" + }, + "jie": { + "english_name": "Jilbe" + }, + "jig": { + "english_name": "Djingili" + }, + "jih": { + "english_name": "sTodsde" + }, + "jii": { + "english_name": "Jiiddu" + }, + "jil": { + "english_name": "Jilim" + }, + "jim": { + "english_name": "Jimi (Cameroon)" + }, + "jio": { + "english_name": "Jiamao" + }, + "jiq": { + "english_name": "Guanyinqiao" + }, + "jit": { + "english_name": "Jita" + }, + "jiu": { + "english_name": "Jinuo, Youle" + }, + "jiv": { + "english_name": "Shuar" + }, + "jiy": { + "english_name": "Jinuo, Buyuan" + }, + "jjr": { + "english_name": "Bankal" + }, + "jkm": { + "english_name": "Karen, Mobwa" + }, + "jko": { + "english_name": "Kubo" + }, + "jkp": { + "english_name": "Karen, Paku" + }, + "jkr": { + "english_name": "Koro (India)" + }, + "jku": { + "english_name": "Labir" + }, + "jle": { + "english_name": "Ngile" + }, + "jls": { + "english_name": "Jamaican Sign Language" + }, + "jma": { + "english_name": "Dima" + }, + "jmb": { + "english_name": "Zumbun" + }, + "jmc": { + "english_name": "Machame" + }, + "jmd": { + "english_name": "Yamdena" + }, + "jmi": { + "english_name": "Jimi (Nigeria)" + }, + "jml": { + "english_name": "Jumli" + }, + "jmn": { + "english_name": "Naga, Makuri" + }, + "jmr": { + "english_name": "Kamara" + }, + "jms": { + "english_name": "Mashi (Nigeria)" + }, + "jmw": { + "english_name": "Mouwase" + }, + "jmx": { + "english_name": "Mixtec, Western Juxtlahuaca" + }, + "jna": { + "english_name": "Jangshung" + }, + "jnd": { + "english_name": "Jandavra" + }, + "jng": { + "english_name": "Yangman" + }, + "jni": { + "english_name": "Janji" + }, + "jnj": { + "english_name": "Yemsa" + }, + "jnl": { + "english_name": "Rawat" + }, + "jns": { + "english_name": "Jaunsari" + }, + "job": { + "english_name": "Joba" + }, + "jod": { + "english_name": "Wojenaka" + }, + "jor": { + "english_name": "Jor\u00e1" + }, + "jos": { + "english_name": "Jordanian Sign Language" + }, + "jow": { + "english_name": "Jowulu" + }, + "jpa": { + "english_name": "Aramaic, Jewish Palestinian" + }, + "jpr": { + "english_name": "Judeo-Persian" + }, + "jqr": { + "english_name": "Jaqaru" + }, + "jra": { + "english_name": "Jarai" + }, + "jrb": { + "english_name": "Judeo-Arabic" + }, + "jrr": { + "english_name": "Jiru" + }, + "jrt": { + "english_name": "Jorto" + }, + "jru": { + "english_name": "Japrer\u00eda" + }, + "jsl": { + "english_name": "Japanese Sign Language" + }, + "jua": { + "english_name": "J\u00fama" + }, + "jub": { + "english_name": "Wannu" + }, + "juc": { + "english_name": "Jurchen" + }, + "jud": { + "english_name": "Worodougou" + }, + "juh": { + "english_name": "H\u00f5ne" + }, + "jui": { + "english_name": "Ngadjuri" + }, + "juk": { + "english_name": "Wapan" + }, + "jul": { + "english_name": "Jirel" + }, + "jum": { + "english_name": "Jumjum" + }, + "jun": { + "english_name": "Juang" + }, + "juo": { + "english_name": "Jiba" + }, + "jup": { + "english_name": "Hupd\u00eb" + }, + "jur": { + "english_name": "Jur\u00fana" + }, + "jus": { + "english_name": "Jumla Sign Language" + }, + "jut": { + "english_name": "Jutish" + }, + "juu": { + "english_name": "Ju" + }, + "juw": { + "english_name": "W\u00e3pha" + }, + "juy": { + "english_name": "Juray" + }, + "jv": { + "english_name": "Javanese" + }, + "jvd": { + "english_name": "Javindo" + }, + "jvn": { + "english_name": "Javanese, Caribbean" + }, + "jwi": { + "english_name": "Jwira-Pepesa" + }, + "jya": { + "english_name": "Jiarong" + }, + "jye": { + "english_name": "Arabic, Judeo-Yemeni" + }, + "jyy": { + "english_name": "Jaya" + }, + "ka": { + "english_name": "Georgian" + }, + "kaa": { + "english_name": "Kara-Kalpak" + }, + "kab": { + "english_name": "Kabyle" + }, + "kac": { + "english_name": "Kachin" + }, + "kad": { + "english_name": "Adara" + }, + "kae": { + "english_name": "Ketangalan" + }, + "kaf": { + "english_name": "Katso" + }, + "kag": { + "english_name": "Kajaman" + }, + "kah": { + "english_name": "Kara (Central African Republic)" + }, + "kai": { + "english_name": "Karekare" + }, + "kaj": { + "english_name": "Jju" + }, + "kak": { + "english_name": "Kallahan, Kayapa" + }, + "kam": { + "english_name": "Kamba (Kenya)" + }, + "kao": { + "english_name": "Xaasongaxango" + }, + "kap": { + "english_name": "Bezhta" + }, + "kaq": { + "english_name": "Capanahua" + }, + "kav": { + "english_name": "Katuk\u00edna" + }, + "kaw": { + "english_name": "Kawi" + }, + "kax": { + "english_name": "Kao" + }, + "kay": { + "english_name": "Kamayur\u00e1" + }, + "kba": { + "english_name": "Kalarko" + }, + "kbb": { + "english_name": "Kaxui\u00e2na" + }, + "kbc": { + "english_name": "Kadiw\u00e9u" + }, + "kbd": { + "english_name": "Kabardian" + }, + "kbe": { + "english_name": "Kanju" + }, + "kbg": { + "english_name": "Khamba" + }, + "kbh": { + "english_name": "Cams\u00e1" + }, + "kbi": { + "english_name": "Kaptiau" + }, + "kbj": { + "english_name": "Kari" + }, + "kbk": { + "english_name": "Koiari, Grass" + }, + "kbl": { + "english_name": "Kanembu" + }, + "kbm": { + "english_name": "Iwal" + }, + "kbn": { + "english_name": "Kare (Central African Republic)" + }, + "kbo": { + "english_name": "Keliko" + }, + "kbp": { + "english_name": "Kabiy\u00e8" + }, + "kbq": { + "english_name": "Kamano" + }, + "kbr": { + "english_name": "Kafa" + }, + "kbs": { + "english_name": "Kande" + }, + "kbt": { + "english_name": "Abadi" + }, + "kbu": { + "english_name": "Kabutra" + }, + "kbv": { + "english_name": "Dera (Indonesia)" + }, + "kbw": { + "english_name": "Kaiep" + }, + "kbx": { + "english_name": "Ap Ma" + }, + "kby": { + "english_name": "Kanuri, Manga" + }, + "kbz": { + "english_name": "Duhwa" + }, + "kca": { + "english_name": "Khanty" + }, + "kcb": { + "english_name": "Kawacha" + }, + "kcc": { + "english_name": "Lubila" + }, + "kcd": { + "english_name": "Kanum, Ngk\u00e2lmpw" + }, + "kce": { + "english_name": "Kaivi" + }, + "kcf": { + "english_name": "Ukaan" + }, + "kcg": { + "english_name": "Tyap" + }, + "kch": { + "english_name": "Vono" + }, + "kci": { + "english_name": "Kamantan" + }, + "kcj": { + "english_name": "Kobiana" + }, + "kck": { + "english_name": "Kalanga" + }, + "kcl": { + "english_name": "Kela (Papua New Guinea)" + }, + "kcm": { + "english_name": "Gula (Central African Republic)" + }, + "kcn": { + "english_name": "Nubi" + }, + "kco": { + "english_name": "Kinalakna" + }, + "kcp": { + "english_name": "Kanga" + }, + "kcq": { + "english_name": "Kamo" + }, + "kcr": { + "english_name": "Katla" + }, + "kcs": { + "english_name": "Koenoem" + }, + "kct": { + "english_name": "Kaian" + }, + "kcu": { + "english_name": "Kami (Tanzania)" + }, + "kcv": { + "english_name": "Kete" + }, + "kcw": { + "english_name": "Kabwari" + }, + "kcx": { + "english_name": "Kachama-Ganjule" + }, + "kcy": { + "english_name": "Korandje" + }, + "kcz": { + "english_name": "Konongo" + }, + "kda": { + "english_name": "Worimi" + }, + "kdc": { + "english_name": "Kutu" + }, + "kdd": { + "english_name": "Yankunytjatjara" + }, + "kde": { + "english_name": "Makonde" + }, + "kdf": { + "english_name": "Mamusi" + }, + "kdg": { + "english_name": "Seba" + }, + "kdh": { + "english_name": "Tem" + }, + "kdi": { + "english_name": "Kumam" + }, + "kdj": { + "english_name": "Karamojong" + }, + "kdk": { + "english_name": "Num\u00e8\u00e8" + }, + "kdl": { + "english_name": "Tsikimba" + }, + "kdm": { + "english_name": "Kagoma" + }, + "kdn": { + "english_name": "Kunda" + }, + "kdp": { + "english_name": "Kaningdon-Nindem" + }, + "kdq": { + "english_name": "Koch" + }, + "kdr": { + "english_name": "Karaim" + }, + "kdt": { + "english_name": "Kuy" + }, + "kdu": { + "english_name": "Kadaru" + }, + "kdw": { + "english_name": "Koneraw" + }, + "kdx": { + "english_name": "Kam" + }, + "kdy": { + "english_name": "Keder" + }, + "kdz": { + "english_name": "Kwaja" + }, + "kea": { + "english_name": "Kabuverdianu" + }, + "keb": { + "english_name": "K\u00e9l\u00e9" + }, + "kec": { + "english_name": "Keiga" + }, + "ked": { + "english_name": "Kerewe" + }, + "kee": { + "english_name": "Keres, Eastern" + }, + "kef": { + "english_name": "Kpessi" + }, + "keg": { + "english_name": "Tese" + }, + "keh": { + "english_name": "Keak" + }, + "kei": { + "english_name": "Kei" + }, + "kej": { + "english_name": "Kadar" + }, + "kek": { + "english_name": "Kekch\u00ed" + }, + "kel": { + "english_name": "Kela (Democratic Republic of Congo)" + }, + "kem": { + "english_name": "Kemak" + }, + "ken": { + "english_name": "Kenyang" + }, + "keo": { + "english_name": "Kakwa" + }, + "kep": { + "english_name": "Kaikadi" + }, + "keq": { + "english_name": "Kamar" + }, + "ker": { + "english_name": "Kera" + }, + "kes": { + "english_name": "Kugbo" + }, + "ket": { + "english_name": "Ket" + }, + "keu": { + "english_name": "Akebu" + }, + "kev": { + "english_name": "Kanikkaran" + }, + "kew": { + "english_name": "Kewa, West" + }, + "kex": { + "english_name": "Kukna" + }, + "key": { + "english_name": "Kupia" + }, + "kez": { + "english_name": "Kukele" + }, + "kfa": { + "english_name": "Kodava" + }, + "kfb": { + "english_name": "Kolami, Northwestern" + }, + "kfc": { + "english_name": "Konda-Dora" + }, + "kfd": { + "english_name": "Koraga, Korra" + }, + "kfe": { + "english_name": "Kota (India)" + }, + "kff": { + "english_name": "Koya" + }, + "kfg": { + "english_name": "Kudiya" + }, + "kfh": { + "english_name": "Kurichiya" + }, + "kfi": { + "english_name": "Kurumba, Kannada" + }, + "kfj": { + "english_name": "Kemiehua" + }, + "kfk": { + "english_name": "Kinnauri" + }, + "kfl": { + "english_name": "Kung" + }, + "kfm": { + "english_name": "Khunsari" + }, + "kfn": { + "english_name": "Kuk" + }, + "kfo": { + "english_name": "Koro (C\u00f4te d'Ivoire)" + }, + "kfp": { + "english_name": "Korwa" + }, + "kfq": { + "english_name": "Korku" + }, + "kfr": { + "english_name": "Kachchi" + }, + "kfs": { + "english_name": "Bilaspuri" + }, + "kft": { + "english_name": "Kanjari" + }, + "kfu": { + "english_name": "Katkari" + }, + "kfv": { + "english_name": "Kurmukar" + }, + "kfw": { + "english_name": "Naga, Kharam" + }, + "kfx": { + "english_name": "Pahari, Kullu" + }, + "kfy": { + "english_name": "Kumaoni" + }, + "kfz": { + "english_name": "Koromf\u00e9" + }, + "kg": { + "english_name": "Kongo" + }, + "kga": { + "english_name": "Koyaga" + }, + "kgb": { + "english_name": "Kawe" + }, + "kgc": { + "english_name": "Kasseng" + }, + "kgd": { + "english_name": "Kataang" + }, + "kge": { + "english_name": "Komering" + }, + "kgf": { + "english_name": "Kube" + }, + "kgg": { + "english_name": "Kusunda" + }, + "kgi": { + "english_name": "Selangor Sign Language" + }, + "kgj": { + "english_name": "Kham, Gamale" + }, + "kgk": { + "english_name": "Kaiw\u00e1" + }, + "kgl": { + "english_name": "Kunggari" + }, + "kgm": { + "english_name": "Karip\u00fana" + }, + "kgn": { + "english_name": "Karingani" + }, + "kgo": { + "english_name": "Krongo" + }, + "kgp": { + "english_name": "Kaingang" + }, + "kgq": { + "english_name": "Kamoro" + }, + "kgr": { + "english_name": "Abun" + }, + "kgs": { + "english_name": "Kumbainggar" + }, + "kgt": { + "english_name": "Somyev" + }, + "kgu": { + "english_name": "Kobol" + }, + "kgv": { + "english_name": "Karas" + }, + "kgw": { + "english_name": "Karon Dori" + }, + "kgx": { + "english_name": "Kamaru" + }, + "kgy": { + "english_name": "Kyerung" + }, + "kha": { + "english_name": "Khasi" + }, + "khb": { + "english_name": "L\u00fc" + }, + "khc": { + "english_name": "Tukang Besi North" + }, + "khd": { + "english_name": "Kanum, B\u00e4di" + }, + "khe": { + "english_name": "Korowai" + }, + "khf": { + "english_name": "Khuen" + }, + "khg": { + "english_name": "Tibetan, Khams" + }, + "khh": { + "english_name": "Kehu" + }, + "khj": { + "english_name": "Kuturmi" + }, + "khk": { + "english_name": "Mongolian, Halh" + }, + "khl": { + "english_name": "Lusi" + }, + "khn": { + "english_name": "Khandesi" + }, + "kho": { + "english_name": "Khotanese" + }, + "khp": { + "english_name": "Kapori" + }, + "khq": { + "english_name": "Songhay, Koyra Chiini" + }, + "khr": { + "english_name": "Kharia" + }, + "khs": { + "english_name": "Kasua" + }, + "kht": { + "english_name": "Khamti" + }, + "khu": { + "english_name": "Nkhumbi" + }, + "khv": { + "english_name": "Khvarshi" + }, + "khw": { + "english_name": "Khowar" + }, + "khx": { + "english_name": "Kanu" + }, + "khy": { + "english_name": "Kele (Democratic Republic of Congo)" + }, + "khz": { + "english_name": "Keapara" + }, + "ki": { + "english_name": "Kikuyu" + }, + "kia": { + "english_name": "Kim" + }, + "kib": { + "english_name": "Koalib" + }, + "kic": { + "english_name": "Kickapoo" + }, + "kid": { + "english_name": "Koshin" + }, + "kie": { + "english_name": "Kibet" + }, + "kif": { + "english_name": "Kham, Eastern Parbate" + }, + "kig": { + "english_name": "Kimaama" + }, + "kih": { + "english_name": "Kilmeri" + }, + "kii": { + "english_name": "Kitsai" + }, + "kij": { + "english_name": "Kilivila" + }, + "kil": { + "english_name": "Kariya" + }, + "kim": { + "english_name": "Karagas" + }, + "kio": { + "english_name": "Kiowa" + }, + "kip": { + "english_name": "Kham, Sheshi" + }, + "kiq": { + "english_name": "Kosadle" + }, + "kis": { + "english_name": "Kis" + }, + "kit": { + "english_name": "Agob" + }, + "kiu": { + "english_name": "Kirmanjki (individual language)" + }, + "kiv": { + "english_name": "Kimbu" + }, + "kiw": { + "english_name": "Kiwai, Northeast" + }, + "kix": { + "english_name": "Naga, Khiamniungan" + }, + "kiy": { + "english_name": "Kirikiri" + }, + "kiz": { + "english_name": "Kisi" + }, + "kj": { + "english_name": "Kuanyama" + }, + "kja": { + "english_name": "Mlap" + }, + "kjb": { + "english_name": "Q'anjob'al" + }, + "kjc": { + "english_name": "Konjo, Coastal" + }, + "kjd": { + "english_name": "Kiwai, Southern" + }, + "kje": { + "english_name": "Kisar" + }, + "kjf": { + "english_name": "Khalaj" + }, + "kjg": { + "english_name": "Khmu" + }, + "kjh": { + "english_name": "Khakas" + }, + "kji": { + "english_name": "Zabana" + }, + "kjj": { + "english_name": "Khinalugh" + }, + "kjk": { + "english_name": "Konjo, Highland" + }, + "kjl": { + "english_name": "Kham, Western Parbate" + }, + "kjm": { + "english_name": "Kh\u00e1ng" + }, + "kjn": { + "english_name": "Kunjen" + }, + "kjo": { + "english_name": "Kinnauri, Harijan" + }, + "kjp": { + "english_name": "Karen, Pwo Eastern" + }, + "kjq": { + "english_name": "Keres, Western" + }, + "kjr": { + "english_name": "Kurudu" + }, + "kjs": { + "english_name": "Kewa, East" + }, + "kjt": { + "english_name": "Karen, Phrae Pwo" + }, + "kju": { + "english_name": "Kashaya" + }, + "kjx": { + "english_name": "Ramopa" + }, + "kjy": { + "english_name": "Erave" + }, + "kjz": { + "english_name": "Bumthangkha" + }, + "kk": { + "english_name": "Kazakh" + }, + "kka": { + "english_name": "Kakanda" + }, + "kkb": { + "english_name": "Kwerisa" + }, + "kkc": { + "english_name": "Odoodee" + }, + "kkd": { + "english_name": "Kinuku" + }, + "kke": { + "english_name": "Kakabe" + }, + "kkf": { + "english_name": "Monpa, Kalaktang" + }, + "kkg": { + "english_name": "Kalinga, Mabaka Valley" + }, + "kkh": { + "english_name": "Kh\u00fcn" + }, + "kki": { + "english_name": "Kagulu" + }, + "kkj": { + "english_name": "Kako" + }, + "kkk": { + "english_name": "Kokota" + }, + "kkl": { + "english_name": "Yale, Kosarek" + }, + "kkm": { + "english_name": "Kiong" + }, + "kkn": { + "english_name": "Kon Keu" + }, + "kko": { + "english_name": "Karko" + }, + "kkp": { + "english_name": "Gugubera" + }, + "kkq": { + "english_name": "Kaiku" + }, + "kkr": { + "english_name": "Kir-Balar" + }, + "kks": { + "english_name": "Giiwo" + }, + "kkt": { + "english_name": "Koi" + }, + "kku": { + "english_name": "Tumi" + }, + "kkv": { + "english_name": "Kangean" + }, + "kkw": { + "english_name": "Teke-Kukuya" + }, + "kkx": { + "english_name": "Kohin" + }, + "kky": { + "english_name": "Guguyimidjir" + }, + "kkz": { + "english_name": "Kaska" + }, + "kl": { + "english_name": "Kalaallisut" + }, + "kla": { + "english_name": "Klamath-Modoc" + }, + "klb": { + "english_name": "Kiliwa" + }, + "klc": { + "english_name": "Kolbila" + }, + "kld": { + "english_name": "Gamilaraay" + }, + "kle": { + "english_name": "Kulung (Nepal)" + }, + "klf": { + "english_name": "Kendeje" + }, + "klg": { + "english_name": "Tagakaulo" + }, + "klh": { + "english_name": "Weliki" + }, + "kli": { + "english_name": "Kalumpang" + }, + "klj": { + "english_name": "Khalaj, Turkic" + }, + "klk": { + "english_name": "Kono (Nigeria)" + }, + "kll": { + "english_name": "Kalagan, Kagan" + }, + "klm": { + "english_name": "Migum" + }, + "kln": { + "english_name": "Kalenjin" + }, + "klo": { + "english_name": "Kapya" + }, + "klp": { + "english_name": "Kamasa" + }, + "klq": { + "english_name": "Rumu" + }, + "klr": { + "english_name": "Khaling" + }, + "kls": { + "english_name": "Kalasha" + }, + "klt": { + "english_name": "Nukna" + }, + "klu": { + "english_name": "Klao" + }, + "klv": { + "english_name": "Maskelynes" + }, + "klw": { + "english_name": "Lindu" + }, + "klx": { + "english_name": "Koluwawa" + }, + "kly": { + "english_name": "Kalao" + }, + "klz": { + "english_name": "Kabola" + }, + "km": { + "english_name": "Khmer, Central" + }, + "kma": { + "english_name": "Konni" + }, + "kmb": { + "english_name": "Kimbundu" + }, + "kmc": { + "english_name": "Dong, Southern" + }, + "kmd": { + "english_name": "Kalinga, Majukayang" + }, + "kme": { + "english_name": "Bakole" + }, + "kmf": { + "english_name": "Kare (Papua New Guinea)" + }, + "kmg": { + "english_name": "K\u00e2te" + }, + "kmh": { + "english_name": "Kalam" + }, + "kmi": { + "english_name": "Kami (Nigeria)" + }, + "kmj": { + "english_name": "Kumarbhag Paharia" + }, + "kmk": { + "english_name": "Kalinga, Limos" + }, + "kml": { + "english_name": "Kalinga, Tanudan" + }, + "kmm": { + "english_name": "Kom (India)" + }, + "kmn": { + "english_name": "Awtuw" + }, + "kmo": { + "english_name": "Kwoma" + }, + "kmp": { + "english_name": "Gimme" + }, + "kmq": { + "english_name": "Kwama" + }, + "kmr": { + "english_name": "Kurdish, Northern" + }, + "kms": { + "english_name": "Kamasau" + }, + "kmt": { + "english_name": "Kemtuik" + }, + "kmu": { + "english_name": "Kanite" + }, + "kmv": { + "english_name": "Creole French, Karip\u00fana" + }, + "kmw": { + "english_name": "Komo (Democratic Republic of Congo)" + }, + "kmx": { + "english_name": "Waboda" + }, + "kmy": { + "english_name": "Koma" + }, + "kmz": { + "english_name": "Khorasani Turkish" + }, + "kn": { + "english_name": "Kannada", + "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" + }, + "kna": { + "english_name": "Dera (Nigeria)" + }, + "knb": { + "english_name": "Kalinga, Lubuagan" + }, + "knc": { + "english_name": "Kanuri, Central" + }, + "knd": { + "english_name": "Konda" + }, + "kne": { + "english_name": "Kankanaey" + }, + "knf": { + "english_name": "Mankanya" + }, + "kng": { + "english_name": "Koongo" + }, + "kni": { + "english_name": "Kanufi" + }, + "knj": { + "english_name": "Kanjobal, Western" + }, + "knk": { + "english_name": "Kuranko" + }, + "knl": { + "english_name": "Keninjal" + }, + "knm": { + "english_name": "Kanamar\u00ed" + }, + "knn": { + "english_name": "Konkani (individual language)" + }, + "kno": { + "english_name": "Kono (Sierra Leone)" + }, + "knp": { + "english_name": "Kwanja" + }, + "knq": { + "english_name": "Kintaq" + }, + "knr": { + "english_name": "Kaningra" + }, + "kns": { + "english_name": "Kensiu" + }, + "knt": { + "english_name": "Katuk\u00edna, Panoan" + }, + "knu": { + "english_name": "Kono (Guinea)" + }, + "knv": { + "english_name": "Tabo" + }, + "knw": { + "english_name": "Kung-Ekoka" + }, + "knx": { + "english_name": "Kendayan" + }, + "kny": { + "english_name": "Kanyok" + }, + "knz": { + "english_name": "Kalams\u00e9" + }, + "ko": { + "english_name": "Korean", + "name": "\ud55c\uad6d\uc5b4" + }, + "koa": { + "english_name": "Konomala" + }, + "koc": { + "english_name": "Kpati" + }, + "kod": { + "english_name": "Kodi" + }, + "koe": { + "english_name": "Kacipo-Balesi" + }, + "kof": { + "english_name": "Kubi" + }, + "kog": { + "english_name": "Cogui" + }, + "koh": { + "english_name": "Koyo" + }, + "koi": { + "english_name": "Komi-Permyak" + }, + "kok": { + "english_name": "Konkani (macrolanguage)", + "name": "Konkani (macrolanguage)" + }, + "kol": { + "english_name": "Kol (Papua New Guinea)" + }, + "koo": { + "english_name": "Konzo" + }, + "kop": { + "english_name": "Waube" + }, + "koq": { + "english_name": "Kota (Gabon)" + }, + "kos": { + "english_name": "Kosraean" + }, + "kot": { + "english_name": "Lagwan" + }, + "kou": { + "english_name": "Koke" + }, + "kov": { + "english_name": "Kudu-Camo" + }, + "kow": { + "english_name": "Kugama" + }, + "kox": { + "english_name": "Coxima" + }, + "koy": { + "english_name": "Koyukon" + }, + "koz": { + "english_name": "Korak" + }, + "kpa": { + "english_name": "Kutto" + }, + "kpb": { + "english_name": "Kurumba, Mullu" + }, + "kpc": { + "english_name": "Curripaco" + }, + "kpd": { + "english_name": "Koba" + }, + "kpe": { + "english_name": "Kpelle" + }, + "kpf": { + "english_name": "Komba" + }, + "kpg": { + "english_name": "Kapingamarangi" + }, + "kph": { + "english_name": "Kplang" + }, + "kpi": { + "english_name": "Kofei" + }, + "kpj": { + "english_name": "Karaj\u00e1" + }, + "kpk": { + "english_name": "Kpan" + }, + "kpl": { + "english_name": "Kpala" + }, + "kpm": { + "english_name": "Koho" + }, + "kpn": { + "english_name": "Kepkiriw\u00e1t" + }, + "kpo": { + "english_name": "Ikposo" + }, + "kpq": { + "english_name": "Korupun-Sela" + }, + "kpr": { + "english_name": "Korafe-Yegha" + }, + "kps": { + "english_name": "Tehit" + }, + "kpt": { + "english_name": "Karata" + }, + "kpu": { + "english_name": "Kafoa" + }, + "kpv": { + "english_name": "Komi-Zyrian" + }, + "kpw": { + "english_name": "Kobon" + }, + "kpx": { + "english_name": "Koiali, Mountain" + }, + "kpy": { + "english_name": "Koryak" + }, + "kpz": { + "english_name": "Kupsabiny" + }, + "kqa": { + "english_name": "Mum" + }, + "kqb": { + "english_name": "Kovai" + }, + "kqc": { + "english_name": "Doromu-Koki" + }, + "kqd": { + "english_name": "Koy Sanjaq Surat" + }, + "kqe": { + "english_name": "Kalagan" + }, + "kqf": { + "english_name": "Kakabai" + }, + "kqg": { + "english_name": "Khe" + }, + "kqh": { + "english_name": "Kisankasa" + }, + "kqi": { + "english_name": "Koitabu" + }, + "kqj": { + "english_name": "Koromira" + }, + "kqk": { + "english_name": "Gbe, Kotafon" + }, + "kql": { + "english_name": "Kyenele" + }, + "kqm": { + "english_name": "Khisa" + }, + "kqn": { + "english_name": "Kaonde" + }, + "kqo": { + "english_name": "Krahn, Eastern" + }, + "kqp": { + "english_name": "Kimr\u00e9" + }, + "kqq": { + "english_name": "Krenak" + }, + "kqr": { + "english_name": "Kimaragang" + }, + "kqs": { + "english_name": "Kissi, Northern" + }, + "kqt": { + "english_name": "Kadazan, Klias River" + }, + "kqu": { + "english_name": "Seroa" + }, + "kqv": { + "english_name": "Okolod" + }, + "kqw": { + "english_name": "Kandas" + }, + "kqx": { + "english_name": "Mser" + }, + "kqy": { + "english_name": "Koorete" + }, + "kqz": { + "english_name": "Korana" + }, + "kr": { + "english_name": "Kanuri" + }, + "kra": { + "english_name": "Kumhali" + }, + "krb": { + "english_name": "Karkin" + }, + "krc": { + "english_name": "Karachay-Balkar" + }, + "krd": { + "english_name": "Kairui-Midiki" + }, + "kre": { + "english_name": "Panar\u00e1" + }, + "krf": { + "english_name": "Koro (Vanuatu)" + }, + "krh": { + "english_name": "Kurama" + }, + "kri": { + "english_name": "Krio" + }, + "krj": { + "english_name": "Kinaray-A" + }, + "krk": { + "english_name": "Kerek" + }, + "krl": { + "english_name": "Karelian" + }, + "krm": { + "english_name": "Krim" + }, + "krn": { + "english_name": "Sapo" + }, + "krp": { + "english_name": "Korop" + }, + "krr": { + "english_name": "Kru'ng 2" + }, + "krs": { + "english_name": "Gbaya (Sudan)" + }, + "krt": { + "english_name": "Kanuri, Tumari" + }, + "kru": { + "english_name": "Kurukh" + }, + "krv": { + "english_name": "Kavet" + }, + "krw": { + "english_name": "Krahn, Western" + }, + "krx": { + "english_name": "Karon" + }, + "kry": { + "english_name": "Kryts" + }, + "krz": { + "english_name": "Kanum, Sota" + }, + "ks": { + "english_name": "Kashmiri" + }, + "ksa": { + "english_name": "Shuwa-Zamani" + }, + "ksb": { + "english_name": "Shambala" + }, + "ksc": { + "english_name": "Kalinga, Southern" + }, + "ksd": { + "english_name": "Kuanua" + }, + "kse": { + "english_name": "Kuni" + }, + "ksf": { + "english_name": "Bafia" + }, + "ksg": { + "english_name": "Kusaghe" + }, + "ksh": { + "english_name": "K\u00f6lsch" + }, + "ksi": { + "english_name": "Krisa" + }, + "ksj": { + "english_name": "Uare" + }, + "ksk": { + "english_name": "Kansa" + }, + "ksl": { + "english_name": "Kumalu" + }, + "ksm": { + "english_name": "Kumba" + }, + "ksn": { + "english_name": "Kasiguranin" + }, + "kso": { + "english_name": "Kofa" + }, + "ksp": { + "english_name": "Kaba" + }, + "ksq": { + "english_name": "Kwaami" + }, + "ksr": { + "english_name": "Borong" + }, + "kss": { + "english_name": "Kisi, Southern" + }, + "kst": { + "english_name": "Winy\u00e9" + }, + "ksu": { + "english_name": "Khamyang" + }, + "ksv": { + "english_name": "Kusu" + }, + "ksw": { + "english_name": "Karen, S'gaw" + }, + "ksx": { + "english_name": "Kedang" + }, + "ksy": { + "english_name": "Kharia Thar" + }, + "ksz": { + "english_name": "Kodaku" + }, + "kta": { + "english_name": "Katua" + }, + "ktb": { + "english_name": "Kambaata" + }, + "ktc": { + "english_name": "Kholok" + }, + "ktd": { + "english_name": "Kokata" + }, + "kte": { + "english_name": "Nubri" + }, + "ktf": { + "english_name": "Kwami" + }, + "ktg": { + "english_name": "Kalkutung" + }, + "kth": { + "english_name": "Karanga" + }, + "kti": { + "english_name": "Muyu, North" + }, + "ktj": { + "english_name": "Krumen, Plapo" + }, + "ktk": { + "english_name": "Kaniet" + }, + "ktl": { + "english_name": "Koroshi" + }, + "ktm": { + "english_name": "Kurti" + }, + "ktn": { + "english_name": "Kariti\u00e2na" + }, + "kto": { + "english_name": "Kuot" + }, + "ktp": { + "english_name": "Kaduo" + }, + "ktq": { + "english_name": "Katabaga" + }, + "ktr": { + "english_name": "Kota Marudu Tinagas" + }, + "kts": { + "english_name": "Muyu, South" + }, + "ktt": { + "english_name": "Ketum" + }, + "ktu": { + "english_name": "Kituba (Democratic Republic of Congo)" + }, + "ktv": { + "english_name": "Katu, Eastern" + }, + "ktw": { + "english_name": "Kato" + }, + "ktx": { + "english_name": "Kaxarar\u00ed" + }, + "kty": { + "english_name": "Kango (Bas-U\u00e9l\u00e9 District)" + }, + "ktz": { + "english_name": "Ju/'hoan" + }, + "ku": { + "english_name": "Kurdish" + }, + "kub": { + "english_name": "Kutep" + }, + "kuc": { + "english_name": "Kwinsu" + }, + "kud": { + "english_name": "'Auhelawa" + }, + "kue": { + "english_name": "Kuman" + }, + "kuf": { + "english_name": "Katu, Western" + }, + "kug": { + "english_name": "Kupa" + }, + "kuh": { + "english_name": "Kushi" + }, + "kui": { + "english_name": "Kuik\u00faro-Kalap\u00e1lo" + }, + "kuj": { + "english_name": "Kuria" + }, + "kuk": { + "english_name": "Kepo'" + }, + "kul": { + "english_name": "Kulere" + }, + "kum": { + "english_name": "Kumyk" + }, + "kun": { + "english_name": "Kunama" + }, + "kuo": { + "english_name": "Kumukio" + }, + "kup": { + "english_name": "Kunimaipa" + }, + "kuq": { + "english_name": "Karipuna" + }, + "kus": { + "english_name": "Kusaal" + }, + "kut": { + "english_name": "Kutenai" + }, + "kuu": { + "english_name": "Kuskokwim, Upper" + }, + "kuv": { + "english_name": "Kur" + }, + "kuw": { + "english_name": "Kpagua" + }, + "kux": { + "english_name": "Kukatja" + }, + "kuy": { + "english_name": "Kuuku-Ya'u" + }, + "kuz": { + "english_name": "Kunza" + }, + "kv": { + "english_name": "Komi" + }, + "kva": { + "english_name": "Bagvalal" + }, + "kvb": { + "english_name": "Kubu" + }, + "kvc": { + "english_name": "Kove" + }, + "kvd": { + "english_name": "Kui (Indonesia)" + }, + "kve": { + "english_name": "Kalabakan" + }, + "kvf": { + "english_name": "Kabalai" + }, + "kvg": { + "english_name": "Kuni-Boazi" + }, + "kvh": { + "english_name": "Komodo" + }, + "kvi": { + "english_name": "Kwang" + }, + "kvj": { + "english_name": "Psikye" + }, + "kvk": { + "english_name": "Korean Sign Language" + }, + "kvl": { + "english_name": "Kayaw" + }, + "kvm": { + "english_name": "Kendem" + }, + "kvn": { + "english_name": "Kuna, Border" + }, + "kvo": { + "english_name": "Dobel" + }, + "kvp": { + "english_name": "Kompane" + }, + "kvq": { + "english_name": "Karen, Geba" + }, + "kvr": { + "english_name": "Kerinci" + }, + "kvs": { + "english_name": "Kunggara" + }, + "kvt": { + "english_name": "Karen, Lahta" + }, + "kvu": { + "english_name": "Karen, Yinbaw" + }, + "kvv": { + "english_name": "Kola" + }, + "kvw": { + "english_name": "Wersing" + }, + "kvx": { + "english_name": "Koli, Parkari" + }, + "kvy": { + "english_name": "Karen, Yintale" + }, + "kvz": { + "english_name": "Tsakwambo" + }, + "kw": { + "english_name": "Cornish" + }, + "kwa": { + "english_name": "D\u00e2w" + }, + "kwb": { + "english_name": "Kwa" + }, + "kwc": { + "english_name": "Likwala" + }, + "kwd": { + "english_name": "Kwaio" + }, + "kwe": { + "english_name": "Kwerba" + }, + "kwf": { + "english_name": "Kwara'ae" + }, + "kwg": { + "english_name": "Sara Kaba Deme" + }, + "kwh": { + "english_name": "Kowiai" + }, + "kwi": { + "english_name": "Awa-Cuaiquer" + }, + "kwj": { + "english_name": "Kwanga" + }, + "kwk": { + "english_name": "Kwakiutl" + }, + "kwl": { + "english_name": "Kofyar" + }, + "kwm": { + "english_name": "Kwambi" + }, + "kwn": { + "english_name": "Kwangali" + }, + "kwo": { + "english_name": "Kwomtari" + }, + "kwp": { + "english_name": "Kodia" + }, + "kwr": { + "english_name": "Kwer" + }, + "kws": { + "english_name": "Kwese" + }, + "kwt": { + "english_name": "Kwesten" + }, + "kwu": { + "english_name": "Kwakum" + }, + "kwv": { + "english_name": "Sara Kaba N\u00e1\u00e0" + }, + "kww": { + "english_name": "Kwinti" + }, + "kwx": { + "english_name": "Khirwar" + }, + "kwy": { + "english_name": "Kongo, San Salvador" + }, + "kwz": { + "english_name": "Kwadi" + }, + "kxa": { + "english_name": "Kairiru" + }, + "kxb": { + "english_name": "Krobu" + }, + "kxc": { + "english_name": "Konso" + }, + "kxd": { + "english_name": "Brunei" + }, + "kxf": { + "english_name": "Karen, Manumanaw" + }, + "kxh": { + "english_name": "Karo (Ethiopia)" + }, + "kxi": { + "english_name": "Murut, Keningau" + }, + "kxj": { + "english_name": "Kulfa" + }, + "kxk": { + "english_name": "Karen, Zayein" + }, + "kxl": { + "english_name": "Kurux, Nepali" + }, + "kxm": { + "english_name": "Khmer, Northern" + }, + "kxn": { + "english_name": "Melanau, Kanowit-Tanjong" + }, + "kxo": { + "english_name": "Kano\u00e9" + }, + "kxp": { + "english_name": "Koli, Wadiyara" + }, + "kxq": { + "english_name": "Kanum, Sm\u00e4rky" + }, + "kxr": { + "english_name": "Koro (Papua New Guinea)" + }, + "kxs": { + "english_name": "Kangjia" + }, + "kxt": { + "english_name": "Koiwat" + }, + "kxu": { + "english_name": "Kui (India)" + }, + "kxv": { + "english_name": "Kuvi" + }, + "kxw": { + "english_name": "Konai" + }, + "kxx": { + "english_name": "Likuba" + }, + "kxy": { + "english_name": "Kayong" + }, + "kxz": { + "english_name": "Kerewo" + }, + "ky": { + "english_name": "Kirghiz" + }, + "kya": { + "english_name": "Kwaya" + }, + "kyb": { + "english_name": "Kalinga, Butbut" + }, + "kyc": { + "english_name": "Kyaka" + }, + "kyd": { + "english_name": "Karey" + }, + "kye": { + "english_name": "Krache" + }, + "kyf": { + "english_name": "Kouya" + }, + "kyg": { + "english_name": "Keyagana" + }, + "kyh": { + "english_name": "Karok" + }, + "kyi": { + "english_name": "Kiput" + }, + "kyj": { + "english_name": "Karao" + }, + "kyk": { + "english_name": "Kamayo" + }, + "kyl": { + "english_name": "Kalapuya" + }, + "kym": { + "english_name": "Kpatili" + }, + "kyn": { + "english_name": "Binukidnon, Northern" + }, + "kyo": { + "english_name": "Kelon" + }, + "kyp": { + "english_name": "Kang" + }, + "kyq": { + "english_name": "Kenga" + }, + "kyr": { + "english_name": "Kuru\u00e1ya" + }, + "kys": { + "english_name": "Kayan, Baram" + }, + "kyt": { + "english_name": "Kayagar" + }, + "kyu": { + "english_name": "Kayah, Western" + }, + "kyv": { + "english_name": "Kayort" + }, + "kyw": { + "english_name": "Kudmali" + }, + "kyx": { + "english_name": "Rapoisi" + }, + "kyy": { + "english_name": "Kambaira" + }, + "kyz": { + "english_name": "Kayab\u00ed" + }, + "kza": { + "english_name": "Karaboro, Western" + }, + "kzb": { + "english_name": "Kaibobo" + }, + "kzc": { + "english_name": "Kulango, Bondoukou" + }, + "kzd": { + "english_name": "Kadai" + }, + "kze": { + "english_name": "Kosena" + }, + "kzf": { + "english_name": "Kaili, Da'a" + }, + "kzg": { + "english_name": "Kikai" + }, + "kzi": { + "english_name": "Kelabit" + }, + "kzj": { + "english_name": "Kadazan, Coastal" + }, + "kzk": { + "english_name": "Kazukuru" + }, + "kzl": { + "english_name": "Kayeli" + }, + "kzm": { + "english_name": "Kais" + }, + "kzn": { + "english_name": "Kokola" + }, + "kzo": { + "english_name": "Kaningi" + }, + "kzp": { + "english_name": "Kaidipang" + }, + "kzq": { + "english_name": "Kaike" + }, + "kzr": { + "english_name": "Karang" + }, + "kzs": { + "english_name": "Dusun, Sugut" + }, + "kzt": { + "english_name": "Dusun, Tambunan" + }, + "kzu": { + "english_name": "Kayupulau" + }, + "kzv": { + "english_name": "Komyandaret" + }, + "kzw": { + "english_name": "Karir\u00ed-Xoc\u00f3" + }, + "kzx": { + "english_name": "Kamarian" + }, + "kzy": { + "english_name": "Kango (Tshopo District)" + }, + "kzz": { + "english_name": "Kalabra" + }, + "la": { + "english_name": "Latin" + }, + "laa": { + "english_name": "Subanen, Southern" + }, + "lab": { + "english_name": "Linear A" + }, + "lac": { + "english_name": "Lacandon" + }, + "lad": { + "english_name": "Ladino" + }, + "lae": { + "english_name": "Pattani" + }, + "laf": { + "english_name": "Lafofa" + }, + "lag": { + "english_name": "Langi" + }, + "lah": { + "english_name": "Lahnda" + }, + "lai": { + "english_name": "Lambya" + }, + "laj": { + "english_name": "Lango (Uganda)" + }, + "lak": { + "english_name": "Laka (Nigeria)" + }, + "lal": { + "english_name": "Lalia" + }, + "lam": { + "english_name": "Lamba" + }, + "lan": { + "english_name": "Laru" + }, + "lap": { + "english_name": "Laka (Chad)" + }, + "laq": { + "english_name": "Qabiao" + }, + "lar": { + "english_name": "Larteh" + }, + "las": { + "english_name": "Lama (Togo)" + }, + "lau": { + "english_name": "Laba" + }, + "law": { + "english_name": "Lauje" + }, + "lax": { + "english_name": "Tiwa" + }, + "lay": { + "english_name": "Lama (Myanmar)" + }, + "laz": { + "english_name": "Aribwatsa" + }, + "lb": { + "english_name": "Luxembourgish" + }, + "lba": { + "english_name": "Lui" + }, + "lbb": { + "english_name": "Label" + }, + "lbc": { + "english_name": "Lakkia" + }, + "lbe": { + "english_name": "Lak" + }, + "lbf": { + "english_name": "Tinani" + }, + "lbg": { + "english_name": "Laopang" + }, + "lbi": { + "english_name": "La'bi" + }, + "lbj": { + "english_name": "Ladakhi" + }, + "lbk": { + "english_name": "Bontok, Central" + }, + "lbl": { + "english_name": "Bikol, Libon" + }, + "lbm": { + "english_name": "Lodhi" + }, + "lbn": { + "english_name": "Lamet" + }, + "lbo": { + "english_name": "Laven" + }, + "lbq": { + "english_name": "Wampar" + }, + "lbr": { + "english_name": "Lohorung" + }, + "lbs": { + "english_name": "Libyan Sign Language" + }, + "lbt": { + "english_name": "Lachi" + }, + "lbu": { + "english_name": "Labu" + }, + "lbv": { + "english_name": "Lavatbura-Lamusong" + }, + "lbw": { + "english_name": "Tolaki" + }, + "lbx": { + "english_name": "Lawangan" + }, + "lby": { + "english_name": "Lamu-Lamu" + }, + "lbz": { + "english_name": "Lardil" + }, + "lcc": { + "english_name": "Legenyem" + }, + "lcd": { + "english_name": "Lola" + }, + "lce": { + "english_name": "Loncong" + }, + "lcf": { + "english_name": "Lubu" + }, + "lch": { + "english_name": "Luchazi" + }, + "lcl": { + "english_name": "Lisela" + }, + "lcm": { + "english_name": "Tungag" + }, + "lcp": { + "english_name": "Lawa, Western" + }, + "lcq": { + "english_name": "Luhu" + }, + "lcs": { + "english_name": "Lisabata-Nuniali" + }, + "lda": { + "english_name": "Kla-Dan" + }, + "ldb": { + "english_name": "Du\u0303ya" + }, + "ldd": { + "english_name": "Luri" + }, + "ldg": { + "english_name": "Lenyima" + }, + "ldh": { + "english_name": "Lamja-Dengsa-Tola" + }, + "ldi": { + "english_name": "Laari" + }, + "ldj": { + "english_name": "Lemoro" + }, + "ldk": { + "english_name": "Leelau" + }, + "ldl": { + "english_name": "Kaan" + }, + "ldm": { + "english_name": "Landoma" + }, + "ldn": { + "english_name": "L\u00e1adan" + }, + "ldo": { + "english_name": "Loo" + }, + "ldp": { + "english_name": "Tso" + }, + "ldq": { + "english_name": "Lufu" + }, + "lea": { + "english_name": "Lega-Shabunda" + }, + "leb": { + "english_name": "Lala-Bisa" + }, + "lec": { + "english_name": "Leco" + }, + "led": { + "english_name": "Lendu" + }, + "lee": { + "english_name": "Ly\u00e9l\u00e9" + }, + "lef": { + "english_name": "Lelemi" + }, + "leh": { + "english_name": "Lenje" + }, + "lei": { + "english_name": "Lemio" + }, + "lej": { + "english_name": "Lengola" + }, + "lek": { + "english_name": "Leipon" + }, + "lel": { + "english_name": "Lele (Democratic Republic of Congo)" + }, + "lem": { + "english_name": "Nomaande" + }, + "len": { + "english_name": "Lenca" + }, + "leo": { + "english_name": "Leti (Cameroon)" + }, + "lep": { + "english_name": "Lepcha" + }, + "leq": { + "english_name": "Lembena" + }, + "ler": { + "english_name": "Lenkau" + }, + "les": { + "english_name": "Lese" + }, + "let": { + "english_name": "Lesing-Gelimi" + }, + "leu": { + "english_name": "Kara (Papua New Guinea)" + }, + "lev": { + "english_name": "Lamma" + }, + "lew": { + "english_name": "Kaili, Ledo" + }, + "lex": { + "english_name": "Luang" + }, + "ley": { + "english_name": "Lemolang" + }, + "lez": { + "english_name": "Lezghian" + }, + "lfa": { + "english_name": "Lefa" + }, + "lfn": { + "english_name": "Lingua Franca Nova" + }, + "lg": { + "english_name": "Ganda" + }, + "lga": { + "english_name": "Lungga" + }, + "lgb": { + "english_name": "Laghu" + }, + "lgg": { + "english_name": "Lugbara" + }, + "lgh": { + "english_name": "Laghuu" + }, + "lgi": { + "english_name": "Lengilu" + }, + "lgk": { + "english_name": "Lingarak" + }, + "lgl": { + "english_name": "Wala" + }, + "lgm": { + "english_name": "Lega-Mwenga" + }, + "lgn": { + "english_name": "Opuuo" + }, + "lgq": { + "english_name": "Logba" + }, + "lgr": { + "english_name": "Lengo" + }, + "lgt": { + "english_name": "Pahi" + }, + "lgu": { + "english_name": "Longgu" + }, + "lgz": { + "english_name": "Ligenza" + }, + "lha": { + "english_name": "Laha (Viet Nam)" + }, + "lhh": { + "english_name": "Laha (Indonesia)" + }, + "lhi": { + "english_name": "Lahu Shi" + }, + "lhl": { + "english_name": "Lohar, Lahul" + }, + "lhm": { + "english_name": "Lhomi" + }, + "lhn": { + "english_name": "Lahanan" + }, + "lhp": { + "english_name": "Lhokpu" + }, + "lhs": { + "english_name": "Mlahs\u00f6" + }, + "lht": { + "english_name": "Lo-Toga" + }, + "lhu": { + "english_name": "Lahu" + }, + "li": { + "english_name": "Limburgan" + }, + "lia": { + "english_name": "Limba, West-Central" + }, + "lib": { + "english_name": "Likum" + }, + "lic": { + "english_name": "Hlai" + }, + "lid": { + "english_name": "Nyindrou" + }, + "lie": { + "english_name": "Likila" + }, + "lif": { + "english_name": "Limbu" + }, + "lig": { + "english_name": "Ligbi" + }, + "lih": { + "english_name": "Lihir" + }, + "lij": { + "english_name": "Ligurian" + }, + "lik": { + "english_name": "Lika" + }, + "lil": { + "english_name": "Lillooet" + }, + "lio": { + "english_name": "Liki" + }, + "lip": { + "english_name": "Sekpele" + }, + "liq": { + "english_name": "Libido" + }, + "lir": { + "english_name": "English, Liberian" + }, + "lis": { + "english_name": "Lisu" + }, + "liu": { + "english_name": "Logorik" + }, + "liv": { + "english_name": "Liv" + }, + "liw": { + "english_name": "Col" + }, + "lix": { + "english_name": "Liabuku" + }, + "liy": { + "english_name": "Banda-Bambari" + }, + "liz": { + "english_name": "Libinza" + }, + "lja": { + "english_name": "Golpa" + }, + "lje": { + "english_name": "Rampi" + }, + "lji": { + "english_name": "Laiyolo" + }, + "ljl": { + "english_name": "Li'o" + }, + "ljp": { + "english_name": "Lampung Api" + }, + "ljw": { + "english_name": "Yirandali" + }, + "ljx": { + "english_name": "Yuru" + }, + "lka": { + "english_name": "Lakalei" + }, + "lkb": { + "english_name": "Kabras" + }, + "lkc": { + "english_name": "Kucong" + }, + "lkd": { + "english_name": "Lakond\u00ea" + }, + "lke": { + "english_name": "Kenyi" + }, + "lkh": { + "english_name": "Lakha" + }, + "lki": { + "english_name": "Laki" + }, + "lkj": { + "english_name": "Remun" + }, + "lkl": { + "english_name": "Laeko-Libuat" + }, + "lkm": { + "english_name": "Kalaamaya" + }, + "lkn": { + "english_name": "Lakon" + }, + "lko": { + "english_name": "Khayo" + }, + "lkr": { + "english_name": "P\u00e4ri" + }, + "lks": { + "english_name": "Kisa" + }, + "lkt": { + "english_name": "Lakota" + }, + "lku": { + "english_name": "Kungkari" + }, + "lky": { + "english_name": "Lokoya" + }, + "lla": { + "english_name": "Lala-Roba" + }, + "llb": { + "english_name": "Lolo" + }, + "llc": { + "english_name": "Lele (Guinea)" + }, + "lld": { + "english_name": "Ladin" + }, + "lle": { + "english_name": "Lele (Papua New Guinea)" + }, + "llf": { + "english_name": "Hermit" + }, + "llg": { + "english_name": "Lole" + }, + "llh": { + "english_name": "Lamu" + }, + "lli": { + "english_name": "Teke-Laali" + }, + "llj": { + "english_name": "Ladji Ladji" + }, + "llk": { + "english_name": "Lelak" + }, + "lll": { + "english_name": "Lilau" + }, + "llm": { + "english_name": "Lasalimu" + }, + "lln": { + "english_name": "Lele (Chad)" + }, + "llo": { + "english_name": "Khlor" + }, + "llp": { + "english_name": "Efate, North" + }, + "llq": { + "english_name": "Lolak" + }, + "lls": { + "english_name": "Lithuanian Sign Language" + }, + "llu": { + "english_name": "Lau" + }, + "llx": { + "english_name": "Lauan" + }, + "lma": { + "english_name": "Limba, East" + }, + "lmb": { + "english_name": "Merei" + }, + "lmc": { + "english_name": "Limilngan" + }, + "lmd": { + "english_name": "Lumun" + }, + "lme": { + "english_name": "P\u00e9v\u00e9" + }, + "lmf": { + "english_name": "Lembata, South" + }, + "lmg": { + "english_name": "Lamogai" + }, + "lmh": { + "english_name": "Lambichhong" + }, + "lmi": { + "english_name": "Lombi" + }, + "lmj": { + "english_name": "Lembata, West" + }, + "lmk": { + "english_name": "Lamkang" + }, + "lml": { + "english_name": "Hano" + }, + "lmn": { + "english_name": "Lambadi" + }, + "lmo": { + "english_name": "Lombard" + }, + "lmp": { + "english_name": "Limbum" + }, + "lmq": { + "english_name": "Lamatuka" + }, + "lmr": { + "english_name": "Lamalera" + }, + "lmu": { + "english_name": "Lamenu" + }, + "lmv": { + "english_name": "Lomaiviti" + }, + "lmw": { + "english_name": "Miwok, Lake" + }, + "lmx": { + "english_name": "Laimbue" + }, + "lmy": { + "english_name": "Lamboya" + }, + "lmz": { + "english_name": "Lumbee" + }, + "ln": { + "english_name": "Lingala" + }, + "lna": { + "english_name": "Langbashe" + }, + "lnb": { + "english_name": "Mbalanhu" + }, + "lnd": { + "english_name": "Lundayeh" + }, + "lng": { + "english_name": "Langobardic" + }, + "lnh": { + "english_name": "Lanoh" + }, + "lni": { + "english_name": "Daantanai'" + }, + "lnj": { + "english_name": "Leningitij" + }, + "lnl": { + "english_name": "Banda, South Central" + }, + "lnm": { + "english_name": "Langam" + }, + "lnn": { + "english_name": "Lorediakarkar" + }, + "lno": { + "english_name": "Lango (Sudan)" + }, + "lns": { + "english_name": "Lamnso'" + }, + "lnu": { + "english_name": "Longuda" + }, + "lnw": { + "english_name": "Lanima" + }, + "lnz": { + "english_name": "Lonzo" + }, + "lo": { + "english_name": "Lao" + }, + "loa": { + "english_name": "Loloda" + }, + "lob": { + "english_name": "Lobi" + }, + "loc": { + "english_name": "Inonhan" + }, + "loe": { + "english_name": "Saluan" + }, + "lof": { + "english_name": "Logol" + }, + "log": { + "english_name": "Logo" + }, + "loh": { + "english_name": "Narim" + }, + "loi": { + "english_name": "Loma (C\u00f4te d'Ivoire)" + }, + "loj": { + "english_name": "Lou" + }, + "lok": { + "english_name": "Loko" + }, + "lol": { + "english_name": "Mongo" + }, + "lom": { + "english_name": "Loma (Liberia)" + }, + "lon": { + "english_name": "Lomwe, Malawi" + }, + "loo": { + "english_name": "Lombo" + }, + "lop": { + "english_name": "Lopa" + }, + "loq": { + "english_name": "Lobala" + }, + "lor": { + "english_name": "T\u00e9\u00e9n" + }, + "los": { + "english_name": "Loniu" + }, + "lot": { + "english_name": "Otuho" + }, + "lou": { + "english_name": "Creole French, Louisiana" + }, + "lov": { + "english_name": "Lopi" + }, + "low": { + "english_name": "Lobu, Tampias" + }, + "lox": { + "english_name": "Loun" + }, + "loy": { + "english_name": "Loke" + }, + "loz": { + "english_name": "Lozi" + }, + "lpa": { + "english_name": "Lelepa" + }, + "lpe": { + "english_name": "Lepki" + }, + "lpn": { + "english_name": "Naga, Long Phuri" + }, + "lpo": { + "english_name": "Lipo" + }, + "lpx": { + "english_name": "Lopit" + }, + "lra": { + "english_name": "Rara Bakati'" + }, + "lrc": { + "english_name": "Luri, Northern" + }, + "lre": { + "english_name": "Laurentian" + }, + "lrg": { + "english_name": "Laragia" + }, + "lri": { + "english_name": "Marachi" + }, + "lrk": { + "english_name": "Loarki" + }, + "lrl": { + "english_name": "Lari" + }, + "lrm": { + "english_name": "Marama" + }, + "lrn": { + "english_name": "Lorang" + }, + "lro": { + "english_name": "Laro" + }, + "lrr": { + "english_name": "Yamphu, Southern" + }, + "lrt": { + "english_name": "Malay, Larantuka" + }, + "lrv": { + "english_name": "Larevat" + }, + "lrz": { + "english_name": "Lemerig" + }, + "lsa": { + "english_name": "Lasgerdi" + }, + "lsd": { + "english_name": "Lishana Deni" + }, + "lse": { + "english_name": "Lusengo" + }, + "lsg": { + "english_name": "Lyons Sign Language" + }, + "lsh": { + "english_name": "Lish" + }, + "lsi": { + "english_name": "Lashi" + }, + "lsl": { + "english_name": "Latvian Sign Language" + }, + "lsm": { + "english_name": "Saamia" + }, + "lso": { + "english_name": "Laos Sign Language" + }, + "lsp": { + "english_name": "Panamanian Sign Language" + }, + "lsr": { + "english_name": "Aruop" + }, + "lss": { + "english_name": "Lasi" + }, + "lst": { + "english_name": "Trinidad and Tobago Sign Language" + }, + "lsy": { + "english_name": "Mauritian Sign Language" + }, + "lt": { + "english_name": "Lithuanian", + "name": "Lietuvi\u0173" + }, + "ltc": { + "english_name": "Chinese, Late Middle" + }, + "ltg": { + "english_name": "Latgalian" + }, + "lti": { + "english_name": "Leti (Indonesia)" + }, + "ltn": { + "english_name": "Latund\u00ea" + }, + "lto": { + "english_name": "Tsotso" + }, + "lts": { + "english_name": "Tachoni" + }, + "ltu": { + "english_name": "Latu" + }, + "lu": { + "english_name": "Luba-Katanga" + }, + "lua": { + "english_name": "Luba-Lulua" + }, + "luc": { + "english_name": "Aringa" + }, + "lud": { + "english_name": "Ludian" + }, + "lue": { + "english_name": "Luvale" + }, + "luf": { + "english_name": "Laua" + }, + "lui": { + "english_name": "Luiseno" + }, + "luj": { + "english_name": "Luna" + }, + "luk": { + "english_name": "Lunanakha" + }, + "lul": { + "english_name": "Olu'bo" + }, + "lum": { + "english_name": "Luimbi" + }, + "lun": { + "english_name": "Lunda" + }, + "luo": { + "english_name": "Luo (Kenya and Tanzania)" + }, + "lup": { + "english_name": "Lumbu" + }, + "luq": { + "english_name": "Lucumi" + }, + "lur": { + "english_name": "Laura" + }, + "lus": { + "english_name": "Lushai" + }, + "lut": { + "english_name": "Lushootseed" + }, + "luu": { + "english_name": "Lumba-Yakkha" + }, + "luv": { + "english_name": "Luwati" + }, + "luw": { + "english_name": "Luo (Cameroon)" + }, + "luy": { + "english_name": "Luyia" + }, + "luz": { + "english_name": "Luri, Southern" + }, + "lv": { + "english_name": "Latvian", + "name": "Latvie\u0161u" + }, + "lva": { + "english_name": "Maku'a" + }, + "lvk": { + "english_name": "Lavukaleve" + }, + "lvs": { + "english_name": "Latvian, Standard" + }, + "lvu": { + "english_name": "Levuka" + }, + "lwa": { + "english_name": "Lwalu" + }, + "lwe": { + "english_name": "Lewo Eleng" + }, + "lwg": { + "english_name": "Wanga" + }, + "lwh": { + "english_name": "Lachi, White" + }, + "lwl": { + "english_name": "Lawa, Eastern" + }, + "lwm": { + "english_name": "Laomian" + }, + "lwo": { + "english_name": "Luwo" + }, + "lwt": { + "english_name": "Lewotobi" + }, + "lwu": { + "english_name": "Lawu" + }, + "lww": { + "english_name": "Lewo" + }, + "lya": { + "english_name": "Layakha" + }, + "lyg": { + "english_name": "Lyngngam" + }, + "lyn": { + "english_name": "Luyana" + }, + "lzh": { + "english_name": "Chinese, Literary" + }, + "lzl": { + "english_name": "Litzlitz" + }, + "lzn": { + "english_name": "Naga, Leinong" + }, + "lzz": { + "english_name": "Laz" + }, + "maa": { + "english_name": "Mazatec, San Jer\u00f3nimo Tec\u00f3atl" + }, + "mab": { + "english_name": "Mixtec, Yutanduchi" + }, + "mad": { + "english_name": "Madurese" + }, + "mae": { + "english_name": "Bo-Rukul" + }, + "maf": { + "english_name": "Mafa" + }, + "mag": { + "english_name": "Magahi" + }, + "mai": { + "english_name": "Maithili" + }, + "maj": { + "english_name": "Mazatec, Jalapa De D\u00edaz" + }, + "mak": { + "english_name": "Makasar" + }, + "mam": { + "english_name": "Mam" + }, + "man": { + "english_name": "Mandingo" + }, + "maq": { + "english_name": "Mazatec, Chiquihuitl\u00e1n" + }, + "mas": { + "english_name": "Masai" + }, + "mat": { + "english_name": "Matlatzinca, San Francisco" + }, + "mau": { + "english_name": "Mazatec, Huautla" + }, + "mav": { + "english_name": "Sater\u00e9-Maw\u00e9" + }, + "maw": { + "english_name": "Mampruli" + }, + "max": { + "english_name": "Malay, North Moluccan" + }, + "maz": { + "english_name": "Mazahua, Central" + }, + "mba": { + "english_name": "Higaonon" + }, + "mbb": { + "english_name": "Manobo, Western Bukidnon" + }, + "mbc": { + "english_name": "Macushi" + }, + "mbd": { + "english_name": "Manobo, Dibabawon" + }, + "mbe": { + "english_name": "Molale" + }, + "mbf": { + "english_name": "Malay, Baba" + }, + "mbh": { + "english_name": "Mangseng" + }, + "mbi": { + "english_name": "Manobo, Ilianen" + }, + "mbj": { + "english_name": "Nad\u00ebb" + }, + "mbk": { + "english_name": "Malol" + }, + "mbl": { + "english_name": "Maxakal\u00ed" + }, + "mbm": { + "english_name": "Ombamba" + }, + "mbn": { + "english_name": "Macagu\u00e1n" + }, + "mbo": { + "english_name": "Mbo (Cameroon)" + }, + "mbp": { + "english_name": "Malayo" + }, + "mbq": { + "english_name": "Maisin" + }, + "mbr": { + "english_name": "Nukak Mak\u00fa" + }, + "mbs": { + "english_name": "Manobo, Sarangani" + }, + "mbt": { + "english_name": "Manobo, Matigsalug" + }, + "mbu": { + "english_name": "Mbula-Bwazza" + }, + "mbv": { + "english_name": "Mbulungish" + }, + "mbw": { + "english_name": "Maring" + }, + "mbx": { + "english_name": "Mari (East Sepik Province)" + }, + "mby": { + "english_name": "Memoni" + }, + "mbz": { + "english_name": "Mixtec, Amoltepec" + }, + "mca": { + "english_name": "Maca" + }, + "mcb": { + "english_name": "Machiguenga" + }, + "mcc": { + "english_name": "Bitur" + }, + "mcd": { + "english_name": "Sharanahua" + }, + "mce": { + "english_name": "Mixtec, Itundujia" + }, + "mcf": { + "english_name": "Mats\u00e9s" + }, + "mcg": { + "english_name": "Mapoyo" + }, + "mch": { + "english_name": "Maquiritari" + }, + "mci": { + "english_name": "Mese" + }, + "mcj": { + "english_name": "Mvanip" + }, + "mck": { + "english_name": "Mbunda" + }, + "mcl": { + "english_name": "Macaguaje" + }, + "mcm": { + "english_name": "Creole Portuguese, Malaccan" + }, + "mcn": { + "english_name": "Masana" + }, + "mco": { + "english_name": "Mixe, Coatl\u00e1n" + }, + "mcp": { + "english_name": "Makaa" + }, + "mcq": { + "english_name": "Ese" + }, + "mcr": { + "english_name": "Menya" + }, + "mcs": { + "english_name": "Mambai" + }, + "mct": { + "english_name": "Mengisa" + }, + "mcu": { + "english_name": "Mambila, Cameroon" + }, + "mcv": { + "english_name": "Minanibai" + }, + "mcw": { + "english_name": "Mawa (Chad)" + }, + "mcx": { + "english_name": "Mpiemo" + }, + "mcy": { + "english_name": "Watut, South" + }, + "mcz": { + "english_name": "Mawan" + }, + "mda": { + "english_name": "Mada (Nigeria)" + }, + "mdb": { + "english_name": "Morigi" + }, + "mdc": { + "english_name": "Male (Papua New Guinea)" + }, + "mdd": { + "english_name": "Mbum" + }, + "mde": { + "english_name": "Maba (Chad)" + }, + "mdf": { + "english_name": "Moksha" + }, + "mdg": { + "english_name": "Massalat" + }, + "mdh": { + "english_name": "Maguindanaon" + }, + "mdi": { + "english_name": "Mamvu" + }, + "mdj": { + "english_name": "Mangbetu" + }, + "mdk": { + "english_name": "Mangbutu" + }, + "mdl": { + "english_name": "Maltese Sign Language" + }, + "mdm": { + "english_name": "Mayogo" + }, + "mdn": { + "english_name": "Mbati" + }, + "mdp": { + "english_name": "Mbala" + }, + "mdq": { + "english_name": "Mbole" + }, + "mdr": { + "english_name": "Mandar" + }, + "mds": { + "english_name": "Maria (Papua New Guinea)" + }, + "mdt": { + "english_name": "Mbere" + }, + "mdu": { + "english_name": "Mboko" + }, + "mdv": { + "english_name": "Mixtec, Santa Luc\u00eda Monteverde" + }, + "mdw": { + "english_name": "Mbosi" + }, + "mdx": { + "english_name": "Dizin" + }, + "mdy": { + "english_name": "Male (Ethiopia)" + }, + "mdz": { + "english_name": "Suru\u00ed Do Par\u00e1" + }, + "mea": { + "english_name": "Menka" + }, + "meb": { + "english_name": "Ikobi" + }, + "mec": { + "english_name": "Mara" + }, + "med": { + "english_name": "Melpa" + }, + "mee": { + "english_name": "Mengen" + }, + "mef": { + "english_name": "Megam" + }, + "meh": { + "english_name": "Mixtec, Southwestern Tlaxiaco" + }, + "mei": { + "english_name": "Midob" + }, + "mej": { + "english_name": "Meyah" + }, + "mek": { + "english_name": "Mekeo" + }, + "mel": { + "english_name": "Melanau, Central" + }, + "mem": { + "english_name": "Mangala" + }, + "men": { + "english_name": "Mende (Sierra Leone)" + }, + "meo": { + "english_name": "Malay, Kedah" + }, + "mep": { + "english_name": "Miriwung" + }, + "meq": { + "english_name": "Merey" + }, + "mer": { + "english_name": "Meru" + }, + "mes": { + "english_name": "Masmaje" + }, + "met": { + "english_name": "Mato" + }, + "meu": { + "english_name": "Motu" + }, + "mev": { + "english_name": "Mano" + }, + "mew": { + "english_name": "Maaka" + }, + "mey": { + "english_name": "Hassaniyya" + }, + "mez": { + "english_name": "Menominee" + }, + "mfa": { + "english_name": "Malay, Pattani" + }, + "mfb": { + "english_name": "Bangka" + }, + "mfc": { + "english_name": "Mba" + }, + "mfd": { + "english_name": "Mendankwe-Nkwen" + }, + "mfe": { + "english_name": "Morisyen" + }, + "mff": { + "english_name": "Naki" + }, + "mfg": { + "english_name": "Mogofin" + }, + "mfh": { + "english_name": "Matal" + }, + "mfi": { + "english_name": "Wandala" + }, + "mfj": { + "english_name": "Mefele" + }, + "mfk": { + "english_name": "Mofu, North" + }, + "mfl": { + "english_name": "Putai" + }, + "mfm": { + "english_name": "Marghi South" + }, + "mfn": { + "english_name": "Mbembe, Cross River" + }, + "mfo": { + "english_name": "Mbe" + }, + "mfp": { + "english_name": "Malay, Makassar" + }, + "mfq": { + "english_name": "Moba" + }, + "mfr": { + "english_name": "Marithiel" + }, + "mfs": { + "english_name": "Mexican Sign Language" + }, + "mft": { + "english_name": "Mokerang" + }, + "mfu": { + "english_name": "Mbwela" + }, + "mfv": { + "english_name": "Mandjak" + }, + "mfw": { + "english_name": "Mulaha" + }, + "mfx": { + "english_name": "Melo" + }, + "mfy": { + "english_name": "Mayo" + }, + "mfz": { + "english_name": "Mabaan" + }, + "mg": { + "english_name": "Malagasy" + }, + "mga": { + "english_name": "Irish, Middle (900-1200)" + }, + "mgb": { + "english_name": "Mararit" + }, + "mgc": { + "english_name": "Morokodo" + }, + "mgd": { + "english_name": "Moru" + }, + "mge": { + "english_name": "Mango" + }, + "mgf": { + "english_name": "Maklew" + }, + "mgg": { + "english_name": "Mpumpong" + }, + "mgh": { + "english_name": "Makhuwa-Meetto" + }, + "mgi": { + "english_name": "Lijili" + }, + "mgj": { + "english_name": "Abureni" + }, + "mgk": { + "english_name": "Mawes" + }, + "mgl": { + "english_name": "Maleu-Kilenge" + }, + "mgm": { + "english_name": "Mambae" + }, + "mgn": { + "english_name": "Mbangi" + }, + "mgo": { + "english_name": "Meta'" + }, + "mgp": { + "english_name": "Magar, Eastern" + }, + "mgq": { + "english_name": "Malila" + }, + "mgr": { + "english_name": "Mambwe-Lungu" + }, + "mgs": { + "english_name": "Manda (Tanzania)" + }, + "mgt": { + "english_name": "Mongol" + }, + "mgu": { + "english_name": "Mailu" + }, + "mgv": { + "english_name": "Matengo" + }, + "mgw": { + "english_name": "Matumbi" + }, + "mgy": { + "english_name": "Mbunga" + }, + "mgz": { + "english_name": "Mbugwe" + }, + "mh": { + "english_name": "Marshallese" + }, + "mha": { + "english_name": "Manda (India)" + }, + "mhb": { + "english_name": "Mahongwe" + }, + "mhc": { + "english_name": "Mocho" + }, + "mhd": { + "english_name": "Mbugu" + }, + "mhe": { + "english_name": "Besisi" + }, + "mhf": { + "english_name": "Mamaa" + }, + "mhg": { + "english_name": "Margu" + }, + "mhi": { + "english_name": "Ma'di" + }, + "mhj": { + "english_name": "Mogholi" + }, + "mhk": { + "english_name": "Mungaka" + }, + "mhl": { + "english_name": "Mauwake" + }, + "mhm": { + "english_name": "Makhuwa-Moniga" + }, + "mhn": { + "english_name": "M\u00f3cheno" + }, + "mho": { + "english_name": "Mashi (Zambia)" + }, + "mhp": { + "english_name": "Malay, Balinese" + }, + "mhq": { + "english_name": "Mandan" + }, + "mhr": { + "english_name": "Mari, Eastern" + }, + "mhs": { + "english_name": "Buru (Indonesia)" + }, + "mht": { + "english_name": "Mandahuaca" + }, + "mhu": { + "english_name": "Digaro-Mishmi" + }, + "mhw": { + "english_name": "Mbukushu" + }, + "mhx": { + "english_name": "Maru" + }, + "mhy": { + "english_name": "Ma'anyan" + }, + "mhz": { + "english_name": "Mor (Mor Islands)" + }, + "mi": { + "english_name": "Maori", + "name": "Reo M\u0101ori" + }, + "mia": { + "english_name": "Miami" + }, + "mib": { + "english_name": "Mixtec, Atatl\u00e1huca" + }, + "mic": { + "english_name": "Mi'kmaq" + }, + "mid": { + "english_name": "Mandaic" + }, + "mie": { + "english_name": "Mixtec, Ocotepec" + }, + "mif": { + "english_name": "Mofu-Gudur" + }, + "mig": { + "english_name": "Mixtec, San Miguel El Grande" + }, + "mih": { + "english_name": "Mixtec, Chayuco" + }, + "mii": { + "english_name": "Mixtec, Chigmecatitl\u00e1n" + }, + "mij": { + "english_name": "Abar" + }, + "mik": { + "english_name": "Mikasuki" + }, + "mil": { + "english_name": "Mixtec, Pe\u00f1oles" + }, + "mim": { + "english_name": "Mixtec, Alacatlatzala" + }, + "min": { + "english_name": "Minangkabau" + }, + "mio": { + "english_name": "Mixtec, Pinotepa Nacional" + }, + "mip": { + "english_name": "Mixtec, Apasco-Apoala" + }, + "miq": { + "english_name": "M\u00edskito" + }, + "mir": { + "english_name": "Mixe, Isthmus" + }, + "mis": { + "english_name": "Uncoded languages" + }, + "mit": { + "english_name": "Mixtec, Southern Puebla" + }, + "miu": { + "english_name": "Mixtec, Cacaloxtepec" + }, + "miw": { + "english_name": "Akoye" + }, + "mix": { + "english_name": "Mixtec, Mixtepec" + }, + "miy": { + "english_name": "Mixtec, Ayutla" + }, + "miz": { + "english_name": "Mixtec, Coatzospan" + }, + "mjc": { + "english_name": "Mixtec, San Juan Colorado" + }, + "mjd": { + "english_name": "Maidu, Northwest" + }, + "mje": { + "english_name": "Muskum" + }, + "mjg": { + "english_name": "Tu" + }, + "mjh": { + "english_name": "Mwera (Nyasa)" + }, + "mji": { + "english_name": "Kim Mun" + }, + "mjj": { + "english_name": "Mawak" + }, + "mjk": { + "english_name": "Matukar" + }, + "mjl": { + "english_name": "Mandeali" + }, + "mjm": { + "english_name": "Medebur" + }, + "mjn": { + "english_name": "Ma (Papua New Guinea)" + }, + "mjo": { + "english_name": "Malankuravan" + }, + "mjp": { + "english_name": "Malapandaram" + }, + "mjq": { + "english_name": "Malaryan" + }, + "mjr": { + "english_name": "Malavedan" + }, + "mjs": { + "english_name": "Miship" + }, + "mjt": { + "english_name": "Sauria Paharia" + }, + "mju": { + "english_name": "Manna-Dora" + }, + "mjv": { + "english_name": "Mannan" + }, + "mjw": { + "english_name": "Karbi" + }, + "mjx": { + "english_name": "Mahali" + }, + "mjy": { + "english_name": "Mahican" + }, + "mjz": { + "english_name": "Majhi" + }, + "mk": { + "english_name": "Macedonian", + "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" + }, + "mka": { + "english_name": "Mbre" + }, + "mkb": { + "english_name": "Mal Paharia" + }, + "mkc": { + "english_name": "Siliput" + }, + "mke": { + "english_name": "Mawchi" + }, + "mkf": { + "english_name": "Miya" + }, + "mkg": { + "english_name": "Mak (China)" + }, + "mki": { + "english_name": "Dhatki" + }, + "mkj": { + "english_name": "Mokilese" + }, + "mkk": { + "english_name": "Byep" + }, + "mkl": { + "english_name": "Mokole" + }, + "mkm": { + "english_name": "Moklen" + }, + "mkn": { + "english_name": "Malay, Kupang" + }, + "mko": { + "english_name": "Mingang Doso" + }, + "mkp": { + "english_name": "Moikodi" + }, + "mkq": { + "english_name": "Miwok, Bay" + }, + "mkr": { + "english_name": "Malas" + }, + "mks": { + "english_name": "Mixtec, Silacayoapan" + }, + "mkt": { + "english_name": "Vamale" + }, + "mku": { + "english_name": "Maninka, Konyanka" + }, + "mkv": { + "english_name": "Mafea" + }, + "mkw": { + "english_name": "Kituba (Congo)" + }, + "mkx": { + "english_name": "Manobo, Kinamiging" + }, + "mky": { + "english_name": "Makian, East" + }, + "mkz": { + "english_name": "Makasae" + }, + "ml": { + "english_name": "Malayalam" + }, + "mla": { + "english_name": "Malo" + }, + "mlb": { + "english_name": "Mbule" + }, + "mlc": { + "english_name": "Cao Lan" + }, + "mle": { + "english_name": "Manambu" + }, + "mlf": { + "english_name": "Mal" + }, + "mlh": { + "english_name": "Mape" + }, + "mli": { + "english_name": "Malimpung" + }, + "mlj": { + "english_name": "Miltu" + }, + "mlk": { + "english_name": "Ilwana" + }, + "mll": { + "english_name": "Malua Bay" + }, + "mlm": { + "english_name": "Mulam" + }, + "mln": { + "english_name": "Malango" + }, + "mlo": { + "english_name": "Mlomp" + }, + "mlp": { + "english_name": "Bargam" + }, + "mlq": { + "english_name": "Maninkakan, Western" + }, + "mlr": { + "english_name": "Vame" + }, + "mls": { + "english_name": "Masalit" + }, + "mlu": { + "english_name": "To'abaita" + }, + "mlv": { + "english_name": "Motlav" + }, + "mlw": { + "english_name": "Moloko" + }, + "mlx": { + "english_name": "Malfaxal" + }, + "mlz": { + "english_name": "Malaynon" + }, + "mma": { + "english_name": "Mama" + }, + "mmb": { + "english_name": "Momina" + }, + "mmc": { + "english_name": "Mazahua, Michoac\u00e1n" + }, + "mmd": { + "english_name": "Maonan" + }, + "mme": { + "english_name": "Mae" + }, + "mmf": { + "english_name": "Mundat" + }, + "mmg": { + "english_name": "Ambrym, North" + }, + "mmh": { + "english_name": "Mehin\u00e1ku" + }, + "mmi": { + "english_name": "Musar" + }, + "mmj": { + "english_name": "Majhwar" + }, + "mmk": { + "english_name": "Mukha-Dora" + }, + "mml": { + "english_name": "Man Met" + }, + "mmm": { + "english_name": "Maii" + }, + "mmn": { + "english_name": "Mamanwa" + }, + "mmo": { + "english_name": "Buang, Mangga" + }, + "mmp": { + "english_name": "Siawi" + }, + "mmq": { + "english_name": "Musak" + }, + "mmr": { + "english_name": "Miao, Western Xiangxi" + }, + "mmt": { + "english_name": "Malalamai" + }, + "mmu": { + "english_name": "Mmaala" + }, + "mmv": { + "english_name": "Miriti" + }, + "mmw": { + "english_name": "Emae" + }, + "mmx": { + "english_name": "Madak" + }, + "mmy": { + "english_name": "Migaama" + }, + "mmz": { + "english_name": "Mabaale" + }, + "mn": { + "english_name": "Mongolian", + "name": "\u041c\u043e\u043d\u0433\u043e\u043b" + }, + "mna": { + "english_name": "Mbula" + }, + "mnb": { + "english_name": "Muna" + }, + "mnc": { + "english_name": "Manchu" + }, + "mnd": { + "english_name": "Mond\u00e9" + }, + "mne": { + "english_name": "Naba" + }, + "mnf": { + "english_name": "Mundani" + }, + "mng": { + "english_name": "Mnong, Eastern" + }, + "mnh": { + "english_name": "Mono (Democratic Republic of Congo)" + }, + "mni": { + "english_name": "Manipuri" + }, + "mnj": { + "english_name": "Munji" + }, + "mnk": { + "english_name": "Mandinka" + }, + "mnl": { + "english_name": "Tiale" + }, + "mnm": { + "english_name": "Mapena" + }, + "mnn": { + "english_name": "Mnong, Southern" + }, + "mnp": { + "english_name": "Chinese, Min Bei" + }, + "mnq": { + "english_name": "Minriq" + }, + "mnr": { + "english_name": "Mono (USA)" + }, + "mns": { + "english_name": "Mansi" + }, + "mnu": { + "english_name": "Mer" + }, + "mnv": { + "english_name": "Rennell-Bellona" + }, + "mnw": { + "english_name": "Mon" + }, + "mnx": { + "english_name": "Manikion" + }, + "mny": { + "english_name": "Manyawa" + }, + "mnz": { + "english_name": "Moni" + }, + "moa": { + "english_name": "Mwan" + }, + "moc": { + "english_name": "Mocov\u00ed" + }, + "mod": { + "english_name": "Mobilian" + }, + "moe": { + "english_name": "Montagnais" + }, + "mog": { + "english_name": "Mongondow" + }, + "moh": { + "english_name": "Mohawk" + }, + "moi": { + "english_name": "Mboi" + }, + "moj": { + "english_name": "Monzombo" + }, + "mok": { + "english_name": "Morori" + }, + "mom": { + "english_name": "Mangue" + }, + "moo": { + "english_name": "Monom" + }, + "mop": { + "english_name": "Mop\u00e1n Maya" + }, + "moq": { + "english_name": "Mor (Bomberai Peninsula)" + }, + "mor": { + "english_name": "Moro" + }, + "mos": { + "english_name": "Mossi" + }, + "mot": { + "english_name": "Bar\u00ed" + }, + "mou": { + "english_name": "Mogum" + }, + "mov": { + "english_name": "Mohave" + }, + "mow": { + "english_name": "Moi (Congo)" + }, + "mox": { + "english_name": "Molima" + }, + "moy": { + "english_name": "Shekkacho" + }, + "moz": { + "english_name": "Mukulu" + }, + "mpa": { + "english_name": "Mpoto" + }, + "mpb": { + "english_name": "Mullukmulluk" + }, + "mpc": { + "english_name": "Mangarayi" + }, + "mpd": { + "english_name": "Machinere" + }, + "mpe": { + "english_name": "Majang" + }, + "mpg": { + "english_name": "Marba" + }, + "mph": { + "english_name": "Maung" + }, + "mpi": { + "english_name": "Mpade" + }, + "mpj": { + "english_name": "Martu Wangka" + }, + "mpk": { + "english_name": "Mbara (Chad)" + }, + "mpl": { + "english_name": "Watut, Middle" + }, + "mpm": { + "english_name": "Mixtec, Yosond\u00faa" + }, + "mpn": { + "english_name": "Mindiri" + }, + "mpo": { + "english_name": "Miu" + }, + "mpp": { + "english_name": "Migabac" + }, + "mpq": { + "english_name": "Mat\u00eds" + }, + "mpr": { + "english_name": "Vangunu" + }, + "mps": { + "english_name": "Dadibi" + }, + "mpt": { + "english_name": "Mian" + }, + "mpu": { + "english_name": "Makur\u00e1p" + }, + "mpv": { + "english_name": "Mungkip" + }, + "mpw": { + "english_name": "Mapidian" + }, + "mpx": { + "english_name": "Misima-Panaeati" + }, + "mpy": { + "english_name": "Mapia" + }, + "mpz": { + "english_name": "Mpi" + }, + "mqa": { + "english_name": "Maba (Indonesia)" + }, + "mqb": { + "english_name": "Mbuko" + }, + "mqc": { + "english_name": "Mangole" + }, + "mqe": { + "english_name": "Matepi" + }, + "mqf": { + "english_name": "Momuna" + }, + "mqg": { + "english_name": "Malay, Kota Bangun Kutai" + }, + "mqh": { + "english_name": "Mixtec, Tlazoyaltepec" + }, + "mqi": { + "english_name": "Mariri" + }, + "mqj": { + "english_name": "Mamasa" + }, + "mqk": { + "english_name": "Manobo, Rajah Kabunsuwan" + }, + "mql": { + "english_name": "Mbelime" + }, + "mqm": { + "english_name": "Marquesan, South" + }, + "mqn": { + "english_name": "Moronene" + }, + "mqo": { + "english_name": "Modole" + }, + "mqp": { + "english_name": "Manipa" + }, + "mqq": { + "english_name": "Minokok" + }, + "mqr": { + "english_name": "Mander" + }, + "mqs": { + "english_name": "Makian, West" + }, + "mqt": { + "english_name": "Mok" + }, + "mqu": { + "english_name": "Mandari" + }, + "mqv": { + "english_name": "Mosimo" + }, + "mqw": { + "english_name": "Murupi" + }, + "mqx": { + "english_name": "Mamuju" + }, + "mqy": { + "english_name": "Manggarai" + }, + "mqz": { + "english_name": "Pano" + }, + "mr": { + "english_name": "Marathi", + "name": "\u092e\u0930\u093e\u0920\u0940" + }, + "mra": { + "english_name": "Mlabri" + }, + "mrb": { + "english_name": "Marino" + }, + "mrc": { + "english_name": "Maricopa" + }, + "mrd": { + "english_name": "Magar, Western" + }, + "mre": { + "english_name": "Martha's Vineyard Sign Language" + }, + "mrf": { + "english_name": "Elseng" + }, + "mrg": { + "english_name": "Mising" + }, + "mrh": { + "english_name": "Chin, Mara" + }, + "mrj": { + "english_name": "Mari, Western" + }, + "mrk": { + "english_name": "Hmwaveke" + }, + "mrl": { + "english_name": "Mortlockese" + }, + "mrm": { + "english_name": "Merlav" + }, + "mrn": { + "english_name": "Cheke Holo" + }, + "mro": { + "english_name": "Mru" + }, + "mrp": { + "english_name": "Morouas" + }, + "mrq": { + "english_name": "Marquesan, North" + }, + "mrr": { + "english_name": "Maria (India)" + }, + "mrs": { + "english_name": "Maragus" + }, + "mrt": { + "english_name": "Marghi Central" + }, + "mru": { + "english_name": "Mono (Cameroon)" + }, + "mrv": { + "english_name": "Mangareva" + }, + "mrw": { + "english_name": "Maranao" + }, + "mrx": { + "english_name": "Maremgi" + }, + "mry": { + "english_name": "Mandaya" + }, + "mrz": { + "english_name": "Marind" + }, + "ms": { + "english_name": "Malay (macrolanguage)", + "name": "Malay (macrolanguage)" + }, + "msb": { + "english_name": "Masbatenyo" + }, + "msc": { + "english_name": "Maninka, Sankaran" + }, + "msd": { + "english_name": "Yucatec Maya Sign Language" + }, + "mse": { + "english_name": "Musey" + }, + "msf": { + "english_name": "Mekwei" + }, + "msg": { + "english_name": "Moraid" + }, + "msh": { + "english_name": "Malagasy, Masikoro" + }, + "msi": { + "english_name": "Malay, Sabah" + }, + "msj": { + "english_name": "Ma (Democratic Republic of Congo)" + }, + "msk": { + "english_name": "Mansaka" + }, + "msl": { + "english_name": "Molof" + }, + "msm": { + "english_name": "Manobo, Agusan" + }, + "msn": { + "english_name": "Vur\u00ebs" + }, + "mso": { + "english_name": "Mombum" + }, + "msp": { + "english_name": "Maritsau\u00e1" + }, + "msq": { + "english_name": "Caac" + }, + "msr": { + "english_name": "Mongolian Sign Language" + }, + "mss": { + "english_name": "Masela, West" + }, + "msu": { + "english_name": "Musom" + }, + "msv": { + "english_name": "Maslam" + }, + "msw": { + "english_name": "Mansoanka" + }, + "msx": { + "english_name": "Moresada" + }, + "msy": { + "english_name": "Aruamu" + }, + "msz": { + "english_name": "Momare" + }, + "mt": { + "english_name": "Maltese", + "name": "Malti" + }, + "mta": { + "english_name": "Manobo, Cotabato" + }, + "mtb": { + "english_name": "Anyin Morofo" + }, + "mtc": { + "english_name": "Munit" + }, + "mtd": { + "english_name": "Mualang" + }, + "mte": { + "english_name": "Mono (Solomon Islands)" + }, + "mtf": { + "english_name": "Murik (Papua New Guinea)" + }, + "mtg": { + "english_name": "Una" + }, + "mth": { + "english_name": "Munggui" + }, + "mti": { + "english_name": "Maiwa (Papua New Guinea)" + }, + "mtj": { + "english_name": "Moskona" + }, + "mtk": { + "english_name": "Mbe'" + }, + "mtl": { + "english_name": "Montol" + }, + "mtm": { + "english_name": "Mator" + }, + "mtn": { + "english_name": "Matagalpa" + }, + "mto": { + "english_name": "Mixe, Totontepec" + }, + "mtp": { + "english_name": "Wich\u00ed Lhamt\u00e9s Nocten" + }, + "mtq": { + "english_name": "Muong" + }, + "mtr": { + "english_name": "Mewari" + }, + "mts": { + "english_name": "Yora" + }, + "mtt": { + "english_name": "Mota" + }, + "mtu": { + "english_name": "Mixtec, Tututepec" + }, + "mtv": { + "english_name": "Asaro'o" + }, + "mtw": { + "english_name": "Binukidnon, Southern" + }, + "mtx": { + "english_name": "Mixtec, Tida\u00e1" + }, + "mty": { + "english_name": "Nabi" + }, + "mua": { + "english_name": "Mundang" + }, + "mub": { + "english_name": "Mubi" + }, + "muc": { + "english_name": "Ajumbu" + }, + "mud": { + "english_name": "Aleut, Mednyj" + }, + "mue": { + "english_name": "Media Lengua" + }, + "mug": { + "english_name": "Musgu" + }, + "muh": { + "english_name": "M\u00fcnd\u00fc" + }, + "mui": { + "english_name": "Musi" + }, + "muj": { + "english_name": "Mabire" + }, + "muk": { + "english_name": "Mugom" + }, + "mul": { + "english_name": "Multiple languages" + }, + "mum": { + "english_name": "Maiwala" + }, + "muo": { + "english_name": "Nyong" + }, + "mup": { + "english_name": "Malvi" + }, + "muq": { + "english_name": "Miao, Eastern Xiangxi" + }, + "mur": { + "english_name": "Murle" + }, + "mus": { + "english_name": "Creek" + }, + "mut": { + "english_name": "Muria, Western" + }, + "muu": { + "english_name": "Yaaku" + }, + "muv": { + "english_name": "Muthuvan" + }, + "mux": { + "english_name": "Bo-Ung" + }, + "muy": { + "english_name": "Muyang" + }, + "muz": { + "english_name": "Mursi" + }, + "mva": { + "english_name": "Manam" + }, + "mvb": { + "english_name": "Mattole" + }, + "mvd": { + "english_name": "Mamboru" + }, + "mve": { + "english_name": "Marwari (Pakistan)" + }, + "mvf": { + "english_name": "Mongolian, Peripheral" + }, + "mvg": { + "english_name": "Mixtec, Yucua\u00f1e" + }, + "mvh": { + "english_name": "Mulgi" + }, + "mvi": { + "english_name": "Miyako" + }, + "mvk": { + "english_name": "Mekmek" + }, + "mvl": { + "english_name": "Mbara (Australia)" + }, + "mvm": { + "english_name": "Muya" + }, + "mvn": { + "english_name": "Minaveha" + }, + "mvo": { + "english_name": "Marovo" + }, + "mvp": { + "english_name": "Duri" + }, + "mvq": { + "english_name": "Moere" + }, + "mvr": { + "english_name": "Marau" + }, + "mvs": { + "english_name": "Massep" + }, + "mvt": { + "english_name": "Mpotovoro" + }, + "mvu": { + "english_name": "Marfa" + }, + "mvv": { + "english_name": "Murut, Tagal" + }, + "mvw": { + "english_name": "Machinga" + }, + "mvx": { + "english_name": "Meoswar" + }, + "mvy": { + "english_name": "Kohistani, Indus" + }, + "mvz": { + "english_name": "Mesqan" + }, + "mwa": { + "english_name": "Mwatebu" + }, + "mwb": { + "english_name": "Juwal" + }, + "mwc": { + "english_name": "Are" + }, + "mwe": { + "english_name": "Mwera (Chimwera)" + }, + "mwf": { + "english_name": "Murrinh-Patha" + }, + "mwg": { + "english_name": "Aiklep" + }, + "mwh": { + "english_name": "Mouk-Aria" + }, + "mwi": { + "english_name": "Labo" + }, + "mwk": { + "english_name": "Maninkakan, Kita" + }, + "mwl": { + "english_name": "Mirandese" + }, + "mwm": { + "english_name": "Sar" + }, + "mwn": { + "english_name": "Nyamwanga" + }, + "mwo": { + "english_name": "Maewo, Central" + }, + "mwp": { + "english_name": "Kala Lagaw Ya" + }, + "mwq": { + "english_name": "Chin, M\u00fcn" + }, + "mwr": { + "english_name": "Marwari" + }, + "mws": { + "english_name": "Mwimbi-Muthambi" + }, + "mwt": { + "english_name": "Moken" + }, + "mwu": { + "english_name": "Mittu" + }, + "mwv": { + "english_name": "Mentawai" + }, + "mww": { + "english_name": "Hmong Daw" + }, + "mwx": { + "english_name": "Mediak" + }, + "mwy": { + "english_name": "Mosiro" + }, + "mwz": { + "english_name": "Moingi" + }, + "mxa": { + "english_name": "Mixtec, Northwest Oaxaca" + }, + "mxb": { + "english_name": "Mixtec, Tezoatl\u00e1n" + }, + "mxc": { + "english_name": "Manyika" + }, + "mxd": { + "english_name": "Modang" + }, + "mxe": { + "english_name": "Mele-Fila" + }, + "mxf": { + "english_name": "Malgbe" + }, + "mxg": { + "english_name": "Mbangala" + }, + "mxh": { + "english_name": "Mvuba" + }, + "mxi": { + "english_name": "Mozarabic" + }, + "mxj": { + "english_name": "Miju-Mishmi" + }, + "mxk": { + "english_name": "Monumbo" + }, + "mxl": { + "english_name": "Gbe, Maxi" + }, + "mxm": { + "english_name": "Meramera" + }, + "mxn": { + "english_name": "Moi (Indonesia)" + }, + "mxo": { + "english_name": "Mbowe" + }, + "mxp": { + "english_name": "Mixe, Tlahuitoltepec" + }, + "mxq": { + "english_name": "Mixe, Juquila" + }, + "mxr": { + "english_name": "Murik (Malaysia)" + }, + "mxs": { + "english_name": "Mixtec, Huitepec" + }, + "mxt": { + "english_name": "Mixtec, Jamiltepec" + }, + "mxu": { + "english_name": "Mada (Cameroon)" + }, + "mxv": { + "english_name": "Mixtec, Metlat\u00f3noc" + }, + "mxw": { + "english_name": "Namo" + }, + "mxx": { + "english_name": "Mahou" + }, + "mxy": { + "english_name": "Mixtec, Southeastern Nochixtl\u00e1n" + }, + "mxz": { + "english_name": "Masela, Central" + }, + "my": { + "english_name": "Burmese" + }, + "myb": { + "english_name": "Mbay" + }, + "myc": { + "english_name": "Mayeka" + }, + "myd": { + "english_name": "Maramba" + }, + "mye": { + "english_name": "Myene" + }, + "myf": { + "english_name": "Bambassi" + }, + "myg": { + "english_name": "Manta" + }, + "myh": { + "english_name": "Makah" + }, + "myi": { + "english_name": "Mina (India)" + }, + "myj": { + "english_name": "Mangayat" + }, + "myk": { + "english_name": "Senoufo, Mamara" + }, + "myl": { + "english_name": "Moma" + }, + "mym": { + "english_name": "Me'en" + }, + "myo": { + "english_name": "Anfillo" + }, + "myp": { + "english_name": "Pirah\u00e3" + }, + "myr": { + "english_name": "Muniche" + }, + "mys": { + "english_name": "Mesmes" + }, + "myu": { + "english_name": "Munduruk\u00fa" + }, + "myv": { + "english_name": "Erzya" + }, + "myw": { + "english_name": "Muyuw" + }, + "myx": { + "english_name": "Masaaba" + }, + "myy": { + "english_name": "Macuna" + }, + "myz": { + "english_name": "Mandaic, Classical" + }, + "mza": { + "english_name": "Mixtec, Santa Mar\u00eda Zacatepec" + }, + "mzb": { + "english_name": "Tumzabt" + }, + "mzc": { + "english_name": "Madagascar Sign Language" + }, + "mzd": { + "english_name": "Malimba" + }, + "mze": { + "english_name": "Morawa" + }, + "mzg": { + "english_name": "Monastic Sign Language" + }, + "mzh": { + "english_name": "Wich\u00ed Lhamt\u00e9s G\u00fcisnay" + }, + "mzi": { + "english_name": "Mazatec, Ixcatl\u00e1n" + }, + "mzj": { + "english_name": "Manya" + }, + "mzk": { + "english_name": "Mambila, Nigeria" + }, + "mzl": { + "english_name": "Mixe, Mazatl\u00e1n" + }, + "mzm": { + "english_name": "Mumuye" + }, + "mzn": { + "english_name": "Mazanderani" + }, + "mzo": { + "english_name": "Matipuhy" + }, + "mzp": { + "english_name": "Movima" + }, + "mzq": { + "english_name": "Mori Atas" + }, + "mzr": { + "english_name": "Mar\u00fabo" + }, + "mzs": { + "english_name": "Macanese" + }, + "mzt": { + "english_name": "Mintil" + }, + "mzu": { + "english_name": "Inapang" + }, + "mzv": { + "english_name": "Manza" + }, + "mzw": { + "english_name": "Deg" + }, + "mzx": { + "english_name": "Mawayana" + }, + "mzy": { + "english_name": "Mozambican Sign Language" + }, + "mzz": { + "english_name": "Maiadomu" + }, + "na": { + "english_name": "Nauru" + }, + "naa": { + "english_name": "Namla" + }, + "nab": { + "english_name": "Nambiku\u00e1ra, Southern" + }, + "nac": { + "english_name": "Narak" + }, + "nad": { + "english_name": "Nijadali" + }, + "nae": { + "english_name": "Naka'ela" + }, + "naf": { + "english_name": "Nabak" + }, + "nag": { + "english_name": "Naga Pidgin" + }, + "naj": { + "english_name": "Nalu" + }, + "nak": { + "english_name": "Nakanai" + }, + "nal": { + "english_name": "Nalik" + }, + "nam": { + "english_name": "Ngan'gityemerri" + }, + "nan": { + "english_name": "Chinese, Min Nan" + }, + "nao": { + "english_name": "Naaba" + }, + "nap": { + "english_name": "Neapolitan" + }, + "naq": { + "english_name": "Nama (Namibia)" + }, + "nar": { + "english_name": "Iguta" + }, + "nas": { + "english_name": "Naasioi" + }, + "nat": { + "english_name": "Hungworo" + }, + "naw": { + "english_name": "Nawuri" + }, + "nax": { + "english_name": "Nakwi" + }, + "nay": { + "english_name": "Narrinyeri" + }, + "naz": { + "english_name": "Nahuatl, Coatepec" + }, + "nb": { + "english_name": "Norwegian Bokm\u00e5l", + "name": "Norwegian Bokm\u00e5l" + }, + "nba": { + "english_name": "Nyemba" + }, + "nbb": { + "english_name": "Ndoe" + }, + "nbc": { + "english_name": "Naga, Chang" + }, + "nbd": { + "english_name": "Ngbinda" + }, + "nbe": { + "english_name": "Naga, Konyak" + }, + "nbg": { + "english_name": "Nagarchal" + }, + "nbh": { + "english_name": "Ngamo" + }, + "nbi": { + "english_name": "Naga, Mao" + }, + "nbj": { + "english_name": "Ngarinman" + }, + "nbk": { + "english_name": "Nake" + }, + "nbm": { + "english_name": "Ngbaka Ma'bo" + }, + "nbn": { + "english_name": "Kuri" + }, + "nbo": { + "english_name": "Nkukoli" + }, + "nbp": { + "english_name": "Nnam" + }, + "nbq": { + "english_name": "Nggem" + }, + "nbr": { + "english_name": "Numana-Nunku-Gbantu-Numbu" + }, + "nbs": { + "english_name": "Namibian Sign Language" + }, + "nbt": { + "english_name": "Na" + }, + "nbu": { + "english_name": "Naga, Rongmei" + }, + "nbv": { + "english_name": "Ngamambo" + }, + "nbw": { + "english_name": "Ngbandi, Southern" + }, + "nby": { + "english_name": "Ningera" + }, + "nca": { + "english_name": "Iyo" + }, + "ncb": { + "english_name": "Nicobarese, Central" + }, + "ncc": { + "english_name": "Ponam" + }, + "ncd": { + "english_name": "Nachering" + }, + "nce": { + "english_name": "Yale" + }, + "ncf": { + "english_name": "Notsi" + }, + "ncg": { + "english_name": "Nisga'a" + }, + "nch": { + "english_name": "Nahuatl, Central Huasteca" + }, + "nci": { + "english_name": "Nahuatl, Classical" + }, + "ncj": { + "english_name": "Nahuatl, Northern Puebla" + }, + "nck": { + "english_name": "Nakara" + }, + "ncl": { + "english_name": "Nahuatl, Michoac\u00e1n" + }, + "ncm": { + "english_name": "Nambo" + }, + "ncn": { + "english_name": "Nauna" + }, + "nco": { + "english_name": "Sibe" + }, + "ncp": { + "english_name": "Ndaktup" + }, + "ncr": { + "english_name": "Ncane" + }, + "ncs": { + "english_name": "Nicaraguan Sign Language" + }, + "nct": { + "english_name": "Naga, Chothe" + }, + "ncu": { + "english_name": "Chumburung" + }, + "ncx": { + "english_name": "Nahuatl, Central Puebla" + }, + "ncz": { + "english_name": "Natchez" + }, + "nd": { + "english_name": "Ndebele, North" + }, + "nda": { + "english_name": "Ndasa" + }, + "ndb": { + "english_name": "Kenswei Nsei" + }, + "ndc": { + "english_name": "Ndau" + }, + "ndd": { + "english_name": "Nde-Nsele-Nta" + }, + "ndf": { + "english_name": "Nadruvian" + }, + "ndg": { + "english_name": "Ndengereko" + }, + "ndh": { + "english_name": "Ndali" + }, + "ndi": { + "english_name": "Samba Leko" + }, + "ndj": { + "english_name": "Ndamba" + }, + "ndk": { + "english_name": "Ndaka" + }, + "ndl": { + "english_name": "Ndolo" + }, + "ndm": { + "english_name": "Ndam" + }, + "ndn": { + "english_name": "Ngundi" + }, + "ndp": { + "english_name": "Ndo" + }, + "ndq": { + "english_name": "Ndombe" + }, + "ndr": { + "english_name": "Ndoola" + }, + "nds": { + "english_name": "German, Low" + }, + "ndt": { + "english_name": "Ndunga" + }, + "ndu": { + "english_name": "Dugun" + }, + "ndv": { + "english_name": "Ndut" + }, + "ndw": { + "english_name": "Ndobo" + }, + "ndx": { + "english_name": "Nduga" + }, + "ndy": { + "english_name": "Lutos" + }, + "ndz": { + "english_name": "Ndogo" + }, + "ne": { + "english_name": "Nepali (macrolanguage)" + }, + "nea": { + "english_name": "Ngad'a, Eastern" + }, + "neb": { + "english_name": "Toura (C\u00f4te d'Ivoire)" + }, + "nec": { + "english_name": "Nedebang" + }, + "ned": { + "english_name": "Nde-Gbite" + }, + "nee": { + "english_name": "N\u00eal\u00eamwa-Nixumwak" + }, + "nef": { + "english_name": "Nefamese" + }, + "neg": { + "english_name": "Negidal" + }, + "neh": { + "english_name": "Nyenkha" + }, + "nei": { + "english_name": "Hittite, Neo-" + }, + "nej": { + "english_name": "Neko" + }, + "nek": { + "english_name": "Neku" + }, + "nem": { + "english_name": "Nemi" + }, + "nen": { + "english_name": "Nengone" + }, + "neo": { + "english_name": "N\u00e1-Meo" + }, + "neq": { + "english_name": "Mixe, North Central" + }, + "ner": { + "english_name": "Yahadian" + }, + "nes": { + "english_name": "Kinnauri, Bhoti" + }, + "net": { + "english_name": "Nete" + }, + "neu": { + "english_name": "Neo" + }, + "nev": { + "english_name": "Nyaheun" + }, + "new": { + "english_name": "Newari" + }, + "nex": { + "english_name": "Neme" + }, + "ney": { + "english_name": "Neyo" + }, + "nez": { + "english_name": "Nez Perce" + }, + "nfa": { + "english_name": "Dhao" + }, + "nfd": { + "english_name": "Ahwai" + }, + "nfl": { + "english_name": "Ayiwo" + }, + "nfr": { + "english_name": "Nafaanra" + }, + "nfu": { + "english_name": "Mfumte" + }, + "ng": { + "english_name": "Ndonga" + }, + "nga": { + "english_name": "Ngbaka" + }, + "ngb": { + "english_name": "Ngbandi, Northern" + }, + "ngc": { + "english_name": "Ngombe (Democratic Republic of Congo)" + }, + "ngd": { + "english_name": "Ngando (Central African Republic)" + }, + "nge": { + "english_name": "Ngemba" + }, + "ngg": { + "english_name": "Ngbaka Manza" + }, + "ngh": { + "english_name": "N/u" + }, + "ngi": { + "english_name": "Ngizim" + }, + "ngj": { + "english_name": "Ngie" + }, + "ngk": { + "english_name": "Dalabon" + }, + "ngl": { + "english_name": "Lomwe" + }, + "ngm": { + "english_name": "Ngatik Men's Creole" + }, + "ngn": { + "english_name": "Ngwo" + }, + "ngo": { + "english_name": "Ngoni" + }, + "ngp": { + "english_name": "Ngulu" + }, + "ngq": { + "english_name": "Ngurimi" + }, + "ngr": { + "english_name": "Engdewu" + }, + "ngs": { + "english_name": "Gvoko" + }, + "ngt": { + "english_name": "Ngeq" + }, + "ngu": { + "english_name": "Nahuatl, Guerrero" + }, + "ngv": { + "english_name": "Nagumi" + }, + "ngw": { + "english_name": "Ngwaba" + }, + "ngx": { + "english_name": "Nggwahyi" + }, + "ngy": { + "english_name": "Tibea" + }, + "ngz": { + "english_name": "Ngungwel" + }, + "nha": { + "english_name": "Nhanda" + }, + "nhb": { + "english_name": "Beng" + }, + "nhc": { + "english_name": "Nahuatl, Tabasco" + }, + "nhd": { + "english_name": "Chirip\u00e1" + }, + "nhe": { + "english_name": "Nahuatl, Eastern Huasteca" + }, + "nhf": { + "english_name": "Nhuwala" + }, + "nhg": { + "english_name": "Nahuatl, Tetelcingo" + }, + "nhh": { + "english_name": "Nahari" + }, + "nhi": { + "english_name": "Nahuatl, Zacatl\u00e1n-Ahuacatl\u00e1n-Tepetzintla" + }, + "nhk": { + "english_name": "Nahuatl, Isthmus-Cosoleacaque" + }, + "nhm": { + "english_name": "Nahuatl, Morelos" + }, + "nhn": { + "english_name": "Nahuatl, Central" + }, + "nho": { + "english_name": "Takuu" + }, + "nhp": { + "english_name": "Nahuatl, Isthmus-Pajapan" + }, + "nhq": { + "english_name": "Nahuatl, Huaxcaleca" + }, + "nhr": { + "english_name": "Naro" + }, + "nht": { + "english_name": "Nahuatl, Ometepec" + }, + "nhu": { + "english_name": "Noone" + }, + "nhv": { + "english_name": "Nahuatl, Temascaltepec" + }, + "nhw": { + "english_name": "Nahuatl, Western Huasteca" + }, + "nhx": { + "english_name": "Nahuatl, Isthmus-Mecayapan" + }, + "nhy": { + "english_name": "Nahuatl, Northern Oaxaca" + }, + "nhz": { + "english_name": "Nahuatl, Santa Mar\u00eda La Alta" + }, + "nia": { + "english_name": "Nias" + }, + "nib": { + "english_name": "Nakame" + }, + "nid": { + "english_name": "Ngandi" + }, + "nie": { + "english_name": "Niellim" + }, + "nif": { + "english_name": "Nek" + }, + "nig": { + "english_name": "Ngalakan" + }, + "nih": { + "english_name": "Nyiha (Tanzania)" + }, + "nii": { + "english_name": "Nii" + }, + "nij": { + "english_name": "Ngaju" + }, + "nik": { + "english_name": "Nicobarese, Southern" + }, + "nil": { + "english_name": "Nila" + }, + "nim": { + "english_name": "Nilamba" + }, + "nin": { + "english_name": "Ninzo" + }, + "nio": { + "english_name": "Nganasan" + }, + "niq": { + "english_name": "Nandi" + }, + "nir": { + "english_name": "Nimboran" + }, + "nis": { + "english_name": "Nimi" + }, + "nit": { + "english_name": "Kolami, Southeastern" + }, + "niu": { + "english_name": "Niuean" + }, + "niv": { + "english_name": "Gilyak" + }, + "niw": { + "english_name": "Nimo" + }, + "nix": { + "english_name": "Hema" + }, + "niy": { + "english_name": "Ngiti" + }, + "niz": { + "english_name": "Ningil" + }, + "nja": { + "english_name": "Nzanyi" + }, + "njb": { + "english_name": "Naga, Nocte" + }, + "njd": { + "english_name": "Ndonde Hamba" + }, + "njh": { + "english_name": "Naga, Lotha" + }, + "nji": { + "english_name": "Gudanji" + }, + "njj": { + "english_name": "Njen" + }, + "njl": { + "english_name": "Njalgulgule" + }, + "njm": { + "english_name": "Naga, Angami" + }, + "njn": { + "english_name": "Naga, Liangmai" + }, + "njo": { + "english_name": "Naga, Ao" + }, + "njr": { + "english_name": "Njerep" + }, + "njs": { + "english_name": "Nisa" + }, + "njt": { + "english_name": "Ndyuka-Trio Pidgin" + }, + "nju": { + "english_name": "Ngadjunmaya" + }, + "njx": { + "english_name": "Kunyi" + }, + "njy": { + "english_name": "Njyem" + }, + "njz": { + "english_name": "Nyishi" + }, + "nka": { + "english_name": "Nkoya" + }, + "nkb": { + "english_name": "Naga, Khoibu" + }, + "nkc": { + "english_name": "Nkongho" + }, + "nkd": { + "english_name": "Koireng" + }, + "nke": { + "english_name": "Duke" + }, + "nkf": { + "english_name": "Naga, Inpui" + }, + "nkg": { + "english_name": "Nekgini" + }, + "nkh": { + "english_name": "Naga, Khezha" + }, + "nki": { + "english_name": "Naga, Thangal" + }, + "nkj": { + "english_name": "Nakai" + }, + "nkk": { + "english_name": "Nokuku" + }, + "nkm": { + "english_name": "Namat" + }, + "nkn": { + "english_name": "Nkangala" + }, + "nko": { + "english_name": "Nkonya" + }, + "nkp": { + "english_name": "Niuatoputapu" + }, + "nkq": { + "english_name": "Nkami" + }, + "nkr": { + "english_name": "Nukuoro" + }, + "nks": { + "english_name": "Asmat, North" + }, + "nkt": { + "english_name": "Nyika (Tanzania)" + }, + "nku": { + "english_name": "Kulango, Bouna" + }, + "nkv": { + "english_name": "Nyika (Malawi and Zambia)" + }, + "nkw": { + "english_name": "Nkutu" + }, + "nkx": { + "english_name": "Nkoroo" + }, + "nkz": { + "english_name": "Nkari" + }, + "nl": { + "english_name": "Dutch", + "name": "Nederlands" + }, + "nla": { + "english_name": "Ngombale" + }, + "nlc": { + "english_name": "Nalca" + }, + "nle": { + "english_name": "Nyala, East" + }, + "nlg": { + "english_name": "Gela" + }, + "nli": { + "english_name": "Grangali" + }, + "nlj": { + "english_name": "Nyali" + }, + "nlk": { + "english_name": "Yali, Ninia" + }, + "nll": { + "english_name": "Nihali" + }, + "nlo": { + "english_name": "Ngul" + }, + "nlq": { + "english_name": "Naga, Lao" + }, + "nlu": { + "english_name": "Nchumbulu" + }, + "nlv": { + "english_name": "Nahuatl, Orizaba" + }, + "nlw": { + "english_name": "Walangama" + }, + "nlx": { + "english_name": "Nahali" + }, + "nly": { + "english_name": "Nyamal" + }, + "nlz": { + "english_name": "Nal\u00f6go" + }, + "nma": { + "english_name": "Naga, Maram" + }, + "nmb": { + "english_name": "Nambas, Big" + }, + "nmc": { + "english_name": "Ngam" + }, + "nmd": { + "english_name": "Ndumu" + }, + "nme": { + "english_name": "Naga, Mzieme" + }, + "nmf": { + "english_name": "Naga, Tangkhul (India)" + }, + "nmg": { + "english_name": "Kwasio" + }, + "nmh": { + "english_name": "Naga, Monsang" + }, + "nmi": { + "english_name": "Nyam" + }, + "nmj": { + "english_name": "Ngombe (Central African Republic)" + }, + "nmk": { + "english_name": "Namakura" + }, + "nml": { + "english_name": "Ndemli" + }, + "nmm": { + "english_name": "Manangba" + }, + "nmn": { + "english_name": "!X\u00f3\u00f5" + }, + "nmo": { + "english_name": "Naga, Moyon" + }, + "nmp": { + "english_name": "Nimanbur" + }, + "nmq": { + "english_name": "Nambya" + }, + "nmr": { + "english_name": "Nimbari" + }, + "nms": { + "english_name": "Letemboi" + }, + "nmt": { + "english_name": "Namonuito" + }, + "nmu": { + "english_name": "Maidu, Northeast" + }, + "nmv": { + "english_name": "Ngamini" + }, + "nmw": { + "english_name": "Nimoa" + }, + "nmx": { + "english_name": "Nama (Papua New Guinea)" + }, + "nmy": { + "english_name": "Namuyi" + }, + "nmz": { + "english_name": "Nawdm" + }, + "nn": { + "english_name": "Norwegian Nynorsk", + "name": "Norwegian Nynorsk" + }, + "nna": { + "english_name": "Nyangumarta" + }, + "nnb": { + "english_name": "Nande" + }, + "nnc": { + "english_name": "Nancere" + }, + "nnd": { + "english_name": "Ambae, West" + }, + "nne": { + "english_name": "Ngandyera" + }, + "nnf": { + "english_name": "Ngaing" + }, + "nng": { + "english_name": "Naga, Maring" + }, + "nnh": { + "english_name": "Ngiemboon" + }, + "nni": { + "english_name": "Nuaulu, North" + }, + "nnj": { + "english_name": "Nyangatom" + }, + "nnk": { + "english_name": "Nankina" + }, + "nnl": { + "english_name": "Naga, Northern Rengma" + }, + "nnm": { + "english_name": "Namia" + }, + "nnn": { + "english_name": "Ngete" + }, + "nnp": { + "english_name": "Naga, Wancho" + }, + "nnq": { + "english_name": "Ngindo" + }, + "nnr": { + "english_name": "Narungga" + }, + "nns": { + "english_name": "Ningye" + }, + "nnt": { + "english_name": "Nanticoke" + }, + "nnu": { + "english_name": "Dwang" + }, + "nnv": { + "english_name": "Nugunu (Australia)" + }, + "nnw": { + "english_name": "Nuni, Southern" + }, + "nny": { + "english_name": "Nyangga" + }, + "nnz": { + "english_name": "Nda'nda'" + }, + "no": { + "english_name": "Norwegian" + }, + "noa": { + "english_name": "Woun Meu" + }, + "noc": { + "english_name": "Nuk" + }, + "nod": { + "english_name": "Thai, Northern" + }, + "noe": { + "english_name": "Nimadi" + }, + "nof": { + "english_name": "Nomane" + }, + "nog": { + "english_name": "Nogai" + }, + "noh": { + "english_name": "Nomu" + }, + "noi": { + "english_name": "Noiri" + }, + "noj": { + "english_name": "Nonuya" + }, + "nok": { + "english_name": "Nooksack" + }, + "nol": { + "english_name": "Nomlaki" + }, + "nom": { + "english_name": "Nocam\u00e1n" + }, + "non": { + "english_name": "Norse, Old" + }, + "nop": { + "english_name": "Numanggang" + }, + "noq": { + "english_name": "Ngongo" + }, + "nos": { + "english_name": "Nisu, Eastern" + }, + "not": { + "english_name": "Nomatsiguenga" + }, + "nou": { + "english_name": "Ewage-Notu" + }, + "nov": { + "english_name": "Novial" + }, + "now": { + "english_name": "Nyambo" + }, + "noy": { + "english_name": "Noy" + }, + "noz": { + "english_name": "Nayi" + }, + "npa": { + "english_name": "Nar Phu" + }, + "npb": { + "english_name": "Nupbikha" + }, + "npg": { + "english_name": "Naga, Ponyo-Gongwang" + }, + "nph": { + "english_name": "Naga, Phom" + }, + "npi": { + "english_name": "Nepali (individual language)" + }, + "npl": { + "english_name": "Nahuatl, Southeastern Puebla" + }, + "npn": { + "english_name": "Mondropolon" + }, + "npo": { + "english_name": "Naga, Pochuri" + }, + "nps": { + "english_name": "Nipsan" + }, + "npu": { + "english_name": "Naga, Puimei" + }, + "npy": { + "english_name": "Napu" + }, + "nqg": { + "english_name": "Nago, Southern" + }, + "nqk": { + "english_name": "Ede Nago, Kura" + }, + "nqm": { + "english_name": "Ndom" + }, + "nqn": { + "english_name": "Nen" + }, + "nqo": { + "english_name": "N'Ko" + }, + "nqq": { + "english_name": "Naga, Kyan-Karyaw" + }, + "nqy": { + "english_name": "Naga, Akyaung Ari" + }, + "nr": { + "english_name": "Ndebele, South" + }, + "nra": { + "english_name": "Ngom" + }, + "nrb": { + "english_name": "Nara" + }, + "nrc": { + "english_name": "Noric" + }, + "nre": { + "english_name": "Naga, Southern Rengma" + }, + "nrg": { + "english_name": "Narango" + }, + "nri": { + "english_name": "Naga, Chokri" + }, + "nrk": { + "english_name": "Ngarla" + }, + "nrl": { + "english_name": "Ngarluma" + }, + "nrm": { + "english_name": "Narom" + }, + "nrn": { + "english_name": "Norn" + }, + "nrp": { + "english_name": "Picene, North" + }, + "nrr": { + "english_name": "Norra" + }, + "nrt": { + "english_name": "Kalapuya, Northern" + }, + "nru": { + "english_name": "Narua" + }, + "nrx": { + "english_name": "Ngurmbur" + }, + "nrz": { + "english_name": "Lala" + }, + "nsa": { + "english_name": "Naga, Sangtam" + }, + "nsc": { + "english_name": "Nshi" + }, + "nsd": { + "english_name": "Nisu, Southern" + }, + "nse": { + "english_name": "Nsenga" + }, + "nsf": { + "english_name": "Nisu, Northwestern" + }, + "nsg": { + "english_name": "Ngasa" + }, + "nsh": { + "english_name": "Ngoshie" + }, + "nsi": { + "english_name": "Nigerian Sign Language" + }, + "nsk": { + "english_name": "Naskapi" + }, + "nsl": { + "english_name": "Norwegian Sign Language" + }, + "nsm": { + "english_name": "Naga, Sumi" + }, + "nsn": { + "english_name": "Nehan" + }, + "nso": { + "english_name": "Pedi", + "name": "Pedi" + }, + "nsp": { + "english_name": "Nepalese Sign Language" + }, + "nsq": { + "english_name": "Miwok, Northern Sierra" + }, + "nsr": { + "english_name": "Maritime Sign Language" + }, + "nss": { + "english_name": "Nali" + }, + "nst": { + "english_name": "Naga, Tase" + }, + "nsu": { + "english_name": "Nahuatl, Sierra Negra" + }, + "nsv": { + "english_name": "Nisu, Southwestern" + }, + "nsw": { + "english_name": "Navut" + }, + "nsx": { + "english_name": "Nsongo" + }, + "nsy": { + "english_name": "Nasal" + }, + "nsz": { + "english_name": "Nisenan" + }, + "nte": { + "english_name": "Nathembo" + }, + "ntg": { + "english_name": "Ngantangarra" + }, + "nti": { + "english_name": "Natioro" + }, + "ntj": { + "english_name": "Ngaanyatjarra" + }, + "ntk": { + "english_name": "Ikoma-Nata-Isenye" + }, + "ntm": { + "english_name": "Nateni" + }, + "nto": { + "english_name": "Ntomba" + }, + "ntp": { + "english_name": "Tepehuan, Northern" + }, + "ntr": { + "english_name": "Delo" + }, + "nts": { + "english_name": "Natagaimas" + }, + "ntu": { + "english_name": "Nat\u00fcgu" + }, + "ntw": { + "english_name": "Nottoway" + }, + "ntx": { + "english_name": "Naga, Tangkhul (Myanmar)" + }, + "nty": { + "english_name": "Mantsi" + }, + "ntz": { + "english_name": "Natanzi" + }, + "nua": { + "english_name": "Yuanga" + }, + "nuc": { + "english_name": "Nukuini" + }, + "nud": { + "english_name": "Ngala" + }, + "nue": { + "english_name": "Ngundu" + }, + "nuf": { + "english_name": "Nusu" + }, + "nug": { + "english_name": "Nungali" + }, + "nuh": { + "english_name": "Ndunda" + }, + "nui": { + "english_name": "Ngumbi" + }, + "nuj": { + "english_name": "Nyole" + }, + "nuk": { + "english_name": "Nuu-chah-nulth" + }, + "nul": { + "english_name": "Nusa Laut" + }, + "num": { + "english_name": "Niuafo'ou" + }, + "nun": { + "english_name": "Anong" + }, + "nuo": { + "english_name": "Ngu\u00f4n" + }, + "nup": { + "english_name": "Nupe-Nupe-Tako" + }, + "nuq": { + "english_name": "Nukumanu" + }, + "nur": { + "english_name": "Nukuria" + }, + "nus": { + "english_name": "Nuer" + }, + "nut": { + "english_name": "Nung (Viet Nam)" + }, + "nuu": { + "english_name": "Ngbundu" + }, + "nuv": { + "english_name": "Nuni, Northern" + }, + "nuw": { + "english_name": "Nguluwan" + }, + "nux": { + "english_name": "Mehek" + }, + "nuy": { + "english_name": "Nunggubuyu" + }, + "nuz": { + "english_name": "Nahuatl, Tlamacazapa" + }, + "nv": { + "english_name": "Navajo" + }, + "nvh": { + "english_name": "Nasarian" + }, + "nvm": { + "english_name": "Namiae" + }, + "nvo": { + "english_name": "Nyokon" + }, + "nwa": { + "english_name": "Nawathinehena" + }, + "nwb": { + "english_name": "Nyabwa" + }, + "nwc": { + "english_name": "Newari, Classical" + }, + "nwe": { + "english_name": "Ngwe" + }, + "nwg": { + "english_name": "Ngayawung" + }, + "nwi": { + "english_name": "Tanna, Southwest" + }, + "nwm": { + "english_name": "Nyamusa-Molo" + }, + "nwo": { + "english_name": "Nauo" + }, + "nwr": { + "english_name": "Nawaru" + }, + "nwx": { + "english_name": "Newar, Middle" + }, + "nwy": { + "english_name": "Nottoway-Meherrin" + }, + "nxa": { + "english_name": "Nauete" + }, + "nxd": { + "english_name": "Ngando (Democratic Republic of Congo)" + }, + "nxe": { + "english_name": "Nage" + }, + "nxg": { + "english_name": "Ngad'a" + }, + "nxi": { + "english_name": "Nindi" + }, + "nxk": { + "english_name": "Naga, Koki" + }, + "nxl": { + "english_name": "Nuaulu, South" + }, + "nxm": { + "english_name": "Numidian" + }, + "nxn": { + "english_name": "Ngawun" + }, + "nxq": { + "english_name": "Naxi" + }, + "nxr": { + "english_name": "Ninggerum" + }, + "nxu": { + "english_name": "Narau" + }, + "nxx": { + "english_name": "Nafri" + }, + "ny": { + "english_name": "Nyanja" + }, + "nyb": { + "english_name": "Nyangbo" + }, + "nyc": { + "english_name": "Nyanga-li" + }, + "nyd": { + "english_name": "Nyore" + }, + "nye": { + "english_name": "Nyengo" + }, + "nyf": { + "english_name": "Giryama" + }, + "nyg": { + "english_name": "Nyindu" + }, + "nyh": { + "english_name": "Nyigina" + }, + "nyi": { + "english_name": "Ama (Sudan)" + }, + "nyj": { + "english_name": "Nyanga" + }, + "nyk": { + "english_name": "Nyaneka" + }, + "nyl": { + "english_name": "Nyeu" + }, + "nym": { + "english_name": "Nyamwezi" + }, + "nyn": { + "english_name": "Nyankole" + }, + "nyo": { + "english_name": "Nyoro" + }, + "nyp": { + "english_name": "Nyang'i" + }, + "nyq": { + "english_name": "Nayini" + }, + "nyr": { + "english_name": "Nyiha (Malawi)" + }, + "nys": { + "english_name": "Nyunga" + }, + "nyt": { + "english_name": "Nyawaygi" + }, + "nyu": { + "english_name": "Nyungwe" + }, + "nyv": { + "english_name": "Nyulnyul" + }, + "nyw": { + "english_name": "Nyaw" + }, + "nyx": { + "english_name": "Nganyaywana" + }, + "nyy": { + "english_name": "Nyakyusa-Ngonde" + }, + "nza": { + "english_name": "Mbembe, Tigon" + }, + "nzb": { + "english_name": "Njebi" + }, + "nzi": { + "english_name": "Nzima" + }, + "nzk": { + "english_name": "Nzakara" + }, + "nzm": { + "english_name": "Naga, Zeme" + }, + "nzs": { + "english_name": "New Zealand Sign Language" + }, + "nzu": { + "english_name": "Teke-Nzikou" + }, + "nzy": { + "english_name": "Nzakambay" + }, + "nzz": { + "english_name": "Dogon, Nanga Dama" + }, + "oaa": { + "english_name": "Orok" + }, + "oac": { + "english_name": "Oroch" + }, + "oar": { + "english_name": "Aramaic, Old (up to 700 BCE)" + }, + "oav": { + "english_name": "Avar, Old" + }, + "obi": { + "english_name": "Obispe\u00f1o" + }, + "obk": { + "english_name": "Bontok, Southern" + }, + "obl": { + "english_name": "Oblo" + }, + "obm": { + "english_name": "Moabite" + }, + "obo": { + "english_name": "Manobo, Obo" + }, + "obr": { + "english_name": "Burmese, Old" + }, + "obt": { + "english_name": "Breton, Old" + }, + "obu": { + "english_name": "Obulom" + }, + "oc": { + "english_name": "Occitan (post 1500)", + "name": "Occitan (apr\u00e8p 1500)" + }, + "oca": { + "english_name": "Ocaina" + }, + "och": { + "english_name": "Chinese, Old" + }, + "oco": { + "english_name": "Cornish, Old" + }, + "ocu": { + "english_name": "Matlatzinca, Atzingo" + }, + "oda": { + "english_name": "Odut" + }, + "odk": { + "english_name": "Od" + }, + "odt": { + "english_name": "Dutch, Old" + }, + "odu": { + "english_name": "Odual" + }, + "ofo": { + "english_name": "Ofo" + }, + "ofs": { + "english_name": "Frisian, Old" + }, + "ofu": { + "english_name": "Efutop" + }, + "ogb": { + "english_name": "Ogbia" + }, + "ogc": { + "english_name": "Ogbah" + }, + "oge": { + "english_name": "Georgian, Old" + }, + "ogg": { + "english_name": "Ogbogolo" + }, + "ogo": { + "english_name": "Khana" + }, + "ogu": { + "english_name": "Ogbronuagum" + }, + "oht": { + "english_name": "Hittite, Old" + }, + "ohu": { + "english_name": "Hungarian, Old" + }, + "oia": { + "english_name": "Oirata" + }, + "oin": { + "english_name": "One, Inebu" + }, + "oj": { + "english_name": "Ojibwa" + }, + "ojb": { + "english_name": "Ojibwa, Northwestern" + }, + "ojc": { + "english_name": "Ojibwa, Central" + }, + "ojg": { + "english_name": "Ojibwa, Eastern" + }, + "ojp": { + "english_name": "Japanese, Old" + }, + "ojs": { + "english_name": "Ojibwa, Severn" + }, + "ojv": { + "english_name": "Ontong Java" + }, + "ojw": { + "english_name": "Ojibwa, Western" + }, + "oka": { + "english_name": "Okanagan" + }, + "okb": { + "english_name": "Okobo" + }, + "okd": { + "english_name": "Okodia" + }, + "oke": { + "english_name": "Okpe (Southwestern Edo)" + }, + "okg": { + "english_name": "Koko Babangk" + }, + "okh": { + "english_name": "Koresh-e Rostam" + }, + "oki": { + "english_name": "Okiek" + }, + "okj": { + "english_name": "Oko-Juwoi" + }, + "okk": { + "english_name": "One, Kwamtim" + }, + "okl": { + "english_name": "Kentish Sign Language, Old" + }, + "okm": { + "english_name": "Korean, Middle (10th-16th cent.)" + }, + "okn": { + "english_name": "Oki-No-Erabu" + }, + "oko": { + "english_name": "Korean, Old (3rd-9th cent.)" + }, + "okr": { + "english_name": "Kirike" + }, + "oks": { + "english_name": "Oko-Eni-Osayen" + }, + "oku": { + "english_name": "Oku" + }, + "okv": { + "english_name": "Orokaiva" + }, + "okx": { + "english_name": "Okpe (Northwestern Edo)" + }, + "ola": { + "english_name": "Walungge" + }, + "old": { + "english_name": "Mochi" + }, + "ole": { + "english_name": "Olekha" + }, + "olk": { + "english_name": "Olkol" + }, + "olm": { + "english_name": "Oloma" + }, + "olo": { + "english_name": "Livvi" + }, + "olr": { + "english_name": "Olrat" + }, + "om": { + "english_name": "Oromo" + }, + "oma": { + "english_name": "Omaha-Ponca" + }, + "omb": { + "english_name": "Ambae, East" + }, + "omc": { + "english_name": "Mochica" + }, + "ome": { + "english_name": "Omejes" + }, + "omg": { + "english_name": "Omagua" + }, + "omi": { + "english_name": "Omi" + }, + "omk": { + "english_name": "Omok" + }, + "oml": { + "english_name": "Ombo" + }, + "omn": { + "english_name": "Minoan" + }, + "omo": { + "english_name": "Utarmbung" + }, + "omp": { + "english_name": "Manipuri, Old" + }, + "omr": { + "english_name": "Marathi, Old" + }, + "omt": { + "english_name": "Omotik" + }, + "omu": { + "english_name": "Omurano" + }, + "omw": { + "english_name": "Tairora, South" + }, + "omx": { + "english_name": "Mon, Old" + }, + "ona": { + "english_name": "Ona" + }, + "onb": { + "english_name": "Lingao" + }, + "one": { + "english_name": "Oneida" + }, + "ong": { + "english_name": "Olo" + }, + "oni": { + "english_name": "Onin" + }, + "onj": { + "english_name": "Onjob" + }, + "onk": { + "english_name": "One, Kabore" + }, + "onn": { + "english_name": "Onobasulu" + }, + "ono": { + "english_name": "Onondaga" + }, + "onp": { + "english_name": "Sartang" + }, + "onr": { + "english_name": "One, Northern" + }, + "ons": { + "english_name": "Ono" + }, + "ont": { + "english_name": "Ontenu" + }, + "onu": { + "english_name": "Unua" + }, + "onw": { + "english_name": "Nubian, Old" + }, + "onx": { + "english_name": "Onin Based Pidgin" + }, + "ood": { + "english_name": "Tohono O'odham" + }, + "oog": { + "english_name": "Ong" + }, + "oon": { + "english_name": "\u00d6nge" + }, + "oor": { + "english_name": "Oorlams" + }, + "oos": { + "english_name": "Ossetic, Old" + }, + "opa": { + "english_name": "Okpamheri" + }, + "opk": { + "english_name": "Kopkaka" + }, + "opm": { + "english_name": "Oksapmin" + }, + "opo": { + "english_name": "Opao" + }, + "opt": { + "english_name": "Opata" + }, + "opy": { + "english_name": "Ofay\u00e9" + }, + "or": { + "english_name": "Oriya (macrolanguage)", + "name": "Oriya (macrolanguage)" + }, + "ora": { + "english_name": "Oroha" + }, + "orc": { + "english_name": "Orma" + }, + "ore": { + "english_name": "Orej\u00f3n" + }, + "org": { + "english_name": "Oring" + }, + "orh": { + "english_name": "Oroqen" + }, + "orn": { + "english_name": "Orang Kanaq" + }, + "oro": { + "english_name": "Orokolo" + }, + "orr": { + "english_name": "Oruma" + }, + "ors": { + "english_name": "Orang Seletar" + }, + "ort": { + "english_name": "Oriya, Adivasi" + }, + "oru": { + "english_name": "Ormuri" + }, + "orv": { + "english_name": "Russian, Old" + }, + "orw": { + "english_name": "Oro Win" + }, + "orx": { + "english_name": "Oro" + }, + "ory": { + "english_name": "Oriya (individual language)" + }, + "orz": { + "english_name": "Ormu" + }, + "os": { + "english_name": "Ossetian" + }, + "osa": { + "english_name": "Osage" + }, + "osc": { + "english_name": "Oscan" + }, + "osi": { + "english_name": "Osing" + }, + "oso": { + "english_name": "Ososo" + }, + "osp": { + "english_name": "Spanish, Old" + }, + "ost": { + "english_name": "Osatu" + }, + "osu": { + "english_name": "One, Southern" + }, + "osx": { + "english_name": "Saxon, Old" + }, + "ota": { + "english_name": "Turkish, Ottoman (1500-1928)" + }, + "otb": { + "english_name": "Tibetan, Old" + }, + "otd": { + "english_name": "Ot Danum" + }, + "ote": { + "english_name": "Otomi, Mezquital" + }, + "oti": { + "english_name": "Oti" + }, + "otk": { + "english_name": "Turkish, Old" + }, + "otl": { + "english_name": "Otomi, Tilapa" + }, + "otm": { + "english_name": "Otomi, Eastern Highland" + }, + "otn": { + "english_name": "Otomi, Tenango" + }, + "otq": { + "english_name": "Otomi, Quer\u00e9taro" + }, + "otr": { + "english_name": "Otoro" + }, + "ots": { + "english_name": "Otomi, Estado de M\u00e9xico" + }, + "ott": { + "english_name": "Otomi, Temoaya" + }, + "otu": { + "english_name": "Otuke" + }, + "otw": { + "english_name": "Ottawa" + }, + "otx": { + "english_name": "Otomi, Texcatepec" + }, + "oty": { + "english_name": "Tamil, Old" + }, + "otz": { + "english_name": "Otomi, Ixtenco" + }, + "oua": { + "english_name": "Tagargrent" + }, + "oub": { + "english_name": "Glio-Oubi" + }, + "oue": { + "english_name": "Oune" + }, + "oui": { + "english_name": "Uighur, Old" + }, + "oum": { + "english_name": "Ouma" + }, + "owi": { + "english_name": "Owiniga" + }, + "owl": { + "english_name": "Welsh, Old" + }, + "oyb": { + "english_name": "Oy" + }, + "oyd": { + "english_name": "Oyda" + }, + "oym": { + "english_name": "Wayampi" + }, + "oyy": { + "english_name": "Oya'oya" + }, + "ozm": { + "english_name": "Koonzime" + }, + "pa": { + "english_name": "Panjabi", + "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" + }, + "pab": { + "english_name": "Parec\u00eds" + }, + "pac": { + "english_name": "Pacoh" + }, + "pad": { + "english_name": "Paumar\u00ed" + }, + "pae": { + "english_name": "Pagibete" + }, + "paf": { + "english_name": "Paranaw\u00e1t" + }, + "pag": { + "english_name": "Pangasinan" + }, + "pah": { + "english_name": "Tenharim" + }, + "pai": { + "english_name": "Pe" + }, + "pak": { + "english_name": "Parakan\u00e3" + }, + "pal": { + "english_name": "Pahlavi" + }, + "pam": { + "english_name": "Pampanga" + }, + "pao": { + "english_name": "Paiute, Northern" + }, + "pap": { + "english_name": "Papiamento" + }, + "paq": { + "english_name": "Parya" + }, + "par": { + "english_name": "Panamint" + }, + "pas": { + "english_name": "Papasena" + }, + "pat": { + "english_name": "Papitalai" + }, + "pau": { + "english_name": "Palauan" + }, + "pav": { + "english_name": "Paka\u00e1snovos" + }, + "paw": { + "english_name": "Pawnee" + }, + "pax": { + "english_name": "Pankarar\u00e9" + }, + "pay": { + "english_name": "Pech" + }, + "paz": { + "english_name": "Pankarar\u00fa" + }, + "pbb": { + "english_name": "P\u00e1ez" + }, + "pbc": { + "english_name": "Patamona" + }, + "pbe": { + "english_name": "Popoloca, Mezontla" + }, + "pbf": { + "english_name": "Popoloca, Coyotepec" + }, + "pbg": { + "english_name": "Paraujano" + }, + "pbh": { + "english_name": "E'\u00f1apa Woromaipu" + }, + "pbi": { + "english_name": "Parkwa" + }, + "pbl": { + "english_name": "Mak (Nigeria)" + }, + "pbn": { + "english_name": "Kpasam" + }, + "pbo": { + "english_name": "Papel" + }, + "pbp": { + "english_name": "Badyara" + }, + "pbr": { + "english_name": "Pangwa" + }, + "pbs": { + "english_name": "Pame, Central" + }, + "pbt": { + "english_name": "Pashto, Southern" + }, + "pbu": { + "english_name": "Pashto, Northern" + }, + "pbv": { + "english_name": "Pnar" + }, + "pby": { + "english_name": "Pyu" + }, + "pca": { + "english_name": "Popoloca, Santa In\u00e9s Ahuatempan" + }, + "pcb": { + "english_name": "Pear" + }, + "pcc": { + "english_name": "Bouyei" + }, + "pcd": { + "english_name": "Picard" + }, + "pce": { + "english_name": "Palaung, Ruching" + }, + "pcf": { + "english_name": "Paliyan" + }, + "pcg": { + "english_name": "Paniya" + }, + "pch": { + "english_name": "Pardhan" + }, + "pci": { + "english_name": "Duruwa" + }, + "pcj": { + "english_name": "Parenga" + }, + "pck": { + "english_name": "Chin, Paite" + }, + "pcl": { + "english_name": "Pardhi" + }, + "pcm": { + "english_name": "Pidgin, Nigerian" + }, + "pcn": { + "english_name": "Piti" + }, + "pcp": { + "english_name": "Pacahuara" + }, + "pcw": { + "english_name": "Pyapun" + }, + "pda": { + "english_name": "Anam" + }, + "pdc": { + "english_name": "German, Pennsylvania" + }, + "pdi": { + "english_name": "Pa Di" + }, + "pdn": { + "english_name": "Podena" + }, + "pdo": { + "english_name": "Padoe" + }, + "pdt": { + "english_name": "Plautdietsch" + }, + "pdu": { + "english_name": "Kayan" + }, + "pea": { + "english_name": "Indonesian, Peranakan" + }, + "peb": { + "english_name": "Pomo, Eastern" + }, + "ped": { + "english_name": "Mala (Papua New Guinea)" + }, + "pee": { + "english_name": "Taje" + }, + "pef": { + "english_name": "Pomo, Northeastern" + }, + "peg": { + "english_name": "Pengo" + }, + "peh": { + "english_name": "Bonan" + }, + "pei": { + "english_name": "Chichimeca-Jonaz" + }, + "pej": { + "english_name": "Pomo, Northern" + }, + "pek": { + "english_name": "Penchal" + }, + "pel": { + "english_name": "Pekal" + }, + "pem": { + "english_name": "Phende" + }, + "peo": { + "english_name": "Persian, Old (ca. 600-400 B.C.)" + }, + "pep": { + "english_name": "Kunja" + }, + "peq": { + "english_name": "Pomo, Southern" + }, + "pes": { + "english_name": "Persian, Iranian" + }, + "pev": { + "english_name": "P\u00e9mono" + }, + "pex": { + "english_name": "Petats" + }, + "pey": { + "english_name": "Petjo" + }, + "pez": { + "english_name": "Penan, Eastern" + }, + "pfa": { + "english_name": "P\u00e1\u00e1fang" + }, + "pfe": { + "english_name": "Peere" + }, + "pfl": { + "english_name": "Pfaelzisch" + }, + "pga": { + "english_name": "Creole Arabic, Sudanese" + }, + "pgg": { + "english_name": "Pangwali" + }, + "pgi": { + "english_name": "Pagi" + }, + "pgk": { + "english_name": "Rerep" + }, + "pgl": { + "english_name": "Irish, Primitive" + }, + "pgn": { + "english_name": "Paelignian" + }, + "pgs": { + "english_name": "Pangseng" + }, + "pgu": { + "english_name": "Pagu" + }, + "pha": { + "english_name": "Pa-Hng" + }, + "phd": { + "english_name": "Phudagi" + }, + "phg": { + "english_name": "Phuong" + }, + "phh": { + "english_name": "Phukha" + }, + "phk": { + "english_name": "Phake" + }, + "phl": { + "english_name": "Phalura" + }, + "phm": { + "english_name": "Phimbi" + }, + "phn": { + "english_name": "Phoenician" + }, + "pho": { + "english_name": "Phunoi" + }, + "phq": { + "english_name": "Phana'" + }, + "phr": { + "english_name": "Pahari-Potwari" + }, + "pht": { + "english_name": "Phu Thai" + }, + "phu": { + "english_name": "Phuan" + }, + "phv": { + "english_name": "Pahlavani" + }, + "phw": { + "english_name": "Phangduwali" + }, + "pi": { + "english_name": "Pali" + }, + "pia": { + "english_name": "Pima Bajo" + }, + "pib": { + "english_name": "Yine" + }, + "pic": { + "english_name": "Pinji" + }, + "pid": { + "english_name": "Piaroa" + }, + "pie": { + "english_name": "Piro" + }, + "pif": { + "english_name": "Pingelapese" + }, + "pig": { + "english_name": "Pisabo" + }, + "pih": { + "english_name": "Pitcairn-Norfolk" + }, + "pii": { + "english_name": "Pini" + }, + "pij": { + "english_name": "Pijao" + }, + "pil": { + "english_name": "Yom" + }, + "pim": { + "english_name": "Powhatan" + }, + "pin": { + "english_name": "Piame" + }, + "pio": { + "english_name": "Piapoco" + }, + "pip": { + "english_name": "Pero" + }, + "pir": { + "english_name": "Piratapuyo" + }, + "pis": { + "english_name": "Pijin" + }, + "pit": { + "english_name": "Pitta Pitta" + }, + "piu": { + "english_name": "Pintupi-Luritja" + }, + "piv": { + "english_name": "Pileni" + }, + "piw": { + "english_name": "Pimbwe" + }, + "pix": { + "english_name": "Piu" + }, + "piy": { + "english_name": "Piya-Kwonci" + }, + "piz": { + "english_name": "Pije" + }, + "pjt": { + "english_name": "Pitjantjatjara" + }, + "pka": { + "english_name": "Pr\u0101krit, Ardham\u0101gadh\u012b" + }, + "pkb": { + "english_name": "Pokomo" + }, + "pkc": { + "english_name": "Paekche" + }, + "pkg": { + "english_name": "Pak-Tong" + }, + "pkh": { + "english_name": "Pankhu" + }, + "pkn": { + "english_name": "Pakanha" + }, + "pko": { + "english_name": "P\u00f6koot" + }, + "pkp": { + "english_name": "Pukapuka" + }, + "pkr": { + "english_name": "Kurumba, Attapady" + }, + "pks": { + "english_name": "Pakistan Sign Language" + }, + "pkt": { + "english_name": "Maleng" + }, + "pku": { + "english_name": "Paku" + }, + "pl": { + "english_name": "Polish", + "name": "polski" + }, + "pla": { + "english_name": "Miani" + }, + "plb": { + "english_name": "Polonombauk" + }, + "plc": { + "english_name": "Palawano, Central" + }, + "pld": { + "english_name": "Polari" + }, + "ple": { + "english_name": "Palu'e" + }, + "plg": { + "english_name": "Pilag\u00e1" + }, + "plh": { + "english_name": "Paulohi" + }, + "plj": { + "english_name": "Polci" + }, + "plk": { + "english_name": "Shina, Kohistani" + }, + "pll": { + "english_name": "Palaung, Shwe" + }, + "pln": { + "english_name": "Palenquero" + }, + "plo": { + "english_name": "Popoluca, Oluta" + }, + "plp": { + "english_name": "Palpa" + }, + "plq": { + "english_name": "Palaic" + }, + "plr": { + "english_name": "Senoufo, Palaka" + }, + "pls": { + "english_name": "Popoloca, San Marcos Tlalcoyalco" + }, + "plt": { + "english_name": "Malagasy, Plateau" + }, + "plu": { + "english_name": "Palik\u00far" + }, + "plv": { + "english_name": "Palawano, Southwest" + }, + "plw": { + "english_name": "Palawano, Brooke's Point" + }, + "ply": { + "english_name": "Bolyu" + }, + "plz": { + "english_name": "Paluan" + }, + "pma": { + "english_name": "Paama" + }, + "pmb": { + "english_name": "Pambia" + }, + "pmc": { + "english_name": "Palumata" + }, + "pmd": { + "english_name": "Pallanganmiddang" + }, + "pme": { + "english_name": "Pwaamei" + }, + "pmf": { + "english_name": "Pamona" + }, + "pmh": { + "english_name": "Pr\u0101krit, M\u0101h\u0101r\u0101\u1e63\u1e6dri" + }, + "pmi": { + "english_name": "Pumi, Northern" + }, + "pmj": { + "english_name": "Pumi, Southern" + }, + "pmk": { + "english_name": "Pamlico" + }, + "pml": { + "english_name": "Lingua Franca" + }, + "pmm": { + "english_name": "Pomo" + }, + "pmn": { + "english_name": "Pam" + }, + "pmo": { + "english_name": "Pom" + }, + "pmq": { + "english_name": "Pame, Northern" + }, + "pmr": { + "english_name": "Paynamar" + }, + "pms": { + "english_name": "Piemontese" + }, + "pmt": { + "english_name": "Tuamotuan" + }, + "pmw": { + "english_name": "Miwok, Plains" + }, + "pmx": { + "english_name": "Naga, Poumei" + }, + "pmy": { + "english_name": "Malay, Papuan" + }, + "pmz": { + "english_name": "Pame, Southern" + }, + "pna": { + "english_name": "Punan Bah-Biau" + }, + "pnb": { + "english_name": "Panjabi, Western" + }, + "pnc": { + "english_name": "Pannei" + }, + "pne": { + "english_name": "Penan, Western" + }, + "png": { + "english_name": "Pongu" + }, + "pnh": { + "english_name": "Penrhyn" + }, + "pni": { + "english_name": "Aoheng" + }, + "pnj": { + "english_name": "Pinjarup" + }, + "pnk": { + "english_name": "Paunaka" + }, + "pnl": { + "english_name": "Paleni" + }, + "pnm": { + "english_name": "Punan Batu 1" + }, + "pnn": { + "english_name": "Pinai-Hagahai" + }, + "pno": { + "english_name": "Panobo" + }, + "pnp": { + "english_name": "Pancana" + }, + "pnq": { + "english_name": "Pana (Burkina Faso)" + }, + "pnr": { + "english_name": "Panim" + }, + "pns": { + "english_name": "Ponosakan" + }, + "pnt": { + "english_name": "Pontic" + }, + "pnu": { + "english_name": "Bunu, Jiongnai" + }, + "pnv": { + "english_name": "Pinigura" + }, + "pnw": { + "english_name": "Panytyima" + }, + "pnx": { + "english_name": "Phong-Kniang" + }, + "pny": { + "english_name": "Pinyin" + }, + "pnz": { + "english_name": "Pana (Central African Republic)" + }, + "poc": { + "english_name": "Poqomam" + }, + "pod": { + "english_name": "Ponares" + }, + "poe": { + "english_name": "Popoloca, San Juan Atzingo" + }, + "pof": { + "english_name": "Poke" + }, + "pog": { + "english_name": "Potigu\u00e1ra" + }, + "poh": { + "english_name": "Poqomchi'" + }, + "poi": { + "english_name": "Popoluca, Highland" + }, + "pok": { + "english_name": "Pokang\u00e1" + }, + "pom": { + "english_name": "Pomo, Southeastern" + }, + "pon": { + "english_name": "Pohnpeian" + }, + "poo": { + "english_name": "Pomo, Central" + }, + "pop": { + "english_name": "Pwapw\u00e2" + }, + "poq": { + "english_name": "Popoluca, Texistepec" + }, + "pos": { + "english_name": "Popoluca, Sayula" + }, + "pot": { + "english_name": "Potawatomi" + }, + "pov": { + "english_name": "Crioulo, Upper Guinea" + }, + "pow": { + "english_name": "Popoloca, San Felipe Otlaltepec" + }, + "pox": { + "english_name": "Polabian" + }, + "poy": { + "english_name": "Pogolo" + }, + "ppa": { + "english_name": "Pao" + }, + "ppe": { + "english_name": "Papi" + }, + "ppi": { + "english_name": "Paipai" + }, + "ppk": { + "english_name": "Uma" + }, + "ppl": { + "english_name": "Pipil" + }, + "ppm": { + "english_name": "Papuma" + }, + "ppn": { + "english_name": "Papapana" + }, + "ppo": { + "english_name": "Folopa" + }, + "ppp": { + "english_name": "Pelende" + }, + "ppq": { + "english_name": "Pei" + }, + "pps": { + "english_name": "Popoloca, San Lu\u00eds Temalacayuca" + }, + "ppt": { + "english_name": "Pare" + }, + "ppu": { + "english_name": "Papora" + }, + "pqa": { + "english_name": "Pa'a" + }, + "pqm": { + "english_name": "Malecite-Passamaquoddy" + }, + "prb": { + "english_name": "Lua'" + }, + "prc": { + "english_name": "Parachi" + }, + "prd": { + "english_name": "Parsi-Dari" + }, + "pre": { + "english_name": "Principense" + }, + "prf": { + "english_name": "Paranan" + }, + "prg": { + "english_name": "Prussian" + }, + "prh": { + "english_name": "Porohanon" + }, + "pri": { + "english_name": "Paic\u00ee" + }, + "prk": { + "english_name": "Parauk" + }, + "prl": { + "english_name": "Peruvian Sign Language" + }, + "prm": { + "english_name": "Kibiri" + }, + "prn": { + "english_name": "Prasuni" + }, + "pro": { + "english_name": "Proven\u00e7al, Old (to 1500)" + }, + "prp": { + "english_name": "Parsi" + }, + "prq": { + "english_name": "Ash\u00e9ninka Peren\u00e9" + }, + "prr": { + "english_name": "Puri" + }, + "prs": { + "english_name": "Dari" + }, + "prt": { + "english_name": "Phai" + }, + "pru": { + "english_name": "Puragi" + }, + "prw": { + "english_name": "Parawen" + }, + "prx": { + "english_name": "Purik" + }, + "pry": { + "english_name": "Pray 3" + }, + "prz": { + "english_name": "Providencia Sign Language" + }, + "ps": { + "english_name": "Pushto", + "name": "Pushto" + }, + "psa": { + "english_name": "Awyu, Asue" + }, + "psc": { + "english_name": "Persian Sign Language" + }, + "psd": { + "english_name": "Plains Indian Sign Language" + }, + "pse": { + "english_name": "Malay, Central" + }, + "psg": { + "english_name": "Penang Sign Language" + }, + "psh": { + "english_name": "Pashayi, Southwest" + }, + "psi": { + "english_name": "Pashayi, Southeast" + }, + "psl": { + "english_name": "Puerto Rican Sign Language" + }, + "psm": { + "english_name": "Pauserna" + }, + "psn": { + "english_name": "Panasuan" + }, + "pso": { + "english_name": "Polish Sign Language" + }, + "psp": { + "english_name": "Philippine Sign Language" + }, + "psq": { + "english_name": "Pasi" + }, + "psr": { + "english_name": "Portuguese Sign Language" + }, + "pss": { + "english_name": "Kaulong" + }, + "pst": { + "english_name": "Pashto, Central" + }, + "psu": { + "english_name": "Pr\u0101krit, Sauraseni" + }, + "psw": { + "english_name": "Port Sandwich" + }, + "psy": { + "english_name": "Piscataway" + }, + "pt": { + "english_name": "Portuguese", + "name": "Portugu\u00eas" + }, + "pta": { + "english_name": "Pai Tavytera" + }, + "pth": { + "english_name": "Patax\u00f3 H\u00e3-Ha-H\u00e3e" + }, + "pti": { + "english_name": "Pintiini" + }, + "ptn": { + "english_name": "Patani" + }, + "pto": { + "english_name": "Zo'\u00e9" + }, + "ptp": { + "english_name": "Patep" + }, + "ptr": { + "english_name": "Piamatsina" + }, + "ptt": { + "english_name": "Enrekang" + }, + "ptu": { + "english_name": "Bambam" + }, + "ptv": { + "english_name": "Port Vato" + }, + "ptw": { + "english_name": "Pentlatch" + }, + "pty": { + "english_name": "Pathiya" + }, + "pua": { + "english_name": "Purepecha, Western Highland" + }, + "pub": { + "english_name": "Purum" + }, + "puc": { + "english_name": "Punan Merap" + }, + "pud": { + "english_name": "Punan Aput" + }, + "pue": { + "english_name": "Puelche" + }, + "puf": { + "english_name": "Punan Merah" + }, + "pug": { + "english_name": "Phuie" + }, + "pui": { + "english_name": "Puinave" + }, + "puj": { + "english_name": "Punan Tubu" + }, + "puk": { + "english_name": "Pu Ko" + }, + "pum": { + "english_name": "Puma" + }, + "puo": { + "english_name": "Puoc" + }, + "pup": { + "english_name": "Pulabu" + }, + "puq": { + "english_name": "Puquina" + }, + "pur": { + "english_name": "Purubor\u00e1" + }, + "put": { + "english_name": "Putoh" + }, + "puu": { + "english_name": "Punu" + }, + "puw": { + "english_name": "Puluwatese" + }, + "pux": { + "english_name": "Puare" + }, + "puy": { + "english_name": "Purisime\u00f1o" + }, + "pwa": { + "english_name": "Pawaia" + }, + "pwb": { + "english_name": "Panawa" + }, + "pwg": { + "english_name": "Gapapaiwa" + }, + "pwi": { + "english_name": "Patwin" + }, + "pwm": { + "english_name": "Molbog" + }, + "pwn": { + "english_name": "Paiwan" + }, + "pwo": { + "english_name": "Karen, Pwo Western" + }, + "pwr": { + "english_name": "Powari" + }, + "pww": { + "english_name": "Karen, Pwo Northern" + }, + "pxm": { + "english_name": "Mixe, Quetzaltepec" + }, + "pye": { + "english_name": "Krumen, Pye" + }, + "pym": { + "english_name": "Fyam" + }, + "pyn": { + "english_name": "Poyan\u00e1wa" + }, + "pys": { + "english_name": "Paraguayan Sign Language" + }, + "pyu": { + "english_name": "Puyuma" + }, + "pyx": { + "english_name": "Pyu (Myanmar)" + }, + "pyy": { + "english_name": "Pyen" + }, + "pzn": { + "english_name": "Naga, Para" + }, + "qu": { + "english_name": "Quechua" + }, + "qua": { + "english_name": "Quapaw" + }, + "qub": { + "english_name": "Quechua, Huallaga Hu\u00e1nuco" + }, + "quc": { + "english_name": "K'iche'" + }, + "qud": { + "english_name": "Quichua, Calder\u00f3n Highland" + }, + "quf": { + "english_name": "Quechua, Lambayeque" + }, + "qug": { + "english_name": "Quichua, Chimborazo Highland" + }, + "quh": { + "english_name": "Quechua, South Bolivian" + }, + "qui": { + "english_name": "Quileute" + }, + "quk": { + "english_name": "Quechua, Chachapoyas" + }, + "qul": { + "english_name": "Quechua, North Bolivian" + }, + "qum": { + "english_name": "Sipacapense" + }, + "qun": { + "english_name": "Quinault" + }, + "qup": { + "english_name": "Quechua, Southern Pastaza" + }, + "quq": { + "english_name": "Quinqui" + }, + "qur": { + "english_name": "Quechua, Yanahuanca Pasco" + }, + "qus": { + "english_name": "Quichua, Santiago del Estero" + }, + "quv": { + "english_name": "Sacapulteco" + }, + "quw": { + "english_name": "Quichua, Tena Lowland" + }, + "qux": { + "english_name": "Quechua, Yauyos" + }, + "quy": { + "english_name": "Quechua, Ayacucho" + }, + "quz": { + "english_name": "Quechua, Cusco" + }, + "qva": { + "english_name": "Quechua, Ambo-Pasco" + }, + "qvc": { + "english_name": "Quechua, Cajamarca" + }, + "qve": { + "english_name": "Quechua, Eastern Apur\u00edmac" + }, + "qvh": { + "english_name": "Quechua, Huamal\u00edes-Dos de Mayo Hu\u00e1nuco" + }, + "qvi": { + "english_name": "Quichua, Imbabura Highland" + }, + "qvj": { + "english_name": "Quichua, Loja Highland" + }, + "qvl": { + "english_name": "Quechua, Cajatambo North Lima" + }, + "qvm": { + "english_name": "Quechua, Margos-Yarowilca-Lauricocha" + }, + "qvn": { + "english_name": "Quechua, North Jun\u00edn" + }, + "qvo": { + "english_name": "Quechua, Napo Lowland" + }, + "qvp": { + "english_name": "Quechua, Pacaraos" + }, + "qvs": { + "english_name": "Quechua, San Mart\u00edn" + }, + "qvw": { + "english_name": "Quechua, Huaylla Wanca" + }, + "qvy": { + "english_name": "Queyu" + }, + "qvz": { + "english_name": "Quichua, Northern Pastaza" + }, + "qwa": { + "english_name": "Quechua, Corongo Ancash" + }, + "qwc": { + "english_name": "Quechua, Classical" + }, + "qwh": { + "english_name": "Quechua, Huaylas Ancash" + }, + "qwm": { + "english_name": "Kuman (Russia)" + }, + "qws": { + "english_name": "Quechua, Sihuas Ancash" + }, + "qwt": { + "english_name": "Kwalhioqua-Tlatskanai" + }, + "qxa": { + "english_name": "Quechua, Chiqui\u00e1n Ancash" + }, + "qxc": { + "english_name": "Quechua, Chincha" + }, + "qxh": { + "english_name": "Quechua, Panao Hu\u00e1nuco" + }, + "qxl": { + "english_name": "Quichua, Salasaca Highland" + }, + "qxn": { + "english_name": "Quechua, Northern Conchucos Ancash" + }, + "qxo": { + "english_name": "Quechua, Southern Conchucos Ancash" + }, + "qxp": { + "english_name": "Quechua, Puno" + }, + "qxq": { + "english_name": "Qashqa'i" + }, + "qxr": { + "english_name": "Quichua, Ca\u00f1ar Highland" + }, + "qxs": { + "english_name": "Qiang, Southern" + }, + "qxt": { + "english_name": "Quechua, Santa Ana de Tusi Pasco" + }, + "qxu": { + "english_name": "Quechua, Arequipa-La Uni\u00f3n" + }, + "qxw": { + "english_name": "Quechua, Jauja Wanca" + }, + "qya": { + "english_name": "Quenya" + }, + "qyp": { + "english_name": "Quiripi" + }, + "raa": { + "english_name": "Dungmali" + }, + "rab": { + "english_name": "Camling" + }, + "rac": { + "english_name": "Rasawa" + }, + "rad": { + "english_name": "Rade" + }, + "raf": { + "english_name": "Meohang, Western" + }, + "rag": { + "english_name": "Logooli" + }, + "rah": { + "english_name": "Rabha" + }, + "rai": { + "english_name": "Ramoaaina" + }, + "raj": { + "english_name": "Rajasthani" + }, + "rak": { + "english_name": "Tulu-Bohuai" + }, + "ral": { + "english_name": "Ralte" + }, + "ram": { + "english_name": "Canela" + }, + "ran": { + "english_name": "Riantana" + }, + "rao": { + "english_name": "Rao" + }, + "rap": { + "english_name": "Rapanui" + }, + "raq": { + "english_name": "Saam" + }, + "rar": { + "english_name": "Rarotongan" + }, + "ras": { + "english_name": "Tegali" + }, + "rat": { + "english_name": "Razajerdi" + }, + "rau": { + "english_name": "Raute" + }, + "rav": { + "english_name": "Sampang" + }, + "raw": { + "english_name": "Rawang" + }, + "rax": { + "english_name": "Rang" + }, + "ray": { + "english_name": "Rapa" + }, + "raz": { + "english_name": "Rahambuu" + }, + "rbb": { + "english_name": "Palaung, Rumai" + }, + "rbk": { + "english_name": "Bontok, Northern" + }, + "rbl": { + "english_name": "Bikol, Miraya" + }, + "rbp": { + "english_name": "Barababaraba" + }, + "rcf": { + "english_name": "Creole French, R\u00e9union" + }, + "rdb": { + "english_name": "Rudbari" + }, + "rea": { + "english_name": "Rerau" + }, + "reb": { + "english_name": "Rembong" + }, + "ree": { + "english_name": "Kayan, Rejang" + }, + "reg": { + "english_name": "Kara (Tanzania)" + }, + "rei": { + "english_name": "Reli" + }, + "rej": { + "english_name": "Rejang" + }, + "rel": { + "english_name": "Rendille" + }, + "rem": { + "english_name": "Remo" + }, + "ren": { + "english_name": "Rengao" + }, + "rer": { + "english_name": "Rer Bare" + }, + "res": { + "english_name": "Reshe" + }, + "ret": { + "english_name": "Retta" + }, + "rey": { + "english_name": "Reyesano" + }, + "rga": { + "english_name": "Roria" + }, + "rge": { + "english_name": "Romano-Greek" + }, + "rgk": { + "english_name": "Rangkas" + }, + "rgn": { + "english_name": "Romagnol" + }, + "rgr": { + "english_name": "Res\u00edgaro" + }, + "rgs": { + "english_name": "Roglai, Southern" + }, + "rgu": { + "english_name": "Ringgou" + }, + "rhg": { + "english_name": "Rohingya" + }, + "rhp": { + "english_name": "Yahang" + }, + "ria": { + "english_name": "Riang (India)" + }, + "rie": { + "english_name": "Rien" + }, + "rif": { + "english_name": "Tarifit" + }, + "ril": { + "english_name": "Riang (Myanmar)" + }, + "rim": { + "english_name": "Nyaturu" + }, + "rin": { + "english_name": "Nungu" + }, + "rir": { + "english_name": "Ribun" + }, + "rit": { + "english_name": "Ritarungo" + }, + "riu": { + "english_name": "Riung" + }, + "rjg": { + "english_name": "Rajong" + }, + "rji": { + "english_name": "Raji" + }, + "rjs": { + "english_name": "Rajbanshi" + }, + "rka": { + "english_name": "Kraol" + }, + "rkb": { + "english_name": "Rikbaktsa" + }, + "rkh": { + "english_name": "Rakahanga-Manihiki" + }, + "rki": { + "english_name": "Rakhine" + }, + "rkm": { + "english_name": "Marka" + }, + "rkt": { + "english_name": "Rangpuri" + }, + "rkw": { + "english_name": "Arakwal" + }, + "rm": { + "english_name": "Romansh" + }, + "rma": { + "english_name": "Rama" + }, + "rmb": { + "english_name": "Rembarunga" + }, + "rmc": { + "english_name": "Romani, Carpathian" + }, + "rmd": { + "english_name": "Danish, Traveller" + }, + "rme": { + "english_name": "Angloromani" + }, + "rmf": { + "english_name": "Romani, Kalo Finnish" + }, + "rmg": { + "english_name": "Norwegian, Traveller" + }, + "rmh": { + "english_name": "Murkim" + }, + "rmi": { + "english_name": "Lomavren" + }, + "rmk": { + "english_name": "Romkun" + }, + "rml": { + "english_name": "Romani, Baltic" + }, + "rmm": { + "english_name": "Roma" + }, + "rmn": { + "english_name": "Romani, Balkan" + }, + "rmo": { + "english_name": "Romani, Sinte" + }, + "rmp": { + "english_name": "Rempi" + }, + "rmq": { + "english_name": "Cal\u00f3" + }, + "rms": { + "english_name": "Romanian Sign Language" + }, + "rmt": { + "english_name": "Domari" + }, + "rmu": { + "english_name": "Romani, Tavringer" + }, + "rmv": { + "english_name": "Romanova" + }, + "rmw": { + "english_name": "Romani, Welsh" + }, + "rmx": { + "english_name": "Romam" + }, + "rmy": { + "english_name": "Romani, Vlax" + }, + "rmz": { + "english_name": "Marma" + }, + "rn": { + "english_name": "Rundi" + }, + "rna": { + "english_name": "Runa" + }, + "rnd": { + "english_name": "Ruund" + }, + "rng": { + "english_name": "Ronga" + }, + "rnl": { + "english_name": "Ranglong" + }, + "rnn": { + "english_name": "Roon" + }, + "rnp": { + "english_name": "Rongpo" + }, + "rnr": { + "english_name": "Nari Nari" + }, + "rnw": { + "english_name": "Rungwa" + }, + "ro": { + "english_name": "Romanian", + "name": "Rom\u00e2n\u0103" + }, + "rob": { + "english_name": "Tae'" + }, + "roc": { + "english_name": "Roglai, Cacgia" + }, + "rod": { + "english_name": "Rogo" + }, + "roe": { + "english_name": "Ronji" + }, + "rof": { + "english_name": "Rombo" + }, + "rog": { + "english_name": "Roglai, Northern" + }, + "rol": { + "english_name": "Romblomanon" + }, + "rom": { + "english_name": "Romany" + }, + "roo": { + "english_name": "Rotokas" + }, + "rop": { + "english_name": "Kriol" + }, + "ror": { + "english_name": "Rongga" + }, + "rou": { + "english_name": "Runga" + }, + "row": { + "english_name": "Dela-Oenale" + }, + "rpn": { + "english_name": "Repanbitip" + }, + "rpt": { + "english_name": "Rapting" + }, + "rri": { + "english_name": "Ririo" + }, + "rro": { + "english_name": "Waima" + }, + "rrt": { + "english_name": "Arritinngithigh" + }, + "rsb": { + "english_name": "Romano-Serbian" + }, + "rsi": { + "english_name": "Rennellese Sign Language" + }, + "rsl": { + "english_name": "Russian Sign Language" + }, + "rtc": { + "english_name": "Chin, Rungtu" + }, + "rth": { + "english_name": "Ratahan" + }, + "rtm": { + "english_name": "Rotuman" + }, + "rtw": { + "english_name": "Rathawi" + }, + "ru": { + "english_name": "Russian", + "name": "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "rub": { + "english_name": "Gungu" + }, + "ruc": { + "english_name": "Ruuli" + }, + "rue": { + "english_name": "Rusyn" + }, + "ruf": { + "english_name": "Luguru" + }, + "rug": { + "english_name": "Roviana" + }, + "ruh": { + "english_name": "Ruga" + }, + "rui": { + "english_name": "Rufiji" + }, + "ruk": { + "english_name": "Che" + }, + "ruo": { + "english_name": "Romanian, Istro" + }, + "rup": { + "english_name": "Romanian, Macedo-" + }, + "ruq": { + "english_name": "Romanian, Megleno" + }, + "rut": { + "english_name": "Rutul" + }, + "ruu": { + "english_name": "Lobu, Lanas" + }, + "ruy": { + "english_name": "Mala (Nigeria)" + }, + "ruz": { + "english_name": "Ruma" + }, + "rw": { + "english_name": "Kinyarwanda", + "name": "Ikinyarwanda" + }, + "rwa": { + "english_name": "Rawo" + }, + "rwk": { + "english_name": "Rwa" + }, + "rwm": { + "english_name": "Amba (Uganda)" + }, + "rwo": { + "english_name": "Rawa" + }, + "rwr": { + "english_name": "Marwari (India)" + }, + "rxd": { + "english_name": "Ngardi" + }, + "rxw": { + "english_name": "Karuwali" + }, + "ryn": { + "english_name": "Amami-Oshima, Northern" + }, + "rys": { + "english_name": "Yaeyama" + }, + "ryu": { + "english_name": "Okinawan, Central" + }, + "sa": { + "english_name": "Sanskrit" + }, + "saa": { + "english_name": "Saba" + }, + "sab": { + "english_name": "Buglere" + }, + "sac": { + "english_name": "Meskwaki" + }, + "sad": { + "english_name": "Sandawe" + }, + "sae": { + "english_name": "Saban\u00ea" + }, + "saf": { + "english_name": "Safaliba" + }, + "sah": { + "english_name": "Yakut" + }, + "saj": { + "english_name": "Sahu" + }, + "sak": { + "english_name": "Sake" + }, + "sam": { + "english_name": "Aramaic, Samaritan" + }, + "sao": { + "english_name": "Sause" + }, + "saq": { + "english_name": "Samburu" + }, + "sar": { + "english_name": "Saraveca" + }, + "sas": { + "english_name": "Sasak" + }, + "sat": { + "english_name": "Santali" + }, + "sau": { + "english_name": "Saleman" + }, + "sav": { + "english_name": "Saafi-Saafi" + }, + "saw": { + "english_name": "Sawi" + }, + "sax": { + "english_name": "Sa" + }, + "say": { + "english_name": "Saya" + }, + "saz": { + "english_name": "Saurashtra" + }, + "sba": { + "english_name": "Ngambay" + }, + "sbb": { + "english_name": "Simbo" + }, + "sbc": { + "english_name": "Kele (Papua New Guinea)" + }, + "sbd": { + "english_name": "Samo, Southern" + }, + "sbe": { + "english_name": "Saliba" + }, + "sbf": { + "english_name": "Shabo" + }, + "sbg": { + "english_name": "Seget" + }, + "sbh": { + "english_name": "Sori-Harengan" + }, + "sbi": { + "english_name": "Seti" + }, + "sbj": { + "english_name": "Surbakhal" + }, + "sbk": { + "english_name": "Safwa" + }, + "sbl": { + "english_name": "Sambal, Botolan" + }, + "sbm": { + "english_name": "Sagala" + }, + "sbn": { + "english_name": "Bhil, Sindhi" + }, + "sbo": { + "english_name": "Sab\u00fcm" + }, + "sbp": { + "english_name": "Sangu (Tanzania)" + }, + "sbq": { + "english_name": "Sileibi" + }, + "sbr": { + "english_name": "Sembakung Murut" + }, + "sbs": { + "english_name": "Subiya" + }, + "sbt": { + "english_name": "Kimki" + }, + "sbu": { + "english_name": "Bhoti, Stod" + }, + "sbv": { + "english_name": "Sabine" + }, + "sbw": { + "english_name": "Simba" + }, + "sbx": { + "english_name": "Seberuang" + }, + "sby": { + "english_name": "Soli" + }, + "sbz": { + "english_name": "Sara Kaba" + }, + "sc": { + "english_name": "Sardinian" + }, + "scb": { + "english_name": "Chut" + }, + "sce": { + "english_name": "Dongxiang" + }, + "scf": { + "english_name": "Creole French, San Miguel" + }, + "scg": { + "english_name": "Sanggau" + }, + "sch": { + "english_name": "Sakachep" + }, + "sci": { + "english_name": "Creole Malay, Sri Lankan" + }, + "sck": { + "english_name": "Sadri" + }, + "scl": { + "english_name": "Shina" + }, + "scn": { + "english_name": "Sicilian" + }, + "sco": { + "english_name": "Scots" + }, + "scp": { + "english_name": "Helambu Sherpa" + }, + "scq": { + "english_name": "Sa'och" + }, + "scs": { + "english_name": "Slavey, North" + }, + "scu": { + "english_name": "Shumcho" + }, + "scv": { + "english_name": "Sheni" + }, + "scw": { + "english_name": "Sha" + }, + "scx": { + "english_name": "Sicel" + }, + "sd": { + "english_name": "Sindhi" + }, + "sda": { + "english_name": "Toraja-Sa'dan" + }, + "sdb": { + "english_name": "Shabak" + }, + "sdc": { + "english_name": "Sardinian, Sassarese" + }, + "sde": { + "english_name": "Surubu" + }, + "sdf": { + "english_name": "Sarli" + }, + "sdg": { + "english_name": "Savi" + }, + "sdh": { + "english_name": "Kurdish, Southern" + }, + "sdj": { + "english_name": "Suundi" + }, + "sdk": { + "english_name": "Sos Kundi" + }, + "sdl": { + "english_name": "Saudi Arabian Sign Language" + }, + "sdm": { + "english_name": "Semandang" + }, + "sdn": { + "english_name": "Sardinian, Gallurese" + }, + "sdo": { + "english_name": "Bidayuh, Bukar-Sadung" + }, + "sdp": { + "english_name": "Sherdukpen" + }, + "sdr": { + "english_name": "Sadri, Oraon" + }, + "sds": { + "english_name": "Sened" + }, + "sdt": { + "english_name": "Shuadit" + }, + "sdu": { + "english_name": "Sarudu" + }, + "sdx": { + "english_name": "Melanau, Sibu" + }, + "sdz": { + "english_name": "Sallands" + }, + "se": { + "english_name": "Sami, Northern" + }, + "sea": { + "english_name": "Semai" + }, + "seb": { + "english_name": "Senoufo, Shempire" + }, + "sec": { + "english_name": "Sechelt" + }, + "sed": { + "english_name": "Sedang" + }, + "see": { + "english_name": "Seneca" + }, + "sef": { + "english_name": "Senoufo, Cebaara" + }, + "seg": { + "english_name": "Segeju" + }, + "seh": { + "english_name": "Sena" + }, + "sei": { + "english_name": "Seri" + }, + "sej": { + "english_name": "Sene" + }, + "sek": { + "english_name": "Sekani" + }, + "sel": { + "english_name": "Selkup" + }, + "sen": { + "english_name": "S\u00e9noufo, Nanerig\u00e9" + }, + "seo": { + "english_name": "Suarmin" + }, + "sep": { + "english_name": "S\u00e9noufo, S\u00ecc\u00ect\u00e9" + }, + "seq": { + "english_name": "S\u00e9noufo, Senara" + }, + "ser": { + "english_name": "Serrano" + }, + "ses": { + "english_name": "Songhai, Koyraboro Senni" + }, + "set": { + "english_name": "Sentani" + }, + "seu": { + "english_name": "Serui-Laut" + }, + "sev": { + "english_name": "Senoufo, Nyarafolo" + }, + "sew": { + "english_name": "Sewa Bay" + }, + "sey": { + "english_name": "Secoya" + }, + "sez": { + "english_name": "Chin, Senthang" + }, + "sfb": { + "english_name": "Langue des signes de Belgique Francophone" + }, + "sfe": { + "english_name": "Subanen, Eastern" + }, + "sfm": { + "english_name": "Miao, Small Flowery" + }, + "sfs": { + "english_name": "South African Sign Language" + }, + "sfw": { + "english_name": "Sehwi" + }, + "sg": { + "english_name": "Sango" + }, + "sga": { + "english_name": "Irish, Old (to 900)" + }, + "sgb": { + "english_name": "Ayta, Mag-antsi" + }, + "sgc": { + "english_name": "Kipsigis" + }, + "sgd": { + "english_name": "Surigaonon" + }, + "sge": { + "english_name": "Segai" + }, + "sgg": { + "english_name": "Swiss-German Sign Language" + }, + "sgh": { + "english_name": "Shughni" + }, + "sgi": { + "english_name": "Suga" + }, + "sgj": { + "english_name": "Surgujia" + }, + "sgk": { + "english_name": "Sangkong" + }, + "sgm": { + "english_name": "Singa" + }, + "sgp": { + "english_name": "Singpho" + }, + "sgr": { + "english_name": "Sangisari" + }, + "sgs": { + "english_name": "Samogitian" + }, + "sgt": { + "english_name": "Brokpake" + }, + "sgu": { + "english_name": "Salas" + }, + "sgw": { + "english_name": "Sebat Bet Gurage" + }, + "sgx": { + "english_name": "Sierra Leone Sign Language" + }, + "sgy": { + "english_name": "Sanglechi" + }, + "sgz": { + "english_name": "Sursurunga" + }, + "sha": { + "english_name": "Shall-Zwall" + }, + "shb": { + "english_name": "Ninam" + }, + "shc": { + "english_name": "Sonde" + }, + "shd": { + "english_name": "Kundal Shahi" + }, + "she": { + "english_name": "Sheko" + }, + "shg": { + "english_name": "Shua" + }, + "shh": { + "english_name": "Shoshoni" + }, + "shi": { + "english_name": "Tachelhit" + }, + "shj": { + "english_name": "Shatt" + }, + "shk": { + "english_name": "Shilluk" + }, + "shl": { + "english_name": "Shendu" + }, + "shm": { + "english_name": "Shahrudi" + }, + "shn": { + "english_name": "Shan" + }, + "sho": { + "english_name": "Shanga" + }, + "shp": { + "english_name": "Shipibo-Conibo" + }, + "shq": { + "english_name": "Sala" + }, + "shr": { + "english_name": "Shi" + }, + "shs": { + "english_name": "Shuswap" + }, + "sht": { + "english_name": "Shasta" + }, + "shu": { + "english_name": "Arabic, Chadian" + }, + "shv": { + "english_name": "Shehri" + }, + "shw": { + "english_name": "Shwai" + }, + "shx": { + "english_name": "She" + }, + "shy": { + "english_name": "Tachawit" + }, + "shz": { + "english_name": "Senoufo, Syenara" + }, + "si": { + "english_name": "Sinhala" + }, + "sia": { + "english_name": "Sami, Akkala" + }, + "sib": { + "english_name": "Sebop" + }, + "sid": { + "english_name": "Sidamo" + }, + "sie": { + "english_name": "Simaa" + }, + "sif": { + "english_name": "Siamou" + }, + "sig": { + "english_name": "Paasaal" + }, + "sih": { + "english_name": "Zire" + }, + "sii": { + "english_name": "Shom Peng" + }, + "sij": { + "english_name": "Numbami" + }, + "sik": { + "english_name": "Sikiana" + }, + "sil": { + "english_name": "Sisaala, Tumulung" + }, + "sim": { + "english_name": "Mende (Papua New Guinea)" + }, + "sip": { + "english_name": "Sikkimese" + }, + "siq": { + "english_name": "Sonia" + }, + "sir": { + "english_name": "Siri" + }, + "sis": { + "english_name": "Siuslaw" + }, + "siu": { + "english_name": "Sinagen" + }, + "siv": { + "english_name": "Sumariup" + }, + "siw": { + "english_name": "Siwai" + }, + "six": { + "english_name": "Sumau" + }, + "siy": { + "english_name": "Sivandi" + }, + "siz": { + "english_name": "Siwi" + }, + "sja": { + "english_name": "Epena" + }, + "sjb": { + "english_name": "Sajau Basap" + }, + "sjd": { + "english_name": "Sami, Kildin" + }, + "sje": { + "english_name": "Sami, Pite" + }, + "sjg": { + "english_name": "Assangori" + }, + "sjk": { + "english_name": "Sami, Kemi" + }, + "sjl": { + "english_name": "Sajalong" + }, + "sjm": { + "english_name": "Mapun" + }, + "sjn": { + "english_name": "Sindarin" + }, + "sjo": { + "english_name": "Xibe" + }, + "sjp": { + "english_name": "Surjapuri" + }, + "sjr": { + "english_name": "Siar-Lak" + }, + "sjs": { + "english_name": "Senhaja De Srair" + }, + "sjt": { + "english_name": "Sami, Ter" + }, + "sju": { + "english_name": "Sami, Ume" + }, + "sjw": { + "english_name": "Shawnee" + }, + "sk": { + "english_name": "Slovak", + "name": "Slovensk\u00fd" + }, + "ska": { + "english_name": "Skagit" + }, + "skb": { + "english_name": "Saek" + }, + "skc": { + "english_name": "Ma Manda" + }, + "skd": { + "english_name": "Miwok, Southern Sierra" + }, + "ske": { + "english_name": "Seke (Vanuatu)" + }, + "skf": { + "english_name": "Sakirabi\u00e1" + }, + "skg": { + "english_name": "Malagasy, Sakalava" + }, + "skh": { + "english_name": "Sikule" + }, + "ski": { + "english_name": "Sika" + }, + "skj": { + "english_name": "Seke (Nepal)" + }, + "skk": { + "english_name": "Sok" + }, + "skm": { + "english_name": "Kutong" + }, + "skn": { + "english_name": "Subanon, Kolibugan" + }, + "sko": { + "english_name": "Seko Tengah" + }, + "skp": { + "english_name": "Sekapan" + }, + "skq": { + "english_name": "Sininkere" + }, + "skr": { + "english_name": "Seraiki" + }, + "sks": { + "english_name": "Maia" + }, + "skt": { + "english_name": "Sakata" + }, + "sku": { + "english_name": "Sakao" + }, + "skv": { + "english_name": "Skou" + }, + "skw": { + "english_name": "Creole Dutch, Skepi" + }, + "skx": { + "english_name": "Seko Padang" + }, + "sky": { + "english_name": "Sikaiana" + }, + "skz": { + "english_name": "Sekar" + }, + "sl": { + "english_name": "Slovenian", + "name": "sloven\u0161\u010dina" + }, + "slc": { + "english_name": "S\u00e1liba" + }, + "sld": { + "english_name": "Sissala" + }, + "sle": { + "english_name": "Sholaga" + }, + "slf": { + "english_name": "Swiss-Italian Sign Language" + }, + "slg": { + "english_name": "Selungai Murut" + }, + "slh": { + "english_name": "Salish, Southern Puget Sound" + }, + "sli": { + "english_name": "Silesian, Lower" + }, + "slj": { + "english_name": "Salum\u00e1" + }, + "sll": { + "english_name": "Salt-Yui" + }, + "slm": { + "english_name": "Sama, Pangutaran" + }, + "sln": { + "english_name": "Salinan" + }, + "slp": { + "english_name": "Lamaholot" + }, + "slq": { + "english_name": "Salchuq" + }, + "slr": { + "english_name": "Salar" + }, + "sls": { + "english_name": "Singapore Sign Language" + }, + "slt": { + "english_name": "Sila" + }, + "slu": { + "english_name": "Selaru" + }, + "slw": { + "english_name": "Sialum" + }, + "slx": { + "english_name": "Salampasu" + }, + "sly": { + "english_name": "Selayar" + }, + "slz": { + "english_name": "Ma'ya" + }, + "sm": { + "english_name": "Samoan" + }, + "sma": { + "english_name": "Sami, Southern" + }, + "smb": { + "english_name": "Simbari" + }, + "smc": { + "english_name": "Som" + }, + "smd": { + "english_name": "Sama" + }, + "smf": { + "english_name": "Auwe" + }, + "smg": { + "english_name": "Simbali" + }, + "smh": { + "english_name": "Samei" + }, + "smj": { + "english_name": "Lule Sami" + }, + "smk": { + "english_name": "Bolinao" + }, + "sml": { + "english_name": "Sama, Central" + }, + "smm": { + "english_name": "Musasa" + }, + "smn": { + "english_name": "Sami, Inari" + }, + "smp": { + "english_name": "Samaritan" + }, + "smq": { + "english_name": "Samo" + }, + "smr": { + "english_name": "Simeulue" + }, + "sms": { + "english_name": "Sami, Skolt" + }, + "smt": { + "english_name": "Simte" + }, + "smu": { + "english_name": "Somray" + }, + "smv": { + "english_name": "Samvedi" + }, + "smw": { + "english_name": "Sumbawa" + }, + "smx": { + "english_name": "Samba" + }, + "smy": { + "english_name": "Semnani" + }, + "smz": { + "english_name": "Simeku" + }, + "sn": { + "english_name": "Shona" + }, + "snb": { + "english_name": "Sebuyau" + }, + "snc": { + "english_name": "Sinaugoro" + }, + "sne": { + "english_name": "Bidayuh, Bau" + }, + "snf": { + "english_name": "Noon" + }, + "sng": { + "english_name": "Sanga (Democratic Republic of Congo)" + }, + "snh": { + "english_name": "Shinabo" + }, + "sni": { + "english_name": "Sensi" + }, + "snj": { + "english_name": "Sango, Riverain" + }, + "snk": { + "english_name": "Soninke" + }, + "snl": { + "english_name": "Sangil" + }, + "snm": { + "english_name": "Ma'di, Southern" + }, + "snn": { + "english_name": "Siona" + }, + "sno": { + "english_name": "Snohomish" + }, + "snp": { + "english_name": "Siane" + }, + "snq": { + "english_name": "Sangu (Gabon)" + }, + "snr": { + "english_name": "Sihan" + }, + "sns": { + "english_name": "South West Bay" + }, + "snu": { + "english_name": "Senggi" + }, + "snv": { + "english_name": "Sa'ban" + }, + "snw": { + "english_name": "Selee" + }, + "snx": { + "english_name": "Sam" + }, + "sny": { + "english_name": "Saniyo-Hiyewe" + }, + "snz": { + "english_name": "Sinsauru" + }, + "so": { + "english_name": "Somali" + }, + "soa": { + "english_name": "Thai Song" + }, + "sob": { + "english_name": "Sobei" + }, + "soc": { + "english_name": "So (Democratic Republic of Congo)" + }, + "sod": { + "english_name": "Songoora" + }, + "soe": { + "english_name": "Songomeno" + }, + "sog": { + "english_name": "Sogdian" + }, + "soh": { + "english_name": "Aka" + }, + "soi": { + "english_name": "Sonha" + }, + "soj": { + "english_name": "Soi" + }, + "sok": { + "english_name": "Sokoro" + }, + "sol": { + "english_name": "Solos" + }, + "soo": { + "english_name": "Songo" + }, + "sop": { + "english_name": "Songe" + }, + "soq": { + "english_name": "Kanasi" + }, + "sor": { + "english_name": "Somrai" + }, + "sos": { + "english_name": "Seeku" + }, + "sou": { + "english_name": "Thai, Southern" + }, + "sov": { + "english_name": "Sonsorol" + }, + "sow": { + "english_name": "Sowanda" + }, + "sox": { + "english_name": "Swo" + }, + "soy": { + "english_name": "Miyobe" + }, + "soz": { + "english_name": "Temi" + }, + "spb": { + "english_name": "Sepa (Indonesia)" + }, + "spc": { + "english_name": "Sap\u00e9" + }, + "spd": { + "english_name": "Saep" + }, + "spe": { + "english_name": "Sepa (Papua New Guinea)" + }, + "spg": { + "english_name": "Sian" + }, + "spi": { + "english_name": "Saponi" + }, + "spk": { + "english_name": "Sengo" + }, + "spl": { + "english_name": "Selepet" + }, + "spm": { + "english_name": "Akukem" + }, + "spo": { + "english_name": "Spokane" + }, + "spp": { + "english_name": "Senoufo, Supyire" + }, + "spq": { + "english_name": "Spanish, Loreto-Ucayali" + }, + "spr": { + "english_name": "Saparua" + }, + "sps": { + "english_name": "Saposa" + }, + "spt": { + "english_name": "Bhoti, Spiti" + }, + "spu": { + "english_name": "Sapuan" + }, + "spv": { + "english_name": "Sambalpuri" + }, + "spx": { + "english_name": "Picene, South" + }, + "spy": { + "english_name": "Sabaot" + }, + "sq": { + "english_name": "Albanian" + }, + "sqa": { + "english_name": "Shama-Sambuga" + }, + "sqh": { + "english_name": "Shau" + }, + "sqk": { + "english_name": "Albanian Sign Language" + }, + "sqm": { + "english_name": "Suma" + }, + "sqn": { + "english_name": "Susquehannock" + }, + "sqo": { + "english_name": "Sorkhei" + }, + "sqq": { + "english_name": "Sou" + }, + "sqr": { + "english_name": "Arabic, Siculo" + }, + "sqs": { + "english_name": "Sri Lankan Sign Language" + }, + "sqt": { + "english_name": "Soqotri" + }, + "squ": { + "english_name": "Squamish" + }, + "sr": { + "english_name": "Serbian", + "name": "\u0441\u0440\u043f\u0441\u043a\u0438" + }, + "sra": { + "english_name": "Saruga" + }, + "srb": { + "english_name": "Sora" + }, + "src": { + "english_name": "Sardinian, Logudorese" + }, + "sre": { + "english_name": "Sara" + }, + "srf": { + "english_name": "Nafi" + }, + "srg": { + "english_name": "Sulod" + }, + "srh": { + "english_name": "Sarikoli" + }, + "sri": { + "english_name": "Siriano" + }, + "srk": { + "english_name": "Serudung Murut" + }, + "srl": { + "english_name": "Isirawa" + }, + "srm": { + "english_name": "Saramaccan" + }, + "srn": { + "english_name": "Sranan Tongo" + }, + "sro": { + "english_name": "Sardinian, Campidanese" + }, + "srq": { + "english_name": "Sirion\u00f3" + }, + "srr": { + "english_name": "Serer" + }, + "srs": { + "english_name": "Sarsi" + }, + "srt": { + "english_name": "Sauri" + }, + "sru": { + "english_name": "Suru\u00ed" + }, + "srv": { + "english_name": "Sorsoganon, Southern" + }, + "srw": { + "english_name": "Serua" + }, + "srx": { + "english_name": "Sirmauri" + }, + "sry": { + "english_name": "Sera" + }, + "srz": { + "english_name": "Shahmirzadi" + }, + "ss": { + "english_name": "Swati" + }, + "ssb": { + "english_name": "Sama, Southern" + }, + "ssc": { + "english_name": "Suba-Simbiti" + }, + "ssd": { + "english_name": "Siroi" + }, + "sse": { + "english_name": "Balangingi" + }, + "ssf": { + "english_name": "Thao" + }, + "ssg": { + "english_name": "Seimat" + }, + "ssh": { + "english_name": "Arabic, Shihhi" + }, + "ssi": { + "english_name": "Sansi" + }, + "ssj": { + "english_name": "Sausi" + }, + "ssk": { + "english_name": "Sunam" + }, + "ssl": { + "english_name": "Sisaala, Western" + }, + "ssm": { + "english_name": "Semnam" + }, + "ssn": { + "english_name": "Waata" + }, + "sso": { + "english_name": "Sissano" + }, + "ssp": { + "english_name": "Spanish Sign Language" + }, + "ssq": { + "english_name": "So'a" + }, + "ssr": { + "english_name": "Swiss-French Sign Language" + }, + "sss": { + "english_name": "S\u00f4" + }, + "sst": { + "english_name": "Sinasina" + }, + "ssu": { + "english_name": "Susuami" + }, + "ssv": { + "english_name": "Shark Bay" + }, + "ssx": { + "english_name": "Samberigi" + }, + "ssy": { + "english_name": "Saho" + }, + "ssz": { + "english_name": "Sengseng" + }, + "st": { + "english_name": "Sotho, Southern" + }, + "sta": { + "english_name": "Settla" + }, + "stb": { + "english_name": "Subanen, Northern" + }, + "std": { + "english_name": "Sentinel" + }, + "ste": { + "english_name": "Liana-Seti" + }, + "stf": { + "english_name": "Seta" + }, + "stg": { + "english_name": "Trieng" + }, + "sth": { + "english_name": "Shelta" + }, + "sti": { + "english_name": "Stieng, Bulo" + }, + "stj": { + "english_name": "Samo, Matya" + }, + "stk": { + "english_name": "Arammba" + }, + "stl": { + "english_name": "Stellingwerfs" + }, + "stm": { + "english_name": "Setaman" + }, + "stn": { + "english_name": "Owa" + }, + "sto": { + "english_name": "Stoney" + }, + "stp": { + "english_name": "Tepehuan, Southeastern" + }, + "stq": { + "english_name": "Saterfriesisch" + }, + "str": { + "english_name": "Salish, Straits" + }, + "sts": { + "english_name": "Shumashti" + }, + "stt": { + "english_name": "Stieng, Budeh" + }, + "stu": { + "english_name": "Samtao" + }, + "stv": { + "english_name": "Silt'e" + }, + "stw": { + "english_name": "Satawalese" + }, + "sty": { + "english_name": "Tatar, Siberian" + }, + "su": { + "english_name": "Sundanese" + }, + "sua": { + "english_name": "Sulka" + }, + "sub": { + "english_name": "Suku" + }, + "suc": { + "english_name": "Subanon, Western" + }, + "sue": { + "english_name": "Suena" + }, + "sug": { + "english_name": "Suganga" + }, + "sui": { + "english_name": "Suki" + }, + "suj": { + "english_name": "Shubi" + }, + "suk": { + "english_name": "Sukuma" + }, + "suq": { + "english_name": "Suri" + }, + "sur": { + "english_name": "Mwaghavul" + }, + "sus": { + "english_name": "Susu" + }, + "sut": { + "english_name": "Subtiaba" + }, + "suv": { + "english_name": "Puroik" + }, + "suw": { + "english_name": "Sumbwa" + }, + "sux": { + "english_name": "Sumerian" + }, + "suy": { + "english_name": "Suy\u00e1" + }, + "suz": { + "english_name": "Sunwar" + }, + "sv": { + "english_name": "Swedish", + "name": "Svenska" + }, + "sva": { + "english_name": "Svan" + }, + "svb": { + "english_name": "Ulau-Suain" + }, + "svc": { + "english_name": "Creole English, Vincentian" + }, + "sve": { + "english_name": "Serili" + }, + "svk": { + "english_name": "Slovakian Sign Language" + }, + "svm": { + "english_name": "Slavomolisano" + }, + "svr": { + "english_name": "Savara" + }, + "svs": { + "english_name": "Savosavo" + }, + "svx": { + "english_name": "Skalvian" + }, + "sw": { + "english_name": "Swahili (macrolanguage)" + }, + "swb": { + "english_name": "Comorian, Maore" + }, + "swc": { + "english_name": "Swahili, Congo" + }, + "swf": { + "english_name": "Sere" + }, + "swg": { + "english_name": "Swabian" + }, + "swh": { + "english_name": "Swahili (individual language)" + }, + "swi": { + "english_name": "Sui" + }, + "swj": { + "english_name": "Sira" + }, + "swk": { + "english_name": "Sena, Malawi" + }, + "swl": { + "english_name": "Swedish Sign Language" + }, + "swm": { + "english_name": "Samosa" + }, + "swn": { + "english_name": "Sawknah" + }, + "swo": { + "english_name": "Shanenawa" + }, + "swp": { + "english_name": "Suau" + }, + "swq": { + "english_name": "Sharwa" + }, + "swr": { + "english_name": "Saweru" + }, + "sws": { + "english_name": "Seluwasan" + }, + "swt": { + "english_name": "Sawila" + }, + "swu": { + "english_name": "Suwawa" + }, + "swv": { + "english_name": "Shekhawati" + }, + "sww": { + "english_name": "Sowa" + }, + "swx": { + "english_name": "Suruah\u00e1" + }, + "swy": { + "english_name": "Sarua" + }, + "sxb": { + "english_name": "Suba" + }, + "sxc": { + "english_name": "Sicanian" + }, + "sxe": { + "english_name": "Sighu" + }, + "sxg": { + "english_name": "Shixing" + }, + "sxk": { + "english_name": "Kalapuya, Southern" + }, + "sxl": { + "english_name": "Selian" + }, + "sxm": { + "english_name": "Samre" + }, + "sxn": { + "english_name": "Sangir" + }, + "sxo": { + "english_name": "Sorothaptic" + }, + "sxr": { + "english_name": "Saaroa" + }, + "sxs": { + "english_name": "Sasaru" + }, + "sxu": { + "english_name": "Saxon, Upper" + }, + "sxw": { + "english_name": "Gbe, Saxwe" + }, + "sya": { + "english_name": "Siang" + }, + "syb": { + "english_name": "Subanen, Central" + }, + "syc": { + "english_name": "Syriac, Classical" + }, + "syi": { + "english_name": "Seki" + }, + "syk": { + "english_name": "Sukur" + }, + "syl": { + "english_name": "Sylheti" + }, + "sym": { + "english_name": "Samo, Maya" + }, + "syn": { + "english_name": "Senaya" + }, + "syo": { + "english_name": "Suoy" + }, + "syr": { + "english_name": "Syriac" + }, + "sys": { + "english_name": "Sinyar" + }, + "syw": { + "english_name": "Kagate" + }, + "syy": { + "english_name": "Al-Sayyid Bedouin Sign Language" + }, + "sza": { + "english_name": "Semelai" + }, + "szb": { + "english_name": "Ngalum" + }, + "szc": { + "english_name": "Semaq Beri" + }, + "szd": { + "english_name": "Seru" + }, + "sze": { + "english_name": "Seze" + }, + "szg": { + "english_name": "Sengele" + }, + "szl": { + "english_name": "Silesian" + }, + "szn": { + "english_name": "Sula" + }, + "szp": { + "english_name": "Suabo" + }, + "szv": { + "english_name": "Isu (Fako Division)" + }, + "szw": { + "english_name": "Sawai" + }, + "ta": { + "english_name": "Tamil", + "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" + }, + "taa": { + "english_name": "Tanana, Lower" + }, + "tab": { + "english_name": "Tabassaran" + }, + "tac": { + "english_name": "Tarahumara, Lowland" + }, + "tad": { + "english_name": "Tause" + }, + "tae": { + "english_name": "Tariana" + }, + "taf": { + "english_name": "Tapirap\u00e9" + }, + "tag": { + "english_name": "Tagoi" + }, + "taj": { + "english_name": "Tamang, Eastern" + }, + "tak": { + "english_name": "Tala" + }, + "tal": { + "english_name": "Tal" + }, + "tan": { + "english_name": "Tangale" + }, + "tao": { + "english_name": "Yami" + }, + "tap": { + "english_name": "Taabwa" + }, + "taq": { + "english_name": "Tamasheq" + }, + "tar": { + "english_name": "Tarahumara, Central" + }, + "tas": { + "english_name": "Tay Boi" + }, + "tau": { + "english_name": "Tanana, Upper" + }, + "tav": { + "english_name": "Tatuyo" + }, + "taw": { + "english_name": "Tai" + }, + "tax": { + "english_name": "Tamki" + }, + "tay": { + "english_name": "Atayal" + }, + "taz": { + "english_name": "Tocho" + }, + "tba": { + "english_name": "Aikan\u00e3" + }, + "tbb": { + "english_name": "Tapeba" + }, + "tbc": { + "english_name": "Takia" + }, + "tbd": { + "english_name": "Kaki Ae" + }, + "tbe": { + "english_name": "Tanimbili" + }, + "tbf": { + "english_name": "Mandara" + }, + "tbg": { + "english_name": "Tairora, North" + }, + "tbh": { + "english_name": "Thurawal" + }, + "tbi": { + "english_name": "Gaam" + }, + "tbj": { + "english_name": "Tiang" + }, + "tbk": { + "english_name": "Tagbanwa, Calamian" + }, + "tbl": { + "english_name": "Tboli" + }, + "tbm": { + "english_name": "Tagbu" + }, + "tbn": { + "english_name": "Tunebo, Barro Negro" + }, + "tbo": { + "english_name": "Tawala" + }, + "tbp": { + "english_name": "Taworta" + }, + "tbr": { + "english_name": "Tumtum" + }, + "tbs": { + "english_name": "Tanguat" + }, + "tbt": { + "english_name": "Tembo (Kitembo)" + }, + "tbu": { + "english_name": "Tubar" + }, + "tbv": { + "english_name": "Tobo" + }, + "tbw": { + "english_name": "Tagbanwa" + }, + "tbx": { + "english_name": "Kapin" + }, + "tby": { + "english_name": "Tabaru" + }, + "tbz": { + "english_name": "Ditammari" + }, + "tca": { + "english_name": "Ticuna" + }, + "tcb": { + "english_name": "Tanacross" + }, + "tcc": { + "english_name": "Datooga" + }, + "tcd": { + "english_name": "Tafi" + }, + "tce": { + "english_name": "Tutchone, Southern" + }, + "tcf": { + "english_name": "Me'phaa, Malinaltepec" + }, + "tcg": { + "english_name": "Tamagario" + }, + "tch": { + "english_name": "Creole English, Turks And Caicos" + }, + "tci": { + "english_name": "W\u00e1ra" + }, + "tck": { + "english_name": "Tchitchege" + }, + "tcl": { + "english_name": "Taman (Myanmar)" + }, + "tcm": { + "english_name": "Tanahmerah" + }, + "tcn": { + "english_name": "Tichurong" + }, + "tco": { + "english_name": "Taungyo" + }, + "tcp": { + "english_name": "Chin, Tawr" + }, + "tcq": { + "english_name": "Kaiy" + }, + "tcs": { + "english_name": "Creole, Torres Strait" + }, + "tct": { + "english_name": "T'en" + }, + "tcu": { + "english_name": "Tarahumara, Southeastern" + }, + "tcw": { + "english_name": "Totonac, Tecpatl\u00e1n" + }, + "tcx": { + "english_name": "Toda" + }, + "tcy": { + "english_name": "Tulu" + }, + "tcz": { + "english_name": "Chin, Thado" + }, + "tda": { + "english_name": "Tagdal" + }, + "tdb": { + "english_name": "Panchpargania" + }, + "tdc": { + "english_name": "Ember\u00e1-Tad\u00f3" + }, + "tdd": { + "english_name": "Tai N\u00fca" + }, + "tde": { + "english_name": "Dogon, Tiranige Diga" + }, + "tdf": { + "english_name": "Talieng" + }, + "tdg": { + "english_name": "Tamang, Western" + }, + "tdh": { + "english_name": "Thulung" + }, + "tdi": { + "english_name": "Tomadino" + }, + "tdj": { + "english_name": "Tajio" + }, + "tdk": { + "english_name": "Tambas" + }, + "tdl": { + "english_name": "Sur" + }, + "tdn": { + "english_name": "Tondano" + }, + "tdo": { + "english_name": "Teme" + }, + "tdq": { + "english_name": "Tita" + }, + "tdr": { + "english_name": "Todrah" + }, + "tds": { + "english_name": "Doutai" + }, + "tdt": { + "english_name": "Tetun Dili" + }, + "tdu": { + "english_name": "Dusun, Tempasuk" + }, + "tdv": { + "english_name": "Toro" + }, + "tdx": { + "english_name": "Malagasy, Tandroy-Mahafaly" + }, + "tdy": { + "english_name": "Tadyawan" + }, + "te": { + "english_name": "Telugu" + }, + "tea": { + "english_name": "Temiar" + }, + "teb": { + "english_name": "Tetete" + }, + "tec": { + "english_name": "Terik" + }, + "ted": { + "english_name": "Krumen, Tepo" + }, + "tee": { + "english_name": "Tepehua, Huehuetla" + }, + "tef": { + "english_name": "Teressa" + }, + "teg": { + "english_name": "Teke-Tege" + }, + "teh": { + "english_name": "Tehuelche" + }, + "tei": { + "english_name": "Torricelli" + }, + "tek": { + "english_name": "Teke, Ibali" + }, + "tem": { + "english_name": "Timne" + }, + "ten": { + "english_name": "Tama (Colombia)" + }, + "teo": { + "english_name": "Teso" + }, + "tep": { + "english_name": "Tepecano" + }, + "teq": { + "english_name": "Temein" + }, + "ter": { + "english_name": "Tereno" + }, + "tes": { + "english_name": "Tengger" + }, + "tet": { + "english_name": "Tetum" + }, + "teu": { + "english_name": "Soo" + }, + "tev": { + "english_name": "Teor" + }, + "tew": { + "english_name": "Tewa (USA)" + }, + "tex": { + "english_name": "Tennet" + }, + "tey": { + "english_name": "Tulishi" + }, + "tfi": { + "english_name": "Gbe, Tofin" + }, + "tfn": { + "english_name": "Tanaina" + }, + "tfo": { + "english_name": "Tefaro" + }, + "tfr": { + "english_name": "Teribe" + }, + "tft": { + "english_name": "Ternate" + }, + "tg": { + "english_name": "Tajik" + }, + "tga": { + "english_name": "Sagalla" + }, + "tgb": { + "english_name": "Tobilung" + }, + "tgc": { + "english_name": "Tigak" + }, + "tgd": { + "english_name": "Ciwogai" + }, + "tge": { + "english_name": "Tamang, Eastern Gorkha" + }, + "tgf": { + "english_name": "Chalikha" + }, + "tgh": { + "english_name": "Creole English, Tobagonian" + }, + "tgi": { + "english_name": "Lawunuia" + }, + "tgj": { + "english_name": "Tagin" + }, + "tgn": { + "english_name": "Tandaganon" + }, + "tgo": { + "english_name": "Sudest" + }, + "tgp": { + "english_name": "Tangoa" + }, + "tgq": { + "english_name": "Tring" + }, + "tgr": { + "english_name": "Tareng" + }, + "tgs": { + "english_name": "Nume" + }, + "tgt": { + "english_name": "Tagbanwa, Central" + }, + "tgu": { + "english_name": "Tanggu" + }, + "tgv": { + "english_name": "Tingui-Boto" + }, + "tgw": { + "english_name": "Senoufo, Tagwana" + }, + "tgx": { + "english_name": "Tagish" + }, + "tgy": { + "english_name": "Togoyo" + }, + "tgz": { + "english_name": "Tagalaka" + }, + "th": { + "english_name": "Thai", + "name": "\u0e44\u0e17\u0e22" + }, + "thc": { + "english_name": "Tai Hang Tong" + }, + "thd": { + "english_name": "Thayore" + }, + "the": { + "english_name": "Tharu, Chitwania" + }, + "thf": { + "english_name": "Thangmi" + }, + "thh": { + "english_name": "Tarahumara, Northern" + }, + "thi": { + "english_name": "Tai Long" + }, + "thk": { + "english_name": "Tharaka" + }, + "thl": { + "english_name": "Tharu, Dangaura" + }, + "thm": { + "english_name": "Aheu" + }, + "thn": { + "english_name": "Thachanadan" + }, + "thp": { + "english_name": "Thompson" + }, + "thq": { + "english_name": "Tharu, Kochila" + }, + "thr": { + "english_name": "Tharu, Rana" + }, + "ths": { + "english_name": "Thakali" + }, + "tht": { + "english_name": "Tahltan" + }, + "thu": { + "english_name": "Thuri" + }, + "thv": { + "english_name": "Tamahaq, Tahaggart" + }, + "thw": { + "english_name": "Thudam" + }, + "thy": { + "english_name": "Tha" + }, + "thz": { + "english_name": "Tamajeq, Tayart" + }, + "ti": { + "english_name": "Tigrinya", + "name": "\u1275\u130d\u122d\u129b" + }, + "tia": { + "english_name": "Tamazight, Tidikelt" + }, + "tic": { + "english_name": "Tira" + }, + "tid": { + "english_name": "Tidong" + }, + "tif": { + "english_name": "Tifal" + }, + "tig": { + "english_name": "Tigre", + "name": "\u1275\u130d\u1228" + }, + "tih": { + "english_name": "Murut, Timugon" + }, + "tii": { + "english_name": "Tiene" + }, + "tij": { + "english_name": "Tilung" + }, + "tik": { + "english_name": "Tikar" + }, + "til": { + "english_name": "Tillamook" + }, + "tim": { + "english_name": "Timbe" + }, + "tin": { + "english_name": "Tindi" + }, + "tio": { + "english_name": "Teop" + }, + "tip": { + "english_name": "Trimuris" + }, + "tiq": { + "english_name": "Ti\u00e9fo" + }, + "tis": { + "english_name": "Itneg, Masadiit" + }, + "tit": { + "english_name": "Tinigua" + }, + "tiu": { + "english_name": "Adasen" + }, + "tiv": { + "english_name": "Tiv" + }, + "tiw": { + "english_name": "Tiwi" + }, + "tix": { + "english_name": "Tiwa, Southern" + }, + "tiy": { + "english_name": "Tiruray" + }, + "tiz": { + "english_name": "Tai Hongjin" + }, + "tja": { + "english_name": "Tajuasohn" + }, + "tjg": { + "english_name": "Tunjung" + }, + "tji": { + "english_name": "Tujia, Northern" + }, + "tjl": { + "english_name": "Tai Laing" + }, + "tjm": { + "english_name": "Timucua" + }, + "tjn": { + "english_name": "Tonjon" + }, + "tjo": { + "english_name": "Tamazight, Temacine" + }, + "tjs": { + "english_name": "Tujia, Southern" + }, + "tju": { + "english_name": "Tjurruru" + }, + "tjw": { + "english_name": "Djabwurrung" + }, + "tk": { + "english_name": "Turkmen" + }, + "tka": { + "english_name": "Truk\u00e1" + }, + "tkb": { + "english_name": "Buksa" + }, + "tkd": { + "english_name": "Tukudede" + }, + "tke": { + "english_name": "Takwane" + }, + "tkf": { + "english_name": "Tukumanf\u00e9d" + }, + "tkg": { + "english_name": "Malagasy, Tesaka" + }, + "tkl": { + "english_name": "Tokelau" + }, + "tkm": { + "english_name": "Takelma" + }, + "tkn": { + "english_name": "Toku-No-Shima" + }, + "tkp": { + "english_name": "Tikopia" + }, + "tkq": { + "english_name": "Tee" + }, + "tkr": { + "english_name": "Tsakhur" + }, + "tks": { + "english_name": "Takestani" + }, + "tkt": { + "english_name": "Tharu, Kathoriya" + }, + "tku": { + "english_name": "Totonac, Upper Necaxa" + }, + "tkw": { + "english_name": "Teanu" + }, + "tkx": { + "english_name": "Tangko" + }, + "tkz": { + "english_name": "Takua" + }, + "tl": { + "english_name": "Tagalog" + }, + "tla": { + "english_name": "Tepehuan, Southwestern" + }, + "tlb": { + "english_name": "Tobelo" + }, + "tlc": { + "english_name": "Totonac, Yecuatla" + }, + "tld": { + "english_name": "Talaud" + }, + "tlf": { + "english_name": "Telefol" + }, + "tlg": { + "english_name": "Tofanma" + }, + "tlh": { + "english_name": "Klingon" + }, + "tli": { + "english_name": "Tlingit" + }, + "tlj": { + "english_name": "Talinga-Bwisi" + }, + "tlk": { + "english_name": "Taloki" + }, + "tll": { + "english_name": "Tetela" + }, + "tlm": { + "english_name": "Tolomako" + }, + "tln": { + "english_name": "Talondo'" + }, + "tlo": { + "english_name": "Talodi" + }, + "tlp": { + "english_name": "Totonac, Filomena Mata-Coahuitl\u00e1n" + }, + "tlq": { + "english_name": "Tai Loi" + }, + "tlr": { + "english_name": "Talise" + }, + "tls": { + "english_name": "Tambotalo" + }, + "tlt": { + "english_name": "Teluti" + }, + "tlu": { + "english_name": "Tulehu" + }, + "tlv": { + "english_name": "Taliabu" + }, + "tlx": { + "english_name": "Khehek" + }, + "tly": { + "english_name": "Talysh" + }, + "tma": { + "english_name": "Tama (Chad)" + }, + "tmb": { + "english_name": "Katbol" + }, + "tmc": { + "english_name": "Tumak" + }, + "tmd": { + "english_name": "Haruai" + }, + "tme": { + "english_name": "Trememb\u00e9" + }, + "tmf": { + "english_name": "Toba-Maskoy" + }, + "tmg": { + "english_name": "Ternate\u00f1o" + }, + "tmh": { + "english_name": "Tamashek" + }, + "tmi": { + "english_name": "Tutuba" + }, + "tmj": { + "english_name": "Samarokena" + }, + "tmk": { + "english_name": "Tamang, Northwestern" + }, + "tml": { + "english_name": "Citak, Tamnim" + }, + "tmm": { + "english_name": "Tai Thanh" + }, + "tmn": { + "english_name": "Taman (Indonesia)" + }, + "tmo": { + "english_name": "Temoq" + }, + "tmp": { + "english_name": "Tai M\u00e8ne" + }, + "tmq": { + "english_name": "Tumleo" + }, + "tmr": { + "english_name": "Aramaic, Jewish Babylonian (ca. 200-1200 CE)" + }, + "tms": { + "english_name": "Tima" + }, + "tmt": { + "english_name": "Tasmate" + }, + "tmu": { + "english_name": "Iau" + }, + "tmv": { + "english_name": "Tembo (Motembo)" + }, + "tmw": { + "english_name": "Temuan" + }, + "tmy": { + "english_name": "Tami" + }, + "tmz": { + "english_name": "Tamanaku" + }, + "tn": { + "english_name": "Tswana" + }, + "tna": { + "english_name": "Tacana" + }, + "tnb": { + "english_name": "Tunebo, Western" + }, + "tnc": { + "english_name": "Tanimuca-Retuar\u00e3" + }, + "tnd": { + "english_name": "Tunebo, Angosturas" + }, + "tne": { + "english_name": "Kallahan, Tinoc" + }, + "tng": { + "english_name": "Tobanga" + }, + "tnh": { + "english_name": "Maiani" + }, + "tni": { + "english_name": "Tandia" + }, + "tnk": { + "english_name": "Kwamera" + }, + "tnl": { + "english_name": "Lenakel" + }, + "tnm": { + "english_name": "Tabla" + }, + "tnn": { + "english_name": "Tanna, North" + }, + "tno": { + "english_name": "Toromono" + }, + "tnp": { + "english_name": "Whitesands" + }, + "tnq": { + "english_name": "Taino" + }, + "tnr": { + "english_name": "M\u00e9nik" + }, + "tns": { + "english_name": "Tenis" + }, + "tnt": { + "english_name": "Tontemboan" + }, + "tnu": { + "english_name": "Tay Khang" + }, + "tnv": { + "english_name": "Tangchangya" + }, + "tnw": { + "english_name": "Tonsawang" + }, + "tnx": { + "english_name": "Tanema" + }, + "tny": { + "english_name": "Tongwe" + }, + "tnz": { + "english_name": "Tonga (Thailand)" + }, + "to": { + "english_name": "Tonga (Tonga Islands)" + }, + "tob": { + "english_name": "Toba" + }, + "toc": { + "english_name": "Totonac, Coyutla" + }, + "tod": { + "english_name": "Toma" + }, + "toe": { + "english_name": "Tomedes" + }, + "tof": { + "english_name": "Gizrra" + }, + "tog": { + "english_name": "Tonga (Nyasa)" + }, + "toh": { + "english_name": "Gitonga" + }, + "toi": { + "english_name": "Tonga (Zambia)" + }, + "toj": { + "english_name": "Tojolabal" + }, + "tol": { + "english_name": "Tolowa" + }, + "tom": { + "english_name": "Tombulu" + }, + "too": { + "english_name": "Totonac, Xicotepec De Ju\u00e1rez" + }, + "top": { + "english_name": "Totonac, Papantla" + }, + "toq": { + "english_name": "Toposa" + }, + "tor": { + "english_name": "Banda, Togbo-Vara" + }, + "tos": { + "english_name": "Totonac, Highland" + }, + "tou": { + "english_name": "Tho" + }, + "tov": { + "english_name": "Taromi, Upper" + }, + "tow": { + "english_name": "Jemez" + }, + "tox": { + "english_name": "Tobian" + }, + "toy": { + "english_name": "Topoiyo" + }, + "toz": { + "english_name": "To" + }, + "tpa": { + "english_name": "Taupota" + }, + "tpc": { + "english_name": "Me'phaa, Azoy\u00fa" + }, + "tpe": { + "english_name": "Tippera" + }, + "tpf": { + "english_name": "Tarpia" + }, + "tpg": { + "english_name": "Kula" + }, + "tpi": { + "english_name": "Tok Pisin" + }, + "tpj": { + "english_name": "Tapiet\u00e9" + }, + "tpk": { + "english_name": "Tupinikin" + }, + "tpl": { + "english_name": "Me'phaa, Tlacoapa" + }, + "tpm": { + "english_name": "Tampulma" + }, + "tpn": { + "english_name": "Tupinamb\u00e1" + }, + "tpo": { + "english_name": "Tai Pao" + }, + "tpp": { + "english_name": "Tepehua, Pisaflores" + }, + "tpq": { + "english_name": "Tukpa" + }, + "tpr": { + "english_name": "Tupar\u00ed" + }, + "tpt": { + "english_name": "Tepehua, Tlachichilco" + }, + "tpu": { + "english_name": "Tampuan" + }, + "tpv": { + "english_name": "Tanapag" + }, + "tpw": { + "english_name": "Tup\u00ed" + }, + "tpx": { + "english_name": "Me'phaa, Acatepec" + }, + "tpy": { + "english_name": "Trumai" + }, + "tpz": { + "english_name": "Tinputz" + }, + "tqb": { + "english_name": "Temb\u00e9" + }, + "tql": { + "english_name": "Lehali" + }, + "tqm": { + "english_name": "Turumsa" + }, + "tqn": { + "english_name": "Tenino" + }, + "tqo": { + "english_name": "Toaripi" + }, + "tqp": { + "english_name": "Tomoip" + }, + "tqq": { + "english_name": "Tunni" + }, + "tqr": { + "english_name": "Torona" + }, + "tqt": { + "english_name": "Totonac, Western" + }, + "tqu": { + "english_name": "Touo" + }, + "tqw": { + "english_name": "Tonkawa" + }, + "tr": { + "english_name": "Turkish", + "name": "T\u00fcrk\u00e7e" + }, + "tra": { + "english_name": "Tirahi" + }, + "trb": { + "english_name": "Terebu" + }, + "trc": { + "english_name": "Triqui, Copala" + }, + "trd": { + "english_name": "Turi" + }, + "tre": { + "english_name": "Tarangan, East" + }, + "trf": { + "english_name": "Creole English, Trinidadian" + }, + "trg": { + "english_name": "Lish\u00e1n Did\u00e1n" + }, + "trh": { + "english_name": "Turaka" + }, + "tri": { + "english_name": "Tri\u00f3" + }, + "trj": { + "english_name": "Toram" + }, + "trl": { + "english_name": "Scottish, Traveller" + }, + "trm": { + "english_name": "Tregami" + }, + "trn": { + "english_name": "Trinitario" + }, + "tro": { + "english_name": "Naga, Tarao" + }, + "trp": { + "english_name": "Kok Borok" + }, + "trq": { + "english_name": "Triqui, San Mart\u00edn Itunyoso" + }, + "trr": { + "english_name": "Taushiro" + }, + "trs": { + "english_name": "Triqui, Chicahuaxtla" + }, + "trt": { + "english_name": "Tunggare" + }, + "tru": { + "english_name": "Turoyo" + }, + "trv": { + "english_name": "Taroko" + }, + "trw": { + "english_name": "Torwali" + }, + "trx": { + "english_name": "Bidayuh, Tringgus-Sembaan" + }, + "try": { + "english_name": "Turung" + }, + "trz": { + "english_name": "Tor\u00e1" + }, + "ts": { + "english_name": "Tsonga" + }, + "tsa": { + "english_name": "Tsaangi" + }, + "tsb": { + "english_name": "Tsamai" + }, + "tsc": { + "english_name": "Tswa" + }, + "tsd": { + "english_name": "Tsakonian" + }, + "tse": { + "english_name": "Tunisian Sign Language" + }, + "tsg": { + "english_name": "Tausug" + }, + "tsh": { + "english_name": "Tsuvan" + }, + "tsi": { + "english_name": "Tsimshian" + }, + "tsj": { + "english_name": "Tshangla" + }, + "tsk": { + "english_name": "Tseku" + }, + "tsl": { + "english_name": "Ts'\u00fcn-Lao" + }, + "tsm": { + "english_name": "Turkish Sign Language" + }, + "tsp": { + "english_name": "Toussian, Northern" + }, + "tsq": { + "english_name": "Thai Sign Language" + }, + "tsr": { + "english_name": "Akei" + }, + "tss": { + "english_name": "Taiwan Sign Language" + }, + "tst": { + "english_name": "Songway Kiini, Tondi" + }, + "tsu": { + "english_name": "Tsou" + }, + "tsv": { + "english_name": "Tsogo" + }, + "tsw": { + "english_name": "Tsishingini" + }, + "tsx": { + "english_name": "Mubami" + }, + "tsy": { + "english_name": "Tebul Sign Language" + }, + "tsz": { + "english_name": "Purepecha" + }, + "tt": { + "english_name": "Tatar", + "name": "\u0422\u0430\u0442\u0430\u0440\u0447\u0430" + }, + "tta": { + "english_name": "Tutelo" + }, + "ttb": { + "english_name": "Gaa" + }, + "ttc": { + "english_name": "Tektiteko" + }, + "ttd": { + "english_name": "Tauade" + }, + "tte": { + "english_name": "Bwanabwana" + }, + "ttf": { + "english_name": "Tuotomb" + }, + "ttg": { + "english_name": "Tutong" + }, + "tth": { + "english_name": "Ta'oih, Upper" + }, + "tti": { + "english_name": "Tobati" + }, + "ttj": { + "english_name": "Tooro" + }, + "ttk": { + "english_name": "Totoro" + }, + "ttl": { + "english_name": "Totela" + }, + "ttm": { + "english_name": "Tutchone, Northern" + }, + "ttn": { + "english_name": "Towei" + }, + "tto": { + "english_name": "Ta'oih, Lower" + }, + "ttp": { + "english_name": "Tombelala" + }, + "ttq": { + "english_name": "Tamajaq, Tawallammat" + }, + "ttr": { + "english_name": "Tera" + }, + "tts": { + "english_name": "Thai, Northeastern" + }, + "ttt": { + "english_name": "Tat, Muslim" + }, + "ttu": { + "english_name": "Torau" + }, + "ttv": { + "english_name": "Titan" + }, + "ttw": { + "english_name": "Long Wat" + }, + "tty": { + "english_name": "Sikaritai" + }, + "ttz": { + "english_name": "Tsum" + }, + "tua": { + "english_name": "Wiarumus" + }, + "tub": { + "english_name": "T\u00fcbatulabal" + }, + "tuc": { + "english_name": "Mutu" + }, + "tud": { + "english_name": "Tux\u00e1" + }, + "tue": { + "english_name": "Tuyuca" + }, + "tuf": { + "english_name": "Tunebo, Central" + }, + "tug": { + "english_name": "Tunia" + }, + "tuh": { + "english_name": "Taulil" + }, + "tui": { + "english_name": "Tupuri" + }, + "tuj": { + "english_name": "Tugutil" + }, + "tul": { + "english_name": "Tula" + }, + "tum": { + "english_name": "Tumbuka" + }, + "tun": { + "english_name": "Tunica" + }, + "tuo": { + "english_name": "Tucano" + }, + "tuq": { + "english_name": "Tedaga" + }, + "tus": { + "english_name": "Tuscarora" + }, + "tuu": { + "english_name": "Tututni" + }, + "tuv": { + "english_name": "Turkana" + }, + "tux": { + "english_name": "Tuxin\u00e1wa" + }, + "tuy": { + "english_name": "Tugen" + }, + "tuz": { + "english_name": "Turka" + }, + "tva": { + "english_name": "Vaghua" + }, + "tvd": { + "english_name": "Tsuvadi" + }, + "tve": { + "english_name": "Te'un" + }, + "tvk": { + "english_name": "Ambrym, Southeast" + }, + "tvl": { + "english_name": "Tuvalu" + }, + "tvm": { + "english_name": "Tela-Masbuar" + }, + "tvn": { + "english_name": "Tavoyan" + }, + "tvo": { + "english_name": "Tidore" + }, + "tvs": { + "english_name": "Taveta" + }, + "tvt": { + "english_name": "Naga, Tutsa" + }, + "tvu": { + "english_name": "Tunen" + }, + "tvw": { + "english_name": "Sedoa" + }, + "tvy": { + "english_name": "Pidgin, Timor" + }, + "tw": { + "english_name": "Twi" + }, + "twa": { + "english_name": "Twana" + }, + "twb": { + "english_name": "Tawbuid, Western" + }, + "twc": { + "english_name": "Teshenawa" + }, + "twd": { + "english_name": "Twents" + }, + "twe": { + "english_name": "Tewa (Indonesia)" + }, + "twf": { + "english_name": "Tiwa, Northern" + }, + "twg": { + "english_name": "Tereweng" + }, + "twh": { + "english_name": "Tai D\u00f3n" + }, + "twl": { + "english_name": "Tawara" + }, + "twm": { + "english_name": "Monpa, Tawang" + }, + "twn": { + "english_name": "Twendi" + }, + "two": { + "english_name": "Tswapong" + }, + "twp": { + "english_name": "Ere" + }, + "twq": { + "english_name": "Tasawaq" + }, + "twr": { + "english_name": "Tarahumara, Southwestern" + }, + "twt": { + "english_name": "Turiw\u00e1ra" + }, + "twu": { + "english_name": "Termanu" + }, + "tww": { + "english_name": "Tuwari" + }, + "twx": { + "english_name": "Tewe" + }, + "twy": { + "english_name": "Tawoyan" + }, + "txa": { + "english_name": "Tombonuo" + }, + "txb": { + "english_name": "Tokharian B" + }, + "txc": { + "english_name": "Tsetsaut" + }, + "txe": { + "english_name": "Totoli" + }, + "txg": { + "english_name": "Tangut" + }, + "txh": { + "english_name": "Thracian" + }, + "txi": { + "english_name": "Ikpeng" + }, + "txm": { + "english_name": "Tomini" + }, + "txn": { + "english_name": "Tarangan, West" + }, + "txo": { + "english_name": "Toto" + }, + "txq": { + "english_name": "Tii" + }, + "txr": { + "english_name": "Tartessian" + }, + "txs": { + "english_name": "Tonsea" + }, + "txt": { + "english_name": "Citak" + }, + "txu": { + "english_name": "Kayap\u00f3" + }, + "txx": { + "english_name": "Tatana" + }, + "txy": { + "english_name": "Malagasy, Tanosy" + }, + "ty": { + "english_name": "Tahitian" + }, + "tya": { + "english_name": "Tauya" + }, + "tye": { + "english_name": "Kyanga" + }, + "tyh": { + "english_name": "O'du" + }, + "tyi": { + "english_name": "Teke-Tsaayi" + }, + "tyj": { + "english_name": "Tai Do" + }, + "tyl": { + "english_name": "Thu Lao" + }, + "tyn": { + "english_name": "Kombai" + }, + "typ": { + "english_name": "Thaypan" + }, + "tyr": { + "english_name": "Tai Daeng" + }, + "tys": { + "english_name": "T\u00e0y Sa Pa" + }, + "tyt": { + "english_name": "T\u00e0y Tac" + }, + "tyu": { + "english_name": "Kua" + }, + "tyv": { + "english_name": "Tuvinian" + }, + "tyx": { + "english_name": "Teke-Tyee" + }, + "tyz": { + "english_name": "T\u00e0y" + }, + "tza": { + "english_name": "Tanzanian Sign Language" + }, + "tzh": { + "english_name": "Tzeltal" + }, + "tzj": { + "english_name": "Tz'utujil" + }, + "tzl": { + "english_name": "Talossan" + }, + "tzm": { + "english_name": "Tamazight, Central Atlas" + }, + "tzn": { + "english_name": "Tugun" + }, + "tzo": { + "english_name": "Tzotzil" + }, + "tzx": { + "english_name": "Tabriak" + }, + "uam": { + "english_name": "Uamu\u00e9" + }, + "uan": { + "english_name": "Kuan" + }, + "uar": { + "english_name": "Tairuma" + }, + "uba": { + "english_name": "Ubang" + }, + "ubi": { + "english_name": "Ubi" + }, + "ubl": { + "english_name": "Bikol, Buhi'non" + }, + "ubr": { + "english_name": "Ubir" + }, + "ubu": { + "english_name": "Umbu-Ungu" + }, + "uby": { + "english_name": "Ubykh" + }, + "uda": { + "english_name": "Uda" + }, + "ude": { + "english_name": "Udihe" + }, + "udg": { + "english_name": "Muduga" + }, + "udi": { + "english_name": "Udi" + }, + "udj": { + "english_name": "Ujir" + }, + "udl": { + "english_name": "Wuzlam" + }, + "udm": { + "english_name": "Udmurt" + }, + "udu": { + "english_name": "Uduk" + }, + "ues": { + "english_name": "Kioko" + }, + "ufi": { + "english_name": "Ufim" + }, + "ug": { + "english_name": "Uighur" + }, + "uga": { + "english_name": "Ugaritic" + }, + "ugb": { + "english_name": "Kuku-Ugbanh" + }, + "uge": { + "english_name": "Ughele" + }, + "ugn": { + "english_name": "Ugandan Sign Language" + }, + "ugo": { + "english_name": "Ugong" + }, + "ugy": { + "english_name": "Uruguayan Sign Language" + }, + "uha": { + "english_name": "Uhami" + }, + "uhn": { + "english_name": "Damal" + }, + "uis": { + "english_name": "Uisai" + }, + "uiv": { + "english_name": "Iyive" + }, + "uji": { + "english_name": "Tanjijili" + }, + "uk": { + "english_name": "Ukrainian", + "name": "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "uka": { + "english_name": "Kaburi" + }, + "ukg": { + "english_name": "Ukuriguma" + }, + "ukh": { + "english_name": "Ukhwejo" + }, + "ukl": { + "english_name": "Ukrainian Sign Language" + }, + "ukp": { + "english_name": "Ukpe-Bayobiri" + }, + "ukq": { + "english_name": "Ukwa" + }, + "uks": { + "english_name": "Urub\u00fa-Kaapor Sign Language" + }, + "uku": { + "english_name": "Ukue" + }, + "ukw": { + "english_name": "Ukwuani-Aboh-Ndoni" + }, + "uky": { + "english_name": "Kuuk-Yak" + }, + "ula": { + "english_name": "Fungwa" + }, + "ulb": { + "english_name": "Ulukwumi" + }, + "ulc": { + "english_name": "Ulch" + }, + "ule": { + "english_name": "Lule" + }, + "ulf": { + "english_name": "Usku" + }, + "uli": { + "english_name": "Ulithian" + }, + "ulk": { + "english_name": "Meriam" + }, + "ull": { + "english_name": "Ullatan" + }, + "ulm": { + "english_name": "Ulumanda'" + }, + "uln": { + "english_name": "Unserdeutsch" + }, + "ulu": { + "english_name": "Uma' Lung" + }, + "ulw": { + "english_name": "Ulwa" + }, + "uma": { + "english_name": "Umatilla" + }, + "umb": { + "english_name": "Umbundu" + }, + "umc": { + "english_name": "Marrucinian" + }, + "umd": { + "english_name": "Umbindhamu" + }, + "umg": { + "english_name": "Umbuygamu" + }, + "umi": { + "english_name": "Ukit" + }, + "umm": { + "english_name": "Umon" + }, + "umn": { + "english_name": "Naga, Makyan" + }, + "umo": { + "english_name": "Umot\u00edna" + }, + "ump": { + "english_name": "Umpila" + }, + "umr": { + "english_name": "Umbugarla" + }, + "ums": { + "english_name": "Pendau" + }, + "umu": { + "english_name": "Munsee" + }, + "una": { + "english_name": "Watut, North" + }, + "und": { + "english_name": "Undetermined" + }, + "une": { + "english_name": "Uneme" + }, + "ung": { + "english_name": "Ngarinyin" + }, + "unk": { + "english_name": "Enawen\u00e9-Naw\u00e9" + }, + "unm": { + "english_name": "Unami" + }, + "unn": { + "english_name": "Kurnai" + }, + "unr": { + "english_name": "Mundari" + }, + "unu": { + "english_name": "Unubahe" + }, + "unx": { + "english_name": "Munda" + }, + "unz": { + "english_name": "Kaili, Unde" + }, + "upi": { + "english_name": "Umeda" + }, + "upv": { + "english_name": "Uripiv-Wala-Rano-Atchin" + }, + "ur": { + "english_name": "Urdu" + }, + "ura": { + "english_name": "Urarina" + }, + "urb": { + "english_name": "Urub\u00fa-Kaapor" + }, + "urc": { + "english_name": "Urningangg" + }, + "ure": { + "english_name": "Uru" + }, + "urf": { + "english_name": "Uradhi" + }, + "urg": { + "english_name": "Urigina" + }, + "urh": { + "english_name": "Urhobo" + }, + "uri": { + "english_name": "Urim" + }, + "urk": { + "english_name": "Urak Lawoi'" + }, + "url": { + "english_name": "Urali" + }, + "urm": { + "english_name": "Urapmin" + }, + "urn": { + "english_name": "Uruangnirin" + }, + "uro": { + "english_name": "Ura (Papua New Guinea)" + }, + "urp": { + "english_name": "Uru-Pa-In" + }, + "urr": { + "english_name": "Lehalurup" + }, + "urt": { + "english_name": "Urat" + }, + "uru": { + "english_name": "Urumi" + }, + "urv": { + "english_name": "Uruava" + }, + "urw": { + "english_name": "Sop" + }, + "urx": { + "english_name": "Urimo" + }, + "ury": { + "english_name": "Orya" + }, + "urz": { + "english_name": "Uru-Eu-Wau-Wau" + }, + "usa": { + "english_name": "Usarufa" + }, + "ush": { + "english_name": "Ushojo" + }, + "usi": { + "english_name": "Usui" + }, + "usk": { + "english_name": "Usaghade" + }, + "usp": { + "english_name": "Uspanteco" + }, + "usu": { + "english_name": "Uya" + }, + "uta": { + "english_name": "Otank" + }, + "ute": { + "english_name": "Ute-Southern Paiute" + }, + "utp": { + "english_name": "Amba (Solomon Islands)" + }, + "utr": { + "english_name": "Etulo" + }, + "utu": { + "english_name": "Utu" + }, + "uum": { + "english_name": "Urum" + }, + "uun": { + "english_name": "Kulon-Pazeh" + }, + "uur": { + "english_name": "Ura (Vanuatu)" + }, + "uuu": { + "english_name": "U" + }, + "uve": { + "english_name": "Uvean, West" + }, + "uvh": { + "english_name": "Uri" + }, + "uvl": { + "english_name": "Lote" + }, + "uwa": { + "english_name": "Kuku-Uwanh" + }, + "uya": { + "english_name": "Doko-Uyanga" + }, + "uz": { + "english_name": "Uzbek" + }, + "uzn": { + "english_name": "Uzbek, Northern" + }, + "uzs": { + "english_name": "Uzbek, Southern" + }, + "vaa": { + "english_name": "Vaagri Booli" + }, + "vae": { + "english_name": "Vale" + }, + "vaf": { + "english_name": "Vafsi" + }, + "vag": { + "english_name": "Vagla" + }, + "vah": { + "english_name": "Varhadi-Nagpuri" + }, + "vai": { + "english_name": "Vai" + }, + "vaj": { + "english_name": "Vasekela Bushman" + }, + "val": { + "english_name": "Vehes" + }, + "vam": { + "english_name": "Vanimo" + }, + "van": { + "english_name": "Valman" + }, + "vao": { + "english_name": "Vao" + }, + "vap": { + "english_name": "Vaiphei" + }, + "var": { + "english_name": "Huarijio" + }, + "vas": { + "english_name": "Vasavi" + }, + "vau": { + "english_name": "Vanuma" + }, + "vav": { + "english_name": "Varli" + }, + "vay": { + "english_name": "Wayu" + }, + "vbb": { + "english_name": "Babar, Southeast" + }, + "vbk": { + "english_name": "Bontok, Southwestern" + }, + "ve": { + "english_name": "Venda", + "name": "Venda" + }, + "vec": { + "english_name": "Venetian" + }, + "ved": { + "english_name": "Veddah" + }, + "vel": { + "english_name": "Veluws" + }, + "vem": { + "english_name": "Vemgo-Mabas" + }, + "veo": { + "english_name": "Venture\u00f1o" + }, + "vep": { + "english_name": "Veps" + }, + "ver": { + "english_name": "Mom Jango" + }, + "vgr": { + "english_name": "Vaghri" + }, + "vgt": { + "english_name": "Vlaamse Gebarentaal" + }, + "vi": { + "english_name": "Vietnamese", + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "vic": { + "english_name": "Creole English, Virgin Islands" + }, + "vid": { + "english_name": "Vidunda" + }, + "vif": { + "english_name": "Vili" + }, + "vig": { + "english_name": "Viemo" + }, + "vil": { + "english_name": "Vilela" + }, + "vin": { + "english_name": "Vinza" + }, + "vis": { + "english_name": "Vishavan" + }, + "vit": { + "english_name": "Viti" + }, + "viv": { + "english_name": "Iduna" + }, + "vka": { + "english_name": "Kariyarra" + }, + "vki": { + "english_name": "Ija-Zuba" + }, + "vkj": { + "english_name": "Kujarge" + }, + "vkk": { + "english_name": "Kaur" + }, + "vkl": { + "english_name": "Kulisusu" + }, + "vkm": { + "english_name": "Kamakan" + }, + "vko": { + "english_name": "Kodeoha" + }, + "vkp": { + "english_name": "Creole Portuguese, Korlai" + }, + "vkt": { + "english_name": "Malay, Tenggarong Kutai" + }, + "vku": { + "english_name": "Kurrama" + }, + "vlp": { + "english_name": "Valpei" + }, + "vls": { + "english_name": "Vlaams" + }, + "vma": { + "english_name": "Martuyhunira" + }, + "vmb": { + "english_name": "Barbaram" + }, + "vmc": { + "english_name": "Mixtec, Juxtlahuaca" + }, + "vmd": { + "english_name": "Koraga, Mudu" + }, + "vme": { + "english_name": "Masela, East" + }, + "vmf": { + "english_name": "Mainfr\u00e4nkisch" + }, + "vmg": { + "english_name": "Lungalunga" + }, + "vmh": { + "english_name": "Maraghei" + }, + "vmi": { + "english_name": "Miwa" + }, + "vmj": { + "english_name": "Mixtec, Ixtayutla" + }, + "vmk": { + "english_name": "Makhuwa-Shirima" + }, + "vml": { + "english_name": "Malgana" + }, + "vmm": { + "english_name": "Mixtec, Mitlatongo" + }, + "vmp": { + "english_name": "Mazatec, Soyaltepec" + }, + "vmq": { + "english_name": "Mixtec, Soyaltepec" + }, + "vmr": { + "english_name": "Marenje" + }, + "vms": { + "english_name": "Moksela" + }, + "vmu": { + "english_name": "Muluridyi" + }, + "vmv": { + "english_name": "Maidu, Valley" + }, + "vmw": { + "english_name": "Makhuwa" + }, + "vmx": { + "english_name": "Mixtec, Tamazola" + }, + "vmy": { + "english_name": "Mazatec, Ayautla" + }, + "vmz": { + "english_name": "Mazatec, Mazatl\u00e1n" + }, + "vnk": { + "english_name": "Vano" + }, + "vnm": { + "english_name": "Vinmavis" + }, + "vnp": { + "english_name": "Vunapu" + }, + "vo": { + "english_name": "Volap\u00fck" + }, + "vor": { + "english_name": "Voro" + }, + "vot": { + "english_name": "Votic" + }, + "vra": { + "english_name": "Vera'a" + }, + "vro": { + "english_name": "V\u00f5ro" + }, + "vrs": { + "english_name": "Varisi" + }, + "vrt": { + "english_name": "Burmbar" + }, + "vsi": { + "english_name": "Moldova Sign Language" + }, + "vsl": { + "english_name": "Venezuelan Sign Language" + }, + "vsv": { + "english_name": "Valencian Sign Language" + }, + "vto": { + "english_name": "Vitou" + }, + "vum": { + "english_name": "Vumbu" + }, + "vun": { + "english_name": "Vunjo" + }, + "vut": { + "english_name": "Vute" + }, + "vwa": { + "english_name": "Awa (China)" + }, + "wa": { + "english_name": "Walloon", + "name": "Walon" + }, + "waa": { + "english_name": "Walla Walla" + }, + "wab": { + "english_name": "Wab" + }, + "wac": { + "english_name": "Wasco-Wishram" + }, + "wad": { + "english_name": "Wandamen" + }, + "wae": { + "english_name": "Walser" + }, + "waf": { + "english_name": "Wakon\u00e1" + }, + "wag": { + "english_name": "Wa'ema" + }, + "wah": { + "english_name": "Watubela" + }, + "wai": { + "english_name": "Wares" + }, + "waj": { + "english_name": "Waffa" + }, + "wal": { + "english_name": "Wolaytta" + }, + "wam": { + "english_name": "Wampanoag" + }, + "wan": { + "english_name": "Wan" + }, + "wao": { + "english_name": "Wappo" + }, + "wap": { + "english_name": "Wapishana" + }, + "waq": { + "english_name": "Wageman" + }, + "war": { + "english_name": "Waray (Philippines)" + }, + "was": { + "english_name": "Washo" + }, + "wat": { + "english_name": "Kaninuwa" + }, + "wau": { + "english_name": "Waur\u00e1" + }, + "wav": { + "english_name": "Waka" + }, + "waw": { + "english_name": "Waiwai" + }, + "wax": { + "english_name": "Watam" + }, + "way": { + "english_name": "Wayana" + }, + "waz": { + "english_name": "Wampur" + }, + "wba": { + "english_name": "Warao" + }, + "wbb": { + "english_name": "Wabo" + }, + "wbe": { + "english_name": "Waritai" + }, + "wbf": { + "english_name": "Wara" + }, + "wbh": { + "english_name": "Wanda" + }, + "wbi": { + "english_name": "Vwanji" + }, + "wbj": { + "english_name": "Alagwa" + }, + "wbk": { + "english_name": "Waigali" + }, + "wbl": { + "english_name": "Wakhi" + }, + "wbm": { + "english_name": "Wa" + }, + "wbp": { + "english_name": "Warlpiri" + }, + "wbq": { + "english_name": "Waddar" + }, + "wbr": { + "english_name": "Wagdi" + }, + "wbt": { + "english_name": "Wanman" + }, + "wbv": { + "english_name": "Wajarri" + }, + "wbw": { + "english_name": "Woi" + }, + "wca": { + "english_name": "Yanom\u00e1mi" + }, + "wci": { + "english_name": "Gbe, Waci" + }, + "wdd": { + "english_name": "Wandji" + }, + "wdg": { + "english_name": "Wadaginam" + }, + "wdj": { + "english_name": "Wadjiginy" + }, + "wdk": { + "english_name": "Wadikali" + }, + "wdu": { + "english_name": "Wadjigu" + }, + "wdy": { + "english_name": "Wadjabangayi" + }, + "wea": { + "english_name": "Wewaw" + }, + "wec": { + "english_name": "W\u00e8 Western" + }, + "wed": { + "english_name": "Wedau" + }, + "weg": { + "english_name": "Wergaia" + }, + "weh": { + "english_name": "Weh" + }, + "wei": { + "english_name": "Kiunum" + }, + "wem": { + "english_name": "Gbe, Weme" + }, + "weo": { + "english_name": "Wemale" + }, + "wep": { + "english_name": "Westphalien" + }, + "wer": { + "english_name": "Weri" + }, + "wes": { + "english_name": "Pidgin, Cameroon" + }, + "wet": { + "english_name": "Perai" + }, + "weu": { + "english_name": "Chin, Rawngtu" + }, + "wew": { + "english_name": "Wejewa" + }, + "wfg": { + "english_name": "Yafi" + }, + "wga": { + "english_name": "Wagaya" + }, + "wgb": { + "english_name": "Wagawaga" + }, + "wgg": { + "english_name": "Wangganguru" + }, + "wgi": { + "english_name": "Wahgi" + }, + "wgo": { + "english_name": "Waigeo" + }, + "wgu": { + "english_name": "Wirangu" + }, + "wgy": { + "english_name": "Warrgamay" + }, + "wha": { + "english_name": "Manusela" + }, + "whg": { + "english_name": "Wahgi, North" + }, + "whk": { + "english_name": "Kenyah, Wahau" + }, + "whu": { + "english_name": "Kayan, Wahau" + }, + "wib": { + "english_name": "Toussian, Southern" + }, + "wic": { + "english_name": "Wichita" + }, + "wie": { + "english_name": "Wik-Epa" + }, + "wif": { + "english_name": "Wik-Keyangan" + }, + "wig": { + "english_name": "Wik-Ngathana" + }, + "wih": { + "english_name": "Wik-Me'anha" + }, + "wii": { + "english_name": "Minidien" + }, + "wij": { + "english_name": "Wik-Iiyanh" + }, + "wik": { + "english_name": "Wikalkan" + }, + "wil": { + "english_name": "Wilawila" + }, + "wim": { + "english_name": "Wik-Mungkan" + }, + "win": { + "english_name": "Ho-Chunk" + }, + "wir": { + "english_name": "Wiraf\u00e9d" + }, + "wiu": { + "english_name": "Wiru" + }, + "wiv": { + "english_name": "Vitu" + }, + "wiy": { + "english_name": "Wiyot" + }, + "wja": { + "english_name": "Waja" + }, + "wji": { + "english_name": "Warji" + }, + "wka": { + "english_name": "Kw'adza" + }, + "wkb": { + "english_name": "Kumbaran" + }, + "wkd": { + "english_name": "Wakde" + }, + "wkl": { + "english_name": "Kalanadi" + }, + "wku": { + "english_name": "Kunduvadi" + }, + "wkw": { + "english_name": "Wakawaka" + }, + "wky": { + "english_name": "Wangkayutyuru" + }, + "wla": { + "english_name": "Walio" + }, + "wlc": { + "english_name": "Comorian, Mwali" + }, + "wle": { + "english_name": "Wolane" + }, + "wlg": { + "english_name": "Kunbarlang" + }, + "wli": { + "english_name": "Waioli" + }, + "wlk": { + "english_name": "Wailaki" + }, + "wll": { + "english_name": "Wali (Sudan)" + }, + "wlm": { + "english_name": "Welsh, Middle" + }, + "wlo": { + "english_name": "Wolio" + }, + "wlr": { + "english_name": "Wailapa" + }, + "wls": { + "english_name": "Wallisian" + }, + "wlu": { + "english_name": "Wuliwuli" + }, + "wlv": { + "english_name": "Wich\u00ed Lhamt\u00e9s Vejoz" + }, + "wlw": { + "english_name": "Walak" + }, + "wlx": { + "english_name": "Wali (Ghana)" + }, + "wly": { + "english_name": "Waling" + }, + "wma": { + "english_name": "Mawa (Nigeria)" + }, + "wmb": { + "english_name": "Wambaya" + }, + "wmc": { + "english_name": "Wamas" + }, + "wmd": { + "english_name": "Mamaind\u00e9" + }, + "wme": { + "english_name": "Wambule" + }, + "wmh": { + "english_name": "Waima'a" + }, + "wmi": { + "english_name": "Wamin" + }, + "wmm": { + "english_name": "Maiwa (Indonesia)" + }, + "wmn": { + "english_name": "Waamwang" + }, + "wmo": { + "english_name": "Wom (Papua New Guinea)" + }, + "wms": { + "english_name": "Wambon" + }, + "wmt": { + "english_name": "Walmajarri" + }, + "wmw": { + "english_name": "Mwani" + }, + "wmx": { + "english_name": "Womo" + }, + "wnb": { + "english_name": "Wanambre" + }, + "wnc": { + "english_name": "Wantoat" + }, + "wnd": { + "english_name": "Wandarang" + }, + "wne": { + "english_name": "Waneci" + }, + "wng": { + "english_name": "Wanggom" + }, + "wni": { + "english_name": "Comorian, Ndzwani" + }, + "wnk": { + "english_name": "Wanukaka" + }, + "wnm": { + "english_name": "Wanggamala" + }, + "wnn": { + "english_name": "Wunumara" + }, + "wno": { + "english_name": "Wano" + }, + "wnp": { + "english_name": "Wanap" + }, + "wnu": { + "english_name": "Usan" + }, + "wnw": { + "english_name": "Wintu" + }, + "wny": { + "english_name": "Wanyi" + }, + "wo": { + "english_name": "Wolof" + }, + "woa": { + "english_name": "Tyaraity" + }, + "wob": { + "english_name": "W\u00e8 Northern" + }, + "woc": { + "english_name": "Wogeo" + }, + "wod": { + "english_name": "Wolani" + }, + "woe": { + "english_name": "Woleaian" + }, + "wof": { + "english_name": "Wolof, Gambian" + }, + "wog": { + "english_name": "Wogamusin" + }, + "woi": { + "english_name": "Kamang" + }, + "wok": { + "english_name": "Longto" + }, + "wom": { + "english_name": "Wom (Nigeria)" + }, + "won": { + "english_name": "Wongo" + }, + "woo": { + "english_name": "Manombai" + }, + "wor": { + "english_name": "Woria" + }, + "wos": { + "english_name": "Hanga Hundi" + }, + "wow": { + "english_name": "Wawonii" + }, + "woy": { + "english_name": "Weyto" + }, + "wpc": { + "english_name": "Maco" + }, + "wra": { + "english_name": "Warapu" + }, + "wrb": { + "english_name": "Warluwara" + }, + "wrd": { + "english_name": "Warduji" + }, + "wrg": { + "english_name": "Warungu" + }, + "wrh": { + "english_name": "Wiradhuri" + }, + "wri": { + "english_name": "Wariyangga" + }, + "wrk": { + "english_name": "Garrwa" + }, + "wrl": { + "english_name": "Warlmanpa" + }, + "wrm": { + "english_name": "Warumungu" + }, + "wrn": { + "english_name": "Warnang" + }, + "wro": { + "english_name": "Worrorra" + }, + "wrp": { + "english_name": "Waropen" + }, + "wrr": { + "english_name": "Wardaman" + }, + "wrs": { + "english_name": "Waris" + }, + "wru": { + "english_name": "Waru" + }, + "wrv": { + "english_name": "Waruna" + }, + "wrw": { + "english_name": "Gugu Warra" + }, + "wrx": { + "english_name": "Wae Rana" + }, + "wry": { + "english_name": "Merwari" + }, + "wrz": { + "english_name": "Waray (Australia)" + }, + "wsa": { + "english_name": "Warembori" + }, + "wsi": { + "english_name": "Wusi" + }, + "wsk": { + "english_name": "Waskia" + }, + "wsr": { + "english_name": "Owenia" + }, + "wss": { + "english_name": "Wasa" + }, + "wsu": { + "english_name": "Wasu" + }, + "wsv": { + "english_name": "Wotapuri-Katarqalai" + }, + "wtf": { + "english_name": "Watiwa" + }, + "wth": { + "english_name": "Wathawurrung" + }, + "wti": { + "english_name": "Berta" + }, + "wtk": { + "english_name": "Watakataui" + }, + "wtm": { + "english_name": "Mewati" + }, + "wtw": { + "english_name": "Wotu" + }, + "wua": { + "english_name": "Wikngenchera" + }, + "wub": { + "english_name": "Wunambal" + }, + "wud": { + "english_name": "Wudu" + }, + "wuh": { + "english_name": "Wutunhua" + }, + "wul": { + "english_name": "Silimo" + }, + "wum": { + "english_name": "Wumbvu" + }, + "wun": { + "english_name": "Bungu" + }, + "wur": { + "english_name": "Wurrugu" + }, + "wut": { + "english_name": "Wutung" + }, + "wuu": { + "english_name": "Chinese, Wu" + }, + "wuv": { + "english_name": "Wuvulu-Aua" + }, + "wux": { + "english_name": "Wulna" + }, + "wuy": { + "english_name": "Wauyai" + }, + "wwa": { + "english_name": "Waama" + }, + "wwb": { + "english_name": "Wakabunga" + }, + "wwo": { + "english_name": "Wetamut" + }, + "wwr": { + "english_name": "Warrwa" + }, + "www": { + "english_name": "Wawa" + }, + "wxa": { + "english_name": "Waxianghua" + }, + "wxw": { + "english_name": "Wardandi" + }, + "wya": { + "english_name": "Wyandot" + }, + "wyb": { + "english_name": "Wangaaybuwan-Ngiyambaa" + }, + "wyi": { + "english_name": "Woiwurrung" + }, + "wym": { + "english_name": "Wymysorys" + }, + "wyr": { + "english_name": "Wayor\u00f3" + }, + "wyy": { + "english_name": "Fijian, Western" + }, + "xaa": { + "english_name": "Arabic, Andalusian" + }, + "xab": { + "english_name": "Sambe" + }, + "xac": { + "english_name": "Kachari" + }, + "xad": { + "english_name": "Adai" + }, + "xae": { + "english_name": "Aequian" + }, + "xag": { + "english_name": "Aghwan" + }, + "xai": { + "english_name": "Kaimb\u00e9" + }, + "xal": { + "english_name": "Kalmyk" + }, + "xam": { + "english_name": "/Xam" + }, + "xan": { + "english_name": "Xamtanga" + }, + "xao": { + "english_name": "Khao" + }, + "xap": { + "english_name": "Apalachee" + }, + "xaq": { + "english_name": "Aquitanian" + }, + "xar": { + "english_name": "Karami" + }, + "xas": { + "english_name": "Kamas" + }, + "xat": { + "english_name": "Katawixi" + }, + "xau": { + "english_name": "Kauwera" + }, + "xav": { + "english_name": "Xav\u00e1nte" + }, + "xaw": { + "english_name": "Kawaiisu" + }, + "xay": { + "english_name": "Kayan Mahakam" + }, + "xba": { + "english_name": "Kamba (Brazil)" + }, + "xbb": { + "english_name": "Burdekin, Lower" + }, + "xbc": { + "english_name": "Bactrian" + }, + "xbd": { + "english_name": "Bindal" + }, + "xbe": { + "english_name": "Bigambal" + }, + "xbg": { + "english_name": "Bunganditj" + }, + "xbi": { + "english_name": "Kombio" + }, + "xbj": { + "english_name": "Birrpayi" + }, + "xbm": { + "english_name": "Breton, Middle" + }, + "xbn": { + "english_name": "Kenaboi" + }, + "xbo": { + "english_name": "Bolgarian" + }, + "xbp": { + "english_name": "Bibbulman" + }, + "xbr": { + "english_name": "Kambera" + }, + "xbw": { + "english_name": "Kambiw\u00e1" + }, + "xbx": { + "english_name": "Kabix\u00ed" + }, + "xby": { + "english_name": "Batyala" + }, + "xcb": { + "english_name": "Cumbric" + }, + "xcc": { + "english_name": "Camunic" + }, + "xce": { + "english_name": "Celtiberian" + }, + "xcg": { + "english_name": "Gaulish, Cisalpine" + }, + "xch": { + "english_name": "Chemakum" + }, + "xcl": { + "english_name": "Armenian, Classical" + }, + "xcm": { + "english_name": "Comecrudo" + }, + "xcn": { + "english_name": "Cotoname" + }, + "xco": { + "english_name": "Chorasmian" + }, + "xcr": { + "english_name": "Carian" + }, + "xct": { + "english_name": "Tibetan, Classical" + }, + "xcu": { + "english_name": "Curonian" + }, + "xcv": { + "english_name": "Chuvantsy" + }, + "xcw": { + "english_name": "Coahuilteco" + }, + "xcy": { + "english_name": "Cayuse" + }, + "xda": { + "english_name": "Darkinyung" + }, + "xdc": { + "english_name": "Dacian" + }, + "xdk": { + "english_name": "Dharuk" + }, + "xdm": { + "english_name": "Edomite" + }, + "xdy": { + "english_name": "Dayak, Malayic" + }, + "xeb": { + "english_name": "Eblan" + }, + "xed": { + "english_name": "Hdi" + }, + "xeg": { + "english_name": "//Xegwi" + }, + "xel": { + "english_name": "Kelo" + }, + "xem": { + "english_name": "Kembayan" + }, + "xep": { + "english_name": "Epi-Olmec" + }, + "xer": { + "english_name": "Xer\u00e9nte" + }, + "xes": { + "english_name": "Kesawai" + }, + "xet": { + "english_name": "Xet\u00e1" + }, + "xeu": { + "english_name": "Keoru-Ahia" + }, + "xfa": { + "english_name": "Faliscan" + }, + "xga": { + "english_name": "Galatian" + }, + "xgb": { + "english_name": "Gbin" + }, + "xgd": { + "english_name": "Gudang" + }, + "xgf": { + "english_name": "Gabrielino-Fernande\u00f1o" + }, + "xgg": { + "english_name": "Goreng" + }, + "xgi": { + "english_name": "Garingbal" + }, + "xgl": { + "english_name": "Galindan" + }, + "xgm": { + "english_name": "Guwinmal" + }, + "xgr": { + "english_name": "Garza" + }, + "xgu": { + "english_name": "Unggumi" + }, + "xgw": { + "english_name": "Guwa" + }, + "xh": { + "english_name": "Xhosa", + "name": "Xhosa" + }, + "xha": { + "english_name": "Harami" + }, + "xhc": { + "english_name": "Hunnic" + }, + "xhd": { + "english_name": "Hadrami" + }, + "xhe": { + "english_name": "Khetrani" + }, + "xhr": { + "english_name": "Hernican" + }, + "xht": { + "english_name": "Hattic" + }, + "xhu": { + "english_name": "Hurrian" + }, + "xhv": { + "english_name": "Khua" + }, + "xib": { + "english_name": "Iberian" + }, + "xii": { + "english_name": "Xiri" + }, + "xil": { + "english_name": "Illyrian" + }, + "xin": { + "english_name": "Xinca" + }, + "xip": { + "english_name": "Xipin\u00e1wa" + }, + "xir": { + "english_name": "Xiri\u00e2na" + }, + "xiv": { + "english_name": "Indus Valley Language" + }, + "xiy": { + "english_name": "Xipaya" + }, + "xjb": { + "english_name": "Minjungbal" + }, + "xjt": { + "english_name": "Jaitmatang" + }, + "xka": { + "english_name": "Kalkoti" + }, + "xkb": { + "english_name": "Nago, Northern" + }, + "xkc": { + "english_name": "Kho'ini" + }, + "xkd": { + "english_name": "Kayan, Mendalam" + }, + "xke": { + "english_name": "Kereho" + }, + "xkf": { + "english_name": "Khengkha" + }, + "xkg": { + "english_name": "Kagoro" + }, + "xkh": { + "english_name": "Karahawyana" + }, + "xki": { + "english_name": "Kenyan Sign Language" + }, + "xkj": { + "english_name": "Kajali" + }, + "xkk": { + "english_name": "Kaco'" + }, + "xkl": { + "english_name": "Mainstream Kenyah" + }, + "xkn": { + "english_name": "Kayan, Kayan River" + }, + "xko": { + "english_name": "Kiorr" + }, + "xkp": { + "english_name": "Kabatei" + }, + "xkq": { + "english_name": "Koroni" + }, + "xkr": { + "english_name": "Xakriab\u00e1" + }, + "xks": { + "english_name": "Kumbewaha" + }, + "xkt": { + "english_name": "Kantosi" + }, + "xku": { + "english_name": "Kaamba" + }, + "xkv": { + "english_name": "Kgalagadi" + }, + "xkw": { + "english_name": "Kembra" + }, + "xkx": { + "english_name": "Karore" + }, + "xky": { + "english_name": "Uma' Lasan" + }, + "xkz": { + "english_name": "Kurtokha" + }, + "xla": { + "english_name": "Kamula" + }, + "xlb": { + "english_name": "Loup B" + }, + "xlc": { + "english_name": "Lycian" + }, + "xld": { + "english_name": "Lydian" + }, + "xle": { + "english_name": "Lemnian" + }, + "xlg": { + "english_name": "Ligurian (Ancient)" + }, + "xli": { + "english_name": "Liburnian" + }, + "xln": { + "english_name": "Alanic" + }, + "xlo": { + "english_name": "Loup A" + }, + "xlp": { + "english_name": "Lepontic" + }, + "xls": { + "english_name": "Lusitanian" + }, + "xlu": { + "english_name": "Luwian, Cuneiform" + }, + "xly": { + "english_name": "Elymian" + }, + "xma": { + "english_name": "Mushungulu" + }, + "xmb": { + "english_name": "Mbonga" + }, + "xmc": { + "english_name": "Makhuwa-Marrevone" + }, + "xmd": { + "english_name": "Mbudum" + }, + "xme": { + "english_name": "Median" + }, + "xmf": { + "english_name": "Mingrelian" + }, + "xmg": { + "english_name": "Mengaka" + }, + "xmh": { + "english_name": "Kuku-Muminh" + }, + "xmj": { + "english_name": "Majera" + }, + "xmk": { + "english_name": "Macedonian, Ancient" + }, + "xml": { + "english_name": "Malaysian Sign Language" + }, + "xmm": { + "english_name": "Malay, Manado" + }, + "xmn": { + "english_name": "Persian, Manichaean Middle" + }, + "xmo": { + "english_name": "Morerebi" + }, + "xmp": { + "english_name": "Kuku-Mu'inh" + }, + "xmq": { + "english_name": "Kuku-Mangk" + }, + "xmr": { + "english_name": "Meroitic" + }, + "xms": { + "english_name": "Moroccan Sign Language" + }, + "xmt": { + "english_name": "Matbat" + }, + "xmu": { + "english_name": "Kamu" + }, + "xmv": { + "english_name": "Malagasy, Antankarana" + }, + "xmw": { + "english_name": "Malagasy, Tsimihety" + }, + "xmx": { + "english_name": "Maden" + }, + "xmy": { + "english_name": "Mayaguduna" + }, + "xmz": { + "english_name": "Mori Bawah" + }, + "xna": { + "english_name": "North Arabian, Ancient" + }, + "xnb": { + "english_name": "Kanakanabu" + }, + "xng": { + "english_name": "Mongolian, Middle" + }, + "xnh": { + "english_name": "Kuanhua" + }, + "xni": { + "english_name": "Ngarigu" + }, + "xnk": { + "english_name": "Nganakarti" + }, + "xnn": { + "english_name": "Kankanay, Northern" + }, + "xno": { + "english_name": "Anglo-Norman" + }, + "xnr": { + "english_name": "Kangri" + }, + "xns": { + "english_name": "Kanashi" + }, + "xnt": { + "english_name": "Narragansett" + }, + "xnu": { + "english_name": "Nukunul" + }, + "xny": { + "english_name": "Nyiyaparli" + }, + "xnz": { + "english_name": "Kenzi" + }, + "xoc": { + "english_name": "O'chi'chi'" + }, + "xod": { + "english_name": "Kokoda" + }, + "xog": { + "english_name": "Soga" + }, + "xoi": { + "english_name": "Kominimung" + }, + "xok": { + "english_name": "Xokleng" + }, + "xom": { + "english_name": "Komo (Sudan)" + }, + "xon": { + "english_name": "Konkomba" + }, + "xoo": { + "english_name": "Xukur\u00fa" + }, + "xop": { + "english_name": "Kopar" + }, + "xor": { + "english_name": "Korubo" + }, + "xow": { + "english_name": "Kowaki" + }, + "xpa": { + "english_name": "Pirriya" + }, + "xpc": { + "english_name": "Pecheneg" + }, + "xpe": { + "english_name": "Kpelle, Liberia" + }, + "xpg": { + "english_name": "Phrygian" + }, + "xpi": { + "english_name": "Pictish" + }, + "xpj": { + "english_name": "Mpalitjanh" + }, + "xpk": { + "english_name": "Pano, Kulina" + }, + "xpm": { + "english_name": "Pumpokol" + }, + "xpn": { + "english_name": "Kapinaw\u00e1" + }, + "xpo": { + "english_name": "Pochutec" + }, + "xpp": { + "english_name": "Puyo-Paekche" + }, + "xpq": { + "english_name": "Mohegan-Pequot" + }, + "xpr": { + "english_name": "Parthian" + }, + "xps": { + "english_name": "Pisidian" + }, + "xpt": { + "english_name": "Punthamara" + }, + "xpu": { + "english_name": "Punic" + }, + "xpy": { + "english_name": "Puyo" + }, + "xqa": { + "english_name": "Karakhanid" + }, + "xqt": { + "english_name": "Qatabanian" + }, + "xra": { + "english_name": "Krah\u00f4" + }, + "xrb": { + "english_name": "Karaboro, Eastern" + }, + "xrd": { + "english_name": "Gundungurra" + }, + "xre": { + "english_name": "Kreye" + }, + "xrg": { + "english_name": "Minang" + }, + "xri": { + "english_name": "Krikati-Timbira" + }, + "xrm": { + "english_name": "Armazic" + }, + "xrn": { + "english_name": "Arin" + }, + "xrq": { + "english_name": "Karranga" + }, + "xrr": { + "english_name": "Raetic" + }, + "xrt": { + "english_name": "Aranama-Tamique" + }, + "xru": { + "english_name": "Marriammu" + }, + "xrw": { + "english_name": "Karawa" + }, + "xsa": { + "english_name": "Sabaean" + }, + "xsb": { + "english_name": "Sambal" + }, + "xsc": { + "english_name": "Scythian" + }, + "xsd": { + "english_name": "Sidetic" + }, + "xse": { + "english_name": "Sempan" + }, + "xsh": { + "english_name": "Shamang" + }, + "xsi": { + "english_name": "Sio" + }, + "xsl": { + "english_name": "Slavey, South" + }, + "xsm": { + "english_name": "Kasem" + }, + "xsn": { + "english_name": "Sanga (Nigeria)" + }, + "xso": { + "english_name": "Solano" + }, + "xsp": { + "english_name": "Silopi" + }, + "xsq": { + "english_name": "Makhuwa-Saka" + }, + "xsr": { + "english_name": "Sherpa" + }, + "xss": { + "english_name": "Assan" + }, + "xsu": { + "english_name": "Sanum\u00e1" + }, + "xsv": { + "english_name": "Sudovian" + }, + "xsy": { + "english_name": "Saisiyat" + }, + "xta": { + "english_name": "Mixtec, Alcozauca" + }, + "xtb": { + "english_name": "Mixtec, Chazumba" + }, + "xtc": { + "english_name": "Katcha-Kadugli-Miri" + }, + "xtd": { + "english_name": "Mixtec, Diuxi-Tilantongo" + }, + "xte": { + "english_name": "Ketengban" + }, + "xtg": { + "english_name": "Gaulish, Transalpine" + }, + "xth": { + "english_name": "Yitha Yitha" + }, + "xti": { + "english_name": "Mixtec, Sinicahua" + }, + "xtj": { + "english_name": "Mixtec, San Juan Teita" + }, + "xtl": { + "english_name": "Mixtec, Tijaltepec" + }, + "xtm": { + "english_name": "Mixtec, Magdalena Pe\u00f1asco" + }, + "xtn": { + "english_name": "Mixtec, Northern Tlaxiaco" + }, + "xto": { + "english_name": "Tokharian A" + }, + "xtp": { + "english_name": "Mixtec, San Miguel Piedras" + }, + "xtq": { + "english_name": "Tumshuqese" + }, + "xtr": { + "english_name": "Tripuri, Early" + }, + "xts": { + "english_name": "Mixtec, Sindihui" + }, + "xtt": { + "english_name": "Mixtec, Tacahua" + }, + "xtu": { + "english_name": "Mixtec, Cuyamecalco" + }, + "xtv": { + "english_name": "Thawa" + }, + "xtw": { + "english_name": "Tawand\u00ea" + }, + "xty": { + "english_name": "Mixtec, Yoloxochitl" + }, + "xtz": { + "english_name": "Tasmanian" + }, + "xua": { + "english_name": "Kurumba, Alu" + }, + "xub": { + "english_name": "Kurumba, Betta" + }, + "xud": { + "english_name": "Umiida" + }, + "xug": { + "english_name": "Kunigami" + }, + "xuj": { + "english_name": "Kurumba, Jennu" + }, + "xul": { + "english_name": "Ngunawal" + }, + "xum": { + "english_name": "Umbrian" + }, + "xun": { + "english_name": "Unggaranggu" + }, + "xuo": { + "english_name": "Kuo" + }, + "xup": { + "english_name": "Umpqua, Upper" + }, + "xur": { + "english_name": "Urartian" + }, + "xut": { + "english_name": "Kuthant" + }, + "xuu": { + "english_name": "Kxoe" + }, + "xve": { + "english_name": "Venetic" + }, + "xvi": { + "english_name": "Kamviri" + }, + "xvn": { + "english_name": "Vandalic" + }, + "xvo": { + "english_name": "Volscian" + }, + "xvs": { + "english_name": "Vestinian" + }, + "xwa": { + "english_name": "Kwaza" + }, + "xwc": { + "english_name": "Woccon" + }, + "xwd": { + "english_name": "Wadi Wadi" + }, + "xwe": { + "english_name": "Gbe, Xwela" + }, + "xwg": { + "english_name": "Kwegu" + }, + "xwj": { + "english_name": "Wajuk" + }, + "xwk": { + "english_name": "Wangkumara" + }, + "xwl": { + "english_name": "Gbe, Western Xwla" + }, + "xwo": { + "english_name": "Oirat, Written" + }, + "xwr": { + "english_name": "Kwerba Mamberamo" + }, + "xwt": { + "english_name": "Wotjobaluk" + }, + "xww": { + "english_name": "Wemba Wemba" + }, + "xxb": { + "english_name": "Boro (Ghana)" + }, + "xxk": { + "english_name": "Ke'o" + }, + "xxm": { + "english_name": "Minkin" + }, + "xxr": { + "english_name": "Korop\u00f3" + }, + "xxt": { + "english_name": "Tambora" + }, + "xya": { + "english_name": "Yaygir" + }, + "xyb": { + "english_name": "Yandjibara" + }, + "xyj": { + "english_name": "Mayi-Yapi" + }, + "xyk": { + "english_name": "Mayi-Kulan" + }, + "xyl": { + "english_name": "Yalakalore" + }, + "xyt": { + "english_name": "Mayi-Thakurti" + }, + "xyy": { + "english_name": "Yorta Yorta" + }, + "xzh": { + "english_name": "Zhang-Zhung" + }, + "xzm": { + "english_name": "Zemgalian" + }, + "xzp": { + "english_name": "Zapotec, Ancient" + }, + "yaa": { + "english_name": "Yaminahua" + }, + "yab": { + "english_name": "Yuhup" + }, + "yac": { + "english_name": "Yali, Pass Valley" + }, + "yad": { + "english_name": "Yagua" + }, + "yae": { + "english_name": "Pum\u00e9" + }, + "yaf": { + "english_name": "Yaka (Democratic Republic of Congo)" + }, + "yag": { + "english_name": "Y\u00e1mana" + }, + "yah": { + "english_name": "Yazgulyam" + }, + "yai": { + "english_name": "Yagnobi" + }, + "yaj": { + "english_name": "Banda-Yangere" + }, + "yak": { + "english_name": "Yakama" + }, + "yal": { + "english_name": "Yalunka" + }, + "yam": { + "english_name": "Yamba" + }, + "yan": { + "english_name": "Mayangna" + }, + "yao": { + "english_name": "Yao" + }, + "yap": { + "english_name": "Yapese" + }, + "yaq": { + "english_name": "Yaqui" + }, + "yar": { + "english_name": "Yabarana" + }, + "yas": { + "english_name": "Nugunu (Cameroon)" + }, + "yat": { + "english_name": "Yambeta" + }, + "yau": { + "english_name": "Yuwana" + }, + "yav": { + "english_name": "Yangben" + }, + "yaw": { + "english_name": "Yawalapit\u00ed" + }, + "yax": { + "english_name": "Yauma" + }, + "yay": { + "english_name": "Agwagwune" + }, + "yaz": { + "english_name": "Lokaa" + }, + "yba": { + "english_name": "Yala" + }, + "ybb": { + "english_name": "Yemba" + }, + "ybe": { + "english_name": "Yugur, West" + }, + "ybh": { + "english_name": "Yakha" + }, + "ybi": { + "english_name": "Yamphu" + }, + "ybj": { + "english_name": "Hasha" + }, + "ybk": { + "english_name": "Bokha" + }, + "ybl": { + "english_name": "Yukuben" + }, + "ybm": { + "english_name": "Yaben" + }, + "ybn": { + "english_name": "Yaba\u00e2na" + }, + "ybo": { + "english_name": "Yabong" + }, + "ybx": { + "english_name": "Yawiyo" + }, + "yby": { + "english_name": "Yaweyuha" + }, + "ych": { + "english_name": "Chesu" + }, + "ycl": { + "english_name": "Lolopo" + }, + "ycn": { + "english_name": "Yucuna" + }, + "ycp": { + "english_name": "Chepya" + }, + "yda": { + "english_name": "Yanda" + }, + "ydd": { + "english_name": "Yiddish, Eastern" + }, + "yde": { + "english_name": "Yangum Dey" + }, + "ydg": { + "english_name": "Yidgha" + }, + "ydk": { + "english_name": "Yoidik" + }, + "yea": { + "english_name": "Ravula" + }, + "yec": { + "english_name": "Yeniche" + }, + "yee": { + "english_name": "Yimas" + }, + "yei": { + "english_name": "Yeni" + }, + "yej": { + "english_name": "Yevanic" + }, + "yel": { + "english_name": "Yela" + }, + "yer": { + "english_name": "Tarok" + }, + "yes": { + "english_name": "Nyankpa" + }, + "yet": { + "english_name": "Yetfa" + }, + "yeu": { + "english_name": "Yerukula" + }, + "yev": { + "english_name": "Yapunda" + }, + "yey": { + "english_name": "Yeyi" + }, + "yga": { + "english_name": "Malyangapa" + }, + "ygi": { + "english_name": "Yiningayi" + }, + "ygl": { + "english_name": "Yangum Gel" + }, + "ygm": { + "english_name": "Yagomi" + }, + "ygp": { + "english_name": "Gepo" + }, + "ygr": { + "english_name": "Yagaria" + }, + "ygu": { + "english_name": "Yugul" + }, + "ygw": { + "english_name": "Yagwoia" + }, + "yha": { + "english_name": "Buyang, Baha" + }, + "yhd": { + "english_name": "Arabic, Judeo-Iraqi" + }, + "yhl": { + "english_name": "Phowa, Hlepho" + }, + "yi": { + "english_name": "Yiddish" + }, + "yia": { + "english_name": "Yinggarda" + }, + "yif": { + "english_name": "Ache" + }, + "yig": { + "english_name": "Nasu, Wusa" + }, + "yih": { + "english_name": "Yiddish, Western" + }, + "yii": { + "english_name": "Yidiny" + }, + "yij": { + "english_name": "Yindjibarndi" + }, + "yik": { + "english_name": "Lalo, Dongshanba" + }, + "yil": { + "english_name": "Yindjilandji" + }, + "yim": { + "english_name": "Naga, Yimchungru" + }, + "yin": { + "english_name": "Yinchia" + }, + "yip": { + "english_name": "Pholo" + }, + "yiq": { + "english_name": "Miqie" + }, + "yir": { + "english_name": "Awyu, North" + }, + "yis": { + "english_name": "Yis" + }, + "yit": { + "english_name": "Lalu, Eastern" + }, + "yiu": { + "english_name": "Awu" + }, + "yiv": { + "english_name": "Nisu, Northern" + }, + "yix": { + "english_name": "Yi, Axi" + }, + "yiz": { + "english_name": "Azhe" + }, + "yka": { + "english_name": "Yakan" + }, + "ykg": { + "english_name": "Yukaghir, Northern" + }, + "yki": { + "english_name": "Yoke" + }, + "ykk": { + "english_name": "Yakaikeke" + }, + "ykl": { + "english_name": "Khlula" + }, + "ykm": { + "english_name": "Kap" + }, + "ykn": { + "english_name": "Kua-nsi" + }, + "yko": { + "english_name": "Yasa" + }, + "ykr": { + "english_name": "Yekora" + }, + "ykt": { + "english_name": "Kathu" + }, + "yku": { + "english_name": "Kuamasi" + }, + "yky": { + "english_name": "Yakoma" + }, + "yla": { + "english_name": "Yaul" + }, + "ylb": { + "english_name": "Yaleba" + }, + "yle": { + "english_name": "Yele" + }, + "ylg": { + "english_name": "Yelogu" + }, + "yli": { + "english_name": "Yali, Angguruk" + }, + "yll": { + "english_name": "Yil" + }, + "ylm": { + "english_name": "Limi" + }, + "yln": { + "english_name": "Buyang, Langnian" + }, + "ylo": { + "english_name": "Yi, Naluo" + }, + "ylr": { + "english_name": "Yalarnnga" + }, + "ylu": { + "english_name": "Aribwaung" + }, + "yly": { + "english_name": "Ny\u00e2layu" + }, + "ymb": { + "english_name": "Yambes" + }, + "ymc": { + "english_name": "Muji, Southern" + }, + "ymd": { + "english_name": "Muda" + }, + "yme": { + "english_name": "Yameo" + }, + "ymg": { + "english_name": "Yamongeri" + }, + "ymh": { + "english_name": "Mili" + }, + "ymi": { + "english_name": "Moji" + }, + "ymk": { + "english_name": "Makwe" + }, + "yml": { + "english_name": "Iamalele" + }, + "ymm": { + "english_name": "Maay" + }, + "ymn": { + "english_name": "Yamna" + }, + "ymo": { + "english_name": "Yangum Mon" + }, + "ymp": { + "english_name": "Yamap" + }, + "ymq": { + "english_name": "Muji, Qila" + }, + "ymr": { + "english_name": "Malasar" + }, + "yms": { + "english_name": "Mysian" + }, + "ymx": { + "english_name": "Muji, Northern" + }, + "ymz": { + "english_name": "Muzi" + }, + "yna": { + "english_name": "Aluo" + }, + "ynd": { + "english_name": "Yandruwandha" + }, + "yne": { + "english_name": "Lang'e" + }, + "yng": { + "english_name": "Yango" + }, + "ynk": { + "english_name": "Yupik, Naukan" + }, + "ynl": { + "english_name": "Yangulam" + }, + "ynn": { + "english_name": "Yana" + }, + "yno": { + "english_name": "Yong" + }, + "ynq": { + "english_name": "Yendang" + }, + "yns": { + "english_name": "Yansi" + }, + "ynu": { + "english_name": "Yahuna" + }, + "yo": { + "english_name": "Yoruba" + }, + "yob": { + "english_name": "Yoba" + }, + "yog": { + "english_name": "Yogad" + }, + "yoi": { + "english_name": "Yonaguni" + }, + "yok": { + "english_name": "Yokuts" + }, + "yol": { + "english_name": "Yola" + }, + "yom": { + "english_name": "Yombe" + }, + "yon": { + "english_name": "Yongkom" + }, + "yot": { + "english_name": "Yotti" + }, + "yox": { + "english_name": "Yoron" + }, + "yoy": { + "english_name": "Yoy" + }, + "ypa": { + "english_name": "Phala" + }, + "ypb": { + "english_name": "Phowa, Labo" + }, + "ypg": { + "english_name": "Phola" + }, + "yph": { + "english_name": "Phupha" + }, + "ypm": { + "english_name": "Phuma" + }, + "ypn": { + "english_name": "Phowa, Ani" + }, + "ypo": { + "english_name": "Phola, Alo" + }, + "ypp": { + "english_name": "Phupa" + }, + "ypz": { + "english_name": "Phuza" + }, + "yra": { + "english_name": "Yerakai" + }, + "yrb": { + "english_name": "Yareba" + }, + "yre": { + "english_name": "Yaour\u00e9" + }, + "yri": { + "english_name": "Yar\u00ed" + }, + "yrk": { + "english_name": "Nenets" + }, + "yrl": { + "english_name": "Nhengatu" + }, + "yrm": { + "english_name": "Yirrk-Mel" + }, + "yrn": { + "english_name": "Yerong" + }, + "yrs": { + "english_name": "Yarsun" + }, + "yrw": { + "english_name": "Yarawata" + }, + "yry": { + "english_name": "Yarluyandi" + }, + "ysc": { + "english_name": "Yassic" + }, + "ysd": { + "english_name": "Samatao" + }, + "ysg": { + "english_name": "Sonaga" + }, + "ysl": { + "english_name": "Yugoslavian Sign Language" + }, + "ysn": { + "english_name": "Sani" + }, + "yso": { + "english_name": "Nisi (China)" + }, + "ysp": { + "english_name": "Lolopo, Southern" + }, + "ysr": { + "english_name": "Yupik, Sirenik" + }, + "yss": { + "english_name": "Yessan-Mayo" + }, + "ysy": { + "english_name": "Sanie" + }, + "yta": { + "english_name": "Talu" + }, + "ytl": { + "english_name": "Tanglang" + }, + "ytp": { + "english_name": "Thopho" + }, + "ytw": { + "english_name": "Yout Wam" + }, + "yty": { + "english_name": "Yatay" + }, + "yua": { + "english_name": "Yucateco" + }, + "yub": { + "english_name": "Yugambal" + }, + "yuc": { + "english_name": "Yuchi" + }, + "yud": { + "english_name": "Arabic, Judeo-Tripolitanian" + }, + "yue": { + "english_name": "Chinese, Yue" + }, + "yuf": { + "english_name": "Havasupai-Walapai-Yavapai" + }, + "yug": { + "english_name": "Yug" + }, + "yui": { + "english_name": "Yurut\u00ed" + }, + "yuj": { + "english_name": "Karkar-Yuri" + }, + "yuk": { + "english_name": "Yuki" + }, + "yul": { + "english_name": "Yulu" + }, + "yum": { + "english_name": "Quechan" + }, + "yun": { + "english_name": "Bena (Nigeria)" + }, + "yup": { + "english_name": "Yukpa" + }, + "yuq": { + "english_name": "Yuqui" + }, + "yur": { + "english_name": "Yurok" + }, + "yut": { + "english_name": "Yopno" + }, + "yuw": { + "english_name": "Yau (Morobe Province)" + }, + "yux": { + "english_name": "Yukaghir, Southern" + }, + "yuy": { + "english_name": "Yugur, East" + }, + "yuz": { + "english_name": "Yuracare" + }, + "yva": { + "english_name": "Yawa" + }, + "yvt": { + "english_name": "Yavitero" + }, + "ywa": { + "english_name": "Kalou" + }, + "ywg": { + "english_name": "Yinhawangka" + }, + "ywl": { + "english_name": "Lalu, Western" + }, + "ywn": { + "english_name": "Yawanawa" + }, + "ywq": { + "english_name": "Yi, Wuding-Luquan" + }, + "ywr": { + "english_name": "Yawuru" + }, + "ywt": { + "english_name": "Lalo, Xishanba" + }, + "ywu": { + "english_name": "Nasu, Wumeng" + }, + "yww": { + "english_name": "Yawarawarga" + }, + "yxa": { + "english_name": "Mayawali" + }, + "yxg": { + "english_name": "Yagara" + }, + "yxl": { + "english_name": "Yardliyawarra" + }, + "yxm": { + "english_name": "Yinwum" + }, + "yxu": { + "english_name": "Yuyu" + }, + "yxy": { + "english_name": "Yabula Yabula" + }, + "yyr": { + "english_name": "Yir Yoront" + }, + "yyu": { + "english_name": "Yau (Sandaun Province)" + }, + "yyz": { + "english_name": "Ayizi" + }, + "yzg": { + "english_name": "Buyang, E'ma" + }, + "yzk": { + "english_name": "Zokhuo" + }, + "za": { + "english_name": "Zhuang" + }, + "zaa": { + "english_name": "Zapotec, Sierra de Ju\u00e1rez" + }, + "zab": { + "english_name": "Zapotec, San Juan Guelav\u00eda" + }, + "zac": { + "english_name": "Zapotec, Ocotl\u00e1n" + }, + "zad": { + "english_name": "Zapotec, Cajonos" + }, + "zae": { + "english_name": "Zapotec, Yareni" + }, + "zaf": { + "english_name": "Zapotec, Ayoquesco" + }, + "zag": { + "english_name": "Zaghawa" + }, + "zah": { + "english_name": "Zangwal" + }, + "zai": { + "english_name": "Zapotec, Isthmus" + }, + "zaj": { + "english_name": "Zaramo" + }, + "zak": { + "english_name": "Zanaki" + }, + "zal": { + "english_name": "Zauzou" + }, + "zam": { + "english_name": "Zapotec, Miahuatl\u00e1n" + }, + "zao": { + "english_name": "Zapotec, Ozolotepec" + }, + "zap": { + "english_name": "Zapotec" + }, + "zaq": { + "english_name": "Zapotec, Alo\u00e1pam" + }, + "zar": { + "english_name": "Zapotec, Rinc\u00f3n" + }, + "zas": { + "english_name": "Zapotec, Santo Domingo Albarradas" + }, + "zat": { + "english_name": "Zapotec, Tabaa" + }, + "zau": { + "english_name": "Zangskari" + }, + "zav": { + "english_name": "Zapotec, Yatzachi" + }, + "zaw": { + "english_name": "Zapotec, Mitla" + }, + "zax": { + "english_name": "Zapotec, Xadani" + }, + "zay": { + "english_name": "Zayse-Zergulla" + }, + "zaz": { + "english_name": "Zari" + }, + "zbc": { + "english_name": "Berawan, Central" + }, + "zbe": { + "english_name": "Berawan, East" + }, + "zbl": { + "english_name": "Blissymbols" + }, + "zbt": { + "english_name": "Batui" + }, + "zbw": { + "english_name": "Berawan, West" + }, + "zca": { + "english_name": "Zapotec, Coatecas Altas" + }, + "zch": { + "english_name": "Zhuang, Central Hongshuihe" + }, + "zdj": { + "english_name": "Comorian, Ngazidja" + }, + "zea": { + "english_name": "Zeeuws" + }, + "zeg": { + "english_name": "Zenag" + }, + "zeh": { + "english_name": "Zhuang, Eastern Hongshuihe" + }, + "zen": { + "english_name": "Zenaga" + }, + "zga": { + "english_name": "Kinga" + }, + "zgb": { + "english_name": "Zhuang, Guibei" + }, + "zgh": { + "english_name": "Tamazight, Standard Moroccan" + }, + "zgm": { + "english_name": "Zhuang, Minz" + }, + "zgn": { + "english_name": "Zhuang, Guibian" + }, + "zgr": { + "english_name": "Magori" + }, + "zh": { + "english_name": "Chinese", + "name": "\u4e2d\u6587" + }, + "zhb": { + "english_name": "Zhaba" + }, + "zhd": { + "english_name": "Zhuang, Dai" + }, + "zhi": { + "english_name": "Zhire" + }, + "zhn": { + "english_name": "Zhuang, Nong" + }, + "zhw": { + "english_name": "Zhoa" + }, + "zia": { + "english_name": "Zia" + }, + "zib": { + "english_name": "Zimbabwe Sign Language" + }, + "zik": { + "english_name": "Zimakani" + }, + "zil": { + "english_name": "Zialo" + }, + "zim": { + "english_name": "Mesme" + }, + "zin": { + "english_name": "Zinza" + }, + "zir": { + "english_name": "Ziriya" + }, + "ziw": { + "english_name": "Zigula" + }, + "ziz": { + "english_name": "Zizilivakan" + }, + "zka": { + "english_name": "Kaimbulawa" + }, + "zkb": { + "english_name": "Koibal" + }, + "zkd": { + "english_name": "Kadu" + }, + "zkg": { + "english_name": "Koguryo" + }, + "zkh": { + "english_name": "Khorezmian" + }, + "zkk": { + "english_name": "Karankawa" + }, + "zkn": { + "english_name": "Kanan" + }, + "zko": { + "english_name": "Kott" + }, + "zkp": { + "english_name": "Kaing\u00e1ng, S\u00e3o Paulo" + }, + "zkr": { + "english_name": "Zakhring" + }, + "zkt": { + "english_name": "Kitan" + }, + "zku": { + "english_name": "Kaurna" + }, + "zkv": { + "english_name": "Krevinian" + }, + "zkz": { + "english_name": "Khazar" + }, + "zlj": { + "english_name": "Zhuang, Liujiang" + }, + "zlm": { + "english_name": "Malay (individual language)" + }, + "zln": { + "english_name": "Zhuang, Lianshan" + }, + "zlq": { + "english_name": "Zhuang, Liuqian" + }, + "zma": { + "english_name": "Manda (Australia)" + }, + "zmb": { + "english_name": "Zimba" + }, + "zmc": { + "english_name": "Margany" + }, + "zmd": { + "english_name": "Maridan" + }, + "zme": { + "english_name": "Mangerr" + }, + "zmf": { + "english_name": "Mfinu" + }, + "zmg": { + "english_name": "Marti Ke" + }, + "zmh": { + "english_name": "Makolkol" + }, + "zmi": { + "english_name": "Negeri Sembilan Malay" + }, + "zmj": { + "english_name": "Maridjabin" + }, + "zmk": { + "english_name": "Mandandanyi" + }, + "zml": { + "english_name": "Madngele" + }, + "zmm": { + "english_name": "Marimanindji" + }, + "zmn": { + "english_name": "Mbangwe" + }, + "zmo": { + "english_name": "Molo" + }, + "zmp": { + "english_name": "Mpuono" + }, + "zmq": { + "english_name": "Mituku" + }, + "zmr": { + "english_name": "Maranunggu" + }, + "zms": { + "english_name": "Mbesa" + }, + "zmt": { + "english_name": "Maringarr" + }, + "zmu": { + "english_name": "Muruwari" + }, + "zmv": { + "english_name": "Mbariman-Gudhinma" + }, + "zmw": { + "english_name": "Mbo (Democratic Republic of Congo)" + }, + "zmx": { + "english_name": "Bomitaba" + }, + "zmy": { + "english_name": "Mariyedi" + }, + "zmz": { + "english_name": "Mbandja" + }, + "zna": { + "english_name": "Zan Gula" + }, + "zne": { + "english_name": "Zande (individual language)" + }, + "zng": { + "english_name": "Mang" + }, + "znk": { + "english_name": "Manangkari" + }, + "zns": { + "english_name": "Mangas" + }, + "zoc": { + "english_name": "Zoque, Copainal\u00e1" + }, + "zoh": { + "english_name": "Zoque, Chimalapa" + }, + "zom": { + "english_name": "Zou" + }, + "zoo": { + "english_name": "Zapotec, Asunci\u00f3n Mixtepec" + }, + "zoq": { + "english_name": "Zoque, Tabasco" + }, + "zor": { + "english_name": "Zoque, Ray\u00f3n" + }, + "zos": { + "english_name": "Zoque, Francisco Le\u00f3n" + }, + "zpa": { + "english_name": "Zapotec, Lachiguiri" + }, + "zpb": { + "english_name": "Zapotec, Yautepec" + }, + "zpc": { + "english_name": "Zapotec, Choapan" + }, + "zpd": { + "english_name": "Zapotec, Southeastern Ixtl\u00e1n" + }, + "zpe": { + "english_name": "Zapotec, Petapa" + }, + "zpf": { + "english_name": "Zapotec, San Pedro Quiatoni" + }, + "zpg": { + "english_name": "Zapotec, Guevea De Humboldt" + }, + "zph": { + "english_name": "Zapotec, Totomachapan" + }, + "zpi": { + "english_name": "Zapotec, Santa Mar\u00eda Quiegolani" + }, + "zpj": { + "english_name": "Zapotec, Quiavicuzas" + }, + "zpk": { + "english_name": "Zapotec, Tlacolulita" + }, + "zpl": { + "english_name": "Zapotec, Lachix\u00edo" + }, + "zpm": { + "english_name": "Zapotec, Mixtepec" + }, + "zpn": { + "english_name": "Zapotec, Santa In\u00e9s Yatzechi" + }, + "zpo": { + "english_name": "Zapotec, Amatl\u00e1n" + }, + "zpp": { + "english_name": "Zapotec, El Alto" + }, + "zpq": { + "english_name": "Zapotec, Zoogocho" + }, + "zpr": { + "english_name": "Zapotec, Santiago Xanica" + }, + "zps": { + "english_name": "Zapotec, Coatl\u00e1n" + }, + "zpt": { + "english_name": "Zapotec, San Vicente Coatl\u00e1n" + }, + "zpu": { + "english_name": "Zapotec, Yal\u00e1lag" + }, + "zpv": { + "english_name": "Zapotec, Chichicapan" + }, + "zpw": { + "english_name": "Zapotec, Zaniza" + }, + "zpx": { + "english_name": "Zapotec, San Baltazar Loxicha" + }, + "zpy": { + "english_name": "Zapotec, Mazaltepec" + }, + "zpz": { + "english_name": "Zapotec, Texmelucan" + }, + "zqe": { + "english_name": "Zhuang, Qiubei" + }, + "zra": { + "english_name": "Kara (Korea)" + }, + "zrg": { + "english_name": "Mirgan" + }, + "zrn": { + "english_name": "Zerenkel" + }, + "zro": { + "english_name": "Z\u00e1paro" + }, + "zrp": { + "english_name": "Zarphatic" + }, + "zrs": { + "english_name": "Mairasi" + }, + "zsa": { + "english_name": "Sarasira" + }, + "zsk": { + "english_name": "Kaskean" + }, + "zsl": { + "english_name": "Zambian Sign Language" + }, + "zsm": { + "english_name": "Malay, Standard" + }, + "zsr": { + "english_name": "Zapotec, Southern Rincon" + }, + "zsu": { + "english_name": "Sukurum" + }, + "zte": { + "english_name": "Zapotec, Elotepec" + }, + "ztg": { + "english_name": "Zapotec, Xanagu\u00eda" + }, + "ztl": { + "english_name": "Zapotec, Lapagu\u00eda-Guivini" + }, + "ztm": { + "english_name": "Zapotec, San Agust\u00edn Mixtepec" + }, + "ztn": { + "english_name": "Zapotec, Santa Catarina Albarradas" + }, + "ztp": { + "english_name": "Zapotec, Loxicha" + }, + "ztq": { + "english_name": "Zapotec, Quioquitani-Quier\u00ed" + }, + "zts": { + "english_name": "Zapotec, Tilquiapan" + }, + "ztt": { + "english_name": "Zapotec, Tejalapan" + }, + "ztu": { + "english_name": "Zapotec, G\u00fcil\u00e1" + }, + "ztx": { + "english_name": "Zapotec, Zaachila" + }, + "zty": { + "english_name": "Zapotec, Yatee" + }, + "zu": { + "english_name": "Zulu", + "name": "Isi-Zulu" + }, + "zua": { + "english_name": "Zeem" + }, + "zuh": { + "english_name": "Tokano" + }, + "zum": { + "english_name": "Kumzari" + }, + "zun": { + "english_name": "Zuni" + }, + "zuy": { + "english_name": "Zumaya" + }, + "zwa": { + "english_name": "Zay" + }, + "zxx": { + "english_name": "No linguistic content" + }, + "zyb": { + "english_name": "Zhuang, Yongbei" + }, + "zyg": { + "english_name": "Zhuang, Yang" + }, + "zyj": { + "english_name": "Zhuang, Youjiang" + }, + "zyn": { + "english_name": "Zhuang, Yongnan" + }, + "zyp": { + "english_name": "Chin, Zyphe" + }, + "zza": { + "english_name": "Zaza" + }, + "zzj": { + "english_name": "Zhuang, Zuojiang" + } + }, + "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-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-UK", + "en-US", + "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", + "he-IL", + "hr-HR", + "hu-HU", + "id-ID", + "it-CH", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "th-TH", + "tl-PH", + "tr-TR", + "tzh-HK", + "tzh-TW", + "vi-VN", + "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-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-UK", + "en-US", + "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", + "he-IL", + "hr-HR", + "hu-HU", + "id-ID", + "it-CH", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "th-TH", + "tl-PH", + "tr-TR", + "tzh-HK", + "tzh-TW", + "vi-VN", + "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-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-UK", + "en-US", + "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", + "he-IL", + "hr-HR", + "hu-HU", + "id-ID", + "it-CH", + "it-IT", + "jp-JP", + "kr-KR", + "lt-LT", + "lv-LV", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sk-SK", + "sl-SL", + "sv-SE", + "th-TH", + "tl-PH", + "tr-TR", + "tzh-HK", + "tzh-TW", + "vi-VN", + "wt-WT", + "zh-CN" + ], + "gigablast": [], + "google": { + "af": { + "name": "Afrikaans" + }, + "ar": { + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "be": { + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "Catal\u00e0" + }, + "cs": { + "name": "\u010ce\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": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00cdslenska" + }, + "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": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "Sloven\u010dina" + }, + "sl": { + "name": "Sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0421\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": "\u0423\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": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "bg": { + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "ca": { + "name": "Catal\u00e0" + }, + "cs": { + "name": "\u010ce\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": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "id": { + "name": "Indonesia" + }, + "is": { + "name": "\u00cdslenska" + }, + "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": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "sk": { + "name": "Sloven\u010dina" + }, + "sl": { + "name": "Sloven\u0161\u010dina" + }, + "sr": { + "name": "\u0421\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": "\u0423\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)" + } + }, + "qwant": [ + "bg-BG", + "br-FR", + "ca-AD", + "ca-ES", + "ca-FR", + "co-FR", + "cs-CZ", + "cy-GB", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-US", + "es-AD", + "es-AR", + "es-CL", + "es-ES", + "es-MX", + "et-EE", + "eu-ES", + "eu-FR", + "fi-FI", + "fr-AD", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "gd-GB", + "he-IL", + "hu-HU", + "it-CH", + "it-IT", + "ja-JP", + "ko-KR", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-AD", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sv-SE", + "th-TH", + "tr-TR" + ], + "qwant images": [ + "bg-BG", + "br-FR", + "ca-AD", + "ca-ES", + "ca-FR", + "co-FR", + "cs-CZ", + "cy-GB", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-US", + "es-AD", + "es-AR", + "es-CL", + "es-ES", + "es-MX", + "et-EE", + "eu-ES", + "eu-FR", + "fi-FI", + "fr-AD", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "gd-GB", + "he-IL", + "hu-HU", + "it-CH", + "it-IT", + "ja-JP", + "ko-KR", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-AD", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sv-SE", + "th-TH", + "tr-TR" + ], + "qwant news": [ + "bg-BG", + "br-FR", + "ca-AD", + "ca-ES", + "ca-FR", + "co-FR", + "cs-CZ", + "cy-GB", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-US", + "es-AD", + "es-AR", + "es-CL", + "es-ES", + "es-MX", + "et-EE", + "eu-ES", + "eu-FR", + "fi-FI", + "fr-AD", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "gd-GB", + "he-IL", + "hu-HU", + "it-CH", + "it-IT", + "ja-JP", + "ko-KR", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-AD", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sv-SE", + "th-TH", + "tr-TR" + ], + "qwant social": [ + "bg-BG", + "br-FR", + "ca-AD", + "ca-ES", + "ca-FR", + "co-FR", + "cs-CZ", + "cy-GB", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-MY", + "en-NZ", + "en-PH", + "en-SG", + "en-US", + "es-AD", + "es-AR", + "es-CL", + "es-ES", + "es-MX", + "et-EE", + "eu-ES", + "eu-FR", + "fi-FI", + "fr-AD", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "gd-GB", + "he-IL", + "hu-HU", + "it-CH", + "it-IT", + "ja-JP", + "ko-KR", + "ms-MY", + "nl-BE", + "nl-NL", + "no-NO", + "pl-PL", + "pt-AD", + "pt-BR", + "pt-PT", + "ro-RO", + "ru-RU", + "sv-SE", + "th-TH", + "tr-TR" + ], + "wikidata": { + "ab": { + "articles": 6031, + "english_name": "Abkhazian", + "name": "\u0410\u04a7\u0441\u0443\u0430" + }, + "ace": { + "articles": 10323, + "english_name": "Acehnese", + "name": "Bahsa Ac\u00e8h" + }, + "ady": { + "articles": 417, + "english_name": "Adyghe", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" + }, + "af": { + "articles": 89423, + "english_name": "Afrikaans", + "name": "Afrikaans" + }, + "ak": { + "articles": 795, + "english_name": "Akan", + "name": "Akana" + }, + "als": { + "articles": 27014, + "english_name": "Alemannic", + "name": "Alemannisch" + }, + "am": { + "articles": 14831, + "english_name": "Amharic", + "name": "\u12a0\u121b\u122d\u129b" + }, + "an": { + "articles": 36741, + "english_name": "Aragonese", + "name": "Aragon\u00e9s" + }, + "ang": { + "articles": 3187, + "english_name": "Anglo-Saxon", + "name": "Englisc" + }, + "ar": { + "articles": 1031588, + "english_name": "Arabic", + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "arc": { + "articles": 1647, + "english_name": "Aramaic", + "name": "\u0710\u072a\u0721\u071d\u0710" + }, + "arz": { + "articles": 145685, + "english_name": "Egyptian Arabic", + "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" + }, + "as": { + "articles": 6381, + "english_name": "Assamese", + "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" + }, + "ast": { + "articles": 100187, + "english_name": "Asturian", + "name": "Asturianu" + }, + "atj": { + "articles": 1167, + "english_name": "Atikamekw", + "name": "Atikamekw" + }, + "av": { + "articles": 2422, + "english_name": "Avar", + "name": "\u0410\u0432\u0430\u0440" + }, + "ay": { + "articles": 4646, + "english_name": "Aymara", + "name": "Aymar" + }, + "az": { + "articles": 155848, + "english_name": "Azerbaijani", + "name": "Az\u0259rbaycanca" + }, + "azb": { + "articles": 183161, + "english_name": "South Azerbaijani", + "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" + }, + "ba": { + "articles": 51161, + "english_name": "Bashkir", + "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" + }, + "ban": { + "articles": 2258, + "english_name": "Balinese", + "name": "Bali" + }, + "bar": { + "articles": 30891, + "english_name": "Bavarian", + "name": "Boarisch" + }, + "bat-smg": { + "articles": 16858, + "english_name": "Samogitian", + "name": "\u017demait\u0117\u0161ka" + }, + "bcl": { + "articles": 9363, + "english_name": "Central Bicolano", + "name": "Bikol" + }, + "be": { + "articles": 185723, + "english_name": "Belarusian", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "be-tarask": { + "articles": 69136, + "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": { + "articles": 260031, + "english_name": "Bulgarian", + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "bh": { + "articles": 7033, + "english_name": "Bhojpuri", + "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" + }, + "bi": { + "articles": 1219, + "english_name": "Bislama", + "name": "Bislama" + }, + "bjn": { + "articles": 2973, + "english_name": "Banjar", + "name": "Bahasa Banjar" + }, + "bm": { + "articles": 664, + "english_name": "Bambara", + "name": "Bamanankan" + }, + "bn": { + "articles": 82134, + "english_name": "Bengali", + "name": "\u09ac\u09be\u0982\u09b2\u09be" + }, + "bo": { + "articles": 5887, + "english_name": "Tibetan", + "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" + }, + "bpy": { + "articles": 25095, + "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": { + "articles": 67768, + "english_name": "Breton", + "name": "Brezhoneg" + }, + "bs": { + "articles": 82109, + "english_name": "Bosnian", + "name": "Bosanski" + }, + "bug": { + "articles": 14127, + "english_name": "Buginese", + "name": "Basa Ugi" + }, + "bxr": { + "articles": 2163, + "english_name": "Buryat", + "name": "\u0411\u0443\u0440\u044f\u0430\u0434" + }, + "ca": { + "articles": 638512, + "english_name": "Catalan", + "name": "Catal\u00e0" + }, + "cbk-zam": { + "articles": 3023, + "english_name": "Zamboanga Chavacano", + "name": "Chavacano de Zamboanga" + }, + "cdo": { + "articles": 15445, + "english_name": "Min Dong", + "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" + }, + "ce": { + "articles": 254141, + "english_name": "Chechen", + "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" + }, + "ceb": { + "articles": 5378538, + "english_name": "Cebuano", + "name": "Sinugboanong Binisaya" + }, + "ch": { + "articles": 513, + "english_name": "Chamorro", + "name": "Chamoru" + }, + "chr": { + "articles": 834, + "english_name": "Cherokee", + "name": "\u13e3\u13b3\u13a9" + }, + "chy": { + "articles": 618, + "english_name": "Cheyenne", + "name": "Tsets\u00eahest\u00e2hese" + }, + "ckb": { + "articles": 25522, + "english_name": "Sorani", + "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" + }, + "co": { + "articles": 5788, + "english_name": "Corsican", + "name": "Corsu" + }, + "cr": { + "articles": 104, + "english_name": "Cree", + "name": "Nehiyaw" + }, + "crh": { + "articles": 7046, + "english_name": "Crimean Tatar", + "name": "Q\u0131r\u0131mtatarca" + }, + "cs": { + "articles": 447036, + "english_name": "Czech", + "name": "\u010ce\u0161tina" + }, + "csb": { + "articles": 5329, + "english_name": "Kashubian", + "name": "Kasz\u00ebbsczi" + }, + "cu": { + "articles": 702, + "english_name": "Old Church Slavonic", + "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" + }, + "cv": { + "articles": 42681, + "english_name": "Chuvash", + "name": "\u0427\u0103\u0432\u0430\u0448" + }, + "cy": { + "articles": 107176, + "english_name": "Welsh", + "name": "Cymraeg" + }, + "da": { + "articles": 257264, + "english_name": "Danish", + "name": "Dansk" + }, + "de": { + "articles": 2402917, + "english_name": "German", + "name": "Deutsch" + }, + "din": { + "articles": 122, + "english_name": "Dinka", + "name": "Thu\u0254\u014bj\u00e4\u014b" + }, + "diq": { + "articles": 13329, + "english_name": "Zazaki", + "name": "Zazaki" + }, + "dsb": { + "articles": 3251, + "english_name": "Lower Sorbian", + "name": "Dolnoserbski" + }, + "dty": { + "articles": 3242, + "english_name": "Doteli", + "name": "\u0921\u094b\u091f\u0947\u0932\u0940" + }, + "dv": { + "articles": 3002, + "english_name": "Divehi", + "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" + }, + "dz": { + "articles": 222, + "english_name": "Dzongkha", + "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" + }, + "ee": { + "articles": 358, + "english_name": "Ewe", + "name": "E\u028begbe" + }, + "el": { + "articles": 174096, + "english_name": "Greek", + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "eml": { + "articles": 12321, + "english_name": "Emilian-Romagnol", + "name": "Emili\u00e0n e rumagn\u00f2l" + }, + "en": { + "articles": 6023622, + "english_name": "English", + "name": "English" + }, + "eo": { + "articles": 275593, + "english_name": "Esperanto", + "name": "Esperanto" + }, + "es": { + "articles": 1579723, + "english_name": "Spanish", + "name": "Espa\u00f1ol" + }, + "et": { + "articles": 206326, + "english_name": "Estonian", + "name": "Eesti" + }, + "eu": { + "articles": 351277, + "english_name": "Basque", + "name": "Euskara" + }, + "ext": { + "articles": 3180, + "english_name": "Extremaduran", + "name": "Estreme\u00f1u" + }, + "fa": { + "articles": 712079, + "english_name": "Persian", + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "ff": { + "articles": 238, + "english_name": "Fula", + "name": "Fulfulde" + }, + "fi": { + "articles": 479513, + "english_name": "Finnish", + "name": "Suomi" + }, + "fiu-vro": { + "articles": 5533, + "english_name": "V\u00f5ro", + "name": "V\u00f5ro" + }, + "fj": { + "articles": 780, + "english_name": "Fijian", + "name": "Na Vosa Vakaviti" + }, + "fo": { + "articles": 13305, + "english_name": "Faroese", + "name": "F\u00f8royskt" + }, + "fr": { + "articles": 2184872, + "english_name": "French", + "name": "Fran\u00e7ais" + }, + "frp": { + "articles": 3529, + "english_name": "Franco-Proven\u00e7al", + "name": "Arpitan" + }, + "frr": { + "articles": 10273, + "english_name": "North Frisian", + "name": "Nordfriisk" + }, + "fur": { + "articles": 3338, + "english_name": "Friulian", + "name": "Furlan" + }, + "fy": { + "articles": 43513, + "english_name": "West Frisian", + "name": "Frysk" + }, + "ga": { + "articles": 52203, + "english_name": "Irish", + "name": "Gaeilge" + }, + "gag": { + "articles": 2726, + "english_name": "Gagauz", + "name": "Gagauz" + }, + "gan": { + "articles": 6430, + "english_name": "Gan", + "name": "\u8d1b\u8a9e" + }, + "gcr": { + "articles": 1001, + "english_name": "Guianan Creole", + "name": "Kriy\u00f2l Gwiyannen" + }, + "gd": { + "articles": 15062, + "english_name": "Scottish Gaelic", + "name": "G\u00e0idhlig" + }, + "gl": { + "articles": 161843, + "english_name": "Galician", + "name": "Galego" + }, + "glk": { + "articles": 5931, + "english_name": "Gilaki", + "name": "\u06af\u06cc\u0644\u06a9\u06cc" + }, + "gn": { + "articles": 3763, + "english_name": "Guarani", + "name": "Ava\u00f1e'\u1ebd" + }, + "gom": { + "articles": 3723, + "english_name": "Goan Konkani", + "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" + }, + "gor": { + "articles": 2542, + "english_name": "Gorontalo", + "name": "Hulontalo" + }, + "got": { + "articles": 825, + "english_name": "Gothic", + "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" + }, + "gu": { + "articles": 28880, + "english_name": "Gujarati", + "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" + }, + "gv": { + "articles": 4996, + "english_name": "Manx", + "name": "Gaelg" + }, + "ha": { + "articles": 4631, + "english_name": "Hausa", + "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" + }, + "hak": { + "articles": 9277, + "english_name": "Hakka", + "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" + }, + "haw": { + "articles": 3862, + "english_name": "Hawaiian", + "name": "Hawai`i" + }, + "he": { + "articles": 259224, + "english_name": "Hebrew", + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "hi": { + "articles": 136564, + "english_name": "Hindi", + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hif": { + "articles": 9774, + "english_name": "Fiji Hindi", + "name": "Fiji Hindi" + }, + "hr": { + "articles": 215457, + "english_name": "Croatian", + "name": "Hrvatski" + }, + "hsb": { + "articles": 13546, + "english_name": "Upper Sorbian", + "name": "Hornjoserbsce" + }, + "ht": { + "articles": 57995, + "english_name": "Haitian", + "name": "Kr\u00e8yol ayisyen" + }, + "hu": { + "articles": 465402, + "english_name": "Hungarian", + "name": "Magyar" + }, + "hy": { + "articles": 264666, + "english_name": "Armenian", + "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "hyw": { + "articles": 7830, + "english_name": "Western Armenian", + "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" + }, + "ia": { + "articles": 22095, + "english_name": "Interlingua", + "name": "Interlingua" + }, + "id": { + "articles": 521569, + "english_name": "Indonesian", + "name": "Bahasa Indonesia" + }, + "ie": { + "articles": 4723, + "english_name": "Interlingue", + "name": "Interlingue" + }, + "ig": { + "articles": 1448, + "english_name": "Igbo", + "name": "Igbo" + }, + "ik": { + "articles": 280, + "english_name": "Inupiak", + "name": "I\u00f1upiak" + }, + "ilo": { + "articles": 14221, + "english_name": "Ilokano", + "name": "Ilokano" + }, + "inh": { + "articles": 1225, + "english_name": "Ingush", + "name": "\u0413\u04cf\u0430\u043b\u0433\u04cf\u0430\u0439" + }, + "io": { + "articles": 29252, + "english_name": "Ido", + "name": "Ido" + }, + "is": { + "articles": 49128, + "english_name": "Icelandic", + "name": "\u00cdslenska" + }, + "it": { + "articles": 1585945, + "english_name": "Italian", + "name": "Italiano" + }, + "iu": { + "articles": 403, + "english_name": "Inuktitut", + "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" + }, + "ja": { + "articles": 1192319, + "english_name": "Japanese", + "name": "\u65e5\u672c\u8a9e" + }, + "jam": { + "articles": 1648, + "english_name": "Jamaican Patois", + "name": "Jumiekan Kryuol" + }, + "jbo": { + "articles": 1251, + "english_name": "Lojban", + "name": "Lojban" + }, + "jv": { + "articles": 57275, + "english_name": "Javanese", + "name": "Basa Jawa" + }, + "ka": { + "articles": 135269, + "english_name": "Georgian", + "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" + }, + "kaa": { + "articles": 1883, + "english_name": "Karakalpak", + "name": "Qaraqalpaqsha" + }, + "kab": { + "articles": 4508, + "english_name": "Kabyle", + "name": "Taqbaylit" + }, + "kbd": { + "articles": 1584, + "english_name": "Kabardian Circassian", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" + }, + "kbp": { + "articles": 1603, + "english_name": "Kabiye", + "name": "Kab\u0269y\u025b" + }, + "kg": { + "articles": 1197, + "english_name": "Kongo", + "name": "KiKongo" + }, + "ki": { + "articles": 1368, + "english_name": "Kikuyu", + "name": "G\u0129k\u0169y\u0169" + }, + "kk": { + "articles": 226239, + "english_name": "Kazakh", + "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" + }, + "kl": { + "articles": 1669, + "english_name": "Greenlandic", + "name": "Kalaallisut" + }, + "km": { + "articles": 7994, + "english_name": "Khmer", + "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" + }, + "kn": { + "articles": 25796, + "english_name": "Kannada", + "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" + }, + "ko": { + "articles": 485688, + "english_name": "Korean", + "name": "\ud55c\uad6d\uc5b4" + }, + "koi": { + "articles": 3452, + "english_name": "Komi-Permyak", + "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" + }, + "krc": { + "articles": 2037, + "english_name": "Karachay-Balkar", + "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" + }, + "ks": { + "articles": 368, + "english_name": "Kashmiri", + "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" + }, + "ksh": { + "articles": 2861, + "english_name": "Ripuarian", + "name": "Ripoarisch" + }, + "ku": { + "articles": 26872, + "english_name": "Kurdish", + "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" + }, + "kv": { + "articles": 5333, + "english_name": "Komi", + "name": "\u041a\u043e\u043c\u0438" + }, + "kw": { + "articles": 3939, + "english_name": "Cornish", + "name": "Kernewek/Karnuack" + }, + "ky": { + "articles": 79759, + "english_name": "Kirghiz", + "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" + }, + "la": { + "articles": 132249, + "english_name": "Latin", + "name": "Latina" + }, + "lad": { + "articles": 3545, + "english_name": "Ladino", + "name": "Dzhudezmo" + }, + "lb": { + "articles": 57817, + "english_name": "Luxembourgish", + "name": "L\u00ebtzebuergesch" + }, + "lbe": { + "articles": 1220, + "english_name": "Lak", + "name": "\u041b\u0430\u043a\u043a\u0443" + }, + "lez": { + "articles": 4057, + "english_name": "Lezgian", + "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" + }, + "lfn": { + "articles": 3723, + "english_name": "Lingua Franca Nova", + "name": "Lingua franca nova" + }, + "lg": { + "articles": 1178, + "english_name": "Luganda", + "name": "Luganda" + }, + "li": { + "articles": 12737, + "english_name": "Limburgish", + "name": "Limburgs" + }, + "lij": { + "articles": 3682, + "english_name": "Ligurian", + "name": "L\u00edguru" + }, + "lmo": { + "articles": 39359, + "english_name": "Lombard", + "name": "Lumbaart" + }, + "ln": { + "articles": 3136, + "english_name": "Lingala", + "name": "Lingala" + }, + "lo": { + "articles": 3545, + "english_name": "Lao", + "name": "\u0ea5\u0eb2\u0ea7" + }, + "lrc": { + "articles": 5360, + "english_name": "Northern Luri", + "name": "\u0644\u06ca\u0631\u06cc \u0634\u0648\u0645\u0627\u0644\u06cc" + }, + "lt": { + "articles": 198453, + "english_name": "Lithuanian", + "name": "Lietuvi\u0173" + }, + "ltg": { + "articles": 932, + "english_name": "Latgalian", + "name": "Latga\u013cu" + }, + "lv": { + "articles": 100417, + "english_name": "Latvian", + "name": "Latvie\u0161u" + }, + "mai": { + "articles": 13512, + "english_name": "Maithili", + "name": "\u092e\u0948\u0925\u093f\u0932\u0940" + }, + "map-bms": { + "articles": 13344, + "english_name": "Banyumasan", + "name": "Basa Banyumasan" + }, + "mdf": { + "articles": 1192, + "english_name": "Moksha", + "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" + }, + "mg": { + "articles": 92711, + "english_name": "Malagasy", + "name": "Malagasy" + }, + "mhr": { + "articles": 10108, + "english_name": "Meadow Mari", + "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" + }, + "mi": { + "articles": 7159, + "english_name": "Maori", + "name": "M\u0101ori" + }, + "min": { + "articles": 223738, + "english_name": "Minangkabau", + "name": "Minangkabau" + }, + "mk": { + "articles": 104303, + "english_name": "Macedonian", + "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" + }, + "ml": { + "articles": 67743, + "english_name": "Malayalam", + "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" + }, + "mn": { + "articles": 19010, + "english_name": "Mongolian", + "name": "\u041c\u043e\u043d\u0433\u043e\u043b" + }, + "mnw": { + "articles": 470, + "english_name": "Mon", + "name": "\u1019\u1014\u103a" + }, + "mr": { + "articles": 56283, + "english_name": "Marathi", + "name": "\u092e\u0930\u093e\u0920\u0940" + }, + "mrj": { + "articles": 10270, + "english_name": "Hill Mari", + "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" + }, + "ms": { + "articles": 334930, + "english_name": "Malay", + "name": "Bahasa Melayu" + }, + "mt": { + "articles": 3442, + "english_name": "Maltese", + "name": "Malti" + }, + "mwl": { + "articles": 3783, + "english_name": "Mirandese", + "name": "Mirand\u00e9s" + }, + "my": { + "articles": 45399, + "english_name": "Burmese", + "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" + }, + "myv": { + "articles": 5871, + "english_name": "Erzya", + "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" + }, + "mzn": { + "articles": 13127, + "english_name": "Mazandarani", + "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" + }, + "na": { + "articles": 1309, + "english_name": "Nauruan", + "name": "dorerin Naoero" + }, + "nah": { + "articles": 6976, + "english_name": "Nahuatl", + "name": "N\u0101huatl" + }, + "nap": { + "articles": 14561, + "english_name": "Neapolitan", + "name": "Nnapulitano" + }, + "nds": { + "articles": 61186, + "english_name": "Low Saxon", + "name": "Plattd\u00fc\u00fctsch" + }, + "nds-nl": { + "articles": 6935, + "english_name": "Dutch Low Saxon", + "name": "Nedersaksisch" + }, + "ne": { + "articles": 34031, + "english_name": "Nepali", + "name": "\u0928\u0947\u092a\u093e\u0932\u0940" + }, + "new": { + "articles": 72233, + "english_name": "Newar", + "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" + }, + "nl": { + "articles": 1998535, + "english_name": "Dutch", + "name": "Nederlands" + }, + "nn": { + "articles": 151775, + "english_name": "Norwegian (Nynorsk)", + "name": "Nynorsk" + }, + "no": { + "articles": 529258, + "english_name": "Norwegian (Bokm\u00e5l)", + "name": "Norsk (Bokm\u00e5l)" + }, + "nov": { + "articles": 1671, + "english_name": "Novial", + "name": "Novial" + }, + "nqo": { + "articles": 546, + "english_name": "N\u2019Ko", + "name": "\u07d2\u07de\u07cf" + }, + "nrm": { + "articles": 4332, + "english_name": "Norman", + "name": "Nouormand/Normaund" + }, + "nso": { + "articles": 8175, + "english_name": "Northern Sotho", + "name": "Sepedi" + }, + "nv": { + "articles": 12264, + "english_name": "Navajo", + "name": "Din\u00e9 bizaad" + }, + "ny": { + "articles": 565, + "english_name": "Chichewa", + "name": "Chichewa" + }, + "oc": { + "articles": 87871, + "english_name": "Occitan", + "name": "Occitan" + }, + "olo": { + "articles": 3236, + "english_name": "Livvi-Karelian", + "name": "Karjalan" + }, + "om": { + "articles": 786, + "english_name": "Oromo", + "name": "Oromoo" + }, + "or": { + "articles": 15579, + "english_name": "Oriya", + "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" + }, + "os": { + "articles": 11884, + "english_name": "Ossetian", + "name": "\u0418\u0440\u043e\u043d\u0430\u0443" + }, + "pa": { + "articles": 33858, + "english_name": "Punjabi", + "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" + }, + "pag": { + "articles": 2531, + "english_name": "Pangasinan", + "name": "Pangasinan" + }, + "pam": { + "articles": 8637, + "english_name": "Kapampangan", + "name": "Kapampangan" + }, + "pap": { + "articles": 1941, + "english_name": "Papiamentu", + "name": "Papiamentu" + }, + "pcd": { + "articles": 4666, + "english_name": "Picard", + "name": "Picard" + }, + "pdc": { + "articles": 1877, + "english_name": "Pennsylvania German", + "name": "Deitsch" + }, + "pfl": { + "articles": 2647, + "english_name": "Palatinate German", + "name": "P\u00e4lzisch" + }, + "pi": { + "articles": 2540, + "english_name": "Pali", + "name": "\u092a\u093e\u0934\u093f" + }, + "pih": { + "articles": 796, + "english_name": "Norfolk", + "name": "Norfuk" + }, + "pl": { + "articles": 1386843, + "english_name": "Polish", + "name": "Polski" + }, + "pms": { + "articles": 64598, + "english_name": "Piedmontese", + "name": "Piemont\u00e8is" + }, + "pnb": { + "articles": 52557, + "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": { + "articles": 467, + "english_name": "Pontic", + "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" + }, + "ps": { + "articles": 10997, + "english_name": "Pashto", + "name": "\u067e\u069a\u062a\u0648" + }, + "pt": { + "articles": 1021915, + "english_name": "Portuguese", + "name": "Portugu\u00eas" + }, + "qu": { + "articles": 21801, + "english_name": "Quechua", + "name": "Runa Simi" + }, + "rm": { + "articles": 3646, + "english_name": "Romansh", + "name": "Rumantsch" + }, + "rmy": { + "articles": 675, + "english_name": "Romani", + "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" + }, + "rn": { + "articles": 615, + "english_name": "Kirundi", + "name": "Kirundi" + }, + "ro": { + "articles": 404592, + "english_name": "Romanian", + "name": "Rom\u00e2n\u0103" + }, + "roa-rup": { + "articles": 1225, + "english_name": "Aromanian", + "name": "Arm\u00e3neashce" + }, + "roa-tara": { + "articles": 9249, + "english_name": "Tarantino", + "name": "Tarand\u00edne" + }, + "ru": { + "articles": 1600812, + "english_name": "Russian", + "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "rue": { + "articles": 7447, + "english_name": "Rusyn", + "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" + }, + "rw": { + "articles": 1820, + "english_name": "Kinyarwanda", + "name": "Ikinyarwanda" + }, + "sa": { + "articles": 11456, + "english_name": "Sanskrit", + "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" + }, + "sah": { + "articles": 12199, + "english_name": "Sakha", + "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" + }, + "sat": { + "articles": 2470, + "english_name": "Santali", + "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" + }, + "sc": { + "articles": 6371, + "english_name": "Sardinian", + "name": "Sardu" + }, + "scn": { + "articles": 26074, + "english_name": "Sicilian", + "name": "Sicilianu" + }, + "sco": { + "articles": 56578, + "english_name": "Scots", + "name": "Scots" + }, + "sd": { + "articles": 12956, + "english_name": "Sindhi", + "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" + }, + "se": { + "articles": 7612, + "english_name": "Northern Sami", + "name": "S\u00e1megiella" + }, + "sg": { + "articles": 262, + "english_name": "Sango", + "name": "S\u00e4ng\u00f6" + }, + "sh": { + "articles": 451031, + "english_name": "Serbo-Croatian", + "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" + }, + "shn": { + "articles": 6745, + "english_name": "Shan", + "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" + }, + "si": { + "articles": 15543, + "english_name": "Sinhalese", + "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" + }, + "simple": { + "articles": 155539, + "english_name": "Simple English", + "name": "Simple English" + }, + "sk": { + "articles": 232538, + "english_name": "Slovak", + "name": "Sloven\u010dina" + }, + "sl": { + "articles": 167090, + "english_name": "Slovenian", + "name": "Sloven\u0161\u010dina" + }, + "sm": { + "articles": 823, + "english_name": "Samoan", + "name": "Gagana Samoa" + }, + "sn": { + "articles": 4996, + "english_name": "Shona", + "name": "chiShona" + }, + "so": { + "articles": 5752, + "english_name": "Somali", + "name": "Soomaali" + }, + "sq": { + "articles": 78674, + "english_name": "Albanian", + "name": "Shqip" + }, + "sr": { + "articles": 630590, + "english_name": "Serbian", + "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" + }, + "srn": { + "articles": 1076, + "english_name": "Sranan", + "name": "Sranantongo" + }, + "ss": { + "articles": 504, + "english_name": "Swati", + "name": "SiSwati" + }, + "st": { + "articles": 656, + "english_name": "Sesotho", + "name": "Sesotho" + }, + "stq": { + "articles": 4017, + "english_name": "Saterland Frisian", + "name": "Seeltersk" + }, + "su": { + "articles": 59863, + "english_name": "Sundanese", + "name": "Basa Sunda" + }, + "sv": { + "articles": 3738262, + "english_name": "Swedish", + "name": "Svenska" + }, + "sw": { + "articles": 55888, + "english_name": "Swahili", + "name": "Kiswahili" + }, + "szl": { + "articles": 51946, + "english_name": "Silesian", + "name": "\u015al\u016fnski" + }, + "szy": { + "articles": 1748, + "english_name": "Sakizaya", + "name": "Sakizaya" + }, + "ta": { + "articles": 127284, + "english_name": "Tamil", + "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" + }, + "tcy": { + "articles": 1271, + "english_name": "Tulu", + "name": "\u0ca4\u0cc1\u0cb3\u0cc1" + }, + "te": { + "articles": 70262, + "english_name": "Telugu", + "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" + }, + "tet": { + "articles": 1475, + "english_name": "Tetum", + "name": "Tetun" + }, + "tg": { + "articles": 100460, + "english_name": "Tajik", + "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" + }, + "th": { + "articles": 135321, + "english_name": "Thai", + "name": "\u0e44\u0e17\u0e22" + }, + "ti": { + "articles": 202, + "english_name": "Tigrinya", + "name": "\u1275\u130d\u122d\u129b" + }, + "tk": { + "articles": 5656, + "english_name": "Turkmen", + "name": "T\u00fcrkmen" + }, + "tl": { + "articles": 75674, + "english_name": "Tagalog", + "name": "Tagalog" + }, + "tn": { + "articles": 710, + "english_name": "Tswana", + "name": "Setswana" + }, + "to": { + "articles": 1738, + "english_name": "Tongan", + "name": "faka Tonga" + }, + "tpi": { + "articles": 1608, + "english_name": "Tok Pisin", + "name": "Tok Pisin" + }, + "tr": { + "articles": 343072, + "english_name": "Turkish", + "name": "T\u00fcrk\u00e7e" + }, + "ts": { + "articles": 683, + "english_name": "Tsonga", + "name": "Xitsonga" + }, + "tt": { + "articles": 89002, + "english_name": "Tatar", + "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" + }, + "tum": { + "articles": 586, + "english_name": "Tumbuka", + "name": "chiTumbuka" + }, + "tw": { + "articles": 705, + "english_name": "Twi", + "name": "Twi" + }, + "ty": { + "articles": 1204, + "english_name": "Tahitian", + "name": "Reo M\u0101`ohi" + }, + "tyv": { + "articles": 1987, + "english_name": "Tuvan", + "name": "\u0422\u044b\u0432\u0430" + }, + "udm": { + "articles": 4848, + "english_name": "Udmurt", + "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" + }, + "ug": { + "articles": 4244, + "english_name": "Uyghur", + "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" + }, + "uk": { + "articles": 993357, + "english_name": "Ukrainian", + "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "ur": { + "articles": 151971, + "english_name": "Urdu", + "name": "\u0627\u0631\u062f\u0648" + }, + "uz": { + "articles": 133433, + "english_name": "Uzbek", + "name": "O\u2018zbek" + }, + "ve": { + "articles": 368, + "english_name": "Venda", + "name": "Tshivenda" + }, + "vec": { + "articles": 19577, + "english_name": "Venetian", + "name": "V\u00e8neto" + }, + "vep": { + "articles": 6395, + "english_name": "Vepsian", + "name": "Veps\u00e4n" + }, + "vi": { + "articles": 1241042, + "english_name": "Vietnamese", + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "vls": { + "articles": 7079, + "english_name": "West Flemish", + "name": "West-Vlams" + }, + "vo": { + "articles": 124156, + "english_name": "Volap\u00fck", + "name": "Volap\u00fck" + }, + "wa": { + "articles": 15627, + "english_name": "Walloon", + "name": "Walon" + }, + "war": { + "articles": 1263934, + "english_name": "Waray-Waray", + "name": "Winaray" + }, + "wo": { + "articles": 1387, + "english_name": "Wolof", + "name": "Wolof" + }, + "wuu": { + "articles": 28716, + "english_name": "Wu", + "name": "\u5434\u8bed" + }, + "xal": { + "articles": 2082, + "english_name": "Kalmyk", + "name": "\u0425\u0430\u043b\u044c\u043c\u0433" + }, + "xh": { + "articles": 1043, + "english_name": "Xhosa", + "name": "isiXhosa" + }, + "xmf": { + "articles": 13670, + "english_name": "Mingrelian", + "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" + }, + "yi": { + "articles": 14999, + "english_name": "Yiddish", + "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" + }, + "yo": { + "articles": 32321, + "english_name": "Yoruba", + "name": "Yor\u00f9b\u00e1" + }, + "za": { + "articles": 1952, + "english_name": "Zhuang", + "name": "Cuengh" + }, + "zea": { + "articles": 4727, + "english_name": "Zeelandic", + "name": "Ze\u00eauws" + }, + "zh": { + "articles": 1099382, + "english_name": "Chinese", + "name": "\u4e2d\u6587" + }, + "zh-classical": { + "articles": 10187, + "english_name": "Classical Chinese", + "name": "\u53e4\u6587 / \u6587\u8a00\u6587" + }, + "zh-min-nan": { + "articles": 264433, + "english_name": "Min Nan", + "name": "B\u00e2n-l\u00e2m-g\u00fa" + }, + "zh-yue": { + "articles": 77673, + "english_name": "Cantonese", + "name": "\u7cb5\u8a9e" + }, + "zu": { + "articles": 1382, + "english_name": "Zulu", + "name": "isiZulu" + } + }, + "wikipedia": { + "ab": { + "articles": 6031, + "english_name": "Abkhazian", + "name": "\u0410\u04a7\u0441\u0443\u0430" + }, + "ace": { + "articles": 10323, + "english_name": "Acehnese", + "name": "Bahsa Ac\u00e8h" + }, + "ady": { + "articles": 417, + "english_name": "Adyghe", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d" + }, + "af": { + "articles": 89423, + "english_name": "Afrikaans", + "name": "Afrikaans" + }, + "ak": { + "articles": 795, + "english_name": "Akan", + "name": "Akana" + }, + "als": { + "articles": 27014, + "english_name": "Alemannic", + "name": "Alemannisch" + }, + "am": { + "articles": 14831, + "english_name": "Amharic", + "name": "\u12a0\u121b\u122d\u129b" + }, + "an": { + "articles": 36741, + "english_name": "Aragonese", + "name": "Aragon\u00e9s" + }, + "ang": { + "articles": 3187, + "english_name": "Anglo-Saxon", + "name": "Englisc" + }, + "ar": { + "articles": 1031588, + "english_name": "Arabic", + "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629" + }, + "arc": { + "articles": 1647, + "english_name": "Aramaic", + "name": "\u0710\u072a\u0721\u071d\u0710" + }, + "arz": { + "articles": 145685, + "english_name": "Egyptian Arabic", + "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63ri)" + }, + "as": { + "articles": 6381, + "english_name": "Assamese", + "name": "\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be" + }, + "ast": { + "articles": 100187, + "english_name": "Asturian", + "name": "Asturianu" + }, + "atj": { + "articles": 1167, + "english_name": "Atikamekw", + "name": "Atikamekw" + }, + "av": { + "articles": 2422, + "english_name": "Avar", + "name": "\u0410\u0432\u0430\u0440" + }, + "ay": { + "articles": 4646, + "english_name": "Aymara", + "name": "Aymar" + }, + "az": { + "articles": 155848, + "english_name": "Azerbaijani", + "name": "Az\u0259rbaycanca" + }, + "azb": { + "articles": 183161, + "english_name": "South Azerbaijani", + "name": "\u062a\u06c6\u0631\u06a9\u062c\u0647" + }, + "ba": { + "articles": 51161, + "english_name": "Bashkir", + "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442" + }, + "ban": { + "articles": 2258, + "english_name": "Balinese", + "name": "Bali" + }, + "bar": { + "articles": 30891, + "english_name": "Bavarian", + "name": "Boarisch" + }, + "bat-smg": { + "articles": 16858, + "english_name": "Samogitian", + "name": "\u017demait\u0117\u0161ka" + }, + "bcl": { + "articles": 9363, + "english_name": "Central Bicolano", + "name": "Bikol" + }, + "be": { + "articles": 185723, + "english_name": "Belarusian", + "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f" + }, + "be-tarask": { + "articles": 69136, + "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": { + "articles": 260031, + "english_name": "Bulgarian", + "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438" + }, + "bh": { + "articles": 7033, + "english_name": "Bhojpuri", + "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940" + }, + "bi": { + "articles": 1219, + "english_name": "Bislama", + "name": "Bislama" + }, + "bjn": { + "articles": 2973, + "english_name": "Banjar", + "name": "Bahasa Banjar" + }, + "bm": { + "articles": 664, + "english_name": "Bambara", + "name": "Bamanankan" + }, + "bn": { + "articles": 82134, + "english_name": "Bengali", + "name": "\u09ac\u09be\u0982\u09b2\u09be" + }, + "bo": { + "articles": 5887, + "english_name": "Tibetan", + "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51" + }, + "bpy": { + "articles": 25095, + "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": { + "articles": 67768, + "english_name": "Breton", + "name": "Brezhoneg" + }, + "bs": { + "articles": 82109, + "english_name": "Bosnian", + "name": "Bosanski" + }, + "bug": { + "articles": 14127, + "english_name": "Buginese", + "name": "Basa Ugi" + }, + "bxr": { + "articles": 2163, + "english_name": "Buryat", + "name": "\u0411\u0443\u0440\u044f\u0430\u0434" + }, + "ca": { + "articles": 638512, + "english_name": "Catalan", + "name": "Catal\u00e0" + }, + "cbk-zam": { + "articles": 3023, + "english_name": "Zamboanga Chavacano", + "name": "Chavacano de Zamboanga" + }, + "cdo": { + "articles": 15445, + "english_name": "Min Dong", + "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304" + }, + "ce": { + "articles": 254141, + "english_name": "Chechen", + "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d" + }, + "ceb": { + "articles": 5378538, + "english_name": "Cebuano", + "name": "Sinugboanong Binisaya" + }, + "ch": { + "articles": 513, + "english_name": "Chamorro", + "name": "Chamoru" + }, + "chr": { + "articles": 834, + "english_name": "Cherokee", + "name": "\u13e3\u13b3\u13a9" + }, + "chy": { + "articles": 618, + "english_name": "Cheyenne", + "name": "Tsets\u00eahest\u00e2hese" + }, + "ckb": { + "articles": 25522, + "english_name": "Sorani", + "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc" + }, + "co": { + "articles": 5788, + "english_name": "Corsican", + "name": "Corsu" + }, + "cr": { + "articles": 104, + "english_name": "Cree", + "name": "Nehiyaw" + }, + "crh": { + "articles": 7046, + "english_name": "Crimean Tatar", + "name": "Q\u0131r\u0131mtatarca" + }, + "cs": { + "articles": 447036, + "english_name": "Czech", + "name": "\u010ce\u0161tina" + }, + "csb": { + "articles": 5329, + "english_name": "Kashubian", + "name": "Kasz\u00ebbsczi" + }, + "cu": { + "articles": 702, + "english_name": "Old Church Slavonic", + "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a" + }, + "cv": { + "articles": 42681, + "english_name": "Chuvash", + "name": "\u0427\u0103\u0432\u0430\u0448" + }, + "cy": { + "articles": 107176, + "english_name": "Welsh", + "name": "Cymraeg" + }, + "da": { + "articles": 257264, + "english_name": "Danish", + "name": "Dansk" + }, + "de": { + "articles": 2402917, + "english_name": "German", + "name": "Deutsch" + }, + "din": { + "articles": 122, + "english_name": "Dinka", + "name": "Thu\u0254\u014bj\u00e4\u014b" + }, + "diq": { + "articles": 13329, + "english_name": "Zazaki", + "name": "Zazaki" + }, + "dsb": { + "articles": 3251, + "english_name": "Lower Sorbian", + "name": "Dolnoserbski" + }, + "dty": { + "articles": 3242, + "english_name": "Doteli", + "name": "\u0921\u094b\u091f\u0947\u0932\u0940" + }, + "dv": { + "articles": 3002, + "english_name": "Divehi", + "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0" + }, + "dz": { + "articles": 222, + "english_name": "Dzongkha", + "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41" + }, + "ee": { + "articles": 358, + "english_name": "Ewe", + "name": "E\u028begbe" + }, + "el": { + "articles": 174096, + "english_name": "Greek", + "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac" + }, + "eml": { + "articles": 12321, + "english_name": "Emilian-Romagnol", + "name": "Emili\u00e0n e rumagn\u00f2l" + }, + "en": { + "articles": 6023622, + "english_name": "English", + "name": "English" + }, + "eo": { + "articles": 275593, + "english_name": "Esperanto", + "name": "Esperanto" + }, + "es": { + "articles": 1579723, + "english_name": "Spanish", + "name": "Espa\u00f1ol" + }, + "et": { + "articles": 206326, + "english_name": "Estonian", + "name": "Eesti" + }, + "eu": { + "articles": 351277, + "english_name": "Basque", + "name": "Euskara" + }, + "ext": { + "articles": 3180, + "english_name": "Extremaduran", + "name": "Estreme\u00f1u" + }, + "fa": { + "articles": 712079, + "english_name": "Persian", + "name": "\u0641\u0627\u0631\u0633\u06cc" + }, + "ff": { + "articles": 238, + "english_name": "Fula", + "name": "Fulfulde" + }, + "fi": { + "articles": 479513, + "english_name": "Finnish", + "name": "Suomi" + }, + "fiu-vro": { + "articles": 5533, + "english_name": "V\u00f5ro", + "name": "V\u00f5ro" + }, + "fj": { + "articles": 780, + "english_name": "Fijian", + "name": "Na Vosa Vakaviti" + }, + "fo": { + "articles": 13305, + "english_name": "Faroese", + "name": "F\u00f8royskt" + }, + "fr": { + "articles": 2184872, + "english_name": "French", + "name": "Fran\u00e7ais" + }, + "frp": { + "articles": 3529, + "english_name": "Franco-Proven\u00e7al", + "name": "Arpitan" + }, + "frr": { + "articles": 10273, + "english_name": "North Frisian", + "name": "Nordfriisk" + }, + "fur": { + "articles": 3338, + "english_name": "Friulian", + "name": "Furlan" + }, + "fy": { + "articles": 43513, + "english_name": "West Frisian", + "name": "Frysk" + }, + "ga": { + "articles": 52203, + "english_name": "Irish", + "name": "Gaeilge" + }, + "gag": { + "articles": 2726, + "english_name": "Gagauz", + "name": "Gagauz" + }, + "gan": { + "articles": 6430, + "english_name": "Gan", + "name": "\u8d1b\u8a9e" + }, + "gcr": { + "articles": 1001, + "english_name": "Guianan Creole", + "name": "Kriy\u00f2l Gwiyannen" + }, + "gd": { + "articles": 15062, + "english_name": "Scottish Gaelic", + "name": "G\u00e0idhlig" + }, + "gl": { + "articles": 161843, + "english_name": "Galician", + "name": "Galego" + }, + "glk": { + "articles": 5931, + "english_name": "Gilaki", + "name": "\u06af\u06cc\u0644\u06a9\u06cc" + }, + "gn": { + "articles": 3763, + "english_name": "Guarani", + "name": "Ava\u00f1e'\u1ebd" + }, + "gom": { + "articles": 3723, + "english_name": "Goan Konkani", + "name": "\u0917\u094b\u0902\u092f\u091a\u0940 \u0915\u094b\u0902\u0915\u0923\u0940 / G\u00f5ychi Konknni" + }, + "gor": { + "articles": 2542, + "english_name": "Gorontalo", + "name": "Hulontalo" + }, + "got": { + "articles": 825, + "english_name": "Gothic", + "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a" + }, + "gu": { + "articles": 28880, + "english_name": "Gujarati", + "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0" + }, + "gv": { + "articles": 4996, + "english_name": "Manx", + "name": "Gaelg" + }, + "ha": { + "articles": 4631, + "english_name": "Hausa", + "name": "Hausa / \u0647\u064e\u0648\u064f\u0633\u064e" + }, + "hak": { + "articles": 9277, + "english_name": "Hakka", + "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71" + }, + "haw": { + "articles": 3862, + "english_name": "Hawaiian", + "name": "Hawai`i" + }, + "he": { + "articles": 259224, + "english_name": "Hebrew", + "name": "\u05e2\u05d1\u05e8\u05d9\u05ea" + }, + "hi": { + "articles": 136564, + "english_name": "Hindi", + "name": "\u0939\u093f\u0928\u094d\u0926\u0940" + }, + "hif": { + "articles": 9774, + "english_name": "Fiji Hindi", + "name": "Fiji Hindi" + }, + "hr": { + "articles": 215457, + "english_name": "Croatian", + "name": "Hrvatski" + }, + "hsb": { + "articles": 13546, + "english_name": "Upper Sorbian", + "name": "Hornjoserbsce" + }, + "ht": { + "articles": 57995, + "english_name": "Haitian", + "name": "Kr\u00e8yol ayisyen" + }, + "hu": { + "articles": 465402, + "english_name": "Hungarian", + "name": "Magyar" + }, + "hy": { + "articles": 264666, + "english_name": "Armenian", + "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" + }, + "hyw": { + "articles": 7830, + "english_name": "Western Armenian", + "name": "\u0531\u0580\u0565\u0582\u0574\u057f\u0561\u0570\u0561\u0575\u0565\u0580\u0567\u0576" + }, + "ia": { + "articles": 22095, + "english_name": "Interlingua", + "name": "Interlingua" + }, + "id": { + "articles": 521569, + "english_name": "Indonesian", + "name": "Bahasa Indonesia" + }, + "ie": { + "articles": 4723, + "english_name": "Interlingue", + "name": "Interlingue" + }, + "ig": { + "articles": 1448, + "english_name": "Igbo", + "name": "Igbo" + }, + "ik": { + "articles": 280, + "english_name": "Inupiak", + "name": "I\u00f1upiak" + }, + "ilo": { + "articles": 14221, + "english_name": "Ilokano", + "name": "Ilokano" + }, + "inh": { + "articles": 1225, + "english_name": "Ingush", + "name": "\u0413\u04cf\u0430\u043b\u0433\u04cf\u0430\u0439" + }, + "io": { + "articles": 29252, + "english_name": "Ido", + "name": "Ido" + }, + "is": { + "articles": 49128, + "english_name": "Icelandic", + "name": "\u00cdslenska" + }, + "it": { + "articles": 1585945, + "english_name": "Italian", + "name": "Italiano" + }, + "iu": { + "articles": 403, + "english_name": "Inuktitut", + "name": "\u1403\u14c4\u1483\u144e\u1450\u1466" + }, + "ja": { + "articles": 1192319, + "english_name": "Japanese", + "name": "\u65e5\u672c\u8a9e" + }, + "jam": { + "articles": 1648, + "english_name": "Jamaican Patois", + "name": "Jumiekan Kryuol" + }, + "jbo": { + "articles": 1251, + "english_name": "Lojban", + "name": "Lojban" + }, + "jv": { + "articles": 57275, + "english_name": "Javanese", + "name": "Basa Jawa" + }, + "ka": { + "articles": 135269, + "english_name": "Georgian", + "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" + }, + "kaa": { + "articles": 1883, + "english_name": "Karakalpak", + "name": "Qaraqalpaqsha" + }, + "kab": { + "articles": 4508, + "english_name": "Kabyle", + "name": "Taqbaylit" + }, + "kbd": { + "articles": 1584, + "english_name": "Kabardian Circassian", + "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)" + }, + "kbp": { + "articles": 1603, + "english_name": "Kabiye", + "name": "Kab\u0269y\u025b" + }, + "kg": { + "articles": 1197, + "english_name": "Kongo", + "name": "KiKongo" + }, + "ki": { + "articles": 1368, + "english_name": "Kikuyu", + "name": "G\u0129k\u0169y\u0169" + }, + "kk": { + "articles": 226239, + "english_name": "Kazakh", + "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430" + }, + "kl": { + "articles": 1669, + "english_name": "Greenlandic", + "name": "Kalaallisut" + }, + "km": { + "articles": 7994, + "english_name": "Khmer", + "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a" + }, + "kn": { + "articles": 25796, + "english_name": "Kannada", + "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" + }, + "ko": { + "articles": 485688, + "english_name": "Korean", + "name": "\ud55c\uad6d\uc5b4" + }, + "koi": { + "articles": 3452, + "english_name": "Komi-Permyak", + "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)" + }, + "krc": { + "articles": 2037, + "english_name": "Karachay-Balkar", + "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)" + }, + "ks": { + "articles": 368, + "english_name": "Kashmiri", + "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a" + }, + "ksh": { + "articles": 2861, + "english_name": "Ripuarian", + "name": "Ripoarisch" + }, + "ku": { + "articles": 26872, + "english_name": "Kurdish", + "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc" + }, + "kv": { + "articles": 5333, + "english_name": "Komi", + "name": "\u041a\u043e\u043c\u0438" + }, + "kw": { + "articles": 3939, + "english_name": "Cornish", + "name": "Kernewek/Karnuack" + }, + "ky": { + "articles": 79759, + "english_name": "Kirghiz", + "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430" + }, + "la": { + "articles": 132249, + "english_name": "Latin", + "name": "Latina" + }, + "lad": { + "articles": 3545, + "english_name": "Ladino", + "name": "Dzhudezmo" + }, + "lb": { + "articles": 57817, + "english_name": "Luxembourgish", + "name": "L\u00ebtzebuergesch" + }, + "lbe": { + "articles": 1220, + "english_name": "Lak", + "name": "\u041b\u0430\u043a\u043a\u0443" + }, + "lez": { + "articles": 4057, + "english_name": "Lezgian", + "name": "\u041b\u0435\u0437\u0433\u0438 \u0447\u0406\u0430\u043b (Lezgi \u010d\u2019al)" + }, + "lfn": { + "articles": 3723, + "english_name": "Lingua Franca Nova", + "name": "Lingua franca nova" + }, + "lg": { + "articles": 1178, + "english_name": "Luganda", + "name": "Luganda" + }, + "li": { + "articles": 12737, + "english_name": "Limburgish", + "name": "Limburgs" + }, + "lij": { + "articles": 3682, + "english_name": "Ligurian", + "name": "L\u00edguru" + }, + "lmo": { + "articles": 39359, + "english_name": "Lombard", + "name": "Lumbaart" + }, + "ln": { + "articles": 3136, + "english_name": "Lingala", + "name": "Lingala" + }, + "lo": { + "articles": 3545, + "english_name": "Lao", + "name": "\u0ea5\u0eb2\u0ea7" + }, + "lrc": { + "articles": 5360, + "english_name": "Northern Luri", + "name": "\u0644\u06ca\u0631\u06cc \u0634\u0648\u0645\u0627\u0644\u06cc" + }, + "lt": { + "articles": 198453, + "english_name": "Lithuanian", + "name": "Lietuvi\u0173" + }, + "ltg": { + "articles": 932, + "english_name": "Latgalian", + "name": "Latga\u013cu" + }, + "lv": { + "articles": 100417, + "english_name": "Latvian", + "name": "Latvie\u0161u" + }, + "mai": { + "articles": 13512, + "english_name": "Maithili", + "name": "\u092e\u0948\u0925\u093f\u0932\u0940" + }, + "map-bms": { + "articles": 13344, + "english_name": "Banyumasan", + "name": "Basa Banyumasan" + }, + "mdf": { + "articles": 1192, + "english_name": "Moksha", + "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)" + }, + "mg": { + "articles": 92711, + "english_name": "Malagasy", + "name": "Malagasy" + }, + "mhr": { + "articles": 10108, + "english_name": "Meadow Mari", + "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)" + }, + "mi": { + "articles": 7159, + "english_name": "Maori", + "name": "M\u0101ori" + }, + "min": { + "articles": 223738, + "english_name": "Minangkabau", + "name": "Minangkabau" + }, + "mk": { + "articles": 104303, + "english_name": "Macedonian", + "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438" + }, + "ml": { + "articles": 67743, + "english_name": "Malayalam", + "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02" + }, + "mn": { + "articles": 19010, + "english_name": "Mongolian", + "name": "\u041c\u043e\u043d\u0433\u043e\u043b" + }, + "mnw": { + "articles": 470, + "english_name": "Mon", + "name": "\u1019\u1014\u103a" + }, + "mr": { + "articles": 56283, + "english_name": "Marathi", + "name": "\u092e\u0930\u093e\u0920\u0940" + }, + "mrj": { + "articles": 10270, + "english_name": "Hill Mari", + "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)" + }, + "ms": { + "articles": 334930, + "english_name": "Malay", + "name": "Bahasa Melayu" + }, + "mt": { + "articles": 3442, + "english_name": "Maltese", + "name": "Malti" + }, + "mwl": { + "articles": 3783, + "english_name": "Mirandese", + "name": "Mirand\u00e9s" + }, + "my": { + "articles": 45399, + "english_name": "Burmese", + "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c" + }, + "myv": { + "articles": 5871, + "english_name": "Erzya", + "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)" + }, + "mzn": { + "articles": 13127, + "english_name": "Mazandarani", + "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a" + }, + "na": { + "articles": 1309, + "english_name": "Nauruan", + "name": "dorerin Naoero" + }, + "nah": { + "articles": 6976, + "english_name": "Nahuatl", + "name": "N\u0101huatl" + }, + "nap": { + "articles": 14561, + "english_name": "Neapolitan", + "name": "Nnapulitano" + }, + "nds": { + "articles": 61186, + "english_name": "Low Saxon", + "name": "Plattd\u00fc\u00fctsch" + }, + "nds-nl": { + "articles": 6935, + "english_name": "Dutch Low Saxon", + "name": "Nedersaksisch" + }, + "ne": { + "articles": 34031, + "english_name": "Nepali", + "name": "\u0928\u0947\u092a\u093e\u0932\u0940" + }, + "new": { + "articles": 72233, + "english_name": "Newar", + "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e" + }, + "nl": { + "articles": 1998535, + "english_name": "Dutch", + "name": "Nederlands" + }, + "nn": { + "articles": 151775, + "english_name": "Norwegian (Nynorsk)", + "name": "Nynorsk" + }, + "no": { + "articles": 529258, + "english_name": "Norwegian (Bokm\u00e5l)", + "name": "Norsk (Bokm\u00e5l)" + }, + "nov": { + "articles": 1671, + "english_name": "Novial", + "name": "Novial" + }, + "nqo": { + "articles": 546, + "english_name": "N\u2019Ko", + "name": "\u07d2\u07de\u07cf" + }, + "nrm": { + "articles": 4332, + "english_name": "Norman", + "name": "Nouormand/Normaund" + }, + "nso": { + "articles": 8175, + "english_name": "Northern Sotho", + "name": "Sepedi" + }, + "nv": { + "articles": 12264, + "english_name": "Navajo", + "name": "Din\u00e9 bizaad" + }, + "ny": { + "articles": 565, + "english_name": "Chichewa", + "name": "Chichewa" + }, + "oc": { + "articles": 87871, + "english_name": "Occitan", + "name": "Occitan" + }, + "olo": { + "articles": 3236, + "english_name": "Livvi-Karelian", + "name": "Karjalan" + }, + "om": { + "articles": 786, + "english_name": "Oromo", + "name": "Oromoo" + }, + "or": { + "articles": 15579, + "english_name": "Oriya", + "name": "\u0b13\u0b21\u0b3c\u0b3f\u0b06" + }, + "os": { + "articles": 11884, + "english_name": "Ossetian", + "name": "\u0418\u0440\u043e\u043d\u0430\u0443" + }, + "pa": { + "articles": 33858, + "english_name": "Punjabi", + "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40" + }, + "pag": { + "articles": 2531, + "english_name": "Pangasinan", + "name": "Pangasinan" + }, + "pam": { + "articles": 8637, + "english_name": "Kapampangan", + "name": "Kapampangan" + }, + "pap": { + "articles": 1941, + "english_name": "Papiamentu", + "name": "Papiamentu" + }, + "pcd": { + "articles": 4666, + "english_name": "Picard", + "name": "Picard" + }, + "pdc": { + "articles": 1877, + "english_name": "Pennsylvania German", + "name": "Deitsch" + }, + "pfl": { + "articles": 2647, + "english_name": "Palatinate German", + "name": "P\u00e4lzisch" + }, + "pi": { + "articles": 2540, + "english_name": "Pali", + "name": "\u092a\u093e\u0934\u093f" + }, + "pih": { + "articles": 796, + "english_name": "Norfolk", + "name": "Norfuk" + }, + "pl": { + "articles": 1386843, + "english_name": "Polish", + "name": "Polski" + }, + "pms": { + "articles": 64598, + "english_name": "Piedmontese", + "name": "Piemont\u00e8is" + }, + "pnb": { + "articles": 52557, + "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": { + "articles": 467, + "english_name": "Pontic", + "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac" + }, + "ps": { + "articles": 10997, + "english_name": "Pashto", + "name": "\u067e\u069a\u062a\u0648" + }, + "pt": { + "articles": 1021915, + "english_name": "Portuguese", + "name": "Portugu\u00eas" + }, + "qu": { + "articles": 21801, + "english_name": "Quechua", + "name": "Runa Simi" + }, + "rm": { + "articles": 3646, + "english_name": "Romansh", + "name": "Rumantsch" + }, + "rmy": { + "articles": 675, + "english_name": "Romani", + "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940" + }, + "rn": { + "articles": 615, + "english_name": "Kirundi", + "name": "Kirundi" + }, + "ro": { + "articles": 404592, + "english_name": "Romanian", + "name": "Rom\u00e2n\u0103" + }, + "roa-rup": { + "articles": 1225, + "english_name": "Aromanian", + "name": "Arm\u00e3neashce" + }, + "roa-tara": { + "articles": 9249, + "english_name": "Tarantino", + "name": "Tarand\u00edne" + }, + "ru": { + "articles": 1600812, + "english_name": "Russian", + "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439" + }, + "rue": { + "articles": 7447, + "english_name": "Rusyn", + "name": "\u0420\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439" + }, + "rw": { + "articles": 1820, + "english_name": "Kinyarwanda", + "name": "Ikinyarwanda" + }, + "sa": { + "articles": 11456, + "english_name": "Sanskrit", + "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d" + }, + "sah": { + "articles": 12199, + "english_name": "Sakha", + "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)" + }, + "sat": { + "articles": 2470, + "english_name": "Santali", + "name": "\u1c65\u1c5f\u1c71\u1c5b\u1c5f\u1c72\u1c64" + }, + "sc": { + "articles": 6371, + "english_name": "Sardinian", + "name": "Sardu" + }, + "scn": { + "articles": 26074, + "english_name": "Sicilian", + "name": "Sicilianu" + }, + "sco": { + "articles": 56578, + "english_name": "Scots", + "name": "Scots" + }, + "sd": { + "articles": 12956, + "english_name": "Sindhi", + "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927" + }, + "se": { + "articles": 7612, + "english_name": "Northern Sami", + "name": "S\u00e1megiella" + }, + "sg": { + "articles": 262, + "english_name": "Sango", + "name": "S\u00e4ng\u00f6" + }, + "sh": { + "articles": 451031, + "english_name": "Serbo-Croatian", + "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438" + }, + "shn": { + "articles": 6745, + "english_name": "Shan", + "name": "\u101c\u102d\u1075\u103a\u1088\u1010\u1086\u1038" + }, + "si": { + "articles": 15543, + "english_name": "Sinhalese", + "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd" + }, + "simple": { + "articles": 155539, + "english_name": "Simple English", + "name": "Simple English" + }, + "sk": { + "articles": 232538, + "english_name": "Slovak", + "name": "Sloven\u010dina" + }, + "sl": { + "articles": 167090, + "english_name": "Slovenian", + "name": "Sloven\u0161\u010dina" + }, + "sm": { + "articles": 823, + "english_name": "Samoan", + "name": "Gagana Samoa" + }, + "sn": { + "articles": 4996, + "english_name": "Shona", + "name": "chiShona" + }, + "so": { + "articles": 5752, + "english_name": "Somali", + "name": "Soomaali" + }, + "sq": { + "articles": 78674, + "english_name": "Albanian", + "name": "Shqip" + }, + "sr": { + "articles": 630590, + "english_name": "Serbian", + "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski" + }, + "srn": { + "articles": 1076, + "english_name": "Sranan", + "name": "Sranantongo" + }, + "ss": { + "articles": 504, + "english_name": "Swati", + "name": "SiSwati" + }, + "st": { + "articles": 656, + "english_name": "Sesotho", + "name": "Sesotho" + }, + "stq": { + "articles": 4017, + "english_name": "Saterland Frisian", + "name": "Seeltersk" + }, + "su": { + "articles": 59863, + "english_name": "Sundanese", + "name": "Basa Sunda" + }, + "sv": { + "articles": 3738262, + "english_name": "Swedish", + "name": "Svenska" + }, + "sw": { + "articles": 55888, + "english_name": "Swahili", + "name": "Kiswahili" + }, + "szl": { + "articles": 51946, + "english_name": "Silesian", + "name": "\u015al\u016fnski" + }, + "szy": { + "articles": 1748, + "english_name": "Sakizaya", + "name": "Sakizaya" + }, + "ta": { + "articles": 127284, + "english_name": "Tamil", + "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd" + }, + "tcy": { + "articles": 1271, + "english_name": "Tulu", + "name": "\u0ca4\u0cc1\u0cb3\u0cc1" + }, + "te": { + "articles": 70262, + "english_name": "Telugu", + "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41" + }, + "tet": { + "articles": 1475, + "english_name": "Tetum", + "name": "Tetun" + }, + "tg": { + "articles": 100460, + "english_name": "Tajik", + "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3" + }, + "th": { + "articles": 135321, + "english_name": "Thai", + "name": "\u0e44\u0e17\u0e22" + }, + "ti": { + "articles": 202, + "english_name": "Tigrinya", + "name": "\u1275\u130d\u122d\u129b" + }, + "tk": { + "articles": 5656, + "english_name": "Turkmen", + "name": "T\u00fcrkmen" + }, + "tl": { + "articles": 75674, + "english_name": "Tagalog", + "name": "Tagalog" + }, + "tn": { + "articles": 710, + "english_name": "Tswana", + "name": "Setswana" + }, + "to": { + "articles": 1738, + "english_name": "Tongan", + "name": "faka Tonga" + }, + "tpi": { + "articles": 1608, + "english_name": "Tok Pisin", + "name": "Tok Pisin" + }, + "tr": { + "articles": 343072, + "english_name": "Turkish", + "name": "T\u00fcrk\u00e7e" + }, + "ts": { + "articles": 683, + "english_name": "Tsonga", + "name": "Xitsonga" + }, + "tt": { + "articles": 89002, + "english_name": "Tatar", + "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430" + }, + "tum": { + "articles": 586, + "english_name": "Tumbuka", + "name": "chiTumbuka" + }, + "tw": { + "articles": 705, + "english_name": "Twi", + "name": "Twi" + }, + "ty": { + "articles": 1204, + "english_name": "Tahitian", + "name": "Reo M\u0101`ohi" + }, + "tyv": { + "articles": 1987, + "english_name": "Tuvan", + "name": "\u0422\u044b\u0432\u0430" + }, + "udm": { + "articles": 4848, + "english_name": "Udmurt", + "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b" + }, + "ug": { + "articles": 4244, + "english_name": "Uyghur", + "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649" + }, + "uk": { + "articles": 993357, + "english_name": "Ukrainian", + "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430" + }, + "ur": { + "articles": 151971, + "english_name": "Urdu", + "name": "\u0627\u0631\u062f\u0648" + }, + "uz": { + "articles": 133433, + "english_name": "Uzbek", + "name": "O\u2018zbek" + }, + "ve": { + "articles": 368, + "english_name": "Venda", + "name": "Tshivenda" + }, + "vec": { + "articles": 19577, + "english_name": "Venetian", + "name": "V\u00e8neto" + }, + "vep": { + "articles": 6395, + "english_name": "Vepsian", + "name": "Veps\u00e4n" + }, + "vi": { + "articles": 1241042, + "english_name": "Vietnamese", + "name": "Ti\u1ebfng Vi\u1ec7t" + }, + "vls": { + "articles": 7079, + "english_name": "West Flemish", + "name": "West-Vlams" + }, + "vo": { + "articles": 124156, + "english_name": "Volap\u00fck", + "name": "Volap\u00fck" + }, + "wa": { + "articles": 15627, + "english_name": "Walloon", + "name": "Walon" + }, + "war": { + "articles": 1263934, + "english_name": "Waray-Waray", + "name": "Winaray" + }, + "wo": { + "articles": 1387, + "english_name": "Wolof", + "name": "Wolof" + }, + "wuu": { + "articles": 28716, + "english_name": "Wu", + "name": "\u5434\u8bed" + }, + "xal": { + "articles": 2082, + "english_name": "Kalmyk", + "name": "\u0425\u0430\u043b\u044c\u043c\u0433" + }, + "xh": { + "articles": 1043, + "english_name": "Xhosa", + "name": "isiXhosa" + }, + "xmf": { + "articles": 13670, + "english_name": "Mingrelian", + "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)" + }, + "yi": { + "articles": 14999, + "english_name": "Yiddish", + "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9" + }, + "yo": { + "articles": 32321, + "english_name": "Yoruba", + "name": "Yor\u00f9b\u00e1" + }, + "za": { + "articles": 1952, + "english_name": "Zhuang", + "name": "Cuengh" + }, + "zea": { + "articles": 4727, + "english_name": "Zeelandic", + "name": "Ze\u00eauws" + }, + "zh": { + "articles": 1099382, + "english_name": "Chinese", + "name": "\u4e2d\u6587" + }, + "zh-classical": { + "articles": 10187, + "english_name": "Classical Chinese", + "name": "\u53e4\u6587 / \u6587\u8a00\u6587" + }, + "zh-min-nan": { + "articles": 264433, + "english_name": "Min Nan", + "name": "B\u00e2n-l\u00e2m-g\u00fa" + }, + "zh-yue": { + "articles": 77673, + "english_name": "Cantonese", + "name": "\u7cb5\u8a9e" + }, + "zu": { + "articles": 1382, + "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" + ], + "yahoo news": [ + "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" + ] } \ No newline at end of file diff --git a/searx/data/useragents.json b/searx/data/useragents.json index abb81000..d464ec5f 100644 --- a/searx/data/useragents.json +++ b/searx/data/useragents.json @@ -1,15 +1,12 @@ { "versions": [ - "70.0.1", - "70.0", - "69.0.3", - "69.0.2", - "69.0.1", - "69.0" + "75.0", + "74.0.1", + "74.0" ], "os": [ - "Windows NT 10; WOW64", + "Windows NT 10.0; WOW64", "X11; Linux x86_64" ], "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}" -} \ No newline at end of file +} diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index 2393f52b..9ccef8b5 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -54,7 +54,8 @@ engine_default_args = {'paging': False, 'suspend_end_time': 0, 'continuous_errors': 0, 'time_range_support': False, - 'offline': False} + 'offline': False, + 'tokens': []} def load_engine(engine_data): @@ -160,7 +161,7 @@ def to_percentage(stats, maxvalue): return stats -def get_engines_stats(): +def get_engines_stats(preferences): # TODO refactor pageloads = [] engine_times = [] @@ -171,8 +172,12 @@ def get_engines_stats(): max_pageload = max_engine_times = max_results = max_score = max_errors = max_score_per_result = 0 # noqa for engine in engines.values(): + if not preferences.validate_token(engine): + continue + if engine.stats['search_count'] == 0: continue + results_num = \ engine.stats['result_count'] / float(engine.stats['search_count']) diff --git a/searx/engines/bing.py b/searx/engines/bing.py index ed0b87db..afb776ac 100644 --- a/searx/engines/bing.py +++ b/searx/engines/bing.py @@ -89,8 +89,7 @@ def response(resp): 'content': content}) try: - result_len_container = "".join(eval_xpath(dom, '//span[@class="sb_count"]/text()')) - result_len_container = utils.to_string(result_len_container) + result_len_container = "".join(eval_xpath(dom, '//span[@class="sb_count"]//text()')) if "-" in result_len_container: # Remove the part "from-to" for paginated request ... result_len_container = result_len_container[result_len_container.find("-") * 2 + 2:] @@ -102,7 +101,7 @@ def response(resp): logger.debug('result error :\n%s', e) pass - if _get_offset_from_pageno(resp.search_params.get("pageno", 0)) > result_len: + if result_len and _get_offset_from_pageno(resp.search_params.get("pageno", 0)) > result_len: return [] results.append({'number_of_results': result_len}) @@ -111,13 +110,18 @@ def response(resp): # get supported languages from their site def _fetch_supported_languages(resp): - supported_languages = [] - dom = html.fromstring(resp.text) - options = eval_xpath(dom, '//div[@id="limit-languages"]//input') - for option in options: - code = eval_xpath(option, './@id')[0].replace('_', '-') - if code == 'nb': - code = 'no' - supported_languages.append(code) + lang_tags = set() - return supported_languages + setmkt = re.compile('setmkt=([^&]*)') + dom = html.fromstring(resp.text) + lang_links = eval_xpath(dom, "//li/a[contains(@href, 'setmkt')]") + + for a in lang_links: + href = eval_xpath(a, './@href')[0] + match = setmkt.search(href) + l_tag = match.groups()[0] + _lang, _nation = l_tag.split('-', 1) + l_tag = _lang.lower() + '-' + _nation.upper() + lang_tags.add(l_tag) + + return list(lang_tags) diff --git a/searx/engines/bing_images.py b/searx/engines/bing_images.py index 44e2c3bb..138ed11c 100644 --- a/searx/engines/bing_images.py +++ b/searx/engines/bing_images.py @@ -18,6 +18,8 @@ import re from searx.url_utils import urlencode from searx.utils import match_language +from searx.engines.bing import _fetch_supported_languages, supported_languages_url, language_aliases + # engine dependent config categories = ['images'] paging = True @@ -103,22 +105,3 @@ def response(resp): continue return results - - -# get supported languages from their site -def _fetch_supported_languages(resp): - supported_languages = [] - dom = html.fromstring(resp.text) - - regions_xpath = '//div[@id="region-section-content"]' \ - + '//ul[@class="b_vList"]/li/a/@href' - - regions = dom.xpath(regions_xpath) - for region in regions: - code = re.search('setmkt=[^\&]+', region).group()[7:] - if code == 'nb-NO': - code = 'no-NO' - - supported_languages.append(code) - - return supported_languages diff --git a/searx/engines/bing_news.py b/searx/engines/bing_news.py index 669130c4..d13be777 100644 --- a/searx/engines/bing_news.py +++ b/searx/engines/bing_news.py @@ -15,9 +15,10 @@ from datetime import datetime from dateutil import parser from lxml import etree from searx.utils import list_get, match_language -from searx.engines.bing import _fetch_supported_languages, supported_languages_url, language_aliases from searx.url_utils import urlencode, urlparse, parse_qsl +from searx.engines.bing import _fetch_supported_languages, supported_languages_url, language_aliases + # engine dependent config categories = ['news'] paging = True @@ -58,6 +59,7 @@ def _get_url(query, language, offset, time_range): offset=offset, interval=time_range_dict[time_range]) else: + # e.g. setmkt=de-de&setlang=de search_path = search_string.format( query=urlencode({'q': query, 'setmkt': language}), offset=offset) diff --git a/searx/engines/bing_videos.py b/searx/engines/bing_videos.py index f1e63681..f048f0d8 100644 --- a/searx/engines/bing_videos.py +++ b/searx/engines/bing_videos.py @@ -12,10 +12,10 @@ from json import loads from lxml import html -from searx.engines.bing_images import _fetch_supported_languages, supported_languages_url from searx.url_utils import urlencode from searx.utils import match_language +from searx.engines.bing import _fetch_supported_languages, supported_languages_url, language_aliases categories = ['videos'] paging = True @@ -67,6 +67,10 @@ def request(query, params): if params['time_range'] in time_range_dict: params['url'] += time_range_string.format(interval=time_range_dict[params['time_range']]) + # bing videos did not like "older" versions < 70.0.1 when selectin other + # languages then 'en' .. very strange ?!?! + params['headers']['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64; rv:73.0.1) Gecko/20100101 Firefox/73.0.1' + return params diff --git a/searx/engines/dummy-offline.py b/searx/engines/dummy-offline.py new file mode 100644 index 00000000..13a9ecc0 --- /dev/null +++ b/searx/engines/dummy-offline.py @@ -0,0 +1,12 @@ +""" + Dummy Offline + + @results one result + @stable yes +""" + + +def search(query, request_params): + return [{ + 'result': 'this is what you get', + }] diff --git a/searx/engines/etools.py b/searx/engines/etools.py new file mode 100644 index 00000000..a9eb0980 --- /dev/null +++ b/searx/engines/etools.py @@ -0,0 +1,54 @@ +""" + eTools (Web) + + @website https://www.etools.ch + @provide-api no + @using-api no + @results HTML + @stable no (HTML can change) + @parse url, title, content +""" + +from lxml import html +from searx.engines.xpath import extract_text +from searx.url_utils import quote +from searx.utils import eval_xpath + +categories = ['general'] +paging = False +language_support = False +safesearch = True + +base_url = 'https://www.etools.ch' +search_path = '/searchAdvancedSubmit.do'\ + '?query={search_term}'\ + '&pageResults=20'\ + '&safeSearch={safesearch}' + + +def request(query, params): + if params['safesearch']: + safesearch = 'true' + else: + safesearch = 'false' + + params['url'] = base_url + search_path.format(search_term=quote(query), safesearch=safesearch) + + return params + + +def response(resp): + results = [] + + dom = html.fromstring(resp.text) + + for result in eval_xpath(dom, '//table[@class="result"]//td[@class="record"]'): + url = eval_xpath(result, './a/@href')[0] + title = extract_text(eval_xpath(result, './a//text()')) + content = extract_text(eval_xpath(result, './/div[@class="text"]//text()')) + + results.append({'url': url, + 'title': title, + 'content': content}) + + return results diff --git a/searx/engines/faroo.py b/searx/engines/faroo.py deleted file mode 100644 index a36ecf77..00000000 --- a/searx/engines/faroo.py +++ /dev/null @@ -1,96 +0,0 @@ -""" - Faroo (Web, News) - - @website http://www.faroo.com - @provide-api yes (http://www.faroo.com/hp/api/api.html), require API-key - - @using-api no - @results JSON - @stable yes - @parse url, title, content, publishedDate, img_src -""" - -from json import loads -import datetime -from searx.utils import searx_useragent -from searx.url_utils import urlencode - -# engine dependent config -categories = ['general', 'news'] -paging = True -language_support = True -number_of_results = 10 - -# search-url -url = 'http://www.faroo.com/' -search_url = url + 'instant.json?{query}'\ - '&start={offset}'\ - '&length={number_of_results}'\ - '&l={language}'\ - '&src={categorie}'\ - '&i=false'\ - '&c=false' - -search_category = {'general': 'web', - 'news': 'news'} - - -# do search-request -def request(query, params): - offset = (params['pageno'] - 1) * number_of_results + 1 - categorie = search_category.get(params['category'], 'web') - - if params['language'] == 'all': - language = 'en' - else: - language = params['language'].split('-')[0] - - # if language is not supported, put it in english - if language != 'en' and\ - language != 'de' and\ - language != 'zh': - language = 'en' - - params['url'] = search_url.format(offset=offset, - number_of_results=number_of_results, - query=urlencode({'q': query}), - language=language, - categorie=categorie) - - params['headers']['Referer'] = url - - return params - - -# get response from search-request -def response(resp): - # HTTP-Code 429: rate limit exceeded - if resp.status_code == 429: - raise Exception("rate limit has been exceeded!") - - results = [] - - search_res = loads(resp.text) - - # return empty array if there are no results - if not search_res.get('results', {}): - return [] - - # parse results - for result in search_res['results']: - publishedDate = None - result_json = {'url': result['url'], 'title': result['title'], - 'content': result['kwic']} - if result['news']: - result_json['publishedDate'] = \ - datetime.datetime.fromtimestamp(result['date'] / 1000.0) - - # append image result if image url is set - if result['iurl']: - result_json['template'] = 'videos.html' - result_json['thumbnail'] = result['iurl'] - - results.append(result_json) - - # return results - return results diff --git a/searx/engines/flickr_noapi.py b/searx/engines/flickr_noapi.py index 198ac2cf..c8ee34f7 100644 --- a/searx/engines/flickr_noapi.py +++ b/searx/engines/flickr_noapi.py @@ -109,14 +109,22 @@ def response(resp): else: url = build_flickr_url(photo['ownerNsid'], photo['id']) - results.append({'url': url, - 'title': title, - 'img_src': img_src, - 'thumbnail_src': thumbnail_src, - 'content': content, - 'author': author, - 'source': source, - 'img_format': img_format, - 'template': 'images.html'}) + result = { + 'url': url, + 'img_src': img_src, + 'thumbnail_src': thumbnail_src, + 'source': source, + 'img_format': img_format, + 'template': 'images.html' + } + try: + result['author'] = author + result['title'] = title + result['content'] = content + except: + result['author'] = '' + result['title'] = '' + result['content'] = '' + results.append(result) return results diff --git a/searx/engines/genius.py b/searx/engines/genius.py index b265e9d7..aa5afad9 100644 --- a/searx/engines/genius.py +++ b/searx/engines/genius.py @@ -72,6 +72,7 @@ def parse_album(hit): result.update({'content': 'Released: {}'.format(year)}) return result + parse = {'lyric': parse_lyric, 'song': parse_lyric, 'artist': parse_artist, 'album': parse_album} diff --git a/searx/engines/gigablast.py b/searx/engines/gigablast.py index a84f3f69..2bb29a9f 100644 --- a/searx/engines/gigablast.py +++ b/searx/engines/gigablast.py @@ -14,6 +14,7 @@ import random from json import loads from time import time from lxml.html import fromstring +from searx.poolrequests import get from searx.url_utils import urlencode from searx.utils import eval_xpath @@ -31,13 +32,9 @@ search_string = 'search?{query}'\ '&c=main'\ '&s={offset}'\ '&format=json'\ - '&qh=0'\ - '&qlang={lang}'\ + '&langcountry={lang}'\ '&ff={safesearch}'\ - '&rxiec={rxieu}'\ - '&ulse={ulse}'\ - '&rand={rxikd}'\ - '&dbez={dbez}' + '&rand={rxikd}' # specific xpath variables results_xpath = '//response//result' url_xpath = './/url' @@ -46,9 +43,26 @@ content_xpath = './/sum' supported_languages_url = 'https://gigablast.com/search?&rxikd=1' +extra_param = '' # gigablast requires a random extra parameter +# which can be extracted from the source code of the search page + + +def parse_extra_param(text): + global extra_param + param_lines = [x for x in text.splitlines() if x.startswith('var url=') or x.startswith('url=url+')] + extra_param = '' + for l in param_lines: + extra_param += l.split("'")[1] + extra_param = extra_param.split('&')[-1] + + +def init(engine_settings=None): + parse_extra_param(get('http://gigablast.com/search?c=main&qlangcountry=en-us&q=south&s=10').text) + # do search-request def request(query, params): + print("EXTRAPARAM:", extra_param) offset = (params['pageno'] - 1) * number_of_results if params['language'] == 'all': @@ -67,14 +81,11 @@ def request(query, params): search_path = search_string.format(query=urlencode({'q': query}), offset=offset, number_of_results=number_of_results, - rxikd=int(time() * 1000), - rxieu=random.randint(1000000000, 9999999999), - ulse=random.randint(100000000, 999999999), lang=language, - safesearch=safesearch, - dbez=random.randint(100000000, 999999999)) + rxikd=int(time() * 1000), + safesearch=safesearch) - params['url'] = base_url + search_path + params['url'] = base_url + search_path + '&' + extra_param return params @@ -84,7 +95,11 @@ def response(resp): results = [] # parse results - response_json = loads(resp.text) + try: + response_json = loads(resp.text) + except: + parse_extra_param(resp.text) + raise Exception('extra param expired, please reload') for result in response_json['results']: # append result diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py index 9c837b45..c9cc7543 100644 --- a/searx/engines/google_news.py +++ b/searx/engines/google_news.py @@ -54,7 +54,7 @@ def request(query, params): if params['language'] != 'all': language = match_language(params['language'], supported_languages, language_aliases).split('-')[0] if language: - params['url'] += '&lr=lang_' + language + params['url'] += '&hl=' + language return params diff --git a/searx/engines/ina.py b/searx/engines/ina.py index 37a05f09..ea509649 100644 --- a/searx/engines/ina.py +++ b/searx/engines/ina.py @@ -32,7 +32,7 @@ base_url = 'https://www.ina.fr' search_url = base_url + '/layout/set/ajax/recherche/result?autopromote=&hf={ps}&b={start}&type=Video&r=&{query}' # specific xpath variables -results_xpath = '//div[contains(@class,"search-results--list")]/div[@class="media"]' +results_xpath = '//div[contains(@class,"search-results--list")]//div[@class="media-body"]' url_xpath = './/a/@href' title_xpath = './/h3[@class="h3--title media-heading"]' thumbnail_xpath = './/img/@src' @@ -65,8 +65,11 @@ def response(resp): videoid = result.xpath(url_xpath)[0] url = base_url + videoid title = p.unescape(extract_text(result.xpath(title_xpath))) - thumbnail = extract_text(result.xpath(thumbnail_xpath)[0]) - if thumbnail[0] == '/': + try: + thumbnail = extract_text(result.xpath(thumbnail_xpath)[0]) + except: + thumbnail = '' + if thumbnail and thumbnail[0] == '/': thumbnail = base_url + thumbnail d = extract_text(result.xpath(publishedDate_xpath)[0]) d = d.split('/') diff --git a/searx/engines/microsoft_academic.py b/searx/engines/microsoft_academic.py index 9387b08d..9bac0069 100644 --- a/searx/engines/microsoft_academic.py +++ b/searx/engines/microsoft_academic.py @@ -45,6 +45,8 @@ def request(query, params): def response(resp): results = [] response_data = loads(resp.text) + if not response_data: + return results for result in response_data['results']: url = _get_url(result) diff --git a/searx/engines/openstreetmap.py b/searx/engines/openstreetmap.py index 733ba620..cec10a3c 100644 --- a/searx/engines/openstreetmap.py +++ b/searx/engines/openstreetmap.py @@ -24,7 +24,7 @@ result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}' # do search-request def request(query, params): - params['url'] = base_url + search_string.format(query=query) + params['url'] = base_url + search_string.format(query=query.decode('utf-8')) return params diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py index de12955c..54e9dafa 100644 --- a/searx/engines/qwant.py +++ b/searx/engines/qwant.py @@ -50,6 +50,7 @@ def request(query, params): language = match_language(params['language'], supported_languages, language_aliases) params['url'] += '&locale=' + language.replace('-', '_').lower() + params['headers']['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0' return params diff --git a/searx/engines/scanr_structures.py b/searx/engines/scanr_structures.py index 72fd2b3c..7208dcb7 100644 --- a/searx/engines/scanr_structures.py +++ b/searx/engines/scanr_structures.py @@ -29,7 +29,7 @@ def request(query, params): params['url'] = search_url params['method'] = 'POST' params['headers']['Content-type'] = "application/json" - params['data'] = dumps({"query": query, + params['data'] = dumps({"query": query.decode('utf-8'), "searchField": "ALL", "sortDirection": "ASC", "sortOrder": "RELEVANCY", diff --git a/searx/engines/spotify.py b/searx/engines/spotify.py index aed756be..00c39570 100644 --- a/searx/engines/spotify.py +++ b/searx/engines/spotify.py @@ -12,10 +12,14 @@ from json import loads from searx.url_utils import urlencode +import requests +import base64 # engine dependent config categories = ['music'] paging = True +api_client_id = None +api_client_secret = None # search-url url = 'https://api.spotify.com/' @@ -31,6 +35,16 @@ def request(query, params): params['url'] = search_url.format(query=urlencode({'q': query}), offset=offset) + r = requests.post( + 'https://accounts.spotify.com/api/token', + data={'grant_type': 'client_credentials'}, + headers={'Authorization': 'Basic ' + base64.b64encode( + "{}:{}".format(api_client_id, api_client_secret).encode('utf-8') + ).decode('utf-8')} + ) + j = loads(r.text) + params['headers'] = {'Authorization': 'Bearer {}'.format(j.get('access_token'))} + return params diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py index 76567396..95373493 100644 --- a/searx/engines/startpage.py +++ b/searx/engines/startpage.py @@ -99,11 +99,14 @@ def response(resp): if re.match(r"^([1-9]|[1-2][0-9]|3[0-1]) [A-Z][a-z]{2} [0-9]{4} \.\.\. ", content): date_pos = content.find('...') + 4 date_string = content[0:date_pos - 5] - published_date = parser.parse(date_string, dayfirst=True) - # fix content string content = content[date_pos:] + try: + published_date = parser.parse(date_string, dayfirst=True) + except ValueError: + pass + # check if search result starts with something like: "5 days ago ... " elif re.match(r"^[0-9]+ days? ago \.\.\. ", content): date_pos = content.find('...') + 4 diff --git a/searx/engines/wikipedia.py b/searx/engines/wikipedia.py index 4dae735d..a216ba88 100644 --- a/searx/engines/wikipedia.py +++ b/searx/engines/wikipedia.py @@ -21,7 +21,8 @@ search_url = base_url + u'w/api.php?'\ 'action=query'\ '&format=json'\ '&{query}'\ - '&prop=extracts|pageimages'\ + '&prop=extracts|pageimages|pageprops'\ + '&ppprop=disambiguation'\ '&exintro'\ '&explaintext'\ '&pithumbsize=300'\ @@ -79,12 +80,15 @@ def response(resp): # wikipedia article's unique id # first valid id is assumed to be the requested article + if 'pages' not in search_result['query']: + return results + for article_id in search_result['query']['pages']: page = search_result['query']['pages'][article_id] if int(article_id) > 0: break - if int(article_id) < 0: + if int(article_id) < 0 or 'disambiguation' in page.get('pageprops', {}): return [] title = page.get('title') @@ -96,6 +100,7 @@ def response(resp): extract = page.get('extract') summary = extract_first_paragraph(extract, title, image) + summary = summary.replace('() ', '') # link to wikipedia article wikipedia_link = base_url.format(language=url_lang(resp.search_params['language'])) \ diff --git a/searx/languages.py b/searx/languages.py index cab12454..72e1a735 100644 --- a/searx/languages.py +++ b/searx/languages.py @@ -3,9 +3,11 @@ # this file is generated automatically by utils/update_search_languages.py language_codes = ( + (u"af-NA", u"Afrikaans", u"", u"Afrikaans"), (u"ar-SA", u"العربية", u"", u"Arabic"), + (u"be-BY", u"Беларуская", u"", u"Belarusian"), (u"bg-BG", u"Български", u"", u"Bulgarian"), - (u"ca-ES", u"Català", u"", u"Catalan"), + (u"ca-AD", u"Català", u"", u"Catalan"), (u"cs-CZ", u"Čeština", u"", u"Czech"), (u"da-DK", u"Dansk", u"", u"Danish"), (u"de", u"Deutsch", u"", u"German"), @@ -17,11 +19,15 @@ language_codes = ( (u"en-AU", u"English", u"Australia", u"English"), (u"en-CA", u"English", u"Canada", u"English"), (u"en-GB", u"English", u"United Kingdom", u"English"), + (u"en-IE", u"English", u"Ireland", u"English"), (u"en-IN", u"English", u"India", u"English"), - (u"en-MY", u"English", u"Malaysia", u"English"), + (u"en-NZ", u"English", u"New Zealand", u"English"), + (u"en-PH", u"English", u"Philippines", u"English"), + (u"en-SG", u"English", u"Singapore", u"English"), (u"en-US", u"English", u"United States", u"English"), (u"es", u"Español", u"", u"Spanish"), (u"es-AR", u"Español", u"Argentina", u"Spanish"), + (u"es-CL", u"Español", u"Chile", u"Spanish"), (u"es-ES", u"Español", u"España", u"Spanish"), (u"es-MX", u"Español", u"México", u"Spanish"), (u"et-EE", u"Eesti", u"", u"Estonian"), @@ -35,6 +41,7 @@ language_codes = ( (u"he-IL", u"עברית", u"", u"Hebrew"), (u"hr-HR", u"Hrvatski", u"", u"Croatian"), (u"hu-HU", u"Magyar", u"", u"Hungarian"), + (u"hy-AM", u"Հայերեն", u"", u"Armenian"), (u"id-ID", u"Indonesia", u"", u"Indonesian"), (u"is-IS", u"Íslenska", u"", u"Icelandic"), (u"it-IT", u"Italiano", u"", u"Italian"), @@ -42,7 +49,7 @@ language_codes = ( (u"ko-KR", u"한국어", u"", u"Korean"), (u"lt-LT", u"Lietuvių", u"", u"Lithuanian"), (u"lv-LV", u"Latviešu", u"", u"Latvian"), - (u"ms-MY", u"Bahasa Melayu", u"", u"Malay"), + (u"ms-MY", u"Melayu", u"", u"Malay"), (u"nb-NO", u"Norsk Bokmål", u"", u"Norwegian Bokmål"), (u"nl", u"Nederlands", u"", u"Dutch"), (u"nl-BE", u"Nederlands", u"België", u"Dutch"), @@ -55,8 +62,9 @@ language_codes = ( (u"ru-RU", u"Русский", u"", u"Russian"), (u"sk-SK", u"Slovenčina", u"", u"Slovak"), (u"sl-SI", u"Slovenščina", u"", u"Slovenian"), - (u"sr-RS", u"Српски", u"", u"Serbian"), + (u"sr-RS", u"Srpski", u"", u"Serbian"), (u"sv-SE", u"Svenska", u"", u"Swedish"), + (u"sw-KE", u"Kiswahili", u"", u"Swahili"), (u"th-TH", u"ไทย", u"", u"Thai"), (u"tr-TR", u"Türkçe", u"", u"Turkish"), (u"uk-UA", u"Українська", u"", u"Ukrainian"), diff --git a/searx/preferences.py b/searx/preferences.py index 30a4252b..f70aee37 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -1,12 +1,20 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Searx preferences implementation. +""" + +# pylint: disable=useless-object-inheritance + from base64 import urlsafe_b64encode, urlsafe_b64decode from zlib import compress, decompress from sys import version from searx import settings, autocomplete from searx.languages import language_codes as languages +from searx.utils import match_language from searx.url_utils import parse_qs, urlencode if version[0] == '3': + # pylint: disable=invalid-name unicode = str @@ -19,11 +27,14 @@ DOI_RESOLVERS = list(settings['doi_resolvers']) class MissingArgumentException(Exception): - pass + """Exption from ``cls._post_init`` when a argument is missed. + """ class ValidationException(Exception): - pass + + """Exption from ``cls._post_init`` when configuration value is invalid. + """ class Setting(object): @@ -41,33 +52,45 @@ class Setting(object): pass def parse(self, data): + """Parse ``data`` and store the result at ``self.value`` + + If needed, its overwritten in the inheritance. + """ self.value = data def get_value(self): + """Returns the value of the setting + + If needed, its overwritten in the inheritance. + """ return self.value def save(self, name, resp): + """Save cookie ``name`` in the HTTP reponse obect + + If needed, its overwritten in the inheritance.""" resp.set_cookie(name, self.value, max_age=COOKIE_MAX_AGE) class StringSetting(Setting): """Setting of plain string values""" - pass class EnumStringSetting(Setting): """Setting of a value which can only come from the given choices""" - def _validate_selection(self, selection): - if selection not in self.choices: - raise ValidationException('Invalid value: "{0}"'.format(selection)) - def _post_init(self): if not hasattr(self, 'choices'): raise MissingArgumentException('Missing argument: choices') self._validate_selection(self.value) + def _validate_selection(self, selection): + if selection not in self.choices: # pylint: disable=no-member + raise ValidationException('Invalid value: "{0}"'.format(selection)) + def parse(self, data): + """Parse and validate ``data`` and store the result at ``self.value`` + """ self._validate_selection(data) self.value = data @@ -77,7 +100,7 @@ class MultipleChoiceSetting(EnumStringSetting): def _validate_selections(self, selections): for item in selections: - if item not in self.choices: + if item not in self.choices: # pylint: disable=no-member raise ValidationException('Invalid value: "{0}"'.format(selections)) def _post_init(self): @@ -86,6 +109,8 @@ class MultipleChoiceSetting(EnumStringSetting): self._validate_selections(self.value) def parse(self, data): + """Parse and validate ``data`` and store the result at ``self.value`` + """ if data == '': self.value = [] return @@ -94,24 +119,67 @@ class MultipleChoiceSetting(EnumStringSetting): self._validate_selections(elements) self.value = elements - def parse_form(self, data): + def parse_form(self, data): # pylint: disable=missing-function-docstring self.value = [] for choice in data: - if choice in self.choices and choice not in self.value: + if choice in self.choices and choice not in self.value: # pylint: disable=no-member self.value.append(choice) def save(self, name, resp): + """Save cookie ``name`` in the HTTP reponse obect + """ resp.set_cookie(name, ','.join(self.value), max_age=COOKIE_MAX_AGE) +class SetSetting(Setting): + """Setting of values of type ``set`` (comma separated string) """ + def _post_init(self): + if not hasattr(self, 'values'): + self.values = set() + + def get_value(self): + """Returns a string with comma separated values. + """ + return ','.join(self.values) + + def parse(self, data): + """Parse and validate ``data`` and store the result at ``self.value`` + """ + if data == '': + self.values = set() # pylint: disable=attribute-defined-outside-init + return + + elements = data.split(',') + for element in elements: + self.values.add(element) + + def parse_form(self, data): # pylint: disable=missing-function-docstring + elements = data.split(',') + self.values = set(elements) # pylint: disable=attribute-defined-outside-init + + def save(self, name, resp): + """Save cookie ``name`` in the HTTP reponse obect + """ + resp.set_cookie(name, ','.join(self.values), max_age=COOKIE_MAX_AGE) + + class SearchLanguageSetting(EnumStringSetting): """Available choices may change, so user's value may not be in choices anymore""" + def _validate_selection(self, selection): + if selection != "" and not match_language( + # pylint: disable=no-member + selection, self.choices, fallback=None): + raise ValidationException('Invalid language code: "{0}"'.format(selection)) + def parse(self, data): - if data not in self.choices and data != self.value: + """Parse and validate ``data`` and store the result at ``self.value`` + """ + if data not in self.choices and data != self.value: # pylint: disable=no-member # hack to give some backwards compatibility with old language cookies data = str(data).replace('_', '-') lang = data.split('-')[0] + # pylint: disable=no-member if data in self.choices: pass elif lang in self.choices: @@ -127,16 +195,21 @@ class MapSetting(Setting): def _post_init(self): if not hasattr(self, 'map'): raise MissingArgumentException('missing argument: map') - if self.value not in self.map.values(): + if self.value not in self.map.values(): # pylint: disable=no-member raise ValidationException('Invalid default value') def parse(self, data): + """Parse and validate ``data`` and store the result at ``self.value`` + """ + # pylint: disable=no-member if data not in self.map: raise ValidationException('Invalid choice: {0}'.format(data)) self.value = self.map[data] - self.key = data + self.key = data # pylint: disable=attribute-defined-outside-init def save(self, name, resp): + """Save cookie ``name`` in the HTTP reponse obect + """ if hasattr(self, 'key'): resp.set_cookie(name, self.key, max_age=COOKIE_MAX_AGE) @@ -150,24 +223,26 @@ class SwitchableSetting(Setting): if not hasattr(self, 'choices'): raise MissingArgumentException('missing argument: choices') - def transform_form_items(self, items): + def transform_form_items(self, items): # pylint: disable=missing-function-docstring + # pylint: disable=no-self-use return items - def transform_values(self, values): + def transform_values(self, values): # pylint: disable=missing-function-docstring + # pylint: disable=no-self-use return values - def parse_cookie(self, data): + def parse_cookie(self, data): # pylint: disable=missing-function-docstring + # pylint: disable=attribute-defined-outside-init if data[DISABLED] != '': self.disabled = set(data[DISABLED].split(',')) if data[ENABLED] != '': self.enabled = set(data[ENABLED].split(',')) - def parse_form(self, items): + def parse_form(self, items): # pylint: disable=missing-function-docstring items = self.transform_form_items(items) - - self.disabled = set() - self.enabled = set() - for choice in self.choices: + self.disabled = set() # pylint: disable=attribute-defined-outside-init + self.enabled = set() # pylint: disable=attribute-defined-outside-init + for choice in self.choices: # pylint: disable=no-member if choice['default_on']: if choice['id'] in items: self.disabled.add(choice['id']) @@ -175,31 +250,34 @@ class SwitchableSetting(Setting): if choice['id'] not in items: self.enabled.add(choice['id']) - def save(self, resp): + def save(self, resp): # pylint: disable=arguments-differ + """Save cookie in the HTTP reponse obect + """ resp.set_cookie('disabled_{0}'.format(self.value), ','.join(self.disabled), max_age=COOKIE_MAX_AGE) resp.set_cookie('enabled_{0}'.format(self.value), ','.join(self.enabled), max_age=COOKIE_MAX_AGE) - def get_disabled(self): + def get_disabled(self): # pylint: disable=missing-function-docstring disabled = self.disabled - for choice in self.choices: + for choice in self.choices: # pylint: disable=no-member if not choice['default_on'] and choice['id'] not in self.enabled: disabled.add(choice['id']) return self.transform_values(disabled) - def get_enabled(self): + def get_enabled(self): # pylint: disable=missing-function-docstring enabled = self.enabled - for choice in self.choices: + for choice in self.choices: # pylint: disable=no-member if choice['default_on'] and choice['id'] not in self.disabled: enabled.add(choice['id']) return self.transform_values(enabled) class EnginesSetting(SwitchableSetting): + """Engine settings""" def _post_init(self): super(EnginesSetting, self)._post_init() transformed_choices = [] - for engine_name, engine in self.choices.items(): + for engine_name, engine in self.choices.items(): # pylint: disable=no-member,access-member-before-definition for category in engine.categories: transformed_choice = dict() transformed_choice['default_on'] = not engine.disabled @@ -221,11 +299,12 @@ class EnginesSetting(SwitchableSetting): class PluginsSetting(SwitchableSetting): + """Plugin settings""" def _post_init(self): super(PluginsSetting, self)._post_init() transformed_choices = [] - for plugin in self.choices: + for plugin in self.choices: # pylint: disable=access-member-before-definition transformed_choice = dict() transformed_choice['default_on'] = plugin.default_on transformed_choice['id'] = plugin.id @@ -242,39 +321,72 @@ class Preferences(object): def __init__(self, themes, categories, engines, plugins): super(Preferences, self).__init__() - self.key_value_settings = {'categories': MultipleChoiceSetting(['general'], choices=categories + ['none']), - 'language': SearchLanguageSetting(settings['search']['language'], - choices=LANGUAGE_CODES), - 'locale': EnumStringSetting(settings['ui']['default_locale'], - choices=list(settings['locales'].keys()) + ['']), - 'autocomplete': EnumStringSetting(settings['search']['autocomplete'], - choices=list(autocomplete.backends.keys()) + ['']), - 'image_proxy': MapSetting(settings['server']['image_proxy'], - map={'': settings['server']['image_proxy'], - '0': False, - '1': True, - 'True': True, - 'False': False}), - 'method': EnumStringSetting('POST', choices=('GET', 'POST')), - 'safesearch': MapSetting(settings['search']['safe_search'], map={'0': 0, - '1': 1, - '2': 2}), - 'theme': EnumStringSetting(settings['ui']['default_theme'], choices=themes), - 'results_on_new_tab': MapSetting(False, map={'0': False, - '1': True, - 'False': False, - 'True': True}), - 'doi_resolver': MultipleChoiceSetting(['oadoi.org'], choices=DOI_RESOLVERS), - 'oscar-style': EnumStringSetting( - settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'), - choices=['', 'logicodev', 'logicodev-dark', 'pointhi']), - } + self.key_value_settings = { + 'categories': MultipleChoiceSetting( + ['general'], choices=categories + ['none'] + ), + 'language': SearchLanguageSetting( + settings['search'].get('default_lang', ''), + choices=list(LANGUAGE_CODES) + [''] + ), + 'locale': EnumStringSetting( + settings['ui'].get('default_locale', ''), + choices=list(settings['locales'].keys()) + [''] + ), + 'autocomplete': EnumStringSetting( + settings['search'].get('autocomplete', ''), + choices=list(autocomplete.backends.keys()) + [''] + ), + 'image_proxy': MapSetting( + settings['server'].get('image_proxy', False), + map={ + '': settings['server'].get('image_proxy', 0), + '0': False, + '1': True, + 'True': True, + 'False': False + } + ), + 'method': EnumStringSetting( + 'POST', + choices=('GET', 'POST') + ), + 'safesearch': MapSetting( + settings['search'].get('safe_search', 0), + map={ + '0': 0, + '1': 1, + '2': 2 + } + ), + 'theme': EnumStringSetting( + settings['ui'].get('default_theme', 'oscar'), + choices=themes + ), + 'results_on_new_tab': MapSetting( + False, + map={ + '0': False, + '1': True, + 'False': False, + 'True': True + } + ), + 'doi_resolver': MultipleChoiceSetting( + ['oadoi.org'], choices=DOI_RESOLVERS + ), + 'oscar-style': EnumStringSetting( + settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'), + choices=['', 'logicodev', 'logicodev-dark', 'pointhi']), + } self.engines = EnginesSetting('engines', choices=engines) self.plugins = PluginsSetting('plugins', choices=plugins) + self.tokens = SetSetting('tokens') self.unknown_params = {} def get_as_url_params(self): + """Return preferences as URL parameters""" settings_kv = {} for k, v in self.key_value_settings.items(): if isinstance(v, MultipleChoiceSetting): @@ -288,9 +400,12 @@ class Preferences(object): settings_kv['disabled_plugins'] = ','.join(self.plugins.disabled) settings_kv['enabled_plugins'] = ','.join(self.plugins.enabled) + settings_kv['tokens'] = ','.join(self.tokens.values) + return urlsafe_b64encode(compress(urlencode(settings_kv).encode('utf-8'))).decode('utf-8') def parse_encoded_data(self, input_data): + """parse (base64) preferences from request (``flask.request.form['preferences']``)""" decoded_data = decompress(urlsafe_b64decode(input_data.encode('utf-8'))) dict_data = {} for x, y in parse_qs(decoded_data).items(): @@ -298,6 +413,7 @@ class Preferences(object): self.parse_dict(dict_data) def parse_dict(self, input_data): + """parse preferences from request (``flask.request.form``)""" for user_setting_name, user_setting in input_data.items(): if user_setting_name in self.key_value_settings: self.key_value_settings[user_setting_name].parse(user_setting) @@ -307,6 +423,8 @@ class Preferences(object): elif user_setting_name == 'disabled_plugins': self.plugins.parse_cookie((input_data.get('disabled_plugins', ''), input_data.get('enabled_plugins', ''))) + elif user_setting_name == 'tokens': + self.tokens.parse(user_setting) elif not any(user_setting_name.startswith(x) for x in [ 'enabled_', 'disabled_', @@ -316,6 +434,7 @@ class Preferences(object): self.unknown_params[user_setting_name] = user_setting def parse_form(self, input_data): + """Parse formular (``
'); + $.ajax({ + type: "POST", + url: './', + data: formData, + dataType: 'html', + success: function(data) { + var body = $(data); + $('#pagination').remove(); + $('#main_results').append('
'); + $('#main_results').append(body.find('.result')); + $('#main_results').append(body.find('#pagination')); + if(!hasScrollbar()) { + loadNextPage(); + } + } + }); + } +} + $(document).ready(function() { var win = $(window); + if(!hasScrollbar()) { + loadNextPage(); + } win.scroll(function() { + $("#pagination button").css("visibility", "hidden"); if ($(document).height() - win.height() - win.scrollTop() < 150) { - var formData = $('#pagination form:last').serialize(); - if (formData) { - $('#pagination').html('
'); - $.post('./', formData, function (data) { - var body = $(data); - $('#pagination').remove(); - $('#main_results').append('
'); - $('#main_results').append(body.find('.result')); - $('#main_results').append(body.find('#pagination')); - }); - } + loadNextPage(); } }); }); diff --git a/searx/static/plugins/js/vim_hotkeys.js b/searx/static/plugins/js/vim_hotkeys.js index 13bd070e..b0f265cb 100644 --- a/searx/static/plugins/js/vim_hotkeys.js +++ b/searx/static/plugins/js/vim_hotkeys.js @@ -125,6 +125,14 @@ $(document).ready(function() { } }); + function nextResult(current, direction) { + var next = current[direction](); + while (!next.is('.result') && next.length !== 0) { + next = next[direction](); + } + return next + } + function highlightResult(which) { return function() { var current = $('.result[data-vim-selected]'); @@ -157,13 +165,13 @@ $(document).ready(function() { } break; case 'down': - next = current.next('.result'); + next = nextResult(current, 'next'); if (next.length === 0) { next = $('.result:first'); } break; case 'up': - next = current.prev('.result'); + next = nextResult(current, 'prev'); if (next.length === 0) { next = $('.result:last'); } diff --git a/searx/static/themes/oscar/.gitignore b/searx/static/themes/oscar/.gitignore index c2658d7d..07e6e472 100644 --- a/searx/static/themes/oscar/.gitignore +++ b/searx/static/themes/oscar/.gitignore @@ -1 +1 @@ -node_modules/ +/node_modules diff --git a/searx/static/themes/oscar/gruntfile.js b/searx/static/themes/oscar/gruntfile.js index def035db..606b6bcf 100644 --- a/searx/static/themes/oscar/gruntfile.js +++ b/searx/static/themes/oscar/gruntfile.js @@ -13,7 +13,7 @@ module.exports = function(grunt) { }, uglify: { options: { - banner: '/*! oscar/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' + banner: '/*! oscar/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n' }, dist: { files: { @@ -38,7 +38,6 @@ module.exports = function(grunt) { development: { options: { paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark"] - //banner: '/*! less/oscar/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' }, files: {"css/pointhi.css": "less/pointhi/oscar.less", "css/logicodev.css": "less/logicodev-dark/oscar.less", @@ -47,7 +46,6 @@ module.exports = function(grunt) { production: { options: { paths: ["less/pointhi", "less/logicodev", "less/logicodev-dark"], - //banner: '/*! less/oscar/oscar.css | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n', cleancss: true }, files: {"css/pointhi.min.css": "less/pointhi/oscar.less", diff --git a/searx/static/themes/oscar/js/searx.js b/searx/static/themes/oscar/js/searx.js index 927aeb42..9138576f 100644 --- a/searx/static/themes/oscar/js/searx.js +++ b/searx/static/themes/oscar/js/searx.js @@ -86,6 +86,9 @@ $(document).ready(function(){ }, source: searx.searchResults.ttAdapter() }); + $('#q').bind('typeahead:selected', function(ev, suggestion) { + $("#search_form").submit(); + }); } }); ;/** diff --git a/searx/static/themes/oscar/js/searx.min.js b/searx/static/themes/oscar/js/searx.min.js index 354d9f2f..4c01dca9 100644 --- a/searx/static/themes/oscar/js/searx.min.js +++ b/searx/static/themes/oscar/js/searx.min.js @@ -1,2 +1,2 @@ -/*! oscar/searx.min.js | 06-08-2019 | https://github.com/asciimoo/searx */ -requirejs.config({baseUrl:"./static/themes/oscar/js",paths:{app:"../app"}}),window.searx=function(a){"use strict";var b=a.currentScript||function(){var b=a.getElementsByTagName("script");return b[b.length-1]}();return{autocompleter:"true"===b.getAttribute("data-autocompleter"),method:b.getAttribute("data-method")}}(document),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"./autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&$("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()})}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&($(this).hasClass("collapsed")?new_html=$(this).html().replace(a,b):new_html=$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&($(this).hasClass("btn-default")?new_html=$(this).html().replace(b,c):new_html=$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var a=$(this).data("target"),b=$(a+" > iframe"),c=b.attr("src");void 0!==c&&!1!==c||b.attr("src",b.data("src"))}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||-1==i.indexOf(d)){switch(c+="
"}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'

could not load data!

')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(a){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/img/map";var h=L.map(b),i="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",j='Map data © OpenStreetMap contributors',k=new L.TileLayer(i,{minZoom:1,maxZoom:19,attribution:j}),l="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",m='Wikimedia maps beta | Maps data © OpenStreetMap contributors';new L.TileLayer(l,{minZoom:1,maxZoom:19,attribution:m});map_bounds?setTimeout(function(){h.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?h.setView(new L.LatLng(d,c),e):h.setView(new L.LatLng(d,c),8)),h.addLayer(k);var n={"OSM Mapnik":k};L.control.layers(n).addTo(h),g&&L.geoJson(g).addTo(h)}),$(this).off(a)})}); \ No newline at end of file +/*! oscar/searx.min.js | 23-03-2020 | https://github.com/asciimoo/searx */ +requirejs.config({baseUrl:"./static/themes/oscar/js",paths:{app:"../app"}}),window.searx=function(a){"use strict";var b=a.currentScript||function(){var b=a.getElementsByTagName("script");return b[b.length-1]}();return{autocompleter:"true"===b.getAttribute("data-autocompleter"),method:b.getAttribute("data-method")}}(document),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"./autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&($("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()}),$("#q").bind("typeahead:selected",function(a,b){$("#search_form").submit()}))}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&($(this).hasClass("collapsed")?new_html=$(this).html().replace(a,b):new_html=$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&($(this).hasClass("btn-default")?new_html=$(this).html().replace(b,c):new_html=$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var a=$(this).data("target"),b=$(a+" > iframe"),c=b.attr("src");void 0!==c&&c!==!1||b.attr("src",b.data("src"))}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||i.indexOf(d)==-1){switch(c+=""}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'

could not load data!

')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(a){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/img/map";var h=L.map(b),i="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",j='Map data © OpenStreetMap contributors',k=new L.TileLayer(i,{minZoom:1,maxZoom:19,attribution:j}),l="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",m='Wikimedia maps beta | Maps data © OpenStreetMap contributors';new L.TileLayer(l,{minZoom:1,maxZoom:19,attribution:m});map_bounds?setTimeout(function(){h.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?h.setView(new L.LatLng(d,c),e):h.setView(new L.LatLng(d,c),8)),h.addLayer(k);var n={"OSM Mapnik":k};L.control.layers(n).addTo(h),g&&L.geoJson(g).addTo(h)}),$(this).off(a)})}); \ No newline at end of file diff --git a/searx/static/themes/oscar/js/searx_src/autocompleter.js b/searx/static/themes/oscar/js/searx_src/autocompleter.js index 0907f8e3..985be2c7 100644 --- a/searx/static/themes/oscar/js/searx_src/autocompleter.js +++ b/searx/static/themes/oscar/js/searx_src/autocompleter.js @@ -33,5 +33,8 @@ $(document).ready(function(){ }, source: searx.searchResults.ttAdapter() }); + $('#q').bind('typeahead:selected', function(ev, suggestion) { + $("#search_form").submit(); + }); } }); diff --git a/searx/static/themes/simple/.gitignore b/searx/static/themes/simple/.gitignore new file mode 100644 index 00000000..07e6e472 --- /dev/null +++ b/searx/static/themes/simple/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index c372ec73..c8f2ed3c 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -36,7 +36,7 @@ module.exports = function(grunt) { }, uglify: { options: { - banner: '/*! simple/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n', + banner: '/*! simple/searx.min.js | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n', output: { comments: 'some' }, @@ -57,7 +57,7 @@ module.exports = function(grunt) { development: { options: { paths: ["less"], - banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' + banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n' }, files: { "css/searx.css": "less/style.less", @@ -73,7 +73,7 @@ module.exports = function(grunt) { compatibility: '*' }) ], - banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n' + banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n' }, files: { "css/searx.min.css": "less/style.less", diff --git a/searx/templates/__common__/about.html b/searx/templates/__common__/about.html index bf173335..d3e8d06a 100644 --- a/searx/templates/__common__/about.html +++ b/searx/templates/__common__/about.html @@ -1,63 +1,97 @@ -

About searx

+

About searx

-

Searx is a metasearch engine, aggregating the results of other search engines while not storing information about its users. -

-

Why use searx?

-
    -
  • searx may not offer you as personalised results as Google, but it doesn't generate a profile about you
  • -
  • searx doesn't care about what you search for, never shares anything with a third party, and it can't be used to compromise you
  • -
  • searx is free software, the code is 100% open and you can help to make it better. See more on github
  • -
-

If you do care about privacy, want to be a conscious user, or otherwise believe - in digital freedom, make searx your default search engine or run it on your own server

+

+ Searx is a metasearch engine, + aggregating the results of other search engines + while not storing information about its users. +

-

Technical details - How does it work?

+

More about searx ...

-

Searx is a metasearch engine, -inspired by the seeks project.
-It provides basic privacy by mixing your queries with searches on other platforms without storing search data. Queries are made using a POST request on every browser (except chrome*). Therefore they show up in neither our logs, nor your url history. In case of Chrome* users there is an exception, searx uses the search bar to perform GET requests.
-Searx can be added to your browser's search bar; moreover, it can be set as the default search engine. -

- -

How can I make it my own?

- -

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer! -
The more decentralized the Internet is, the more freedom we have!

- - -

More about searx

- - +
-
+

Why use searx?

-

FAQ

+
    +
  • + Searx may not offer you as personalised results as Google, but it doesn't + generate a profile about you. +
  • +
  • + Searx doesn't care about what you search for, never shares anything with a + third party, and it can't be used to compromise you. +
  • +
  • + Searx is free software, the code is 100% open and you can help to make it + better. See more on github. +
  • +
-

How to add to firefox?

-

Install searx as a search engine on any version of Firefox! (javascript required)

+

+ If you do care about privacy, want to be a conscious user, or otherwise + believe in digital freedom, make searx your default search engine or run it + on your own server +

-

Developer FAQ

+

Technical details - How does it work?

-

New engines?

- -

Don't forget to restart searx after config edit!

+

+ Searx is a metasearch engine, + inspired by the seeks project. -

Installation/WSGI support?

-

See the installation and setup wiki page

+ It provides basic privacy by mixing your queries with searches on other + platforms without storing search data. Queries are made using a POST request + on every browser (except chrome*). Therefore they show up in neither our + logs, nor your url history. In case of Chrome* users there is an exception, + searx uses the search bar to perform GET requests. -

How to debug engines?

-

Stats page contains some useful data about the engines used.

+ Searx can be added to your browser's search bar; moreover, it can be set as + the default search engine. +

+ +

How to set as the default search engine?

+ +
Firefox
+ +
+ Install + searx as a search engine on any version of Firefox! (javascript required) +
+ +

Where to find anonymous usage statistics of this instance ?

+ +

+ Stats page contains some useful data about the engines used. +

+ +

How can I make it my own?

+ +

+ Searx appreciates your concern regarding logs, so take the + code from the original searx project and + run it yourself! +

+

+ Add your searx instance to this list + of public searx instances to help other people reclaim their privacy and + make the Internet freer! The more decentralized the Internet is, the more + freedom we have! +

+ +

Where are the docs & code of this instance?

+ +

+ See the {{ brand.DOCS_URL }} + and {{ brand.GIT_URL }} +

{% include "__common__/aboutextend.html" ignore missing %} diff --git a/searx/templates/__common__/opensearch_response_rss.xml b/searx/templates/__common__/opensearch_response_rss.xml index 32c42e7c..3781dd87 100644 --- a/searx/templates/__common__/opensearch_response_rss.xml +++ b/searx/templates/__common__/opensearch_response_rss.xml @@ -25,5 +25,29 @@ {% if r.pubdate %}{{ r.pubdate }}{% endif %} {% endfor %} + {% if answers %} + {% for a in answers %} + + {{ a }} + answer + + {% endfor %} + {% endif %} + {% if corrections %} + {% for a in corrections %} + + {{ a }} + correction + + {% endfor %} + {% endif %} + {% if suggestions %} + {% for a in suggestions %} + + {{ a }} + suggestion + + {% endfor %} + {% endif %} diff --git a/searx/templates/courgette/github_ribbon.html b/searx/templates/courgette/github_ribbon.html index 67c6e678..bdd9cf18 100644 --- a/searx/templates/courgette/github_ribbon.html +++ b/searx/templates/courgette/github_ribbon.html @@ -1,3 +1,3 @@ Fork me on GitHub - \ No newline at end of file + diff --git a/searx/templates/oscar/base.html b/searx/templates/oscar/base.html index 66a9e602..5eb4462e 100644 --- a/searx/templates/oscar/base.html +++ b/searx/templates/oscar/base.html @@ -85,10 +85,10 @@ {% endblock %}

- {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
- {{ _('Source code') }} | - {{ _('Issue tracker') }} | - {{ _('Public instances') }} + {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
+ {{ _('Source code') }} | + {{ _('Issue tracker') }} | + {{ _('Public instances') }}

diff --git a/searx/templates/oscar/infobox.html b/searx/templates/oscar/infobox.html index 9f5e58d2..9802f11e 100644 --- a/searx/templates/oscar/infobox.html +++ b/searx/templates/oscar/infobox.html @@ -6,7 +6,7 @@
{% if infobox.img_src %}{{ infobox.infobox }}{% endif %} - {% if infobox.content %}

{{ infobox.content }}

{% endif %} + {% if infobox.content %}

{{ infobox.content | safe }}

{% endif %} {% if infobox.attributes -%}
"+d+"",d){case"phone":case"fax":c+=''+b.tags[d]+"";break;case"email":c+=''+b.tags[d]+"";break;case"website":case"url":c+=''+b.tags[d]+"";break;case"wikidata":c+=''+b.tags[d]+"";break;case"wikipedia":if(-1!=b.tags[d].indexOf(":")){c+=''+b.tags[d]+"";break}default:c+=b.tags[d]}c+="
"+d+"",d){case"phone":case"fax":c+=''+b.tags[d]+"";break;case"email":c+=''+b.tags[d]+"";break;case"website":case"url":c+=''+b.tags[d]+"";break;case"wikidata":c+=''+b.tags[d]+"";break;case"wikipedia":if(b.tags[d].indexOf(":")!=-1){c+=''+b.tags[d]+"";break}default:c+=b.tags[d]}c+="
diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html index 1a484dd4..b03929df 100644 --- a/searx/templates/oscar/preferences.html +++ b/searx/templates/oscar/preferences.html @@ -131,6 +131,12 @@ {% endfor %} {{ preferences_item_footer(info, label, rtl) }} + + {% set label = _('Engine tokens') %} + {% set info = _('Access tokens for private engines') %} + {{ preferences_item_header(info, label, rtl) }} + + {{ preferences_item_footer(info, label, rtl) }} diff --git a/searx/templates/oscar/results.html b/searx/templates/oscar/results.html index 9cf94269..43e3e26d 100644 --- a/searx/templates/oscar/results.html +++ b/searx/templates/oscar/results.html @@ -15,7 +15,68 @@ {% include 'oscar/search.html' %}
-
+ + +

{{ _('Search results') }}

{% if corrections -%} @@ -91,66 +152,5 @@ {% endif %} {% endif %}
- -
{% endblock %} diff --git a/searx/templates/oscar/search.html b/searx/templates/oscar/search.html index cad9eca8..9978801c 100644 --- a/searx/templates/oscar/search.html +++ b/searx/templates/oscar/search.html @@ -6,6 +6,7 @@ +
diff --git a/searx/templates/oscar/search_full.html b/searx/templates/oscar/search_full.html index 65646317..ea821dc4 100644 --- a/searx/templates/oscar/search_full.html +++ b/searx/templates/oscar/search_full.html @@ -9,6 +9,7 @@ +
diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html index 92597b65..71df123e 100644 --- a/searx/templates/simple/base.html +++ b/searx/templates/simple/base.html @@ -51,9 +51,9 @@ diff --git a/searx/testing.py b/searx/testing.py index a3616dc1..f0e303e1 100644 --- a/searx/testing.py +++ b/searx/testing.py @@ -1,12 +1,14 @@ # -*- coding: utf-8 -*- +# SPDX-License-Identifier: AGPL-3.0-or-later """Shared testing code.""" +# pylint: disable=missing-function-docstring import os import subprocess import traceback -from os.path import dirname, join, abspath +from os.path import dirname, join, abspath, realpath from splinter import Browser from unittest2 import TestCase @@ -17,21 +19,21 @@ class SearxTestLayer: __name__ = u'SearxTestLayer' + @classmethod def setUp(cls): pass - setUp = classmethod(setUp) + @classmethod def tearDown(cls): pass - tearDown = classmethod(tearDown) + @classmethod def testSetUp(cls): pass - testSetUp = classmethod(testSetUp) + @classmethod def testTearDown(cls): pass - testTearDown = classmethod(testTearDown) class SearxRobotLayer(): @@ -41,14 +43,19 @@ class SearxRobotLayer(): os.setpgrp() # create new process group, become its leader # get program paths - webapp = os.path.join( - os.path.abspath(os.path.dirname(os.path.realpath(__file__))), - 'webapp.py' - ) + webapp = join(abspath(dirname(realpath(__file__))), 'webapp.py') exe = 'python' + # The Flask app is started by Flask.run(...), don't enable Flask's debug + # mode, the debugger from Flask will cause wired process model, where + # the server never dies. Further read: + # + # - debug mode: https://flask.palletsprojects.com/quickstart/#debug-mode + # - Flask.run(..): https://flask.palletsprojects.com/api/#flask.Flask.run + + os.environ['SEARX_DEBUG'] = '0' + # set robot settings path - os.environ['SEARX_DEBUG'] = '1' os.environ['SEARX_SETTINGS_PATH'] = abspath( dirname(__file__) + '/settings_robot.yml') @@ -105,7 +112,7 @@ if __name__ == '__main__': try: test_layer.setUp() run_robot_tests([getattr(robot, x) for x in dir(robot) if x.startswith('test_')]) - except Exception: + except Exception: # pylint: disable=broad-except errors = True print('Error occured: {0}'.format(traceback.format_exc())) test_layer.tearDown() diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo index 052e5b52..3774e5be 100644 Binary files a/searx/translations/ar/LC_MESSAGES/messages.mo and b/searx/translations/ar/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po index 645ca0ed..0604ac16 100644 --- a/searx/translations/ar/LC_MESSAGES/messages.po +++ b/searx/translations/ar/LC_MESSAGES/messages.po @@ -4,14 +4,15 @@ # # Translators: # ButterflyOfFire ButterflyOfFire, 2018 +# ButterflyOfFire, 2018 # ButterflyOfFire, 2017-2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-09-08 08:23+0000\n" -"Last-Translator: ButterflyOfFire ButterflyOfFire\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Arabic (http://www.transifex.com/asciimoo/searx/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +33,63 @@ msgstr "" msgid "unexpected crash" msgstr "خلل غير مُتوقّع" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ملفات" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "الرئيسية" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "موسيقى" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "شبكات التواصل الإجتماعي" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "صور" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "فيديوهات" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "علوم و تكنولوجيا" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "أخبار" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "خرائط" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "علوم" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "إنّ الإعدادات خاطئة، يرجى تعديل خياراتك" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "إعدادات غير صالحة" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "خطأ في البحث" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "قبل {minutes} ثانية" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "قبل {hours} ساعات، {minutes} دقائق" @@ -108,29 +109,28 @@ msgstr "" msgid "Compute {functions} of the arguments" msgstr "" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "المدة المستغرقة للمحرك (ثواني)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "مدة تحميل الصفحة (ثواني)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "حصيلة نتائج البحث" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "أخطاء" @@ -142,8 +142,14 @@ msgstr "{title} (OBSOLETE)" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -158,16 +164,6 @@ msgstr "تمرير الصفحات بلا حدود" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "حمّل تلقائيا الصفحة التالية عن السحب إلى أسفل النتائج" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +326,8 @@ msgstr "الطريقة" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +399,8 @@ msgstr "محركات البحث المُستخدَمة حاليًا" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +415,8 @@ msgstr "الفئة" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +434,7 @@ msgstr "حظر" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +444,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +454,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +462,14 @@ msgstr "حفظ" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "إعاد التعيين إلى الإعدادات الإفتراضية" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +640,23 @@ msgid "General" msgstr "الرئيسية" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "المحركات" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "الإضافات" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "المجيبون" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "كعكات الكوكيز" @@ -711,88 +707,78 @@ msgstr "إختر الشكل الذي ستبدو عليه هذه السمة" msgid "Style" msgstr "الشكل" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "الإختصار" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "اللغة المختارة" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "الفترة" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "متوسط الوقت" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "أقصى مدّة" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "التسمية" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "الكلمات الرمزية" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "الوصف" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "أمثلة" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "إسم الكوكي" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "القيمة" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo index f80e5afc..0ee7802a 100644 Binary files a/searx/translations/bg/LC_MESSAGES/messages.mo and b/searx/translations/bg/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/bg/LC_MESSAGES/messages.po b/searx/translations/bg/LC_MESSAGES/messages.po index 09a013ed..63c9938f 100644 --- a/searx/translations/bg/LC_MESSAGES/messages.po +++ b/searx/translations/bg/LC_MESSAGES/messages.po @@ -4,14 +4,15 @@ # # Translators: # ubone , 2015 +# ubone , 2015 # ubone , 2016-2017 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-01 20:31+0000\n" -"Last-Translator: Adam Tauber \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Bulgarian (http://www.transifex.com/asciimoo/searx/language/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +33,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "файлове" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "общо" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "музика" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "социална мрежа" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "изображения" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "видео" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "новини" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "карта" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "наука" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Неправилни настройки, моля проверете предпочитанията си." -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "грешка при търсенето" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "преди {minutes} минута(минути)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "преди {hours} час(ове), {minutes} минута(минути)" @@ -108,29 +109,28 @@ msgstr "" msgid "Compute {functions} of the arguments" msgstr "" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Страницата зарежда (сек)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Брой резултати" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Грешки" @@ -142,8 +142,14 @@ msgstr "" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -158,16 +164,6 @@ msgstr "Списък без страници." msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Автоматично зареждане на следващата страница." -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +326,8 @@ msgstr "Метод" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +399,8 @@ msgstr "Използвани търсачки в момента " #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +415,8 @@ msgstr "Категория" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +434,7 @@ msgstr "Забрани" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +444,7 @@ msgstr "Тези настройки се съхраняват във вашит #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +454,7 @@ msgstr "Тези бисквитки служат за ваше удобство. #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +462,14 @@ msgstr "запази" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Върни първоначалните" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +640,23 @@ msgid "General" msgstr "Общи" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Търсачки" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Добавки" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Отговори" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Бисквитки" @@ -711,88 +707,78 @@ msgstr "Избери стил за избрания облик" msgid "Style" msgstr "Стил" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Пряк път" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Средно време" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Макс. време" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Име" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ключови думи" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Описание" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Примери" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Това е списък на бисквитки с техните стойности, които searx съхранява на вашия компютър." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Име на бисквитката" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Стойност" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/bo/LC_MESSAGES/messages.mo b/searx/translations/bo/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..7941328e Binary files /dev/null and b/searx/translations/bo/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/bo/LC_MESSAGES/messages.po b/searx/translations/bo/LC_MESSAGES/messages.po new file mode 100644 index 00000000..a2eb5cbf --- /dev/null +++ b/searx/translations/bo/LC_MESSAGES/messages.po @@ -0,0 +1,998 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# གངས་རྒྱན། , 2019 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-10-08 09:02+0000\n" +"Last-Translator: གངས་རྒྱན། \n" +"Language-Team: Tibetan (http://www.transifex.com/asciimoo/searx/language/bo/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Language: bo\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: searx/search.py:137 searx/search.py:182 +msgid "timeout" +msgstr "དུས་ལས་འགོངས་ཟིན།" + +#: searx/search.py:144 +msgid "request exception" +msgstr "རེ་ཞུ་ཁྱབ་ཁོངས་ལས་འགོངས་ཟིན།" + +#: searx/search.py:151 +msgid "unexpected crash" +msgstr "ནོར་འཁྲུལ་ཆེན་པོ་བྱུང་ཟིན།" + +#: searx/webapp.py:135 +msgid "files" +msgstr "ཡིག་ཆ།" + +#: searx/webapp.py:136 +msgid "general" +msgstr "སྤྱི་བཏང་།" + +#: searx/webapp.py:137 +msgid "music" +msgstr "རོལ་དབྱངས།" + +#: searx/webapp.py:138 +msgid "social media" +msgstr "སྤྱི་ཚོགས་འབྲེལ་བ།" + +#: searx/webapp.py:139 +msgid "images" +msgstr "པར་རིས།" + +#: searx/webapp.py:140 +msgid "videos" +msgstr "བརྙན་ཟློས།" + +#: searx/webapp.py:141 +msgid "it" +msgstr "ཆ་འཕྲིན་ལག་རྩལ།" + +#: searx/webapp.py:142 +msgid "news" +msgstr "གསར་འགྱུར།" + +#: searx/webapp.py:143 +msgid "map" +msgstr "ས་བཀྲ།" + +#: searx/webapp.py:144 +msgid "science" +msgstr "ཚན་རིག་ཤེས་བྱ།" + +#: searx/webapp.py:398 searx/webapp.py:653 +msgid "Invalid settings, please edit your preferences" +msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།ཁྱེད་ཀྱིས་གདམ་ཀ་ལ་བཅོས་སྒྲིག་གཏོང་རོགས།" + +#: searx/webapp.py:410 +msgid "Invalid settings" +msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།" + +#: searx/webapp.py:444 searx/webapp.py:488 +msgid "search error" +msgstr "འཚོལ་བཤེར་ལ་ནོར་འཁྲུལ་བྱུང་།" + +#: searx/webapp.py:525 +msgid "{minutes} minute(s) ago" +msgstr "སྐར་མ་ {minutes} སྔོན་ལ།" + +#: searx/webapp.py:527 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "ཆུ་ཚོད་ {hours} དང་སྐར་མ {minutes} སྔོན་ལ།" + +#: searx/answerers/random/answerer.py:53 +msgid "Random value generator" +msgstr "ངེས་མེད་གྲངས་ཀ་མཁོ་སྤྲོད།" + +#: searx/answerers/random/answerer.py:54 +msgid "Generate different random values" +msgstr "ངེས་མེད་གྲངས་ཀ་ཁ་ཤས་ཐོབ་པར་བྱེད།" + +#: searx/answerers/statistics/answerer.py:53 +msgid "Statistics functions" +msgstr "སྡོམ་བརྩིས་ཀྱི་བྱེད་ནུས།" + +#: searx/answerers/statistics/answerer.py:54 +msgid "Compute {functions} of the arguments" +msgstr " {functions} གཞི་གྲངས་གྲངས་རྩིས།" + +#: searx/engines/__init__.py:194 +msgid "Engine time (sec)" +msgstr "འཚོལ་བཤེར་དུས་ཡུན། (སྐར་ཆ།)" + +#: searx/engines/__init__.py:198 +msgid "Page loads (sec)" +msgstr "ནང་འདྲེན་དུས་ཡུན། (སྐར་ཆ།)" + +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 +#: searx/templates/simple/results.html:20 +msgid "Number of results" +msgstr "འཚོལ་འབྲས་ཀྱི་ཁ་གྲངས།" + +#: searx/engines/__init__.py:206 +msgid "Scores" +msgstr "ཐོབ་སྐར།" + +#: searx/engines/__init__.py:210 +msgid "Scores per result" +msgstr "འཚོལ་འབྲས་རེ་རེ་ཡི་ཐོབ་སྐར།" + +#: searx/engines/__init__.py:214 +msgid "Errors" +msgstr "ནོར་འཁྲུལ།" + +#: searx/engines/pdbe.py:87 +msgid "{title} (OBSOLETE)" +msgstr "{title} (དུས་ལས་འགོངས་ཟིན།)" + +#: searx/engines/pdbe.py:91 +msgid "This entry has been superseded by" +msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ་བྱེད་འདུག" + +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI བསྐྱར་འབྲི།" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Avoid paywalls by redirecting to open-access versions of publications when available" + +#: searx/plugins/https_rewrite.py:32 +msgid "Rewrite HTTP links to HTTPS if possible" +msgstr "HTTP དྲ་ངོས་སྦྲེལ་ཐག་རྣམས HTTPS ལ་བསྒྱུར།" + +#: searx/plugins/infinite_scroll.py:3 +msgid "Infinite scroll" +msgstr "མཐའ་མེད་པའི་འཆར་ངོས།" + +#: searx/plugins/infinite_scroll.py:4 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "དྲ་ངོས་མར་འདྲུད་ནས་ཞབས་ལ་སླེབས་དུས་རང་འགུལ་སྒོས་འཕྲོ་མའི་ནང་དོན་འཆར་པར་བྱེད།" + +#: searx/plugins/open_results_on_new_tab.py:18 +#: searx/templates/oscar/preferences.html:114 +#: searx/templates/simple/preferences.html:149 +msgid "Open result links on new browser tabs" +msgstr "ཤོག་ངོས་གསར་བ་ཞིག་ནས་དྲ་ངོས་འཆར་པར་བྱེད།" + +#: searx/plugins/open_results_on_new_tab.py:19 +msgid "" +"Results are opened in the same window by default. This plugin overwrites the" +" default behaviour to open links on new tabs/windows. (JavaScript required)" +msgstr "Results are opened in the same window by default. This plugin overwrites the default behaviour to open links on new tabs/windows. (JavaScript required)" + +#: searx/plugins/search_on_category_select.py:18 +msgid "Search on category select" +msgstr "རིགས་གདམ་གསེས་བཏང་ནས་འཚོལ་བཤེར་གཏོང་།" + +#: searx/plugins/search_on_category_select.py:19 +msgid "" +"Perform search immediately if a category selected. Disable to select " +"multiple categories. (JavaScript required)" +msgstr "Perform search immediately if a category selected. Disable to select multiple categories. (JavaScript required)" + +#: searx/plugins/self_info.py:20 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." +msgstr "Displays your IP if the query is \"ip\" and your user agent if the query contains \"user agent\"." + +#: searx/plugins/tracker_url_remover.py:26 +msgid "Tracker URL remover" +msgstr "དྲ་གནས་རྗེས་འདེད་སྤོ་འབུད།" + +#: searx/plugins/tracker_url_remover.py:27 +msgid "Remove trackers arguments from the returned URL" +msgstr "Remove trackers arguments from the returned URL" + +#: searx/plugins/vim_hotkeys.py:3 +msgid "Vim-like hotkeys" +msgstr "མགྱོགས་མྱུར་མཐེབ་གཞོང་གི་སྤྱོད་སྟངས།" + +#: searx/plugins/vim_hotkeys.py:4 +msgid "" +"Navigate search results with Vim-like hotkeys (JavaScript required). Press " +"\"h\" key on main or result page to get help." +msgstr "Navigate search results with Vim-like hotkeys (JavaScript required). Press \"h\" key on main or result page to get help." + +#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 +#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "དྲ་ངོས་རྙེད་རྒྱུ་མ་བྱུང་།" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "%(search_page)s ལ་བསྐྱོད།" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "འཚོལ་བཤེར་དྲ་ངོས།" + +#: searx/templates/courgette/index.html:9 +#: searx/templates/courgette/index.html:13 +#: searx/templates/courgette/results.html:5 +#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12 +#: searx/templates/oscar/navbar.html:7 +#: searx/templates/oscar/preferences.html:3 +#: searx/templates/pix-art/index.html:8 +msgid "preferences" +msgstr "རང་མོས་ཀྱི་སྒྲིག་འགོད།" + +#: searx/templates/courgette/index.html:11 +#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2 +#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7 +msgid "about" +msgstr "ངེད་ཀྱི་སྐོར།" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/legacy/preferences.html:5 +#: searx/templates/oscar/preferences.html:8 +#: searx/templates/pix-art/preferences.html:5 +#: searx/templates/simple/preferences.html:26 +msgid "Preferences" +msgstr "རང་མོས་ཀྱི་སྒྲིག་འགོད།" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/legacy/preferences.html:9 +#: searx/templates/oscar/preferences.html:33 +#: searx/templates/oscar/preferences.html:35 +#: searx/templates/simple/preferences.html:34 +msgid "Default categories" +msgstr "གཞི་བཞག་གི་རིགས།" + +#: searx/templates/courgette/preferences.html:13 +#: searx/templates/legacy/preferences.html:14 +#: searx/templates/oscar/preferences.html:41 +#: searx/templates/pix-art/preferences.html:9 +#: searx/templates/simple/preferences.html:39 +#: searx/templates/simple/preferences.html:163 +msgid "Search language" +msgstr "འཚོལ་བཤེར་སྐད་རིགས།" + +#: searx/templates/courgette/preferences.html:16 +#: searx/templates/legacy/preferences.html:17 +#: searx/templates/oscar/languages.html:6 +#: searx/templates/pix-art/preferences.html:12 +#: searx/templates/simple/languages.html:2 +#: searx/templates/simple/preferences.html:42 +msgid "Default language" +msgstr "སྐད་རིགས།" + +#: searx/templates/courgette/preferences.html:24 +#: searx/templates/legacy/preferences.html:25 +#: searx/templates/oscar/preferences.html:47 +#: searx/templates/pix-art/preferences.html:20 +#: searx/templates/simple/preferences.html:120 +msgid "Interface language" +msgstr "མདུན་ངོས་ཀྱི་སྐད་རིགས།" + +#: searx/templates/courgette/preferences.html:34 +#: searx/templates/legacy/preferences.html:35 +#: searx/templates/oscar/preferences.html:57 +#: searx/templates/simple/preferences.html:51 +msgid "Autocomplete" +msgstr "རང་ཤུགས་ཀྱིས་སྒྲུབ།" + +#: searx/templates/courgette/preferences.html:45 +#: searx/templates/legacy/preferences.html:46 +#: searx/templates/oscar/preferences.html:68 +#: searx/templates/simple/preferences.html:166 +msgid "Image proxy" +msgstr "རི་མོ་མངག་བཅོལ་གྱི་ཞབས་ཞུ་སྒྲིག་ཆས།" + +#: searx/templates/courgette/preferences.html:48 +#: searx/templates/legacy/preferences.html:49 +#: searx/templates/oscar/preferences.html:72 +#: searx/templates/simple/preferences.html:169 +msgid "Enabled" +msgstr "ཁ་འབྱེད་ཟིན།" + +#: searx/templates/courgette/preferences.html:49 +#: searx/templates/legacy/preferences.html:50 +#: searx/templates/oscar/preferences.html:73 +#: searx/templates/simple/preferences.html:170 +msgid "Disabled" +msgstr "ཁ་རྒྱབ་ཟིན།" + +#: searx/templates/courgette/preferences.html:54 +#: searx/templates/legacy/preferences.html:55 +#: searx/templates/oscar/preferences.html:77 +#: searx/templates/pix-art/preferences.html:30 +#: searx/templates/simple/preferences.html:156 +msgid "Method" +msgstr "ཐབས་ཤེས།" + +#: searx/templates/courgette/preferences.html:63 +#: searx/templates/legacy/preferences.html:64 +#: searx/templates/oscar/preferences.html:86 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 +#: searx/templates/simple/preferences.html:63 +#: searx/templates/simple/preferences.html:90 +msgid "SafeSearch" +msgstr "བདེ་འཇགས་འཚོལ་བཤེར།" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/legacy/preferences.html:67 +#: searx/templates/oscar/preferences.html:90 +#: searx/templates/simple/preferences.html:66 +msgid "Strict" +msgstr "ནན་ཏན།" + +#: searx/templates/courgette/preferences.html:67 +#: searx/templates/legacy/preferences.html:68 +#: searx/templates/oscar/preferences.html:91 +#: searx/templates/simple/preferences.html:67 +msgid "Moderate" +msgstr "འབྲིང་ཙམ།" + +#: searx/templates/courgette/preferences.html:68 +#: searx/templates/legacy/preferences.html:69 +#: searx/templates/oscar/preferences.html:92 +#: searx/templates/simple/preferences.html:68 +msgid "None" +msgstr "གང་ཡང་མེད།" + +#: searx/templates/courgette/preferences.html:73 +#: searx/templates/legacy/preferences.html:74 +#: searx/templates/oscar/preferences.html:96 +#: searx/templates/pix-art/preferences.html:39 +#: searx/templates/simple/preferences.html:131 +msgid "Themes" +msgstr "རྣམ་པ།" + +#: searx/templates/courgette/preferences.html:83 +msgid "Color" +msgstr "ཁ་དོག" + +#: searx/templates/courgette/preferences.html:86 +msgid "Blue (default)" +msgstr "སྔོན་པོ། (གཞི་བཞག)" + +#: searx/templates/courgette/preferences.html:87 +msgid "Violet" +msgstr "དམར་སྨུག" + +#: searx/templates/courgette/preferences.html:88 +msgid "Green" +msgstr "ལྗང་ཁུ།" + +#: searx/templates/courgette/preferences.html:89 +msgid "Cyan" +msgstr "སྔོ་སྐྱ།" + +#: searx/templates/courgette/preferences.html:90 +msgid "Orange" +msgstr "ལི་ཁྲི།" + +#: searx/templates/courgette/preferences.html:91 +msgid "Red" +msgstr "དམར་པོ།" + +#: searx/templates/courgette/preferences.html:96 +#: searx/templates/legacy/preferences.html:93 +#: searx/templates/pix-art/preferences.html:49 +#: searx/templates/simple/preferences.html:77 +msgid "Currently used search engines" +msgstr "ཉེ་ལམ་སྤྱད་ཟིན་པའི་འཚོལ་བྱེད་སྒུལ་བྱེད།" + +#: searx/templates/courgette/preferences.html:100 +#: searx/templates/legacy/preferences.html:97 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 +#: searx/templates/pix-art/preferences.html:53 +#: searx/templates/simple/preferences.html:87 +msgid "Engine name" +msgstr "སྒུལ་བྱེད་ཀྱི་མིང་།" + +#: searx/templates/courgette/preferences.html:101 +#: searx/templates/legacy/preferences.html:98 +msgid "Category" +msgstr "རིགས།" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:113 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:110 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:64 +#: searx/templates/simple/preferences.html:86 +msgid "Allow" +msgstr "ཆོག་མཆན།" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:114 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:111 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:65 +msgid "Block" +msgstr "བཀག་སྡོམ།" + +#: searx/templates/courgette/preferences.html:122 +#: searx/templates/legacy/preferences.html:119 +#: searx/templates/oscar/preferences.html:285 +#: searx/templates/pix-art/preferences.html:73 +#: searx/templates/simple/preferences.html:180 +msgid "" +"These settings are stored in your cookies, this allows us not to store this " +"data about you." +msgstr "These settings are stored in your cookies, this allows us not to store this data about you." + +#: searx/templates/courgette/preferences.html:124 +#: searx/templates/legacy/preferences.html:121 +#: searx/templates/oscar/preferences.html:287 +#: searx/templates/pix-art/preferences.html:75 +#: searx/templates/simple/preferences.html:182 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "These cookies serve your sole convenience, we don't use these cookies to track you." + +#: searx/templates/courgette/preferences.html:127 +#: searx/templates/legacy/preferences.html:124 +#: searx/templates/oscar/preferences.html:293 +#: searx/templates/pix-art/preferences.html:78 +#: searx/templates/simple/preferences.html:185 +msgid "save" +msgstr "གསོག་འཇོག" + +#: searx/templates/courgette/preferences.html:128 +#: searx/templates/legacy/preferences.html:125 +#: searx/templates/oscar/preferences.html:295 +#: searx/templates/simple/preferences.html:186 +msgid "Reset defaults" +msgstr "གདོད་མའི་རྣམ་པ་ལ་སྒྲིག་འགོད་བྱེད།" + +#: searx/templates/courgette/preferences.html:129 +#: searx/templates/legacy/preferences.html:126 +#: searx/templates/oscar/preferences.html:294 +#: searx/templates/pix-art/preferences.html:79 +#: searx/templates/simple/preferences.html:187 +msgid "back" +msgstr "ཕྱིར་ལོག" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/legacy/results.html:13 +#: searx/templates/oscar/results.html:136 +#: searx/templates/simple/results.html:58 +msgid "Search URL" +msgstr "འཚོལ་བཤེར་དྲ་གནས།" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/legacy/results.html:17 +#: searx/templates/oscar/results.html:141 +#: searx/templates/simple/results.html:62 +msgid "Download results" +msgstr "འཚོལ་འབྲས་ཕབ་ལེན།" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/legacy/results.html:35 +#: searx/templates/simple/results.html:10 +msgid "Answers" +msgstr "ལན།" + +#: searx/templates/courgette/results.html:42 +#: searx/templates/legacy/results.html:43 +#: searx/templates/oscar/results.html:116 +#: searx/templates/simple/results.html:42 +msgid "Suggestions" +msgstr "འོས་སྦྱོས།" + +#: searx/templates/courgette/results.html:70 +#: searx/templates/legacy/results.html:81 +#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78 +#: searx/templates/simple/results.html:130 +msgid "previous page" +msgstr "དྲ་ངོས་སྔོན་མ།" + +#: searx/templates/courgette/results.html:81 +#: searx/templates/legacy/results.html:92 +#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84 +#: searx/templates/simple/results.html:145 +msgid "next page" +msgstr "དྲ་ངོས་གཞུག་མ།" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6 +#: searx/templates/oscar/search_full.html:9 +#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4 +msgid "Search for..." +msgstr "འཚོལ་བཤེར་ནང་དོན།" + +#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4 +#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4 +#: searx/templates/simple/stats.html:7 +msgid "Engine stats" +msgstr "སྒུལ་བྱེད་ཀྱི་སྡོམ་རྩིས།" + +#: searx/templates/courgette/result_templates/images.html:4 +#: searx/templates/legacy/result_templates/images.html:4 +#: searx/templates/pix-art/result_templates/images.html:4 +msgid "original context" +msgstr "གདོད་མའི་ནང་དོན།" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "མཁོ་སྤྲོད་གཏོང་མཁན།" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "དང་ལེན་བྱེད་མཁན།" + +#: searx/templates/courgette/result_templates/torrent.html:9 +#: searx/templates/legacy/result_templates/torrent.html:9 +#: searx/templates/oscar/macros.html:23 +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "ཐོན་ཁུངས་ཀྱི་དྲ་གནས།" + +#: searx/templates/courgette/result_templates/torrent.html:10 +#: searx/templates/legacy/result_templates/torrent.html:10 +#: searx/templates/oscar/macros.html:24 +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "ས་བོན་ཡིག་ཆ།" + +#: searx/templates/legacy/categories.html:8 +#: searx/templates/simple/categories.html:6 +msgid "Click on the magnifier to perform search" +msgstr "ས་བོན་སྟེང་གི་སྦྲེལ་ཐག་ལ་རྡེབ་ནས་འཚོལ་བཤེར་གཏོང་།" + +#: searx/templates/legacy/preferences.html:84 +#: searx/templates/oscar/preferences.html:113 +#: searx/templates/simple/preferences.html:142 +msgid "Results on new tabs" +msgstr "ཤོག་ངོས་གསར་བ་ནས་འཚོལ་འབྲས་འཆར།" + +#: searx/templates/legacy/preferences.html:87 +#: searx/templates/oscar/preferences.html:117 +#: searx/templates/simple/preferences.html:145 +msgid "On" +msgstr "ཁ་ཕྱེས།" + +#: searx/templates/legacy/preferences.html:88 +#: searx/templates/oscar/preferences.html:118 +#: searx/templates/simple/preferences.html:146 +msgid "Off" +msgstr "ཁ་རྒྱབ།" + +#: searx/templates/legacy/result_templates/code.html:3 +#: searx/templates/legacy/result_templates/default.html:3 +#: searx/templates/legacy/result_templates/map.html:9 +#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48 +#: searx/templates/simple/macros.html:43 +msgid "cached" +msgstr "འདྲ་བཤུས་རྒྱབ་ཚར།" + +#: searx/templates/oscar/advanced.html:4 +msgid "Advanced settings" +msgstr "མཐོ་རིམ་སྒྲིག་འགོད།" + +#: searx/templates/oscar/base.html:62 +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "ཁ་རྒྱག" + +#: searx/templates/oscar/base.html:64 +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +#: searx/templates/simple/results.html:25 +msgid "Error!" +msgstr "ནོར་འཁྲུལ་བྱུང་ཟིན།" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "Powered by" +msgstr "བཟོ་སྐུན་པ་ནི" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "མི་སྒེར་ཆ་འཕྲིན་ལ་བརྩི་གསོག་ལྡན་ཞིང་འཚོལ་བྱེད་ནང་དོན་ཕུན་སུམ་པའི་འཚོལ་བཤེར་སྒུལ་བྱེད་མ་ལག" + +#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50 +#: searx/templates/simple/macros.html:43 +msgid "proxied" +msgstr "མངག་བཅོལ་བྱེད་ཟིན།" + +#: searx/templates/oscar/macros.html:92 +msgid "supported" +msgstr "རྒྱབ་སྐྱོར་ཐོབ་ཟིན་པ།" + +#: searx/templates/oscar/macros.html:96 +msgid "not supported" +msgstr "རྒྱབ་སྐྱོར་མི་ཐོབ།" + +#: searx/templates/oscar/preferences.html:13 +#: searx/templates/oscar/preferences.html:22 +#: searx/templates/simple/preferences.html:32 +msgid "General" +msgstr "སྤྱི་བཏང་།" + +#: searx/templates/oscar/preferences.html:14 +#: searx/templates/oscar/preferences.html:134 +#: searx/templates/simple/preferences.html:76 +msgid "Engines" +msgstr "སྒུལ་བྱེད།" + +#: searx/templates/oscar/preferences.html:15 +#: searx/templates/oscar/preferences.html:207 +msgid "Plugins" +msgstr "ལྷུ་ལག" + +#: searx/templates/oscar/preferences.html:16 +#: searx/templates/oscar/preferences.html:233 +msgid "Answerers" +msgstr "ལན།" + +#: searx/templates/oscar/preferences.html:17 +#: searx/templates/oscar/preferences.html:260 +msgid "Cookies" +msgstr "རྐང་རྗེས།" + +#: searx/templates/oscar/preferences.html:42 +#: searx/templates/simple/preferences.html:48 +msgid "What language do you prefer for search?" +msgstr "ཁྱེད་ཀྱིས་ཆེས་སྤྱོད་བདེ་པའི་འཚོལ་བཤེར་སྐད་རིགས་གང་ཡིན་ནམ།" + +#: searx/templates/oscar/preferences.html:48 +#: searx/templates/simple/preferences.html:128 +msgid "Change the language of the layout" +msgstr "སྐད་རིགས་གདམ་གསེས་ཀྱི་དྲ་ངོས་བརྗེ་བསྒྱུར།" + +#: searx/templates/oscar/preferences.html:58 +#: searx/templates/simple/preferences.html:60 +msgid "Find stuff as you type" +msgstr "འཚོལ་བྱ་གཏགས་པ་ཇི་བཞིན་བཙལ།" + +#: searx/templates/oscar/preferences.html:69 +#: searx/templates/simple/preferences.html:173 +msgid "Proxying image results through searx" +msgstr "རི་མོ searx བརྒྱུད་ནས་མངག་བཅོལ་བྱས་ཟིན།" + +#: searx/templates/oscar/preferences.html:78 +msgid "" +"Change how forms are submited, learn more about request methods" +msgstr "Change how forms are submited, learn more about request methods" + +#: searx/templates/oscar/preferences.html:87 +#: searx/templates/simple/preferences.html:71 +msgid "Filter content" +msgstr "ནང་དོན་བཙག་བྱེད།" + +#: searx/templates/oscar/preferences.html:97 +#: searx/templates/simple/preferences.html:139 +msgid "Change searx layout" +msgstr "དྲ་ངོས་ཀྱི་རྣམ་པ་བརྗེ་བསྒྱུར།" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Choose style for this theme" +msgstr "དྲ་ངོས་རྣམ་པ་འདི་ལ་སྒྲིག་འགོད་གཏོང་།" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Style" +msgstr "ཚུགས་ཀ" + +#: searx/templates/oscar/preferences.html:151 +#: searx/templates/oscar/preferences.html:163 +#: searx/templates/simple/preferences.html:88 +msgid "Shortcut" +msgstr "མགྱོགས་མྱུར་མཐེབ་གཞོང་།" + +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 +msgid "Selected language" +msgstr "སྐད་རིགས་གདམ་གསེས།" + +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 +#: searx/templates/simple/preferences.html:91 +msgid "Time range" +msgstr "དུས་ཀྱི་ཁྱབ་ཁོངས།" + +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 +#: searx/templates/simple/preferences.html:92 +msgid "Avg. time" +msgstr "ས་སྙོམས་དུས་ཚོད།" + +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 +#: searx/templates/simple/preferences.html:93 +msgid "Max time" +msgstr "མང་མཐའི་དུས་ཚོད།" + +#: searx/templates/oscar/preferences.html:236 +msgid "This is the list of searx's instant answering modules." +msgstr "This is the list of searx's instant answering modules." + +#: searx/templates/oscar/preferences.html:240 +msgid "Name" +msgstr "མིང་།" + +#: searx/templates/oscar/preferences.html:241 +msgid "Keywords" +msgstr "ཐ་སྙད་གཙོ་བོ།" + +#: searx/templates/oscar/preferences.html:242 +msgid "Description" +msgstr "འབྲེལ་ཡོད་ངོ་སྤྲོད།" + +#: searx/templates/oscar/preferences.html:243 +msgid "Examples" +msgstr "དཔེ་བརྗོད།" + +#: searx/templates/oscar/preferences.html:263 +msgid "" +"This is the list of cookies and their values searx is storing on your " +"computer." +msgstr "འདི་ནི searx ཡི་བརྡ་སྤྲོད་ལན་སློག་གི་གསལ་ཐོ་ཞིག་ཡིན།" + +#: searx/templates/oscar/preferences.html:264 +msgid "With that list, you can assess searx transparency." +msgstr "གསལ་ཐོ་འདི་བརྒྱུད་ནས། ཁྱེད་ཀྱིས searx དྲ་ཚིགས་ཀྱི་བདེན་པ་རང་བཞིན་ལ་མཉམ་ཚོར་ལེན་ཐུབ།" + +#: searx/templates/oscar/preferences.html:269 +msgid "Cookie name" +msgstr "རྗེས་འདེད་ཀྱི་ཡིག་ཆའི་མིང་།" + +#: searx/templates/oscar/preferences.html:270 +msgid "Value" +msgstr "ཚད་གཞི།" + +#: searx/templates/oscar/preferences.html:289 +msgid "Search URL of the currently saved preferences" +msgstr "ཉེ་ལམ་རང་མོས་སྒྲིག་འགོད་ཁྲོད་དུ་གསོག་འཇོག་བྱས་ཟིན་པའི་དྲ་གནས་འཚོལ་བཤེར།" + +#: searx/templates/oscar/preferences.html:289 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." +msgstr "Note: specifying custom settings in the search URL can reduce privacy by leaking data to the clicked result sites." + +#: searx/templates/oscar/results.html:17 +msgid "Search results" +msgstr "འཚོལ་འབྲས།" + +#: searx/templates/oscar/results.html:21 +#: searx/templates/simple/results.html:84 +msgid "Try searching for:" +msgstr "འཚོལ་བཤེར་ནང་དོན་ནི།" + +#: searx/templates/oscar/results.html:100 +#: searx/templates/simple/results.html:25 +msgid "Engines cannot retrieve results" +msgstr "འཚོལ་བཤེར་སྒུལ་བྱེད་ལ་ནོར་འཁྲུལ་ཅུང་ཟད་བྱུང་།" + +#: searx/templates/oscar/results.html:131 +msgid "Links" +msgstr "སྦྲེལ་ཐག" + +#: searx/templates/oscar/search.html:8 +#: searx/templates/oscar/search_full.html:11 +#: searx/templates/simple/search.html:5 +msgid "Start search" +msgstr "འཚོལ་བཤེར་མགོ་རྩོམ།" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "སྡོམ་རྩིས།" + +#: searx/templates/oscar/time-range.html:3 +#: searx/templates/simple/time-range.html:3 +msgid "Anytime" +msgstr "དུས་ངེས་མེད།" + +#: searx/templates/oscar/time-range.html:6 +#: searx/templates/simple/time-range.html:6 +msgid "Last day" +msgstr "ཉིན་སྔོན་མ།" + +#: searx/templates/oscar/time-range.html:9 +#: searx/templates/simple/time-range.html:9 +msgid "Last week" +msgstr "གཟའ་སྔོན་མ།" + +#: searx/templates/oscar/time-range.html:12 +#: searx/templates/simple/time-range.html:12 +msgid "Last month" +msgstr "ཟླ་བ་སྔོན་མ།" + +#: searx/templates/oscar/time-range.html:15 +#: searx/templates/simple/time-range.html:15 +msgid "Last year" +msgstr "ལོ་སྔོན་མ།" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "མཉམ་འཇོག་བྱེད།" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "བལྟས་སོང་ན་ཁྱེད་ཀྱིས་ཐེངས་དང་པོ་ངེད་དྲ་བ་སྤྱོད་བཞིན་པ་རེད།" + +#: searx/templates/oscar/messages/no_cookies.html:3 +msgid "Information!" +msgstr "ཆ་འཕྲིན།" + +#: searx/templates/oscar/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "ཉེ་བར་དྲ་ངོས་རྗེས་འདེད་གང་ཡང་མེད།" + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "ཉེ་བར་ཐོབ་རུང་བའི་ཡིག་ཆ་གང་ཡང་མེད།" + +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +msgid "Engines cannot retrieve results." +msgstr "འཙོལ་བཤེར་གཏོང་མི་ནུས། དགོངས་དག" + +#: searx/templates/oscar/messages/no_results.html:10 +#: searx/templates/simple/messages/no_results.html:10 +msgid "Please, try again later or find another searx instance." +msgstr "ཏོག་ཙམ་འགོར་རྗེས་ཡང་བསྐྱར་ཚར་ལྟ་བྱོས།" + +#: searx/templates/oscar/messages/no_results.html:14 +#: searx/templates/simple/messages/no_results.html:14 +msgid "Sorry!" +msgstr "དགོངས་དག" + +#: searx/templates/oscar/messages/no_results.html:15 +#: searx/templates/simple/messages/no_results.html:15 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "འཚོལ་འབྲས་གང་ཡང་མ་ཐོབ། ཁྱེད་ཀྱིས་འཚོལ་བཤེར་ཐ་སྙད་གཞན་པ་ནས་ཚོད་ལྟ་བྱེད་རོགས།" + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "ཡག་བྱུང་།" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "སྒྲིག་འགོད་བདེ་ལེགས་ངང་གསོག་འཇོག་བྱས་ཟིན།" + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "ཨ། བྱ་འདི།" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "ནོར་འཁྲུལ་ཆ་གེ་མོ་ཞིག་བྱུང་ཟིན།" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "show media" +msgstr "སྨྱན་གཟུགས་འཆར་པར་བྱེད།" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "hide media" +msgstr "སྨྱན་གཟུགས་སྦས་པར་བྱེད།" + +#: searx/templates/oscar/result_templates/images.html:30 +msgid "Get image" +msgstr "པར་རིས་ཕབ་ལེན།" + +#: searx/templates/oscar/result_templates/images.html:33 +msgid "View source" +msgstr "ཡོངས་ཁུངས་ལ་ལྟ།" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "show map" +msgstr "ས་བཀྲ་འཆར།" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "hide map" +msgstr "ས་བཀྲ་སྦས།" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "show details" +msgstr "ངོ་སྤྲོད་འཆར།" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "hide details" +msgstr "ངོ་སྤྲོད་སྦས།" + +#: searx/templates/oscar/result_templates/torrent.html:7 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "ཡིག་ཆའི་ཆེ་ཆུང་།" + +#: searx/templates/oscar/result_templates/torrent.html:9 +#: searx/templates/simple/result_templates/torrent.html:12 +msgid "Bytes" +msgstr "གྲངས་གནས།" + +#: searx/templates/oscar/result_templates/torrent.html:10 +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "kiB" +msgstr "kB" + +#: searx/templates/oscar/result_templates/torrent.html:11 +#: searx/templates/simple/result_templates/torrent.html:14 +msgid "MiB" +msgstr "MB" + +#: searx/templates/oscar/result_templates/torrent.html:12 +#: searx/templates/simple/result_templates/torrent.html:15 +msgid "GiB" +msgstr "GB" + +#: searx/templates/oscar/result_templates/torrent.html:13 +#: searx/templates/simple/result_templates/torrent.html:16 +msgid "TiB" +msgstr "TB" + +#: searx/templates/oscar/result_templates/torrent.html:15 +#: searx/templates/simple/result_templates/torrent.html:20 +msgid "Number of Files" +msgstr "ཡིག་ཆའི་ཁ་གྲངས།" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "བརྙན་ཟློས་འཆར།" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "རྙན་ཟློས་སྦས།" + +#: searx/templates/pix-art/results.html:28 +msgid "Load more..." +msgstr "གང་བྱུང་དྲ་ཚིགས་འཆར་པར་བྱེད།" + +#: searx/templates/simple/base.html:31 +msgid "No item found" +msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།" + +#: searx/templates/simple/preferences.html:89 +msgid "Supports selected language" +msgstr "རྒྱབ་སྐྱོར་ཐོབ་པའི་སྐད་རིགས་གདམ་གསེས།" + +#: searx/templates/simple/preferences.html:118 +msgid "User interface" +msgstr "མདུན་ངོས།" + +#: searx/templates/simple/preferences.html:154 +msgid "Privacy" +msgstr "མི་སྒེར་གསང་དོན།" diff --git a/searx/translations/ca/LC_MESSAGES/messages.mo b/searx/translations/ca/LC_MESSAGES/messages.mo index 2ec3e050..43b3d6d4 100644 Binary files a/searx/translations/ca/LC_MESSAGES/messages.mo and b/searx/translations/ca/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ca/LC_MESSAGES/messages.po b/searx/translations/ca/LC_MESSAGES/messages.po index 460091cd..44d46665 100644 --- a/searx/translations/ca/LC_MESSAGES/messages.po +++ b/searx/translations/ca/LC_MESSAGES/messages.po @@ -4,14 +4,15 @@ # # Translators: # Calbasi , 2018 +# Ecron , 2019 # jmontane, 2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-15 15:10+0000\n" -"Last-Translator: jmontane\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-10-17 13:46+0000\n" +"Last-Translator: Ecron \n" "Language-Team: Catalan (http://www.transifex.com/asciimoo/searx/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +33,63 @@ msgstr "Excepció en la petició" msgid "unexpected crash" msgstr "Fallada no esperada" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "fitxers" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "general" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "música" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "xarxes socials" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "imatges" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "vídeos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "informàtica" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "notícies" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "ciència" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "La configuració no és vàlida, editeu-la" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "La configuració no és vàlida" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "error en la cerca" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "fa {minutes} minuts" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "fa {hours} hores i {minutes} minuts" @@ -108,29 +109,28 @@ msgstr "Funcions estadístiques" msgid "Compute {functions} of the arguments" msgstr "Calcula {functions} dels arguments" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Temps del motor (segons)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Càrrega de la pàgina (segons)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Nombre de resultats" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Valoració" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Valoració segons el resultat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Errors" @@ -142,9 +142,15 @@ msgstr "{title} (OBSOLET)" msgid "This entry has been superseded by" msgstr "Aquesta entrada ha estat substituïda per" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "No hi ha resum disponible per a aquesta publicació." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Reescriptura DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evita els llocs de pagaments redirigint a versions d'accés obert de les publicacions si és possible" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -158,16 +164,6 @@ msgstr "Desplaçament infinit" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Carrega automàticament la pàgina següent en desplaçar-se al final de la pàgina actual" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Reescriu l'Open Access DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evita els llocs de pagaments redirigint a versions d'accés obert de les publicacions si és possible" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +326,8 @@ msgstr "Mètode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +399,8 @@ msgstr "Motors de cerca usats actualment" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +415,8 @@ msgstr "Categoria" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +434,7 @@ msgstr "Bloca" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +444,7 @@ msgstr "Aquesta configuració es desa en les galetes. Això ens permet no emmaga #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +454,7 @@ msgstr "Aquestes galetes només són per a la vostra conveniència. No les usem #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +462,14 @@ msgstr "desa" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Restaura els valors predeterminats" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +640,23 @@ msgid "General" msgstr "General" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motorrs" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Connectat" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Resposter" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Galetes" @@ -711,88 +707,78 @@ msgstr "Trieu un estil per a aquest tema" msgid "Style" msgstr "Estil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Solucionador de l'Open Access DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redirigeix cap a versions d'accés obert de les publicacions si són disponibles (cal un connector)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Drecera" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Llengua seleccionada" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Interval de temps" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Temps amitjanat" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Temps màxim" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Aquest és el llistat dels mòduls de resposta ràpida del searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nom" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Paraules clau" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descripció" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemples" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Aquest és el llistat de les galetes, i els seu valor, que el searx té desats en el vostre equip." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Amb aquest llistat, podeu avaluar la transparència del searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nom de la galeta" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valor" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL de cerca de les preferències desades actualment" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/cs/LC_MESSAGES/messages.mo b/searx/translations/cs/LC_MESSAGES/messages.mo index eded7150..55d40242 100644 Binary files a/searx/translations/cs/LC_MESSAGES/messages.mo and b/searx/translations/cs/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/cs/LC_MESSAGES/messages.po b/searx/translations/cs/LC_MESSAGES/messages.po index 8d3ce3c3..a1421235 100644 --- a/searx/translations/cs/LC_MESSAGES/messages.po +++ b/searx/translations/cs/LC_MESSAGES/messages.po @@ -4,14 +4,15 @@ # # Translators: # Clon , 2017 +# Clon , 2017 # Václav Zouzalík , 2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-18 12:03+0000\n" -"Last-Translator: Václav Zouzalík \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Czech (http://www.transifex.com/asciimoo/searx/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +33,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "soubory" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "obecné" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "hudba" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociální media" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "obrázky" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videa" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "zprávy" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "věda" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Neplatné nastavení, upravte svoje předvolby" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Neplatné nastavení" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "chyba vyhledávání" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "před {minutes} minutamy" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "před {hours} hodinami, {minutes} minutami" @@ -108,29 +109,28 @@ msgstr "Statistické funkce" msgid "Compute {functions} of the arguments" msgstr "Vypočítá {functions} daného argumentu" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Strojový čas (s)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Načítání stránky (s)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Počet výsledků" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Chyby" @@ -142,10 +142,16 @@ msgstr "{title} (ZASTARALÉ)" msgid "This entry has been superseded by" msgstr "Tato položka byla nahrazena" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" msgstr "" +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Předejít placené sekce přesměrováním na verze s otevřený přístupem pokud je to možné" + #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" msgstr "Pokud je to možné přepsat HTTP linky na HTTPS" @@ -158,16 +164,6 @@ msgstr "Nekonečné rolování" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Automaticky načíst další stránku při dorolování na konec současné" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Předejít placené sekce přesměrováním na verze s otevřený přístupem pokud je to možné" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +326,8 @@ msgstr "Metoda" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +399,8 @@ msgstr "Nyní používaný vyhledávač" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +415,8 @@ msgstr "Kategorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +434,7 @@ msgstr "Blokovat" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +444,7 @@ msgstr "Tato nastavení jsou uložena ve vašem cookies, to nám umožňuje tako #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +454,7 @@ msgstr "Tato cookie slouží výhradně vašemu pohodlí, neužíváme je pro va #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +462,14 @@ msgstr "uložit" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Obnovit základní" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +640,23 @@ msgid "General" msgstr "Obecné" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Vyhledávače" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Zásuvné moduly" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Odpovědi" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -711,88 +707,78 @@ msgstr "Vybrat styl tohoto motivu" msgid "Style" msgstr "Styl" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Zkratka" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Zvolený jazyk" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Čásový interval" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Prům. čas" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Max. čas" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Toto je seznam modulů okamžité odpovědi searxu." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Jméno" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Klíčová slova" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Popis" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Příklady" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Toto je seznam cookies a jejich hodnot které searx ukládá ve vašem počítači." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "S tímto seznamem můžete posoudit průhlednost searxu" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Název cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Hodnota" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/cy/LC_MESSAGES/messages.mo b/searx/translations/cy/LC_MESSAGES/messages.mo index 066d268e..238ecce8 100644 Binary files a/searx/translations/cy/LC_MESSAGES/messages.mo and b/searx/translations/cy/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/cy/LC_MESSAGES/messages.po b/searx/translations/cy/LC_MESSAGES/messages.po index 3344c6d1..04d8a21d 100644 --- a/searx/translations/cy/LC_MESSAGES/messages.po +++ b/searx/translations/cy/LC_MESSAGES/messages.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# Aled Powell , 2019 +# Cymrodor , 2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2019-01-05 13:50+0000\n" -"Last-Translator: Aled Powell \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Welsh (http://www.transifex.com/asciimoo/searx/language/cy/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,63 +31,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ffeiliau" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "cyffredinol" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "cerddoriaeth" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "cyfryngau cymdeithasol" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "delweddau" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "fideos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "Technoleg" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "newyddion" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "map" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "gwyddoniaeth" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Gosodiadau annilys. Addasa dy ddewisiadau." -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Gosodiadau annilys" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "gwall chwilio" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} munud yn ôl" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} awr, {minutes} munud yn ôl" @@ -107,29 +107,28 @@ msgstr "" msgid "Compute {functions} of the arguments" msgstr "" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Nifer o ganlyniadau" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Sgoriau" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Gwallau" @@ -141,8 +140,14 @@ msgstr "" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -157,16 +162,6 @@ msgstr "" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Dull" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Categori" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Rhwystro" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "cadw" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Ailosod rhagosodiadau" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Cyffredin" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Peiriannau" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Ategolion" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Atebwyr" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cwcis" @@ -710,88 +705,78 @@ msgstr "Dewis arddull ar gyfer y thema hon" msgid "Style" msgstr "Arddull" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Llwybr Byr" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Iaith a ddewiswyd" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Cyfnod amser" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Enw" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Allweddeiriau" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Disgrifiad" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Enghreifftiau" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Dyma restr y cwcis, a'u gwerthoedd, mae searX yn eu cadw ar eich dyfais." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Enw cwci" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Gwerth" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo index 8813c077..a3cfb17d 100644 Binary files a/searx/translations/da/LC_MESSAGES/messages.mo and b/searx/translations/da/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/da/LC_MESSAGES/messages.po b/searx/translations/da/LC_MESSAGES/messages.po index f235ccdf..848b986f 100644 --- a/searx/translations/da/LC_MESSAGES/messages.po +++ b/searx/translations/da/LC_MESSAGES/messages.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-02-22 01:48+0000\n" -"Last-Translator: Mikkel Kirkgaard Nielsen \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Morten Krogh Andersen \n" "Language-Team: Danish (http://www.transifex.com/asciimoo/searx/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +32,63 @@ msgstr "forespørgsels-undtagelse" msgid "unexpected crash" msgstr "uventet nedlukning" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "filer" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "generelt" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musik" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociale medier" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "billeder" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videoer" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "nyheder" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "kort" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "videnskab" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ugyldige indstillinger, redigér venligst dine valg" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ugyldig indstilling" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "søgefejl" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "for {minutes} minut(ter) siden" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "for {hours} time(r) og {minutes} minut(ter) siden" @@ -108,29 +108,28 @@ msgstr "Statistiske funktioner" msgid "Compute {functions} of the arguments" msgstr "Beregn {functions} af parametrene" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Søgemaskine-tid (sek)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Sideindlæsninger (sek)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Antal resultater" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Vægtninger" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Vægtninger pr. resultat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fejl" @@ -142,9 +141,15 @@ msgstr "{title} (OVERFLØDIG)" msgid "This entry has been superseded by" msgstr "Denne værdi er blevet overskrevet af" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Intet sammendrag er tilgængelig for denne publikation." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Omskriv DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Undgå betalingsmure ved at viderestille til en åbent tilgængelig version, hvis en sådan findes" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -158,16 +163,6 @@ msgstr "Uendelig scrolling" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Indlæs automatisk næste side, når der scrolles til bunden af den nuværende side" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI-omskrivning" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Undgå betalingsmure ved at viderestille til en åbent tilgængelig version, hvis en sådan findes" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +325,8 @@ msgstr "Metode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +398,8 @@ msgstr "Pt. anvendte søgemaskiner" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +414,8 @@ msgstr "Kategori" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +433,7 @@ msgstr "Blokér" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +443,7 @@ msgstr "Disse indstillnger gemmes cookies på din enhed. Dette gør, at vi ikke #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +453,7 @@ msgstr "Disse cookies er kun til dine data. Vi benytter ikke disse til at spore #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +461,14 @@ msgstr "gem" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Nustil til standard" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +639,23 @@ msgid "General" msgstr "Generelt" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Søgemaskiner" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plugins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Svarere" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -711,88 +706,78 @@ msgstr "Vælg stil for dette tema" msgid "Style" msgstr "Stil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI-forløser" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Omdiriger til open-access-udgaver af publikationer hvis tilgængelig (plugin påkrævet)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Genvej" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Valgt sprog" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Tidsinterval" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Gns. tid" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Maks-tid" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Dette er listen over searx's installationens svar-moduler" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Navn" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Nøgleord" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Beskrivelse" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Eksempler" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Dette er listen over de cookies og værdier searx gemmer på din computer" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Med denne liste, kan du bekræfte gennemsigtigheden af searx" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookie-navn" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Værdi" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Søge-URL for den nuværende gemte indstilling" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo index a525fbf1..79ad35be 100644 Binary files a/searx/translations/de/LC_MESSAGES/messages.mo and b/searx/translations/de/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/de/LC_MESSAGES/messages.po b/searx/translations/de/LC_MESSAGES/messages.po index 64f253eb..6aa03b18 100644 --- a/searx/translations/de/LC_MESSAGES/messages.po +++ b/searx/translations/de/LC_MESSAGES/messages.po @@ -8,7 +8,9 @@ # Thomas Pointhuber, 2014-2015 # Ettore Atalan , 2016 # Jona Abdinghoff , 2016 +# Marc Abonce Seguin, 2019 # Mario Siegmann , 2017 +# Bamstam, 2019 # Max , 2015 # pointhi, 2014 # rike, 2014 @@ -21,9 +23,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-28 11:02+0000\n" -"Last-Translator: S R \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-12-11 07:07+0000\n" +"Last-Translator: Marc Abonce Seguin\n" "Language-Team: German (http://www.transifex.com/asciimoo/searx/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -44,69 +46,69 @@ msgstr "Abbruch der Anfrage" msgid "unexpected crash" msgstr "Unerwarteter Absturz" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "Dateien" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "Allgemein" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "Musik" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "Soziale Medien" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "Bilder" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "Videos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "Neuigkeiten" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "Karte" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "Wissenschaft" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ungültige Einstellungen. Bitte diese überprüfen" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ungültige Einstellungen" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "Suchfehler" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "vor {minutes} Minute(n)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "vor {hours} Stunde(n), {minutes} Minute(n)" #: searx/answerers/random/answerer.py:53 msgid "Random value generator" -msgstr "Zufallszahlengenerator" +msgstr "Zufallswertgenerator" #: searx/answerers/random/answerer.py:54 msgid "Generate different random values" @@ -120,29 +122,28 @@ msgstr "Statistikfuntionen" msgid "Compute {functions} of the arguments" msgstr "{functions} der Argumente berechnen" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Suchmaschinen Zeit (sek)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Ladezeit (sek)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Trefferanzahl" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Punkte" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Punkte pro Treffer" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fehler" @@ -154,9 +155,15 @@ msgstr "{title} (OBSOLET)" msgid "This entry has been superseded by" msgstr "Dieser Eintrag wurde überschrieben von" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Keine Zusammenfassung für die Veröffentlichung verfügbar." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI umschreiben" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-Access-Version vermeiden" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -170,16 +177,6 @@ msgstr "Unendliches Scrollen" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Lädt automatisch die nächste Seite, wenn das Ende der aktuellen Seite erreicht wurde" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open-Access-DOI umschreiben" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-Access-Version vermeiden" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -224,7 +221,7 @@ msgstr "An Vim angelehnte Tastenkombinationen" msgid "" "Navigate search results with Vim-like hotkeys (JavaScript required). Press " "\"h\" key on main or result page to get help." -msgstr "Navigiere in der Ergebnisseite mit Vim ähnlichen Tastaturkombinationen (es wird JavaScript benötigt).\nDrücke \"h\" auf der Start- bzw. Ergebnisseite, um ein Hifefenster anzuzeigen" +msgstr "In der Ergebnisseite mit Vim-ähnlichen Tastaturkombinationen navigieren (es wird JavaScript benötigt).\nAuf der Start- bzw. Ergebnisseite \"h\" drücken, um ein Hilfe-Fenster anzuzeigen." #: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 #: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 @@ -342,8 +339,8 @@ msgstr "Methode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -415,8 +412,8 @@ msgstr "Aktuell benutzte Suchmaschinen" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -431,8 +428,8 @@ msgstr "Kategorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -450,7 +447,7 @@ msgstr "Blockieren" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -460,7 +457,7 @@ msgstr "Diese Informationen werden in Cookies auf Ihrem Rechner gespeichert, dam #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -470,7 +467,7 @@ msgstr "Diese Cookies dienen einzig Ihrem Komfort. Wir verwenden sie nicht, um S #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -478,14 +475,14 @@ msgstr "Speichern" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Zurücksetzen" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -656,23 +653,23 @@ msgid "General" msgstr "Allgemein" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Suchmaschinen" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Erweiterungen" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Antworten" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -723,88 +720,78 @@ msgstr "Stil für dieses Thema auswählen" msgid "Style" msgstr "Aussehen" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI resolver" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Weiterleitung zu frei zugänglichen Versionen von Veröffentlichungen, wenn verfügbar (Plugin benötigt)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Abkürzung" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Ausgewählte Sprache" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Zeitbereich" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "mittlere Zeit" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "max. Zeit" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Dies ist die Liste der in searx verfügbaren Module für Sofortantworten " -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Name" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Schlüsselwörter" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Beschreibung" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Beispiele" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Die nachfolgende Liste zeigt alle Cookies, die searx auf deinem Computer speichert." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Mit dieser Liste können Sie die Transparenz von searx einschätzen" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookie-Name" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Wert" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Such-URL für die aktuell gespeicherten Einstellungen" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." @@ -856,7 +843,7 @@ msgstr "Letzte Woche" #: searx/templates/oscar/time-range.html:12 #: searx/templates/simple/time-range.html:12 msgid "Last month" -msgstr "Letzten Monat" +msgstr "Letzter Monat" #: searx/templates/oscar/time-range.html:15 #: searx/templates/simple/time-range.html:15 diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.mo b/searx/translations/el_GR/LC_MESSAGES/messages.mo index 2bc6a57a..62d32b58 100644 Binary files a/searx/translations/el_GR/LC_MESSAGES/messages.mo and b/searx/translations/el_GR/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.po b/searx/translations/el_GR/LC_MESSAGES/messages.po index 073f2f61..c93f81ae 100644 --- a/searx/translations/el_GR/LC_MESSAGES/messages.po +++ b/searx/translations/el_GR/LC_MESSAGES/messages.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-01-17 10:03+0000\n" -"Last-Translator: xinomilo \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Greek (Greece) (http://www.transifex.com/asciimoo/searx/language/el_GR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +32,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "αρχεία" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "γενικά" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "μουσική" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "κοινωνικά δίκτυα" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "εικόνες" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "νέα" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "χάρτης" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "επιστήμη" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "λάθος αναζήτησης" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} λεπτά πριν" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "" @@ -108,29 +108,28 @@ msgstr "" msgid "Compute {functions} of the arguments" msgstr "" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Χρόνος μηχανής (δευτ)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Φόρτωση σελίδας (δευτ)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Αριθμός αποτελεσμάτων" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Λάθη" @@ -142,8 +141,14 @@ msgstr "" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -158,16 +163,6 @@ msgstr "" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +325,8 @@ msgstr "Μέθοδος" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +398,8 @@ msgstr "Μηχανές αναζήτησης που χρησιμοποιούντ #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +414,8 @@ msgstr "Κατηγορία" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +433,7 @@ msgstr "Αποκλεισμός" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +443,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +453,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +461,14 @@ msgstr "αποθήκευση" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Επαναφορά προεπιλογών" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +639,23 @@ msgid "General" msgstr "Γενικά" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Μηχανές" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Πρόσθετα" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "" @@ -711,88 +706,78 @@ msgstr "" msgid "Style" msgstr "" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Συντόμευση" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Επιλεγμένη γλώσσα" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Όνομα" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Λέξεις κλειδιά" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Περιγραφή" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Παραδείγματα" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Τιμή" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo index 0c270c06..cff55569 100644 Binary files a/searx/translations/en/LC_MESSAGES/messages.mo and b/searx/translations/en/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/eo/LC_MESSAGES/messages.mo b/searx/translations/eo/LC_MESSAGES/messages.mo index cfad4d49..c693ac69 100644 Binary files a/searx/translations/eo/LC_MESSAGES/messages.mo and b/searx/translations/eo/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/eo/LC_MESSAGES/messages.po b/searx/translations/eo/LC_MESSAGES/messages.po index cd7ffe80..1f06ed5b 100644 --- a/searx/translations/eo/LC_MESSAGES/messages.po +++ b/searx/translations/eo/LC_MESSAGES/messages.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-11-22 08:33+0000\n" -"Last-Translator: Václav Zouzalík \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: pizzaiolo\n" "Language-Team: Esperanto (http://www.transifex.com/asciimoo/searx/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,63 +34,63 @@ msgstr "escepto de peto" msgid "unexpected crash" msgstr "neatendita paneo" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "dosieroj" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "ĝenerala" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "muziko" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociaj retoj" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "bildoj" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videoj" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "komputiko" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "novaĵoj" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapo" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "scienco" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Nevalidaj agordoj, bonvolu redakti viajn agordojn" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Nevalidaj agordoj" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "serĉa eraro" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "antaŭ {minutes} minuto(j)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "antaŭ {hours} horo(j), {minutes} minuto(j)" @@ -110,29 +110,28 @@ msgstr "Statistikaj funkcioj" msgid "Compute {functions} of the arguments" msgstr "Kalkulas {functions} el la argumentoj" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Motora tempo (s)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Paĝŝarĝo (sekundoj)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Nombro da rezultoj" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Poentaroj" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Poentaroj por unu rezulto" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Eraroj" @@ -144,9 +143,15 @@ msgstr "{title} (MALNOVA)" msgid "This entry has been superseded by" msgstr "Tiu ĉi enigo estis anstataŭigita per" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Neniu resumo atingeblas por tiu ĉi eldonaĵo." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI-reverko" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se eblas" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -160,16 +165,6 @@ msgstr "Senfina rulumado" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Aŭtomate ŝarĝi sekvan paĝon rulumante al la subo de la nuna paĝo" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Malfermalira COI-ŝanĝo" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se eblas" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -332,8 +327,8 @@ msgstr "Metodo" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -405,8 +400,8 @@ msgstr " Aktuale uzataj serĉiloj" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -421,8 +416,8 @@ msgstr "Kategorio" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -440,7 +435,7 @@ msgstr "Bloki" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -450,7 +445,7 @@ msgstr "Tiuj ĉi agordoj estas konservitaj en viaj kuketoj, kio ebligas al ni ne #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -460,7 +455,7 @@ msgstr "Tiuj kuketoj estas nur por via plaĉo, ni ne uzas ilin por spuri vin." #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -468,14 +463,14 @@ msgstr "konservi" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Reagordi al defaŭlto" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -646,23 +641,23 @@ msgid "General" msgstr "Ĝenerala" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motoroj" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Aldonaĵoj" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Respondiloj" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Kuketoj" @@ -713,88 +708,78 @@ msgstr "Elekti stilon por ĉi tiu temo" msgid "Style" msgstr "Stilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Malfermalira COI-solvilo" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Direkti al malfermaliraj versioj de eldonaĵoj, se eblas (aldonaĵo necesas)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Fulmoklavo" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Elekti lingvon" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Tempa intervalo" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Mezkvanta tempo" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Maksimuma tempo" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Tio ĉi estas listo de tuje respondantaj moduloj de Searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nomo" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ŝlosilvortoj" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Priskribo" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Ekzemploj" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Ĉi tio estas listo de kuketoj kaj iliaj valoroj, kiujn searx konservas en via komputilo." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Kun tiu listo, vi povas kontroli la travideblecon de searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nomo de kuketo" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valoro" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Serĉo-URL kun aktuale konservitaj agordoj" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo index 358cce8c..c9555635 100644 Binary files a/searx/translations/es/LC_MESSAGES/messages.mo and b/searx/translations/es/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po index 4c276303..ef67c839 100644 --- a/searx/translations/es/LC_MESSAGES/messages.po +++ b/searx/translations/es/LC_MESSAGES/messages.po @@ -11,16 +11,16 @@ # juanda097 , 2017 # Marc Abonce Seguin, 2016 # Marc Abonce Seguin, 2018 -# Oscar , 2015 +# O , 2015 # rivera valdez , 2016 # wefwefew ewfewfewf , 2016 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-02-16 05:29+0000\n" -"Last-Translator: Marc Abonce Seguin\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Carmen Fernández B.\n" "Language-Team: Spanish (http://www.transifex.com/asciimoo/searx/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,63 +41,63 @@ msgstr "solicitud de excepción" msgid "unexpected crash" msgstr "choque inesperado" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "Archivos" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "General" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "Música" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "Medios sociales" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "Imágenes" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "Vídeos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "Informática" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "Noticias" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "Mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "Ciencia" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Parámetros incorrectos, por favor, cambia tus preferencias" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ajustes no válidos" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "error en la búsqueda" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "hace {minutes} minuto(s)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "hace {hours} hora(s) y {minutes} minuto(s)" @@ -117,29 +117,28 @@ msgstr "Funciones de estadística" msgid "Compute {functions} of the arguments" msgstr "Computar {functions} de parámetros" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Motor de tiempo (seg)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Tiempo de carga (segundos)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Número de resultados" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Puntuaciones" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Puntuaciones por resultado" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Errores" @@ -151,9 +150,15 @@ msgstr "{title} (OBSOLETO)" msgid "This entry has been superseded by" msgstr "Esta entrada la ha sustituido" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "No hay resúmenes disponibles para esta publicación." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Cambiar a DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evitar barreras de pago redireccionando a las versiones de acceso libre de las publicaciones cuando estén disponibles" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -167,16 +172,6 @@ msgstr "Deslizamiento infinito" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Cargar automáticamente la siguiente página al deslizarse hasta el final de la página actual" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evitar barreras de pago redireccionando a las versiones de acceso libre de las publicaciones cuando estén disponibles" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -339,8 +334,8 @@ msgstr "Método" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -412,8 +407,8 @@ msgstr "Motores de búsqueda actualmente en uso" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -428,8 +423,8 @@ msgstr "Categoría" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -447,7 +442,7 @@ msgstr "Bloquear" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -457,7 +452,7 @@ msgstr "Esta configuración se guarda en sus cookies, lo que nos permite no alma #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -467,7 +462,7 @@ msgstr "Estas cookies son para su propia comodidad, no las utilizamos para rastr #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -475,14 +470,14 @@ msgstr "Guardar" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Restablecer configuración por defecto" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -653,23 +648,23 @@ msgid "General" msgstr "General" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motores" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plugins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Respondedores" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -720,88 +715,78 @@ msgstr "Elige un estilo para este tema" msgid "Style" msgstr "Estilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redireccionar a versiones de acceso abierto de las publicaciones cuando estén disponibles (se requiere plugin)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Atajo" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Idioma elegido" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Rango de tiempo" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Tiempo promedio" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Tiempo máximo" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Esta es la lista de los módulos de respuesta inmediata de searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nombre" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Plabras clave" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descripción" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Ejemplos" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Esta es la lista de cookies y sus valores que searx está almacenando en tu ordenador." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Con esa lista puedes valorar la transparencia de searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nombre de la cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valor" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Buscar URL de las preferencias guardadas actualmente" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..e0818bc7 Binary files /dev/null and b/searx/translations/et/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/et/LC_MESSAGES/messages.po b/searx/translations/et/LC_MESSAGES/messages.po new file mode 100644 index 00000000..580307ed --- /dev/null +++ b/searx/translations/et/LC_MESSAGES/messages.po @@ -0,0 +1,998 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Madis Otenurm, 2019 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-04-20 20:39+0000\n" +"Last-Translator: Madis Otenurm\n" +"Language-Team: Estonian (http://www.transifex.com/asciimoo/searx/language/et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: searx/search.py:137 searx/search.py:182 +msgid "timeout" +msgstr "ajalõpp" + +#: searx/search.py:144 +msgid "request exception" +msgstr "taotluse viga" + +#: searx/search.py:151 +msgid "unexpected crash" +msgstr "ootamatu krahh" + +#: searx/webapp.py:135 +msgid "files" +msgstr "failid" + +#: searx/webapp.py:136 +msgid "general" +msgstr "üldine" + +#: searx/webapp.py:137 +msgid "music" +msgstr "muusika" + +#: searx/webapp.py:138 +msgid "social media" +msgstr "sotsiaalmeedia" + +#: searx/webapp.py:139 +msgid "images" +msgstr "pildid" + +#: searx/webapp.py:140 +msgid "videos" +msgstr "videod" + +#: searx/webapp.py:141 +msgid "it" +msgstr "infotehnoloogia" + +#: searx/webapp.py:142 +msgid "news" +msgstr "uudised" + +#: searx/webapp.py:143 +msgid "map" +msgstr "kaardid" + +#: searx/webapp.py:144 +msgid "science" +msgstr "teadus" + +#: searx/webapp.py:398 searx/webapp.py:653 +msgid "Invalid settings, please edit your preferences" +msgstr "Sobimatud seaded, palun muuda oma eelistusi" + +#: searx/webapp.py:410 +msgid "Invalid settings" +msgstr "Sobimatud seaded" + +#: searx/webapp.py:444 searx/webapp.py:488 +msgid "search error" +msgstr "otsingu viga" + +#: searx/webapp.py:525 +msgid "{minutes} minute(s) ago" +msgstr "{minutes} minut(it) tagasi" + +#: searx/webapp.py:527 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "{hours} tund(i), {minutes} minut(it) tagasi" + +#: searx/answerers/random/answerer.py:53 +msgid "Random value generator" +msgstr "Juhusliku väärtuse generaator" + +#: searx/answerers/random/answerer.py:54 +msgid "Generate different random values" +msgstr "Genereeri erinevaid juhuslikke väärtusi" + +#: searx/answerers/statistics/answerer.py:53 +msgid "Statistics functions" +msgstr "Statistikafunktsioonid" + +#: searx/answerers/statistics/answerer.py:54 +msgid "Compute {functions} of the arguments" +msgstr "Arvuta argumentide {functions}" + +#: searx/engines/__init__.py:194 +msgid "Engine time (sec)" +msgstr "Mootori aeg (s)" + +#: searx/engines/__init__.py:198 +msgid "Page loads (sec)" +msgstr "Lehe laadimisi (s)" + +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 +#: searx/templates/simple/results.html:20 +msgid "Number of results" +msgstr "Tulemuste arv" + +#: searx/engines/__init__.py:206 +msgid "Scores" +msgstr "Skoorid" + +#: searx/engines/__init__.py:210 +msgid "Scores per result" +msgstr "Skoorid tulemuste kohta" + +#: searx/engines/__init__.py:214 +msgid "Errors" +msgstr "Vead" + +#: searx/engines/pdbe.py:87 +msgid "{title} (OBSOLETE)" +msgstr "{title} (VANANENUD)" + +#: searx/engines/pdbe.py:91 +msgid "This entry has been superseded by" +msgstr "See üksus on asendatud:" + +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI taaskirjutamine" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Väldi maksumüüre, suunates võimalusel väljaannete avatud ligipääsuga versioonidele" + +#: searx/plugins/https_rewrite.py:32 +msgid "Rewrite HTTP links to HTTPS if possible" +msgstr "Kirjuta võimalusel HTTP lingid HTTPSiks" + +#: searx/plugins/infinite_scroll.py:3 +msgid "Infinite scroll" +msgstr "Lõpmatu kerimine" + +#: searx/plugins/infinite_scroll.py:4 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "Laadi lehe lõppu kerimisel järgmine leht automaatselt" + +#: searx/plugins/open_results_on_new_tab.py:18 +#: searx/templates/oscar/preferences.html:114 +#: searx/templates/simple/preferences.html:149 +msgid "Open result links on new browser tabs" +msgstr "Ava tulemuste lingid uutel brauserikaartidel" + +#: searx/plugins/open_results_on_new_tab.py:19 +msgid "" +"Results are opened in the same window by default. This plugin overwrites the" +" default behaviour to open links on new tabs/windows. (JavaScript required)" +msgstr "Tulemused avatakse vaikimisi samas aknas. See plugin kirjutab vaikimisi käitumise üle, et avada lingid uutel kaartidel/akendel. (JavaScript nõutud)" + +#: searx/plugins/search_on_category_select.py:18 +msgid "Search on category select" +msgstr "Otsi kategooria valimisel" + +#: searx/plugins/search_on_category_select.py:19 +msgid "" +"Perform search immediately if a category selected. Disable to select " +"multiple categories. (JavaScript required)" +msgstr "Teosta otsing koheselt, kui kategooria on valitud. Keela mitme kategooria valimiseks. (Nõuab JavaScripti)" + +#: searx/plugins/self_info.py:20 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." +msgstr "Kuvab sinu IP'd, kui päringuks on \"ip\" ning kasutajaagenti, kui päringuks on \"user agent\"." + +#: searx/plugins/tracker_url_remover.py:26 +msgid "Tracker URL remover" +msgstr "Jälitajate eemaldus URList" + +#: searx/plugins/tracker_url_remover.py:27 +msgid "Remove trackers arguments from the returned URL" +msgstr "Eemaldab jälitavad argumendid tagastatud URList" + +#: searx/plugins/vim_hotkeys.py:3 +msgid "Vim-like hotkeys" +msgstr "Vim-sarnased kiirklahvid" + +#: searx/plugins/vim_hotkeys.py:4 +msgid "" +"Navigate search results with Vim-like hotkeys (JavaScript required). Press " +"\"h\" key on main or result page to get help." +msgstr "Navigeeri otsingutulemusi Vim-i sarnaste kiirklahvidega (nõuab JavaScripti). Abi saamiseks vajuta avalehel või tulemuste lehel klahvi \"h\"." + +#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 +#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "Lehte ei leitud" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "Mine %(search_page)s." + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "otsinguleht" + +#: searx/templates/courgette/index.html:9 +#: searx/templates/courgette/index.html:13 +#: searx/templates/courgette/results.html:5 +#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12 +#: searx/templates/oscar/navbar.html:7 +#: searx/templates/oscar/preferences.html:3 +#: searx/templates/pix-art/index.html:8 +msgid "preferences" +msgstr "eelistused" + +#: searx/templates/courgette/index.html:11 +#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2 +#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7 +msgid "about" +msgstr "teave" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/legacy/preferences.html:5 +#: searx/templates/oscar/preferences.html:8 +#: searx/templates/pix-art/preferences.html:5 +#: searx/templates/simple/preferences.html:26 +msgid "Preferences" +msgstr "Eelistused" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/legacy/preferences.html:9 +#: searx/templates/oscar/preferences.html:33 +#: searx/templates/oscar/preferences.html:35 +#: searx/templates/simple/preferences.html:34 +msgid "Default categories" +msgstr "Vaikimisi kategooriad" + +#: searx/templates/courgette/preferences.html:13 +#: searx/templates/legacy/preferences.html:14 +#: searx/templates/oscar/preferences.html:41 +#: searx/templates/pix-art/preferences.html:9 +#: searx/templates/simple/preferences.html:39 +#: searx/templates/simple/preferences.html:163 +msgid "Search language" +msgstr "Otsingukeel" + +#: searx/templates/courgette/preferences.html:16 +#: searx/templates/legacy/preferences.html:17 +#: searx/templates/oscar/languages.html:6 +#: searx/templates/pix-art/preferences.html:12 +#: searx/templates/simple/languages.html:2 +#: searx/templates/simple/preferences.html:42 +msgid "Default language" +msgstr "Vaikimisi keel" + +#: searx/templates/courgette/preferences.html:24 +#: searx/templates/legacy/preferences.html:25 +#: searx/templates/oscar/preferences.html:47 +#: searx/templates/pix-art/preferences.html:20 +#: searx/templates/simple/preferences.html:120 +msgid "Interface language" +msgstr "Liidese keel" + +#: searx/templates/courgette/preferences.html:34 +#: searx/templates/legacy/preferences.html:35 +#: searx/templates/oscar/preferences.html:57 +#: searx/templates/simple/preferences.html:51 +msgid "Autocomplete" +msgstr "Automaattäide" + +#: searx/templates/courgette/preferences.html:45 +#: searx/templates/legacy/preferences.html:46 +#: searx/templates/oscar/preferences.html:68 +#: searx/templates/simple/preferences.html:166 +msgid "Image proxy" +msgstr "Pildiproksi" + +#: searx/templates/courgette/preferences.html:48 +#: searx/templates/legacy/preferences.html:49 +#: searx/templates/oscar/preferences.html:72 +#: searx/templates/simple/preferences.html:169 +msgid "Enabled" +msgstr "Lubatud" + +#: searx/templates/courgette/preferences.html:49 +#: searx/templates/legacy/preferences.html:50 +#: searx/templates/oscar/preferences.html:73 +#: searx/templates/simple/preferences.html:170 +msgid "Disabled" +msgstr "Keelatud" + +#: searx/templates/courgette/preferences.html:54 +#: searx/templates/legacy/preferences.html:55 +#: searx/templates/oscar/preferences.html:77 +#: searx/templates/pix-art/preferences.html:30 +#: searx/templates/simple/preferences.html:156 +msgid "Method" +msgstr "Meetod" + +#: searx/templates/courgette/preferences.html:63 +#: searx/templates/legacy/preferences.html:64 +#: searx/templates/oscar/preferences.html:86 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 +#: searx/templates/simple/preferences.html:63 +#: searx/templates/simple/preferences.html:90 +msgid "SafeSearch" +msgstr "SafeSearch" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/legacy/preferences.html:67 +#: searx/templates/oscar/preferences.html:90 +#: searx/templates/simple/preferences.html:66 +msgid "Strict" +msgstr "Range" + +#: searx/templates/courgette/preferences.html:67 +#: searx/templates/legacy/preferences.html:68 +#: searx/templates/oscar/preferences.html:91 +#: searx/templates/simple/preferences.html:67 +msgid "Moderate" +msgstr "Mõõdukas" + +#: searx/templates/courgette/preferences.html:68 +#: searx/templates/legacy/preferences.html:69 +#: searx/templates/oscar/preferences.html:92 +#: searx/templates/simple/preferences.html:68 +msgid "None" +msgstr "Puudub" + +#: searx/templates/courgette/preferences.html:73 +#: searx/templates/legacy/preferences.html:74 +#: searx/templates/oscar/preferences.html:96 +#: searx/templates/pix-art/preferences.html:39 +#: searx/templates/simple/preferences.html:131 +msgid "Themes" +msgstr "Teemad" + +#: searx/templates/courgette/preferences.html:83 +msgid "Color" +msgstr "Värv" + +#: searx/templates/courgette/preferences.html:86 +msgid "Blue (default)" +msgstr "Sinine (vaikimisi)" + +#: searx/templates/courgette/preferences.html:87 +msgid "Violet" +msgstr "Violetne" + +#: searx/templates/courgette/preferences.html:88 +msgid "Green" +msgstr "Roheline" + +#: searx/templates/courgette/preferences.html:89 +msgid "Cyan" +msgstr "Erksinine" + +#: searx/templates/courgette/preferences.html:90 +msgid "Orange" +msgstr "Oranž" + +#: searx/templates/courgette/preferences.html:91 +msgid "Red" +msgstr "Punane" + +#: searx/templates/courgette/preferences.html:96 +#: searx/templates/legacy/preferences.html:93 +#: searx/templates/pix-art/preferences.html:49 +#: searx/templates/simple/preferences.html:77 +msgid "Currently used search engines" +msgstr "Hetkel kasutatud otsingumootorid" + +#: searx/templates/courgette/preferences.html:100 +#: searx/templates/legacy/preferences.html:97 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 +#: searx/templates/pix-art/preferences.html:53 +#: searx/templates/simple/preferences.html:87 +msgid "Engine name" +msgstr "Mootori nimi" + +#: searx/templates/courgette/preferences.html:101 +#: searx/templates/legacy/preferences.html:98 +msgid "Category" +msgstr "Kategooria" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:113 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:110 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:64 +#: searx/templates/simple/preferences.html:86 +msgid "Allow" +msgstr "Luba" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:114 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:111 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:65 +msgid "Block" +msgstr "Keela" + +#: searx/templates/courgette/preferences.html:122 +#: searx/templates/legacy/preferences.html:119 +#: searx/templates/oscar/preferences.html:285 +#: searx/templates/pix-art/preferences.html:73 +#: searx/templates/simple/preferences.html:180 +msgid "" +"These settings are stored in your cookies, this allows us not to store this " +"data about you." +msgstr "Need seaded salvestatakse sinu küpsistes, see lubab meil sinu kohta andmeid mitte salvestada." + +#: searx/templates/courgette/preferences.html:124 +#: searx/templates/legacy/preferences.html:121 +#: searx/templates/oscar/preferences.html:287 +#: searx/templates/pix-art/preferences.html:75 +#: searx/templates/simple/preferences.html:182 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "Need küpsised on vaid mugavuse tarbeks, me ei kasuta neid sinu jälitamiseks." + +#: searx/templates/courgette/preferences.html:127 +#: searx/templates/legacy/preferences.html:124 +#: searx/templates/oscar/preferences.html:293 +#: searx/templates/pix-art/preferences.html:78 +#: searx/templates/simple/preferences.html:185 +msgid "save" +msgstr "salvesta" + +#: searx/templates/courgette/preferences.html:128 +#: searx/templates/legacy/preferences.html:125 +#: searx/templates/oscar/preferences.html:295 +#: searx/templates/simple/preferences.html:186 +msgid "Reset defaults" +msgstr "Lähtesta vaikeseaded" + +#: searx/templates/courgette/preferences.html:129 +#: searx/templates/legacy/preferences.html:126 +#: searx/templates/oscar/preferences.html:294 +#: searx/templates/pix-art/preferences.html:79 +#: searx/templates/simple/preferences.html:187 +msgid "back" +msgstr "tagasi" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/legacy/results.html:13 +#: searx/templates/oscar/results.html:136 +#: searx/templates/simple/results.html:58 +msgid "Search URL" +msgstr "Otsingu URL" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/legacy/results.html:17 +#: searx/templates/oscar/results.html:141 +#: searx/templates/simple/results.html:62 +msgid "Download results" +msgstr "Laadi tulemused alla" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/legacy/results.html:35 +#: searx/templates/simple/results.html:10 +msgid "Answers" +msgstr "Vastused" + +#: searx/templates/courgette/results.html:42 +#: searx/templates/legacy/results.html:43 +#: searx/templates/oscar/results.html:116 +#: searx/templates/simple/results.html:42 +msgid "Suggestions" +msgstr "Soovitused" + +#: searx/templates/courgette/results.html:70 +#: searx/templates/legacy/results.html:81 +#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78 +#: searx/templates/simple/results.html:130 +msgid "previous page" +msgstr "eelmine leht" + +#: searx/templates/courgette/results.html:81 +#: searx/templates/legacy/results.html:92 +#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84 +#: searx/templates/simple/results.html:145 +msgid "next page" +msgstr "järgmine leht" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6 +#: searx/templates/oscar/search_full.html:9 +#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4 +msgid "Search for..." +msgstr "Otsi..." + +#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4 +#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4 +#: searx/templates/simple/stats.html:7 +msgid "Engine stats" +msgstr "Mootori statistika" + +#: searx/templates/courgette/result_templates/images.html:4 +#: searx/templates/legacy/result_templates/images.html:4 +#: searx/templates/pix-art/result_templates/images.html:4 +msgid "original context" +msgstr "originaalne kontekst" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "Seemendaja" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "Kaanija" + +#: searx/templates/courgette/result_templates/torrent.html:9 +#: searx/templates/legacy/result_templates/torrent.html:9 +#: searx/templates/oscar/macros.html:23 +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "magnetlink" + +#: searx/templates/courgette/result_templates/torrent.html:10 +#: searx/templates/legacy/result_templates/torrent.html:10 +#: searx/templates/oscar/macros.html:24 +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "torrentifail" + +#: searx/templates/legacy/categories.html:8 +#: searx/templates/simple/categories.html:6 +msgid "Click on the magnifier to perform search" +msgstr "Klõpsa luubile otsingu teostamiseks" + +#: searx/templates/legacy/preferences.html:84 +#: searx/templates/oscar/preferences.html:113 +#: searx/templates/simple/preferences.html:142 +msgid "Results on new tabs" +msgstr "Tulemused uutel kaartidel" + +#: searx/templates/legacy/preferences.html:87 +#: searx/templates/oscar/preferences.html:117 +#: searx/templates/simple/preferences.html:145 +msgid "On" +msgstr "Sees" + +#: searx/templates/legacy/preferences.html:88 +#: searx/templates/oscar/preferences.html:118 +#: searx/templates/simple/preferences.html:146 +msgid "Off" +msgstr "Väljas" + +#: searx/templates/legacy/result_templates/code.html:3 +#: searx/templates/legacy/result_templates/default.html:3 +#: searx/templates/legacy/result_templates/map.html:9 +#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48 +#: searx/templates/simple/macros.html:43 +msgid "cached" +msgstr "vahemälus" + +#: searx/templates/oscar/advanced.html:4 +msgid "Advanced settings" +msgstr "Täpsemad seaded" + +#: searx/templates/oscar/base.html:62 +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "Sulge" + +#: searx/templates/oscar/base.html:64 +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +#: searx/templates/simple/results.html:25 +msgid "Error!" +msgstr "Viga!" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "Powered by" +msgstr "Põhineb" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "privaatsust austaval, häkitaval metaotsingu mootoril" + +#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50 +#: searx/templates/simple/macros.html:43 +msgid "proxied" +msgstr "proksitud" + +#: searx/templates/oscar/macros.html:92 +msgid "supported" +msgstr "toetatud" + +#: searx/templates/oscar/macros.html:96 +msgid "not supported" +msgstr "mittetoetatud" + +#: searx/templates/oscar/preferences.html:13 +#: searx/templates/oscar/preferences.html:22 +#: searx/templates/simple/preferences.html:32 +msgid "General" +msgstr "Üldine" + +#: searx/templates/oscar/preferences.html:14 +#: searx/templates/oscar/preferences.html:134 +#: searx/templates/simple/preferences.html:76 +msgid "Engines" +msgstr "Mootorid" + +#: searx/templates/oscar/preferences.html:15 +#: searx/templates/oscar/preferences.html:207 +msgid "Plugins" +msgstr "Pluginad" + +#: searx/templates/oscar/preferences.html:16 +#: searx/templates/oscar/preferences.html:233 +msgid "Answerers" +msgstr "Vastajad" + +#: searx/templates/oscar/preferences.html:17 +#: searx/templates/oscar/preferences.html:260 +msgid "Cookies" +msgstr "Küpsised" + +#: searx/templates/oscar/preferences.html:42 +#: searx/templates/simple/preferences.html:48 +msgid "What language do you prefer for search?" +msgstr "Mis keelt sa otsinguks eelistad?" + +#: searx/templates/oscar/preferences.html:48 +#: searx/templates/simple/preferences.html:128 +msgid "Change the language of the layout" +msgstr "Muuda paigutuse keelt" + +#: searx/templates/oscar/preferences.html:58 +#: searx/templates/simple/preferences.html:60 +msgid "Find stuff as you type" +msgstr "Otsi asju kirjutamise ajal" + +#: searx/templates/oscar/preferences.html:69 +#: searx/templates/simple/preferences.html:173 +msgid "Proxying image results through searx" +msgstr "Proksin pilditulemusi läbi searx-i" + +#: searx/templates/oscar/preferences.html:78 +msgid "" +"Change how forms are submited, learn more about request methods" +msgstr "Muuda viisi, kuidas väljad edastatakse, loe taotlusmeetodite kohta lisaks" + +#: searx/templates/oscar/preferences.html:87 +#: searx/templates/simple/preferences.html:71 +msgid "Filter content" +msgstr "Filtreeri sisu" + +#: searx/templates/oscar/preferences.html:97 +#: searx/templates/simple/preferences.html:139 +msgid "Change searx layout" +msgstr "Muuda searx-i paigutust" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Choose style for this theme" +msgstr "Vali sellele teemale stii" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Style" +msgstr "Stii" + +#: searx/templates/oscar/preferences.html:151 +#: searx/templates/oscar/preferences.html:163 +#: searx/templates/simple/preferences.html:88 +msgid "Shortcut" +msgstr "Otsetee" + +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 +msgid "Selected language" +msgstr "Valitud keel" + +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 +#: searx/templates/simple/preferences.html:91 +msgid "Time range" +msgstr "Ajavahemik" + +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 +#: searx/templates/simple/preferences.html:92 +msgid "Avg. time" +msgstr "Keskmine aeg" + +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 +#: searx/templates/simple/preferences.html:93 +msgid "Max time" +msgstr "Maksimaalne aeg" + +#: searx/templates/oscar/preferences.html:236 +msgid "This is the list of searx's instant answering modules." +msgstr "See on searx-i koheste vastajate moodulite nimekiri." + +#: searx/templates/oscar/preferences.html:240 +msgid "Name" +msgstr "Nimi" + +#: searx/templates/oscar/preferences.html:241 +msgid "Keywords" +msgstr "Märksõnad" + +#: searx/templates/oscar/preferences.html:242 +msgid "Description" +msgstr "Kirjeldus" + +#: searx/templates/oscar/preferences.html:243 +msgid "Examples" +msgstr "Näited" + +#: searx/templates/oscar/preferences.html:263 +msgid "" +"This is the list of cookies and their values searx is storing on your " +"computer." +msgstr "See on küpsiste ja nende väärtuste nimekiri, mida searx hoiab sinu arvutis." + +#: searx/templates/oscar/preferences.html:264 +msgid "With that list, you can assess searx transparency." +msgstr "Selle nimekirjaga saad sa hinnata searx-i läbipaistvust." + +#: searx/templates/oscar/preferences.html:269 +msgid "Cookie name" +msgstr "Küpsise nimi" + +#: searx/templates/oscar/preferences.html:270 +msgid "Value" +msgstr "Väärtus" + +#: searx/templates/oscar/preferences.html:289 +msgid "Search URL of the currently saved preferences" +msgstr "Otsingu URL hetkel salvestatud eelistuste kohta" + +#: searx/templates/oscar/preferences.html:289 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." +msgstr "Märkus: täpsemate seadete määramine otsingu URLis võib vähendada privaatsust, lekitades andmed klõpsatud tulemuste saitidele." + +#: searx/templates/oscar/results.html:17 +msgid "Search results" +msgstr "Otsingutulemused" + +#: searx/templates/oscar/results.html:21 +#: searx/templates/simple/results.html:84 +msgid "Try searching for:" +msgstr "Proovi otsida:" + +#: searx/templates/oscar/results.html:100 +#: searx/templates/simple/results.html:25 +msgid "Engines cannot retrieve results" +msgstr "Mootorid ei saa tulemusi tagastada" + +#: searx/templates/oscar/results.html:131 +msgid "Links" +msgstr "Lingid" + +#: searx/templates/oscar/search.html:8 +#: searx/templates/oscar/search_full.html:11 +#: searx/templates/simple/search.html:5 +msgid "Start search" +msgstr "Alusta otsingut" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "statistika" + +#: searx/templates/oscar/time-range.html:3 +#: searx/templates/simple/time-range.html:3 +msgid "Anytime" +msgstr "Igal ajal" + +#: searx/templates/oscar/time-range.html:6 +#: searx/templates/simple/time-range.html:6 +msgid "Last day" +msgstr "Viimane päev" + +#: searx/templates/oscar/time-range.html:9 +#: searx/templates/simple/time-range.html:9 +msgid "Last week" +msgstr "Viimane nädal" + +#: searx/templates/oscar/time-range.html:12 +#: searx/templates/simple/time-range.html:12 +msgid "Last month" +msgstr "Viimane kuu" + +#: searx/templates/oscar/time-range.html:15 +#: searx/templates/simple/time-range.html:15 +msgid "Last year" +msgstr "Viimane aasta" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "Tähelepanu!" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "Tundub, et kasutad searx-i esimest korda." + +#: searx/templates/oscar/messages/no_cookies.html:3 +msgid "Information!" +msgstr "Teave!" + +#: searx/templates/oscar/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "hetkel pole ühtegi küpsist määratud." + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "Hetkel andmed puuduvad." + +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +msgid "Engines cannot retrieve results." +msgstr "Mootorid ei saa tulemusi tagastada." + +#: searx/templates/oscar/messages/no_results.html:10 +#: searx/templates/simple/messages/no_results.html:10 +msgid "Please, try again later or find another searx instance." +msgstr "Palun proovi hiljem uuesti või leia teine searx-i eksemplar." + +#: searx/templates/oscar/messages/no_results.html:14 +#: searx/templates/simple/messages/no_results.html:14 +msgid "Sorry!" +msgstr "Vabandust!" + +#: searx/templates/oscar/messages/no_results.html:15 +#: searx/templates/simple/messages/no_results.html:15 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "me ei leidnud ühtegi tulemust. Palun kasuta teist päringut või otsi rohkematest kategooriatest." + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "Hästi tehtud!" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "Seaded edukalt salvestatud." + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "Oh kurja!" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "Midagi läks valesti." + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "show media" +msgstr "kuva meedia" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "hide media" +msgstr "peida meedia" + +#: searx/templates/oscar/result_templates/images.html:30 +msgid "Get image" +msgstr "Hangi pilt" + +#: searx/templates/oscar/result_templates/images.html:33 +msgid "View source" +msgstr "Vaata allikat" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "show map" +msgstr "kuva kaart" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "hide map" +msgstr "peida kaart" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "show details" +msgstr "kuva andmeid" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "hide details" +msgstr "peida andmed" + +#: searx/templates/oscar/result_templates/torrent.html:7 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "Failisuurus" + +#: searx/templates/oscar/result_templates/torrent.html:9 +#: searx/templates/simple/result_templates/torrent.html:12 +msgid "Bytes" +msgstr "Baite" + +#: searx/templates/oscar/result_templates/torrent.html:10 +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "kiB" +msgstr "kiB" + +#: searx/templates/oscar/result_templates/torrent.html:11 +#: searx/templates/simple/result_templates/torrent.html:14 +msgid "MiB" +msgstr "MiB" + +#: searx/templates/oscar/result_templates/torrent.html:12 +#: searx/templates/simple/result_templates/torrent.html:15 +msgid "GiB" +msgstr "GiB" + +#: searx/templates/oscar/result_templates/torrent.html:13 +#: searx/templates/simple/result_templates/torrent.html:16 +msgid "TiB" +msgstr "TiB" + +#: searx/templates/oscar/result_templates/torrent.html:15 +#: searx/templates/simple/result_templates/torrent.html:20 +msgid "Number of Files" +msgstr "Failide arv" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "kuva video" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "peida video" + +#: searx/templates/pix-art/results.html:28 +msgid "Load more..." +msgstr "Laadi juurde..." + +#: searx/templates/simple/base.html:31 +msgid "No item found" +msgstr "Üksust ei leitud" + +#: searx/templates/simple/preferences.html:89 +msgid "Supports selected language" +msgstr "Toetab valitud keelt" + +#: searx/templates/simple/preferences.html:118 +msgid "User interface" +msgstr "Kasutajaliides" + +#: searx/templates/simple/preferences.html:154 +msgid "Privacy" +msgstr "Privaatsus" diff --git a/searx/translations/eu/LC_MESSAGES/messages.mo b/searx/translations/eu/LC_MESSAGES/messages.mo index db58fdc8..0c66d026 100644 Binary files a/searx/translations/eu/LC_MESSAGES/messages.mo and b/searx/translations/eu/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/eu/LC_MESSAGES/messages.po b/searx/translations/eu/LC_MESSAGES/messages.po index b6fa194e..c47634df 100644 --- a/searx/translations/eu/LC_MESSAGES/messages.po +++ b/searx/translations/eu/LC_MESSAGES/messages.po @@ -3,16 +3,16 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# beriain , 2018 -# beriain , 2018 +# beriain, 2018 +# beriain, 2018-2019 # Txopi , 2016 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-11-06 16:39+0000\n" -"Last-Translator: beriain \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-26 15:18+0000\n" +"Last-Translator: beriain\n" "Language-Team: Basque (http://www.transifex.com/asciimoo/searx/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,63 +33,63 @@ msgstr "salbuespena eskaeran" msgid "unexpected crash" msgstr "ustekabeko gelditzea" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "fitxategiak" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "orokorra" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musika" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" -msgstr "multimedia soziala" +msgstr "media soziala" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "irudiak" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "bideoak" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" -msgstr "it" +msgstr "informatika" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "berriak" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "zientzia" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ezarpen ez baliodunak, mesedez editatu zure hobespenak" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ezarpen ez baliodunak" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "bilaketa akatsa" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "duela {minutes} minutu" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "duela {hours} ordu eta {minutes} minutu" @@ -109,29 +109,28 @@ msgstr "Funtzio estatistikoak" msgid "Compute {functions} of the arguments" msgstr "Parametroen {functions} zenbatu" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Bilatzailearen denbora (seg)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Orri kargak (seg)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Emaitza kopurua" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Balorazioak" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Balorazioak emaitza bakoitzeko" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Erroreak" @@ -143,9 +142,15 @@ msgstr "{title} (ZAHARKITUA)" msgid "This entry has been superseded by" msgstr "Sarrera hau hurrengoarekin ordezkatu da" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Ez dago abstrakturik eskuragarri argitalpen honetarako." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI berridazketa" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Ordainketa hormak sahiestu argitalpenen sartze-askeko bertsioetara berbidaliz ahal denean" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +164,6 @@ msgstr "Korritze amaigabea" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Hurrengo orria automatikoki kargatu uneko orriaren behekaldera mugitzerakoan" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Berridatzi Open Access DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Ordainketa hormak sahiestu argitalpenen sartze-askeko bertsioetara berbidaliz ahal denean" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +326,8 @@ msgstr "Metodoa" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +399,8 @@ msgstr "Erabiliak izaten ari diren bilatzaileak" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +415,8 @@ msgstr "Kategoria" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,17 +434,17 @@ msgstr "Blokeatu" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" "These settings are stored in your cookies, this allows us not to store this " "data about you." -msgstr "Ezarpen hauek zure cookietan gurdetzen dira, honek zuri buruzko informaziorik ez gordetzea baimentzen digu." +msgstr "Ezarpen hauek zure cookietan gordetzen dira, honek zuri buruzko informaziorik ez gordetzea baimentzen digu." #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +454,7 @@ msgstr "Cookie hauek zure onurarako besterik ez dira, ez ditugu zure jarraipenik #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +462,14 @@ msgstr "gorde" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Berrezarri lehenetsiak" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +640,23 @@ msgid "General" msgstr "Orokorra" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Bilatzaileak" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Pluginak" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Erantzun emaileak" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookieak" @@ -683,7 +678,7 @@ msgstr "Gauzak aurkitu idatzi bitartean" #: searx/templates/oscar/preferences.html:69 #: searx/templates/simple/preferences.html:173 msgid "Proxying image results through searx" -msgstr "Irudien emaitzak searx bitartez proxyatu" +msgstr "Irudien emaitzak searx proxyaren bidez pasatu" #: searx/templates/oscar/preferences.html:78 msgid "" @@ -712,88 +707,78 @@ msgstr "Gai honetarako estiloa hautatu" msgid "Style" msgstr "Estiloa" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI ebatzi" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Argitalpenen sartze-askeko bertsioetara berbidali ahal denean (plugina behar du)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Lasterbidea" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Hautatutako hizkuntza" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Denbora tartea" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr " Batezbesteko denbora" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Gehienezko denbora" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Hau da searxen berehalako erantzunen moduluen zerrenda." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Izena" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Gako-hitzak" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Deskripzioa" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Adibideak" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Hau searxek zure ordenagailuan gordetzen ari den cookien eta haien balioen zerrenda bat da." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Zerrenda horrekin, searxen gardentasuna balioztatu dezakezu." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookiearen izena" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Balioa" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Une honetan gordetako hobespenen bilaketa URLa" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.mo b/searx/translations/fa_IR/LC_MESSAGES/messages.mo index 4ef71416..a2f50338 100644 Binary files a/searx/translations/fa_IR/LC_MESSAGES/messages.mo and b/searx/translations/fa_IR/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.po b/searx/translations/fa_IR/LC_MESSAGES/messages.po index 0e568e1d..6689dafe 100644 --- a/searx/translations/fa_IR/LC_MESSAGES/messages.po +++ b/searx/translations/fa_IR/LC_MESSAGES/messages.po @@ -4,15 +4,17 @@ # # Translators: # Aurora, 2018 +# Aurora, 2018 # Jim , 2017 -# Mostafa Ahangarha , 2018 +# Jim , 2017 +# Mostafa Ahangarha , 2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-04-16 16:41+0000\n" -"Last-Translator: Aurora\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Persian (Iran) (http://www.transifex.com/asciimoo/searx/language/fa_IR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,63 +35,63 @@ msgstr "خطا در درخواست" msgid "unexpected crash" msgstr "ایست ناگهانی" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "فایل ها
" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "فراگیر" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "موسیقی" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "رسانه اجتماعی" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "تصاویر
" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "ویدیو ها
" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "فناوری اطلاعات" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "اخبار" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "نقشه" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "دانش
" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "تنظیمات نادرست است، لطفا اولویت‌های جستجو را تغییر دهید" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "تنظیمات اشتباه" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "خطای جستجو" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} دقیقه پیش" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} ساعت و {minutes} دقیقه پیش" @@ -109,29 +111,28 @@ msgstr "توابع آماری" msgid "Compute {functions} of the arguments" msgstr "پردازش {عملکرد های} نشانوند ها
" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "زمان موتور(ثانیه)
" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "زمان بارگذاری صفحه (ثانیه)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "تعداد نتایج" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "امتیازات
" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "امتیازات بر نتیجه
" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "خطاها" @@ -143,9 +144,15 @@ msgstr "{title} (OBSOLETE)" msgid "This entry has been superseded by" msgstr "این ورودی معلق شده است توسط" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "هیچ چکید ای برای این نشریه در دسترس نیست.
" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "امتناع از منابع غیر رایگان با تغییر مسیر به نسخه ی رایگان نشریات اگر در دسترس باشد
" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +166,6 @@ msgstr "پایین رفتن بی‌پایان" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "بارگذاری خودکار صفحه بعد در صورت پیمایش تا پایین صفحه کنونی" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "بازنویسی Open Access DOI
" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "امتناع از منابع غیر رایگان با تغییر مسیر به نسخه ی رایگان نشریات اگر در دسترس باشد
" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +328,8 @@ msgstr "روش
" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +401,8 @@ msgstr "موتورهای جستجوی در حال استفاده" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +417,8 @@ msgstr "دسته" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +436,7 @@ msgstr "انسداد
" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +446,7 @@ msgstr "این تنظیمات در کوکی های شما ذخیره شده ان #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +456,7 @@ msgstr "این کوکی ها برای راحتی شماست، ما از این #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +464,14 @@ msgstr "ذخیره" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "بازنشانی پیشفرض ها
" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +642,23 @@ msgid "General" msgstr "کلی
" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "موتور ها
" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "افزونه ها" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "پاسخگو ها
" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "کوکی ها
" @@ -712,88 +709,78 @@ msgstr "سبک این پوسته را انتخاب کنید" msgid "Style" msgstr "سبک" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "حل کننده ی Open Access DOI
" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "هدایت به نسخه رایگان نشریات اگر در دسترس باشد(نیازمند به افزونه)
" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "میانبر
" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "زبان انتخابی
" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "بازه ی زمانی
" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "زمان میانگین" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "حداکثر زمان" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "این، فهرست ماژول‌های پاسخ بلادرنگ searx است." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "نام" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "کلیدواژه ها
" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "شرح
" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "مثال ها
" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "این، لیست کوکی‌ها و مقادیری است که searx روی دستگاه شما ذخیره می‌کند." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "با آن لیست، می‌توانید شفافیت searx را ارزیابی کنید." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "نام کوکی
" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "مقدار
" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "آدرس جستجو بر اساس تنظیمات ذخیره شده
" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/fi/LC_MESSAGES/messages.mo b/searx/translations/fi/LC_MESSAGES/messages.mo index b3905ca2..90cd78d9 100644 Binary files a/searx/translations/fi/LC_MESSAGES/messages.mo and b/searx/translations/fi/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/fi/LC_MESSAGES/messages.po b/searx/translations/fi/LC_MESSAGES/messages.po index dbec358d..57b3e431 100644 --- a/searx/translations/fi/LC_MESSAGES/messages.po +++ b/searx/translations/fi/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-13 07:36+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (http://www.transifex.com/asciimoo/searx/language/fi/)\n" "MIME-Version: 1.0\n" @@ -31,63 +31,63 @@ msgstr "pyyntöpoikkeus" msgid "unexpected crash" msgstr "odottamaton kaatuminen" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "tiedostot" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "yleiset" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musiikki" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sosiaalinen media" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "kuvat" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videot" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "uutiset" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "kartta" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "tiede" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Virheelliset asetukset, muokkaa siis asetuksia" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Virheelliset asetukset" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "hakuvirhe" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} min sitten" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} t, {minutes} min sitten" @@ -107,29 +107,28 @@ msgstr "Tilastolliset funktiot" msgid "Compute {functions} of the arguments" msgstr "Laske argumenttien {functions}" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Hakukoneen aika (s)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Sivun lataus (s)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Tulosten määrä" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Pisteet" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Pisteet per tulos" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Virheet" @@ -141,9 +140,15 @@ msgstr "{title} (VANHENTUNUT)" msgid "This entry has been superseded by" msgstr "Tämän kohdan on korvannut" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Tästä julkaisusta ei ole yhteenvetoa." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI-uudelleenkirjoitus" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos mahdollista" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Loputon vieritys" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Lataa automaattisesti seuraava sivu, kun nykyisen sivun loppu saavutetaan" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI -uudelleenkirjoitus" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos mahdollista" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Tapa" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Nyt käytetyt hakukoneet" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Luokka" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Estä" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Nämä asetukset tallennetaan evästeisiisi. Näin Searxin ei tarvitse t #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Kyseiset evästeet palvelevat ainoastaan sinua, eikä niitä käytetä s #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "Tallenna" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Palauta oletukset" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Yleiset" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Hakukoneet" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Lisäosat" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Vastaajat" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Evästeet" @@ -710,88 +705,78 @@ msgstr "Valitse tyyli tälle teemalle" msgid "Style" msgstr "Tyyli" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI -selvitin" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Uudelleenohjaa julkaisujen open-access-versioihin kun mahdollista (vaatii liitännäisen)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Oikoreitti" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Valittu kieli" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Aikaväli" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Keskimääräinen\naika" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Enimmäisaika" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Tämä on luettelo searxin vastaajamoduuleista." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nimi" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Avainsanat" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Kuvaus" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Esimerkit" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Ohessa on lista evästeistä ja niiden arvoista, joita searx tallentaa tietokoneellesi." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Tämän luettelon avulla voit arvioida searxin läpinäkyvyyden." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Evästeen nimi" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Arvo" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Nykyisten asetusten hakuosoite" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/fil/LC_MESSAGES/messages.mo b/searx/translations/fil/LC_MESSAGES/messages.mo index f1b4e75c..95851f77 100644 Binary files a/searx/translations/fil/LC_MESSAGES/messages.mo and b/searx/translations/fil/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/fil/LC_MESSAGES/messages.po b/searx/translations/fil/LC_MESSAGES/messages.po index 46006196..ca50d582 100644 --- a/searx/translations/fil/LC_MESSAGES/messages.po +++ b/searx/translations/fil/LC_MESSAGES/messages.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-02-18 04:45+0000\n" -"Last-Translator: gr01d\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Filipino (http://www.transifex.com/asciimoo/searx/language/fil/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +32,63 @@ msgstr "request exception" msgid "unexpected crash" msgstr "hindi inaasahan na crash" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "file" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "pangkalahatan" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musika" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "social media" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "larawan" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "bidyo" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "balita" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "agham" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Maling settings, paki ayos ang preferences" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Maling settings" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "nagkaproblema sa paghahanap" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} na minuto ang nakalipas" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} oras at {minutes} na minto ang nakalipas" @@ -108,29 +108,28 @@ msgstr "Estatistika ng mga tungkulin" msgid "Compute {functions} of the arguments" msgstr "Tuusin ang {functions} ng pangangatuwiran" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Oras ng engine (segundo)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Oras ng pagkarga ng pahina (segundo)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Bilang ng resulta" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Iskor" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Iskor ng bawat resulta" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Kamalian" @@ -142,9 +141,15 @@ msgstr "{title} (LUMA)" msgid "This entry has been superseded by" msgstr "Ang tala na ito ay ipinagpaliban ng" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Walang nakita na abstract para sa pahahayag na ito." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng pahahayagan kapagmakukuha" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -158,16 +163,6 @@ msgstr "Walang hanggan na pag-scroll" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Awtomatiko na ikarga ang sumunod na pahina kapag nakarating na sa dulo ng kasalukuyang pahina" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI rewrite" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng pahahayagan kapagmakukuha" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +325,8 @@ msgstr "Paraan" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +398,8 @@ msgstr "Ang ginagamit natin na search engines" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +414,8 @@ msgstr "Uri" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +433,7 @@ msgstr "Harangan" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +443,7 @@ msgstr "Ang settings ay nakalagay sa cookies upang hindi kami makakuha ng datos #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +453,7 @@ msgstr "Hindi namin ginagamit ang cookies para i-track ka, ito ay para maging ma #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +461,14 @@ msgstr "i-save" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "I-reset ang defaults" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +639,23 @@ msgid "General" msgstr "Pangkalahatan" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Engines" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plugins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Mga pangsagot" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -711,88 +706,78 @@ msgstr "Pumili ng estilo para sa tema na ito" msgid "Style" msgstr "Estilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI resolver" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redirect to open-access versions of publications when available (plugin required)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Shortcut" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Piniling wika" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Agwat ng oras" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Gitnang oras" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Ang max na oras" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Ito ang listahan ng instant answering modules ni searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Pangalan" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Mga keyword" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Paglalarawan" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Mga halimbawa" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Ito ang listahan ng cookies at ang kanilang value na inilagay ni searx sa iyon kompyuter." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Dahil sa listahan na iyon, maaari mong makita ang pagiging transparent ni searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Pangalan ng cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Value" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Search URL ng kasalukuyan na naka-save sa preferences" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo index 7fd3ee89..51d1006e 100644 Binary files a/searx/translations/fr/LC_MESSAGES/messages.mo and b/searx/translations/fr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po index 4c076ddb..4d57cad7 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.po +++ b/searx/translations/fr/LC_MESSAGES/messages.po @@ -7,6 +7,7 @@ # Benjamin Sonntag , 2014 # Cqoicebordel , 2014 # Cqoicebordel , 2014-2017 +# Étienne Deparis , 2019 # FIRST AUTHOR , 2014 # Noémi Ványi , 2017 # rike, 2014 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-04-03 08:18+0000\n" -"Last-Translator: Alexandre Flament \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 18:27+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: French (http://www.transifex.com/asciimoo/searx/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,63 +39,63 @@ msgstr "erreur de requête" msgid "unexpected crash" msgstr "crash inattendu" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "fichiers" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "général" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musique" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "réseaux sociaux" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "images" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "vidéos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "informatique" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "actualités" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "carte" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "science" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Paramètres non valides, veuillez éditer vos préférences" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Paramètres non valides" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "erreur de recherche" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "il y a {minutes} minute(s)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "il y a {hours} heure(s), {minutes} minute(s)" @@ -114,29 +115,28 @@ msgstr "Fonctions statistiques" msgid "Compute {functions} of the arguments" msgstr "Calcule les {functions} des arguments" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Temps du moteur (sec)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Chargement de la page (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Nombre de résultats" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Score" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Score par résultat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Erreur" @@ -148,9 +148,15 @@ msgstr "{titre} (OBSOLETE)" msgid "This entry has been superseded by" msgstr "Cet item a été remplacé par" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Pas de résumé disponible pour cette publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Utiliser DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Contourne les verrous payants de certaines publications scientifiques en redirigeant vers la version ouverte de ces papiers si elle est disponible." #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -164,16 +170,6 @@ msgstr "Défilement infini" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Charge automatiquement la page suivante quand vous arriver en bas de la page" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Utiliser Open Access DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Contourne les verrous payants de certaines publications scientifiques en redirigeant vers la version ouverte de ces papiers si elle est disponible." - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -336,8 +332,8 @@ msgstr "Méthode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -409,8 +405,8 @@ msgstr "Moteurs de recherche actuellement utilisés" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -425,8 +421,8 @@ msgstr "Catégorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -444,7 +440,7 @@ msgstr "Bloquer" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -454,7 +450,7 @@ msgstr "Ces paramètres sont stockés dans vos cookies ; ceci nous permet de ne #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -464,7 +460,7 @@ msgstr "Ces cookies existent pour votre confort d'utilisation, nous ne les utili #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -472,14 +468,14 @@ msgstr "enregistrer" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Remettre les valeurs par défaut" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -650,23 +646,23 @@ msgid "General" msgstr "Général" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Moteurs" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plugins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Réponses instantanées" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -717,88 +713,78 @@ msgstr "Choisir un style pour ce thème" msgid "Style" msgstr "Style" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Résolveur Open Access DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Rediriger vers les versions des articles en libre accès lorsqu'elles sont disponibles (nécessite un plugin)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Raccourcis" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Langue choisie" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Espace temporel" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Temps moy." -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Temps max" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Voici la liste des module de searx produisant une réponse instantanée." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nom" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Mots clés" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Description" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemples" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "C'est une liste de cookies et de leurs valeurs que searx enregistre sur votre ordinateur." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Avec cette liste, vous pouvez juger de la transparence de searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nom du cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valeur" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Adresse de recherche des réglages actuels" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/gl/LC_MESSAGES/messages.mo b/searx/translations/gl/LC_MESSAGES/messages.mo index 30d7b0dd..e8724634 100644 Binary files a/searx/translations/gl/LC_MESSAGES/messages.mo and b/searx/translations/gl/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/gl/LC_MESSAGES/messages.po b/searx/translations/gl/LC_MESSAGES/messages.po index 3e1e2230..4634ed1b 100644 --- a/searx/translations/gl/LC_MESSAGES/messages.po +++ b/searx/translations/gl/LC_MESSAGES/messages.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# Xosé M. Lamas , 2018 +# Xosé M. Lamas , 2018-2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-04-20 11:00+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-26 06:08+0000\n" "Last-Translator: Xosé M. Lamas \n" "Language-Team: Galician (http://www.transifex.com/asciimoo/searx/language/gl/)\n" "MIME-Version: 1.0\n" @@ -31,63 +31,63 @@ msgstr "excepción na petición" msgid "unexpected crash" msgstr "fallo non agardado" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ficheiros" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "xeral" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "música" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "Medios sociais" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "imaxes" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "vídeos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "TIC" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "novas" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "ciencia" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Axustes non válidos, por favor edite a configuración" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Axustes non válidos" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "fallo na busca" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "hai {minutes} minuto(s)" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "hai {hours} hora(s), {minutes} minuto(s)" @@ -107,29 +107,28 @@ msgstr "Funcións de estatística" msgid "Compute {functions} of the arguments" msgstr "Calcule {functions} dos argumentos" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Tempo de busca (sec)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Cargou en (seg)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Número de resultados" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Puntuacións" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Puntuacións por resultado" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fallos" @@ -141,9 +140,15 @@ msgstr "{title} (OBSOLETO)" msgid "This entry has been superseded by" msgstr "Esta entrada foi proporcionada por" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Non hai dispoñible un extracto para esta publicación." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Reescritura DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evitar muros de pago redirecciionando a versións públicas das publicacións cando estén dispoñibles" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Desplazamento infinito" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Cargar automáticamente a seguinte páxina ao desplazarse ao fondo da páxina actual" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Reescritura Open Access DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evitar muros de pago redirecciionando a versións públicas das publicacións cando estén dispoñibles" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Método" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Motores de busca utilizados actualmente" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Categoría" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Bloquear" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Estos axustes gárdanse en testemuños, esto permítenos non ter que gar #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Estos testemuños son para a súa conveniencia, non utilizamos estos tes #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "gardar" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Restablecer" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Xeral" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motores" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Engadidos" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Respostas" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Testemuños" @@ -710,88 +705,78 @@ msgstr "Escolla o estilo para este decorado" msgid "Style" msgstr "Estilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Resolutor Open Access DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redireccionar a versións abertas das publicacións cando estén dispoñibles (require o engadido)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Atallo" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Idioma seleccionado" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Rango temporal" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Tempo medio" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Tempo máx." -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Este é o listado dos módulos de respostas instantáneas de searx" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nome" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Palabras chave" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descrición" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemplos" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Este é o listados dos testemuños e os seus valores que searx almacena na súa computadora." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Con esta lista vostede pode comprobar a transparencia de searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nome do testemuño" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valor" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL de busca dos axustes gardados actualmente." -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo index c0340250..3f7f8b4b 100644 Binary files a/searx/translations/he/LC_MESSAGES/messages.mo and b/searx/translations/he/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/he/LC_MESSAGES/messages.po b/searx/translations/he/LC_MESSAGES/messages.po index a7d0bcc3..c2e851d1 100644 --- a/searx/translations/he/LC_MESSAGES/messages.po +++ b/searx/translations/he/LC_MESSAGES/messages.po @@ -4,7 +4,7 @@ # # Translators: # GenghisKhan , 2015 -# GenghisKhan , 2015-2017 +# GenghisKhan , 2015-2017,2019 # pointhi, 2014 # rike, 2014 # stf , 2014 @@ -12,20 +12,20 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-01 20:31+0000\n" -"Last-Translator: Adam Tauber \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-03-17 10:52+0000\n" +"Last-Translator: GenghisKhan \n" "Language-Team: Hebrew (http://www.transifex.com/asciimoo/searx/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" "Language: he\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" #: searx/search.py:137 searx/search.py:182 msgid "timeout" -msgstr "" +msgstr "פקיעת זמן" #: searx/search.py:144 msgid "request exception" @@ -35,63 +35,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "קבצים" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "כללי" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "מוזיקה" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "מדיה חברתית" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "תמונות" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "סרטונים" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "חדשות" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "מפות" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "מדע" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "הגדרות שגויות, אנא ערוך את ההעדפות שלך" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" -msgstr "" +msgstr "הגדרה לא חוקית" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "שגיאת חיפוש" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "לפני {minutes} דקות" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "לפני {hours} שעות, {minutes} דקות" @@ -109,31 +109,30 @@ msgstr "פונקציות סטטיסטיקה" #: searx/answerers/statistics/answerer.py:54 msgid "Compute {functions} of the arguments" -msgstr "" +msgstr "מחשב {functions} מתוך הארגומנטים" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "זמן מנוע (שניות)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "עומס עמוד (שניות)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "מספר תוצאות" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "דירוג" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "דירוג לכל תוצאה" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "שגיאות" @@ -145,9 +144,15 @@ msgstr "" msgid "This entry has been superseded by" msgstr "רשומה זו הוחלפה על ידי" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "שכתוב DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "הימנעות מקירות-תשלום (paywalls) על ידי הכוונה מחודשת לגרסאות כניסה-חופשית של כתבי-עת כאשר זמינות" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -161,16 +166,6 @@ msgstr "גלילה אינסופית" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "טען אוטומטית עמוד הלאה כאשר גוללים לתחתית של עמוד נוכחי" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "הימנעות מקירות-תשלום (paywalls) על ידי הכוונה מחודשת לגרסאות כניסה-חופשית של כתבי-עת כאשר זמינות" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -333,8 +328,8 @@ msgstr "שיטה" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -406,8 +401,8 @@ msgstr "מנועי חיפוש בשימוש עתה" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -422,8 +417,8 @@ msgstr "קטגוריה" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -441,7 +436,7 @@ msgstr "חסום" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -451,7 +446,7 @@ msgstr "הגדרות אלו מאוחסנות בתוך העוגיות שלך, א #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -461,7 +456,7 @@ msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנ #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -469,14 +464,14 @@ msgstr "שמור" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "אפס ברירות מחדל" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -634,11 +629,11 @@ msgstr "דרך פרוקסי" #: searx/templates/oscar/macros.html:92 msgid "supported" -msgstr "" +msgstr "נתמך" #: searx/templates/oscar/macros.html:96 msgid "not supported" -msgstr "" +msgstr "לא נתמך" #: searx/templates/oscar/preferences.html:13 #: searx/templates/oscar/preferences.html:22 @@ -647,23 +642,23 @@ msgid "General" msgstr "כללי" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "מנועים" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "תוספים" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "תשובות" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "עוגיות" @@ -714,88 +709,78 @@ msgstr "בחירת סגנון עבור עיצוב זה" msgid "Style" msgstr "סגנון" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "קיצור דרך" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" -msgstr "" +msgstr "שפה נבחרת" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "טווח זמן" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "זמן ממוצע" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "זמן מירבי" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "שם" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "מילות מפתח" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "תיאור" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "דוגמאות" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "זוהי רשימה של עוגיות וערכיהן אשר searx מאחסנת על המחשב שלך." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "בעזרת רשימה זו, באפשרותך לגשת אל searx transparency." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "שם עוגייה" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "ערך" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" -msgstr "" +msgstr "כתובת חיפוש של ההעדפות השמורות כעת" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." @@ -808,12 +793,12 @@ msgstr "תוצאות חיפוש" #: searx/templates/oscar/results.html:21 #: searx/templates/simple/results.html:84 msgid "Try searching for:" -msgstr "" +msgstr "נסו לחפש:" #: searx/templates/oscar/results.html:100 #: searx/templates/simple/results.html:25 msgid "Engines cannot retrieve results" -msgstr "" +msgstr "מנועים לא מסוגלים לאחזר תוצאות" #: searx/templates/oscar/results.html:131 msgid "Links" @@ -878,12 +863,12 @@ msgstr "אין כעת מידע זמין. " #: searx/templates/oscar/messages/no_results.html:4 #: searx/templates/simple/messages/no_results.html:4 msgid "Engines cannot retrieve results." -msgstr "" +msgstr "מנועים לא מסוגלים לאחזר תוצאות." #: searx/templates/oscar/messages/no_results.html:10 #: searx/templates/simple/messages/no_results.html:10 msgid "Please, try again later or find another searx instance." -msgstr "" +msgstr "בבקשה, נסו מאוחר יותר. לחלופין, ניתן להיעזר בשירות searx אחר." #: searx/templates/oscar/messages/no_results.html:14 #: searx/templates/simple/messages/no_results.html:14 @@ -1002,16 +987,16 @@ msgstr "טען עוד..." #: searx/templates/simple/base.html:31 msgid "No item found" -msgstr "" +msgstr "לא נמצא פריט" #: searx/templates/simple/preferences.html:89 msgid "Supports selected language" -msgstr "" +msgstr "תומך בשפה נבחרת" #: searx/templates/simple/preferences.html:118 msgid "User interface" -msgstr "" +msgstr "ממשק משתמש" #: searx/templates/simple/preferences.html:154 msgid "Privacy" -msgstr "" +msgstr "פרטיות" diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo index 9e232a15..47541917 100644 Binary files a/searx/translations/hr/LC_MESSAGES/messages.mo and b/searx/translations/hr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/hr/LC_MESSAGES/messages.po b/searx/translations/hr/LC_MESSAGES/messages.po index 104876cd..94c5c745 100644 --- a/searx/translations/hr/LC_MESSAGES/messages.po +++ b/searx/translations/hr/LC_MESSAGES/messages.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-10 18:43+0000\n" -"Last-Translator: Dino Dugandžija \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Croatian (http://www.transifex.com/asciimoo/searx/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,63 +31,63 @@ msgstr "zatraži iznimku" msgid "unexpected crash" msgstr "neočekivani pad" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "datoteke" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "općenito" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "glazba" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "društveni mediji" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "slike" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "video zapisi" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "vijesti" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "karta" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "znanost" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Nevažeće postavke, uredite svoje postavke" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Nevažeće postavke" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "greška u pretraživanju" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} minutu(minute, minuta) prije" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} sat(sata, sati), {minutes} minutu(minute, minuta) prije" @@ -107,29 +107,28 @@ msgstr "Funkcije statistike" msgid "Compute {functions} of the arguments" msgstr "Izračunajte {functions} argumenata" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Vrijeme pretraživanja (sek)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Učitavanje stranice (sek)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Broj rezultata" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Pogodci" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Pogodci po rezultatu" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Greške" @@ -141,9 +140,15 @@ msgstr "{title} (ZASTARJELO)" msgid "This entry has been superseded by" msgstr "Ovaj je unos zamijenio" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Nijedan sažetak nije dostupan za ovu objavu." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Beskonačno pomicanje" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Automatski učitajte sljedeću stranicu kada se pomaknete do dna trenutne stranice" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Otvoreni pristup DOI prijepisa" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Metoda" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Trenutno korištene tražilice" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Kategorija" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Blokiraj" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Ove postavke su pohranjene u Vašim kolačićima, što omogućuje da ne #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Ovi kolačići služe Vašoj pogodnosti, ne upotrebljavamo te kolačiće #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "spremi" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Vraćanje zadanih postavki" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Općenito" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Tražilice" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Dodaci" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Davatelji odgovora" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Kolačići" @@ -710,88 +705,78 @@ msgstr "Odaberite stil za ovu temu" msgid "Style" msgstr "Stil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Otvoreni pristup DOI rješenja" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Preusmjeri na verzije izdanja otvorenog pristupa kada je isto dostupno (potreban je dodatak)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Prečac" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Odabrani jezik" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Vremenski raspon" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Prosječno vrijeme" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Maksimalno vrijeme" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Ovo je popis searx modula za odgovore" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Naziv" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ključne riječi" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Opis" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Primjeri" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Ovo je popis kolačića i njihovih vrijednosti koje pohranjuju na Vašem računalu." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "S tim popisom možete procijeniti transparentnost pretraživanja." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Naziv kolačića" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Vrijednost" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Pretraži URL adresu trenutno spremljenih postavki" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo index 392dc99d..c8fbd03a 100644 Binary files a/searx/translations/hu/LC_MESSAGES/messages.mo and b/searx/translations/hu/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po index 58383cd2..8a29dcf6 100644 --- a/searx/translations/hu/LC_MESSAGES/messages.po +++ b/searx/translations/hu/LC_MESSAGES/messages.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-03 11:14+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" "Last-Translator: Adam Tauber \n" "Language-Team: Hungarian (http://www.transifex.com/asciimoo/searx/language/hu/)\n" "MIME-Version: 1.0\n" @@ -34,63 +34,63 @@ msgstr "kérés hiba" msgid "unexpected crash" msgstr "nem várt hiba" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "fájlok" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "általános" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "zene" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "közösségi média" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "képek" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videók" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "hírek" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "térkép" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "tudomány" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Érvénytelen beállítások" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "érvénytelen beállítások" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "keresési hiba" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} perce" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} óra, {minutes} perce" @@ -110,29 +110,28 @@ msgstr "Statisztikai függvények" msgid "Compute {functions} of the arguments" msgstr "{functions} függvények alkalmazása az argumentumokon" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Keresési idő (másodperc)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Válaszidők (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Találatok száma" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Pontszámok" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Pontszámok találatonként" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Hibák" @@ -144,9 +143,15 @@ msgstr "{title} (ELAVULT)" msgid "This entry has been superseded by" msgstr "Ezt a bejegyzést törölte:" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Nem elérhető absztrakt a publikációhoz." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Szabad publikációs oldalak" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Publikácós linkeknél szabad forrás használat, amennyiben lehetséges" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -160,16 +165,6 @@ msgstr "Végtelenített találatok" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "További találatok automatikus betöltése" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Szabad DOI használat" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Publikácós linkeknél szabad forrás használat, amennyiben lehetséges" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -332,8 +327,8 @@ msgstr "Method" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -405,8 +400,8 @@ msgstr "Jelenleg használt keresők" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -421,8 +416,8 @@ msgstr "Kategória" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -440,7 +435,7 @@ msgstr "Tiltás" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -450,7 +445,7 @@ msgstr "Ezek a beállítások csak a böngésző cookie-jaiban tárolódnak." #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -460,7 +455,7 @@ msgstr "Ezek a cookie-k csak kényelmi funkciókat látnak el, nem használjuk a #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -468,14 +463,14 @@ msgstr "mentés" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Alapbeállítások visszaállítása" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -646,23 +641,23 @@ msgid "General" msgstr "Általános" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Keresőmotorok" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Pluginek" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Válaszok" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Sütik" @@ -713,88 +708,78 @@ msgstr "Válassz megjelenést ehhez a témához" msgid "Style" msgstr "Megjelenés" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Szabad DOI feloldó" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Átirányítás a publikáció szabadon elérhető változatára (plugin szükséges)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Rövidítés" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Kiválasztott nyelv" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Idő szűrés" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Átlag idő" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Maximális idő" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Az alábbi lista tartalmazza searx instant válaszoló moduljait." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Név" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Kulcsszavak" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Leírás" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Példák" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Searx által használt sütik listája." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Ez a lista a kereső transzparenciáját hivatott megmutatni." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Süti név" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Érték" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Keresési URL a beállítások alapján" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/ia/LC_MESSAGES/messages.mo b/searx/translations/ia/LC_MESSAGES/messages.mo index 3536ca65..bc33d9b4 100644 Binary files a/searx/translations/ia/LC_MESSAGES/messages.mo and b/searx/translations/ia/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ia/LC_MESSAGES/messages.po b/searx/translations/ia/LC_MESSAGES/messages.po index d2acbb62..7c59968b 100644 --- a/searx/translations/ia/LC_MESSAGES/messages.po +++ b/searx/translations/ia/LC_MESSAGES/messages.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# Guimarães Mello , 2017 +# Guimarães Mello , 2017,2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2017-10-07 19:18+0200\n" -"PO-Revision-Date: 2019-02-23 17:39+0000\n" -"Last-Translator: Guimarães Mello \n" +"PO-Revision-Date: 2019-09-30 14:07+0000\n" +"Last-Translator: Guimarães Mello \n" "Language-Team: Interlingua (http://www.transifex.com/asciimoo/searx/language/ia/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,15 +21,15 @@ msgstr "" #: searx/search.py:137 searx/search.py:182 msgid "timeout" -msgstr "" +msgstr "tempore finite" #: searx/search.py:144 msgid "request exception" -msgstr "" +msgstr "requesta un exception" #: searx/search.py:151 msgid "unexpected crash" -msgstr "" +msgstr "crash impreviste" #: searx/webapp.py:135 msgid "files" @@ -77,7 +77,7 @@ msgstr "Configurationes non valide, per favor, modifica tu preferentias." #: searx/webapp.py:410 msgid "Invalid settings" -msgstr "" +msgstr "Configurationes invalide" #: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" @@ -625,11 +625,11 @@ msgstr "per proxy" #: searx/templates/oscar/macros.html:92 msgid "supported" -msgstr "" +msgstr "supportate" #: searx/templates/oscar/macros.html:96 msgid "not supported" -msgstr "" +msgstr "non supportate" #: searx/templates/oscar/preferences.html:13 #: searx/templates/oscar/preferences.html:22 @@ -714,7 +714,7 @@ msgstr "Via breve" #: searx/templates/oscar/preferences.html:152 #: searx/templates/oscar/preferences.html:162 msgid "Selected language" -msgstr "" +msgstr "Lingua selectionate" #: searx/templates/oscar/preferences.html:154 #: searx/templates/oscar/preferences.html:160 @@ -774,13 +774,13 @@ msgstr "Valor" #: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" -msgstr "" +msgstr "URL de Recerca del preferentias actualmente salvate" #: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." -msgstr "" +msgstr "Nota: specificar configurationes personalisate in le URL de Recerca pote reducer le confidentialitate per lassar escappar datos al sitos cliccate in le resultatos." #: searx/templates/oscar/results.html:17 msgid "Search results" @@ -789,12 +789,12 @@ msgstr "Resultatos de recerca" #: searx/templates/oscar/results.html:21 #: searx/templates/simple/results.html:84 msgid "Try searching for:" -msgstr "" +msgstr "Essaya recercar pro:" #: searx/templates/oscar/results.html:100 #: searx/templates/simple/results.html:25 msgid "Engines cannot retrieve results" -msgstr "" +msgstr "Le motores non poteva obtener resultatos" #: searx/templates/oscar/results.html:131 msgid "Links" @@ -859,12 +859,12 @@ msgstr "Actualmente, il non ha datos disponibile." #: searx/templates/oscar/messages/no_results.html:4 #: searx/templates/simple/messages/no_results.html:4 msgid "Engines cannot retrieve results." -msgstr "" +msgstr "Le motores non poteva obtener resultatos." #: searx/templates/oscar/messages/no_results.html:10 #: searx/templates/simple/messages/no_results.html:10 msgid "Please, try again later or find another searx instance." -msgstr "" +msgstr "Per favor, essaya de novo plus tarde o trova un altere instantia de searx" #: searx/templates/oscar/messages/no_results.html:14 #: searx/templates/simple/messages/no_results.html:14 @@ -983,7 +983,7 @@ msgstr "Cargar plus..." #: searx/templates/simple/base.html:31 msgid "No item found" -msgstr "" +msgstr "Nulle item trovate" #: searx/templates/simple/preferences.html:89 msgid "Supports selected language" @@ -991,8 +991,8 @@ msgstr "Supporta le lingua selectionate" #: searx/templates/simple/preferences.html:118 msgid "User interface" -msgstr "" +msgstr "Interfacie del usator" #: searx/templates/simple/preferences.html:154 msgid "Privacy" -msgstr "" +msgstr "Confidentialitate" diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo index 53eca9e6..729c4ecc 100644 Binary files a/searx/translations/it/LC_MESSAGES/messages.mo and b/searx/translations/it/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po index c2d5c858..ba5c5e39 100644 --- a/searx/translations/it/LC_MESSAGES/messages.po +++ b/searx/translations/it/LC_MESSAGES/messages.po @@ -11,14 +11,14 @@ # Federico , 2018 # Luca C , 2017 # Luc , 2015 -# Random_R, 2018 +# Random_R, 2018-2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-10-16 15:53+0000\n" -"Last-Translator: caoswave\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-11-19 10:03+0000\n" +"Last-Translator: Random_R\n" "Language-Team: Italian (http://www.transifex.com/asciimoo/searx/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -39,63 +39,63 @@ msgstr "eccezione della richiesta" msgid "unexpected crash" msgstr "crash inaspettato" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "documenti" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "generale" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musica" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "social" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "immagini" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "video" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "notizie" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mappe" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "scienza" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Impostazioni non valide, modifica le tue preferenze" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Impostazioni non valide" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "errore di ricerca" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "di {minutes} minuti fa" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "di {hours} ore e {minutes} minuti fa" @@ -115,29 +115,28 @@ msgstr "Funzioni statistiche" msgid "Compute {functions} of the arguments" msgstr "Calcola {functions} degli argomenti" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Tempo del motore (secondi)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr " Caricamento della pagina (secondi)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Numero di risultati" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Punteggio" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Punteggio per risultato" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Errori" @@ -149,9 +148,15 @@ msgstr "{title} (OBSOLETO)" msgid "This entry has been superseded by" msgstr "Questa voce è stata sostituita da" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Nessun sommario disponibile per questa pubblicazione" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Reindirizzamento DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Se possibile, evita il paywall di una pubblicazione reindirizzando ad una versione ad accesso libero" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -165,16 +170,6 @@ msgstr "Scorrimento infinito" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Carica automaticamente la pagina successiva quando si scorre sino alla fine della pagina attuale" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Reindirizzamento Open Access DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Se possibile, evita il paywall di una pubblicazione reindirizzando ad una versione libera" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -185,7 +180,7 @@ msgstr "Apri i risultati in nuove schede del browser" msgid "" "Results are opened in the same window by default. This plugin overwrites the" " default behaviour to open links on new tabs/windows. (JavaScript required)" -msgstr "Di base i risultati sono aperti nella stessa finestra. Questa estensione fa sì invece che vengano mostrati in nuove schede/finestre. (Javascript necessario)\"" +msgstr "Di base i risultati sono aperti nella stessa finestra. Questa estensione fa sì invece che vengano mostrati in nuove schede/finestre. (Javascript necessario)" #: searx/plugins/search_on_category_select.py:18 msgid "Search on category select" @@ -195,7 +190,7 @@ msgstr "Cerca nella categoria selezionata" msgid "" "Perform search immediately if a category selected. Disable to select " "multiple categories. (JavaScript required)" -msgstr "Esegui la ricerca immediatamente se una categoria è selezionata. Disabilita questa opzione se vuoi selezionare più categorie. (Javascript necessario)\"" +msgstr "Esegui la ricerca immediatamente se una categoria è selezionata. Disabilita questa opzione se vuoi selezionare più categorie. (Javascript necessario)" #: searx/plugins/self_info.py:20 msgid "" @@ -205,7 +200,7 @@ msgstr "Mostra il tuo IP se hai cercato \"ip\" ed il tuo user agent se hai cerca #: searx/plugins/tracker_url_remover.py:26 msgid "Tracker URL remover" -msgstr "Rimuovi tracciamento URL" +msgstr "Rimuovi URL traccianti" #: searx/plugins/tracker_url_remover.py:27 msgid "Remove trackers arguments from the returned URL" @@ -296,7 +291,7 @@ msgstr "Lingua predefinita" #: searx/templates/pix-art/preferences.html:20 #: searx/templates/simple/preferences.html:120 msgid "Interface language" -msgstr "Linguaggio dell'interfaccia" +msgstr "Lingua dell'interfaccia" #: searx/templates/courgette/preferences.html:34 #: searx/templates/legacy/preferences.html:35 @@ -337,8 +332,8 @@ msgstr "Metodo" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -349,21 +344,21 @@ msgstr "Ricerca Sicura" #: searx/templates/oscar/preferences.html:90 #: searx/templates/simple/preferences.html:66 msgid "Strict" -msgstr "Rigoroso" +msgstr "Rigorosa" #: searx/templates/courgette/preferences.html:67 #: searx/templates/legacy/preferences.html:68 #: searx/templates/oscar/preferences.html:91 #: searx/templates/simple/preferences.html:67 msgid "Moderate" -msgstr "Moderato" +msgstr "Moderata" #: searx/templates/courgette/preferences.html:68 #: searx/templates/legacy/preferences.html:69 #: searx/templates/oscar/preferences.html:92 #: searx/templates/simple/preferences.html:68 msgid "None" -msgstr "Nessuno" +msgstr "Nessuna" #: searx/templates/courgette/preferences.html:73 #: searx/templates/legacy/preferences.html:74 @@ -410,8 +405,8 @@ msgstr "Motori di ricerca attualmente in uso" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -426,8 +421,8 @@ msgstr "Categoria" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -445,7 +440,7 @@ msgstr "Blocca" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -455,7 +450,7 @@ msgstr "Le impostazioni vengono salvate nei tuoi cookie, consentendoci di non co #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -465,7 +460,7 @@ msgstr "Questi cookie servono solo ad offrirti un servizio migliore. Non li usia #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -473,14 +468,14 @@ msgstr "salva" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Reimposta i valori iniziali" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -651,30 +646,30 @@ msgid "General" msgstr "Generale" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motori" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plugin" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Risponditori" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookie" #: searx/templates/oscar/preferences.html:42 #: searx/templates/simple/preferences.html:48 msgid "What language do you prefer for search?" -msgstr "Lingua dei risultati di ricerca" +msgstr "Che lingua preferisci per la ricerca?" #: searx/templates/oscar/preferences.html:48 #: searx/templates/simple/preferences.html:128 @@ -706,7 +701,7 @@ msgstr "Filtro famiglia" #: searx/templates/oscar/preferences.html:97 #: searx/templates/simple/preferences.html:139 msgid "Change searx layout" -msgstr "Cambia il layout di searx" +msgstr "Cambia l'aspetto di searx" #: searx/templates/oscar/preferences.html:106 #: searx/templates/oscar/preferences.html:111 @@ -718,92 +713,82 @@ msgstr "Scegli lo stile per questo tema" msgid "Style" msgstr "Stile" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Resolver Open Access DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Indirizza a versioni open-access delle pubblicazioni quando disponibili (plugin richiesto)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Scorciatoia" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Lingua selezionata" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Intervallo di tempo" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Tempo medio" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Tempo massimo" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Questa è la lista dei moduli searx con risposta immediata" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nome" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Parole chiave" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descrizione" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Esempi" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Qui puoi vedere i cookie che vengono conservati sul tuo computer." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "In questo modo, puoi constatare la trasparenza di searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nome del cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valore" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" -msgstr "Cerca URL delle preferenze attualmente salvate" +msgstr "URL di ricerca delle preferenze attualmente salvate" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." -msgstr "Nota: specificando impostazioni personalizzate nella ricerca URL può ridurre la privacy facendo traperlare dati ai siti cliccati" +msgstr "Nota: specificare impostazioni personalizzate nell'URL di ricerca può ridurre la privacy facendo trapelare dati ai siti cliccati" #: searx/templates/oscar/results.html:17 msgid "Search results" @@ -836,7 +821,7 @@ msgstr "statistiche" #: searx/templates/oscar/time-range.html:3 #: searx/templates/simple/time-range.html:3 msgid "Anytime" -msgstr "Di sempre" +msgstr "Qualsiasi data" #: searx/templates/oscar/time-range.html:6 #: searx/templates/simple/time-range.html:6 @@ -856,7 +841,7 @@ msgstr "Ultimo mese" #: searx/templates/oscar/time-range.html:15 #: searx/templates/simple/time-range.html:15 msgid "Last year" -msgstr "L'anno scorso" +msgstr "Ultimo anno" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo index eb126728..4bfa7bbe 100644 Binary files a/searx/translations/ja/LC_MESSAGES/messages.mo and b/searx/translations/ja/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po index 24d2c359..94f1504f 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.po +++ b/searx/translations/ja/LC_MESSAGES/messages.po @@ -6,6 +6,7 @@ # Akio Nishimura , 2016-2018 # Thomas Pointhuber, 2014-2015 # FIRST AUTHOR , 2014,2016 +# KAWASAKI ICHIRO, 2020 # Lucas Phillips , 2015 # Max , 2015 # Nobuhiro Iwamatsu , 2018 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-08-13 03:03+0000\n" -"Last-Translator: Nobuhiro Iwamatsu \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2020-01-20 14:30+0000\n" +"Last-Translator: KAWASAKI ICHIRO\n" "Language-Team: Japanese (http://www.transifex.com/asciimoo/searx/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,63 +39,63 @@ msgstr "例外要求" msgid "unexpected crash" msgstr "予期しないクラッシュ" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ファイル" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "一般" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "音楽" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "ソーシャルメディア" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "画像" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "動画" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "情報技術" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" -msgstr "お知らせ" +msgstr "ニュース" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "地図" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "学問" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "不正な設定です。設定を編集してください。" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "不正な設定" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "検索エラー" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes}分前" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours}時間と{minutes}分前" @@ -114,29 +115,28 @@ msgstr "統計機能" msgid "Compute {functions} of the arguments" msgstr "変数の{functions}を計算する" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "検索時間 (秒)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "ページ読み込み時間 (秒)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "通知の数" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "スコア" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "検索結果当たりスコア" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "エラー" @@ -148,9 +148,15 @@ msgstr "{title} (廃止)" msgid "This entry has been superseded by" msgstr "このエントリーの優先" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "この出版物には要約がありません。" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI再書き込み" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "可能ならば出版物のオープンアクセス版へリダイレクトして有料の壁を避ける" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -164,16 +170,6 @@ msgstr "無限スクロール" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "現在のページの下端でスクロールすると自動的に次のページを読み込む" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "オープンアクセス DOI リライト" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "可能ならば出版物のオープンアクセス版へリダイレクトして有料の壁を避ける" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -336,8 +332,8 @@ msgstr "方法" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -409,8 +405,8 @@ msgstr "現在使用中の検索エンジン" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -425,8 +421,8 @@ msgstr "カテゴリー" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -444,7 +440,7 @@ msgstr "禁止する" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -454,7 +450,7 @@ msgstr "これらの設定はあなたのクッキーに保存されますが、 #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -464,7 +460,7 @@ msgstr "クッキーはあなたが便利に使えるようにするために使 #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -472,14 +468,14 @@ msgstr "保存" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "デフォルト設定に戻す" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -650,23 +646,23 @@ msgid "General" msgstr "一般設定" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "検索エンジン" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "プラグイン" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "回答者" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "クッキー" @@ -717,88 +713,78 @@ msgstr "このテーマのスタイルを選択" msgid "Style" msgstr "スタイル" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "オープンアクセス DOI リゾルバー" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "利用可能な場合(プラグインが必要)、オープンアクセス版の出版物にリダイレクトする" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "ショートカット" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "選択された言語" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "時間範囲" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "平均時間" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "最大時間" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "これは searx の即席回答モジュールのリストです。" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "名前" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "キーワード" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "説明" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "例" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "これはクッキーのリストで、これらの値はあなたのコンピュータに保存されています。" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "このリストによって、あなたは searx の透明性を評価できます。" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "クッキー名" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "値" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "現在保存されている設定の検索 URL" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..8f33a166 Binary files /dev/null and b/searx/translations/lt/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/lt/LC_MESSAGES/messages.po b/searx/translations/lt/LC_MESSAGES/messages.po new file mode 100644 index 00000000..f9e4ffd6 --- /dev/null +++ b/searx/translations/lt/LC_MESSAGES/messages.po @@ -0,0 +1,998 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Moo, 2019 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-11-02 12:57+0000\n" +"Last-Translator: Moo\n" +"Language-Team: Lithuanian (http://www.transifex.com/asciimoo/searx/language/lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" + +#: searx/search.py:137 searx/search.py:182 +msgid "timeout" +msgstr "baigėsi laikas" + +#: searx/search.py:144 +msgid "request exception" +msgstr "užklausos išimtis" + +#: searx/search.py:151 +msgid "unexpected crash" +msgstr "netikėta strigtis" + +#: searx/webapp.py:135 +msgid "files" +msgstr "failai" + +#: searx/webapp.py:136 +msgid "general" +msgstr "bendra" + +#: searx/webapp.py:137 +msgid "music" +msgstr "muzika" + +#: searx/webapp.py:138 +msgid "social media" +msgstr "socialinė medija" + +#: searx/webapp.py:139 +msgid "images" +msgstr "paveikslai" + +#: searx/webapp.py:140 +msgid "videos" +msgstr "vaizdo įrašai" + +#: searx/webapp.py:141 +msgid "it" +msgstr "IT" + +#: searx/webapp.py:142 +msgid "news" +msgstr "naujienos" + +#: searx/webapp.py:143 +msgid "map" +msgstr "žemėlapis" + +#: searx/webapp.py:144 +msgid "science" +msgstr "mokslas" + +#: searx/webapp.py:398 searx/webapp.py:653 +msgid "Invalid settings, please edit your preferences" +msgstr "Neteisingi nustatymai, pataisykite savo nuostatas" + +#: searx/webapp.py:410 +msgid "Invalid settings" +msgstr "Neteisingi nustatymai" + +#: searx/webapp.py:444 searx/webapp.py:488 +msgid "search error" +msgstr "paieškos klaida" + +#: searx/webapp.py:525 +msgid "{minutes} minute(s) ago" +msgstr "prieš {minutes} min." + +#: searx/webapp.py:527 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "prieš {hours} val., {minutes} min." + +#: searx/answerers/random/answerer.py:53 +msgid "Random value generator" +msgstr "Atsitiktinių reikmių generatorius" + +#: searx/answerers/random/answerer.py:54 +msgid "Generate different random values" +msgstr "Generuoja įvairias atsitiktines reikšmes" + +#: searx/answerers/statistics/answerer.py:53 +msgid "Statistics functions" +msgstr "Statistikos funkcijos" + +#: searx/answerers/statistics/answerer.py:54 +msgid "Compute {functions} of the arguments" +msgstr "Skaičiuoti argumentų {functions} funkcijas" + +#: searx/engines/__init__.py:194 +msgid "Engine time (sec)" +msgstr "Sistemos laikas (sek.)" + +#: searx/engines/__init__.py:198 +msgid "Page loads (sec)" +msgstr "Puslapių įkėlimai (sek.)" + +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 +#: searx/templates/simple/results.html:20 +msgid "Number of results" +msgstr "Rezultatų skaičius" + +#: searx/engines/__init__.py:206 +msgid "Scores" +msgstr "Įverčiai" + +#: searx/engines/__init__.py:210 +msgid "Scores per result" +msgstr "Įverčiai pagal rezultatą" + +#: searx/engines/__init__.py:214 +msgid "Errors" +msgstr "Klaidos" + +#: searx/engines/pdbe.py:87 +msgid "{title} (OBSOLETE)" +msgstr "{title} (PASENĘS)" + +#: searx/engines/pdbe.py:91 +msgid "This entry has been superseded by" +msgstr "Šį įrašą pakeitė" + +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI perrašymas" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Vengti apmokamų sienų, kai įmanoma, peradresuojant į atviros prieigos publikacijų versijas" + +#: searx/plugins/https_rewrite.py:32 +msgid "Rewrite HTTP links to HTTPS if possible" +msgstr "Jei įmanoma, perrašyti HTTP nuorodas į HTTPS" + +#: searx/plugins/infinite_scroll.py:3 +msgid "Infinite scroll" +msgstr "Begalinis slinkimas" + +#: searx/plugins/infinite_scroll.py:4 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "Automatiškai įkelti kitą puslapį, kai nuslenkama į esamo puslapio apačią" + +#: searx/plugins/open_results_on_new_tab.py:18 +#: searx/templates/oscar/preferences.html:114 +#: searx/templates/simple/preferences.html:149 +msgid "Open result links on new browser tabs" +msgstr "Atverti rezultatų nuorodas naujose naršyklės kortelėse" + +#: searx/plugins/open_results_on_new_tab.py:19 +msgid "" +"Results are opened in the same window by default. This plugin overwrites the" +" default behaviour to open links on new tabs/windows. (JavaScript required)" +msgstr "Pagal numatymą, rezultatai yra atveriami tame pačiame lange. Šis įskiepis perrašo numatytąją elgseną taip, kad nuorodos būtų atveriamos naujose kortelėse/languose. (reikalinga JavaScript)" + +#: searx/plugins/search_on_category_select.py:18 +msgid "Search on category select" +msgstr "Pasirinkus kategoriją, atlikti paiešką" + +#: searx/plugins/search_on_category_select.py:19 +msgid "" +"Perform search immediately if a category selected. Disable to select " +"multiple categories. (JavaScript required)" +msgstr "Jei pasirenkama kategorija, nedelsiant atlikti paiešką. Išjunkite norėdami pasirinkti kelias kategorijas. (reikalinga JavaScript)" + +#: searx/plugins/self_info.py:20 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." +msgstr "Rodo jūsų IP adresą, jei užklausa yra \"ip\" ir jūsų naudotojo agentą, jei užklausoje yra \"user agent\"." + +#: searx/plugins/tracker_url_remover.py:26 +msgid "Tracker URL remover" +msgstr "Seklių URL šalintojas" + +#: searx/plugins/tracker_url_remover.py:27 +msgid "Remove trackers arguments from the returned URL" +msgstr "Šalinti seklių argumentus iš grąžinamų URL" + +#: searx/plugins/vim_hotkeys.py:3 +msgid "Vim-like hotkeys" +msgstr "Vim pavidalo spartieji klavišai" + +#: searx/plugins/vim_hotkeys.py:4 +msgid "" +"Navigate search results with Vim-like hotkeys (JavaScript required). Press " +"\"h\" key on main or result page to get help." +msgstr "Naršyti po paieškos rezultatus naudojant Vim pavidalo sparčiuosius klavišus (reikalinga JavaScript). Paspauskite pagrindiniame ar rezultatų puslapyje \"h\" klavišą norėdami gauti pagalbos." + +#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 +#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "Puslapis nerastas" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "Pereiti į %(search_page)s." + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "paieškos puslapį" + +#: searx/templates/courgette/index.html:9 +#: searx/templates/courgette/index.html:13 +#: searx/templates/courgette/results.html:5 +#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12 +#: searx/templates/oscar/navbar.html:7 +#: searx/templates/oscar/preferences.html:3 +#: searx/templates/pix-art/index.html:8 +msgid "preferences" +msgstr "nuostatos" + +#: searx/templates/courgette/index.html:11 +#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2 +#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7 +msgid "about" +msgstr "apie" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/legacy/preferences.html:5 +#: searx/templates/oscar/preferences.html:8 +#: searx/templates/pix-art/preferences.html:5 +#: searx/templates/simple/preferences.html:26 +msgid "Preferences" +msgstr "Nuostatos" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/legacy/preferences.html:9 +#: searx/templates/oscar/preferences.html:33 +#: searx/templates/oscar/preferences.html:35 +#: searx/templates/simple/preferences.html:34 +msgid "Default categories" +msgstr "Numatytosios kategorijos" + +#: searx/templates/courgette/preferences.html:13 +#: searx/templates/legacy/preferences.html:14 +#: searx/templates/oscar/preferences.html:41 +#: searx/templates/pix-art/preferences.html:9 +#: searx/templates/simple/preferences.html:39 +#: searx/templates/simple/preferences.html:163 +msgid "Search language" +msgstr "Paieškos kalba" + +#: searx/templates/courgette/preferences.html:16 +#: searx/templates/legacy/preferences.html:17 +#: searx/templates/oscar/languages.html:6 +#: searx/templates/pix-art/preferences.html:12 +#: searx/templates/simple/languages.html:2 +#: searx/templates/simple/preferences.html:42 +msgid "Default language" +msgstr "Numatytoji kalba" + +#: searx/templates/courgette/preferences.html:24 +#: searx/templates/legacy/preferences.html:25 +#: searx/templates/oscar/preferences.html:47 +#: searx/templates/pix-art/preferences.html:20 +#: searx/templates/simple/preferences.html:120 +msgid "Interface language" +msgstr "Sąsajos kalba" + +#: searx/templates/courgette/preferences.html:34 +#: searx/templates/legacy/preferences.html:35 +#: searx/templates/oscar/preferences.html:57 +#: searx/templates/simple/preferences.html:51 +msgid "Autocomplete" +msgstr "Automatinis užbaigimas" + +#: searx/templates/courgette/preferences.html:45 +#: searx/templates/legacy/preferences.html:46 +#: searx/templates/oscar/preferences.html:68 +#: searx/templates/simple/preferences.html:166 +msgid "Image proxy" +msgstr "Paveikslų įgaliotasis serveris" + +#: searx/templates/courgette/preferences.html:48 +#: searx/templates/legacy/preferences.html:49 +#: searx/templates/oscar/preferences.html:72 +#: searx/templates/simple/preferences.html:169 +msgid "Enabled" +msgstr "Įjungta" + +#: searx/templates/courgette/preferences.html:49 +#: searx/templates/legacy/preferences.html:50 +#: searx/templates/oscar/preferences.html:73 +#: searx/templates/simple/preferences.html:170 +msgid "Disabled" +msgstr "Išjungta" + +#: searx/templates/courgette/preferences.html:54 +#: searx/templates/legacy/preferences.html:55 +#: searx/templates/oscar/preferences.html:77 +#: searx/templates/pix-art/preferences.html:30 +#: searx/templates/simple/preferences.html:156 +msgid "Method" +msgstr "Metodas" + +#: searx/templates/courgette/preferences.html:63 +#: searx/templates/legacy/preferences.html:64 +#: searx/templates/oscar/preferences.html:86 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 +#: searx/templates/simple/preferences.html:63 +#: searx/templates/simple/preferences.html:90 +msgid "SafeSearch" +msgstr "Saugi paieška" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/legacy/preferences.html:67 +#: searx/templates/oscar/preferences.html:90 +#: searx/templates/simple/preferences.html:66 +msgid "Strict" +msgstr "Griežta" + +#: searx/templates/courgette/preferences.html:67 +#: searx/templates/legacy/preferences.html:68 +#: searx/templates/oscar/preferences.html:91 +#: searx/templates/simple/preferences.html:67 +msgid "Moderate" +msgstr "Nuosaiki" + +#: searx/templates/courgette/preferences.html:68 +#: searx/templates/legacy/preferences.html:69 +#: searx/templates/oscar/preferences.html:92 +#: searx/templates/simple/preferences.html:68 +msgid "None" +msgstr "Nėra" + +#: searx/templates/courgette/preferences.html:73 +#: searx/templates/legacy/preferences.html:74 +#: searx/templates/oscar/preferences.html:96 +#: searx/templates/pix-art/preferences.html:39 +#: searx/templates/simple/preferences.html:131 +msgid "Themes" +msgstr "Apipavidalinimai" + +#: searx/templates/courgette/preferences.html:83 +msgid "Color" +msgstr "Spalva" + +#: searx/templates/courgette/preferences.html:86 +msgid "Blue (default)" +msgstr "Mėlyna (numatytoji)" + +#: searx/templates/courgette/preferences.html:87 +msgid "Violet" +msgstr "Violetinė" + +#: searx/templates/courgette/preferences.html:88 +msgid "Green" +msgstr "Žalia" + +#: searx/templates/courgette/preferences.html:89 +msgid "Cyan" +msgstr "Žydra" + +#: searx/templates/courgette/preferences.html:90 +msgid "Orange" +msgstr "Oranžinė" + +#: searx/templates/courgette/preferences.html:91 +msgid "Red" +msgstr "Raudona" + +#: searx/templates/courgette/preferences.html:96 +#: searx/templates/legacy/preferences.html:93 +#: searx/templates/pix-art/preferences.html:49 +#: searx/templates/simple/preferences.html:77 +msgid "Currently used search engines" +msgstr "Šiuo metu naudojamos paieškos sistemos" + +#: searx/templates/courgette/preferences.html:100 +#: searx/templates/legacy/preferences.html:97 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 +#: searx/templates/pix-art/preferences.html:53 +#: searx/templates/simple/preferences.html:87 +msgid "Engine name" +msgstr "Sistemos pavadinimas" + +#: searx/templates/courgette/preferences.html:101 +#: searx/templates/legacy/preferences.html:98 +msgid "Category" +msgstr "Kategorija" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:113 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:110 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:64 +#: searx/templates/simple/preferences.html:86 +msgid "Allow" +msgstr "Leisti" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:114 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:111 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:65 +msgid "Block" +msgstr "Blokuoti" + +#: searx/templates/courgette/preferences.html:122 +#: searx/templates/legacy/preferences.html:119 +#: searx/templates/oscar/preferences.html:285 +#: searx/templates/pix-art/preferences.html:73 +#: searx/templates/simple/preferences.html:180 +msgid "" +"These settings are stored in your cookies, this allows us not to store this " +"data about you." +msgstr "Šie nustatymai yra laikomi jūsų slapukuose, tai leidžia mums nesaugoti šių duomenų apie jus." + +#: searx/templates/courgette/preferences.html:124 +#: searx/templates/legacy/preferences.html:121 +#: searx/templates/oscar/preferences.html:287 +#: searx/templates/pix-art/preferences.html:75 +#: searx/templates/simple/preferences.html:182 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "Šie slapukai yra naudojami išskirtinai jūsų patogumui, mes nenaudojame jų, kad jus sektume." + +#: searx/templates/courgette/preferences.html:127 +#: searx/templates/legacy/preferences.html:124 +#: searx/templates/oscar/preferences.html:293 +#: searx/templates/pix-art/preferences.html:78 +#: searx/templates/simple/preferences.html:185 +msgid "save" +msgstr "Įrašyti" + +#: searx/templates/courgette/preferences.html:128 +#: searx/templates/legacy/preferences.html:125 +#: searx/templates/oscar/preferences.html:295 +#: searx/templates/simple/preferences.html:186 +msgid "Reset defaults" +msgstr "Atstatyti numatytuosius" + +#: searx/templates/courgette/preferences.html:129 +#: searx/templates/legacy/preferences.html:126 +#: searx/templates/oscar/preferences.html:294 +#: searx/templates/pix-art/preferences.html:79 +#: searx/templates/simple/preferences.html:187 +msgid "back" +msgstr "Atgal" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/legacy/results.html:13 +#: searx/templates/oscar/results.html:136 +#: searx/templates/simple/results.html:58 +msgid "Search URL" +msgstr "Paieškos URL" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/legacy/results.html:17 +#: searx/templates/oscar/results.html:141 +#: searx/templates/simple/results.html:62 +msgid "Download results" +msgstr "Atsisiųsti rezultatus" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/legacy/results.html:35 +#: searx/templates/simple/results.html:10 +msgid "Answers" +msgstr "Atsakymai" + +#: searx/templates/courgette/results.html:42 +#: searx/templates/legacy/results.html:43 +#: searx/templates/oscar/results.html:116 +#: searx/templates/simple/results.html:42 +msgid "Suggestions" +msgstr "Pasiūlymai" + +#: searx/templates/courgette/results.html:70 +#: searx/templates/legacy/results.html:81 +#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78 +#: searx/templates/simple/results.html:130 +msgid "previous page" +msgstr "ankstesnis puslapis" + +#: searx/templates/courgette/results.html:81 +#: searx/templates/legacy/results.html:92 +#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84 +#: searx/templates/simple/results.html:145 +msgid "next page" +msgstr "kitas puslapis" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6 +#: searx/templates/oscar/search_full.html:9 +#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4 +msgid "Search for..." +msgstr "Ko ieškoti..." + +#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4 +#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4 +#: searx/templates/simple/stats.html:7 +msgid "Engine stats" +msgstr "Sistemos statistika" + +#: searx/templates/courgette/result_templates/images.html:4 +#: searx/templates/legacy/result_templates/images.html:4 +#: searx/templates/pix-art/result_templates/images.html:4 +msgid "original context" +msgstr "pradinis kontekstas" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "Skleidėjai" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "Siuntėjai" + +#: searx/templates/courgette/result_templates/torrent.html:9 +#: searx/templates/legacy/result_templates/torrent.html:9 +#: searx/templates/oscar/macros.html:23 +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "magnet nuoroda" + +#: searx/templates/courgette/result_templates/torrent.html:10 +#: searx/templates/legacy/result_templates/torrent.html:10 +#: searx/templates/oscar/macros.html:24 +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "torrent failas" + +#: searx/templates/legacy/categories.html:8 +#: searx/templates/simple/categories.html:6 +msgid "Click on the magnifier to perform search" +msgstr "Norėdami atlikti paiešką, spustelėkite ant didinamojo stiklo" + +#: searx/templates/legacy/preferences.html:84 +#: searx/templates/oscar/preferences.html:113 +#: searx/templates/simple/preferences.html:142 +msgid "Results on new tabs" +msgstr "Rezultatai naujose kortelėse" + +#: searx/templates/legacy/preferences.html:87 +#: searx/templates/oscar/preferences.html:117 +#: searx/templates/simple/preferences.html:145 +msgid "On" +msgstr "Įjungta" + +#: searx/templates/legacy/preferences.html:88 +#: searx/templates/oscar/preferences.html:118 +#: searx/templates/simple/preferences.html:146 +msgid "Off" +msgstr "Išjungta" + +#: searx/templates/legacy/result_templates/code.html:3 +#: searx/templates/legacy/result_templates/default.html:3 +#: searx/templates/legacy/result_templates/map.html:9 +#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48 +#: searx/templates/simple/macros.html:43 +msgid "cached" +msgstr "podėlio versija" + +#: searx/templates/oscar/advanced.html:4 +msgid "Advanced settings" +msgstr "Išplėstiniai nustatymai" + +#: searx/templates/oscar/base.html:62 +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "Užverti" + +#: searx/templates/oscar/base.html:64 +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +#: searx/templates/simple/results.html:25 +msgid "Error!" +msgstr "Klaida!" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "Powered by" +msgstr "Veikia su" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "gerbianti privatumą, programuojama metapaieškos sistema" + +#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50 +#: searx/templates/simple/macros.html:43 +msgid "proxied" +msgstr "per įgaliotąjį serverį" + +#: searx/templates/oscar/macros.html:92 +msgid "supported" +msgstr "palaikoma" + +#: searx/templates/oscar/macros.html:96 +msgid "not supported" +msgstr "nepalaikoma" + +#: searx/templates/oscar/preferences.html:13 +#: searx/templates/oscar/preferences.html:22 +#: searx/templates/simple/preferences.html:32 +msgid "General" +msgstr "Bendra" + +#: searx/templates/oscar/preferences.html:14 +#: searx/templates/oscar/preferences.html:134 +#: searx/templates/simple/preferences.html:76 +msgid "Engines" +msgstr "Sistemos" + +#: searx/templates/oscar/preferences.html:15 +#: searx/templates/oscar/preferences.html:207 +msgid "Plugins" +msgstr "Įskiepiai" + +#: searx/templates/oscar/preferences.html:16 +#: searx/templates/oscar/preferences.html:233 +msgid "Answerers" +msgstr "Atsakikliai" + +#: searx/templates/oscar/preferences.html:17 +#: searx/templates/oscar/preferences.html:260 +msgid "Cookies" +msgstr "Slapukai" + +#: searx/templates/oscar/preferences.html:42 +#: searx/templates/simple/preferences.html:48 +msgid "What language do you prefer for search?" +msgstr "Kokią kalbą pageidaujate paieškai?" + +#: searx/templates/oscar/preferences.html:48 +#: searx/templates/simple/preferences.html:128 +msgid "Change the language of the layout" +msgstr "Keisti išdėstymo kalbą" + +#: searx/templates/oscar/preferences.html:58 +#: searx/templates/simple/preferences.html:60 +msgid "Find stuff as you type" +msgstr "Rasti medžiagą berašant" + +#: searx/templates/oscar/preferences.html:69 +#: searx/templates/simple/preferences.html:173 +msgid "Proxying image results through searx" +msgstr "Paveikslų persiuntimas įgaliotuoju serveriu per searx" + +#: searx/templates/oscar/preferences.html:78 +msgid "" +"Change how forms are submited, learn more about request methods" +msgstr "Keisti kaip yra pateikiamos formos, sužinokite daugiau apie užklausos metodus" + +#: searx/templates/oscar/preferences.html:87 +#: searx/templates/simple/preferences.html:71 +msgid "Filter content" +msgstr "Filtruoti turinį" + +#: searx/templates/oscar/preferences.html:97 +#: searx/templates/simple/preferences.html:139 +msgid "Change searx layout" +msgstr "Keisti searx išdėstymą" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Choose style for this theme" +msgstr "Pasirinkti šio apipavidalinimo stilių" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Style" +msgstr "Stilius" + +#: searx/templates/oscar/preferences.html:151 +#: searx/templates/oscar/preferences.html:163 +#: searx/templates/simple/preferences.html:88 +msgid "Shortcut" +msgstr "Trumpinys" + +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 +msgid "Selected language" +msgstr "Pasirinkta kalba" + +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 +#: searx/templates/simple/preferences.html:91 +msgid "Time range" +msgstr "Laiko rėžis" + +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 +#: searx/templates/simple/preferences.html:92 +msgid "Avg. time" +msgstr "Vid. laikas" + +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 +#: searx/templates/simple/preferences.html:93 +msgid "Max time" +msgstr "Maks. laikas" + +#: searx/templates/oscar/preferences.html:236 +msgid "This is the list of searx's instant answering modules." +msgstr "Tai yra searx greitų atsakiklių modulių sąrašas." + +#: searx/templates/oscar/preferences.html:240 +msgid "Name" +msgstr "Pavadinimas" + +#: searx/templates/oscar/preferences.html:241 +msgid "Keywords" +msgstr "Raktažodžiai" + +#: searx/templates/oscar/preferences.html:242 +msgid "Description" +msgstr "Aprašas" + +#: searx/templates/oscar/preferences.html:243 +msgid "Examples" +msgstr "Pavyzdžiai" + +#: searx/templates/oscar/preferences.html:263 +msgid "" +"This is the list of cookies and their values searx is storing on your " +"computer." +msgstr "Tai yra slapukų ir jų reikšmių, kuriuos searx laiko jūsų kompiuteryje, sąrašas." + +#: searx/templates/oscar/preferences.html:264 +msgid "With that list, you can assess searx transparency." +msgstr "Naudodami sąrašą, galite įvertinti searx skaidrumą." + +#: searx/templates/oscar/preferences.html:269 +msgid "Cookie name" +msgstr "Slapuko pavadinimas" + +#: searx/templates/oscar/preferences.html:270 +msgid "Value" +msgstr "Reikšmė" + +#: searx/templates/oscar/preferences.html:289 +msgid "Search URL of the currently saved preferences" +msgstr "Šiuo metu įrašytų nuostatų paieškos URL" + +#: searx/templates/oscar/preferences.html:289 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." +msgstr "Pastaba: paieškos URL adrese nurodant tinkintus nustatymus, gali būti sumažintas jūsų privatumas, atskleidžiant duomenis toms rezultatų svetainėms, ant kurių spustelėjate." + +#: searx/templates/oscar/results.html:17 +msgid "Search results" +msgstr "Paieškos rezultatai" + +#: searx/templates/oscar/results.html:21 +#: searx/templates/simple/results.html:84 +msgid "Try searching for:" +msgstr "Bandykite ieškoti:" + +#: searx/templates/oscar/results.html:100 +#: searx/templates/simple/results.html:25 +msgid "Engines cannot retrieve results" +msgstr "Sistemos negali gauti rezultatų" + +#: searx/templates/oscar/results.html:131 +msgid "Links" +msgstr "Nuorodos" + +#: searx/templates/oscar/search.html:8 +#: searx/templates/oscar/search_full.html:11 +#: searx/templates/simple/search.html:5 +msgid "Start search" +msgstr "Pradėti paiešką" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "statistika" + +#: searx/templates/oscar/time-range.html:3 +#: searx/templates/simple/time-range.html:3 +msgid "Anytime" +msgstr "Bet kada" + +#: searx/templates/oscar/time-range.html:6 +#: searx/templates/simple/time-range.html:6 +msgid "Last day" +msgstr "Praeitą dieną" + +#: searx/templates/oscar/time-range.html:9 +#: searx/templates/simple/time-range.html:9 +msgid "Last week" +msgstr "Praeitą savaitę" + +#: searx/templates/oscar/time-range.html:12 +#: searx/templates/simple/time-range.html:12 +msgid "Last month" +msgstr "Praeitą mėnesį" + +#: searx/templates/oscar/time-range.html:15 +#: searx/templates/simple/time-range.html:15 +msgid "Last year" +msgstr "Praeitais metais" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "Dėmesio!" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "Atrodo, kad pirmą kartą naudojate searx." + +#: searx/templates/oscar/messages/no_cookies.html:3 +msgid "Information!" +msgstr "Informacija!" + +#: searx/templates/oscar/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "Šiuo metu nėra jokių apibrėžtų slapukų." + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "Šiuo metu nėra jokių prieinamų duomenų." + +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +msgid "Engines cannot retrieve results." +msgstr "Sistemos negali gauti rezultatų." + +#: searx/templates/oscar/messages/no_results.html:10 +#: searx/templates/simple/messages/no_results.html:10 +msgid "Please, try again later or find another searx instance." +msgstr "Vėliau bandykite dar kartą arba raskite kitą searx egzempliorių." + +#: searx/templates/oscar/messages/no_results.html:14 +#: searx/templates/simple/messages/no_results.html:14 +msgid "Sorry!" +msgstr "Atleiskite!" + +#: searx/templates/oscar/messages/no_results.html:15 +#: searx/templates/simple/messages/no_results.html:15 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "Mes neradome jokių rezultatų. Naudokite kitokią užklausą arba ieškokite kitose kategorijose." + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "Gerai padirbėta!" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "Nustatymai sėkmingai įrašyti." + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "O, ne!" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "Kažkas nutiko." + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "show media" +msgstr "rodyti mediją" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "hide media" +msgstr "slėpti mediją" + +#: searx/templates/oscar/result_templates/images.html:30 +msgid "Get image" +msgstr "Gauti paveikslą" + +#: searx/templates/oscar/result_templates/images.html:33 +msgid "View source" +msgstr "Rodyti šaltinį" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "show map" +msgstr "rodyti žemėlapį" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "hide map" +msgstr "slėpti žemėlapį" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "show details" +msgstr "rodyti informaciją" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "hide details" +msgstr "slėpti informaciją" + +#: searx/templates/oscar/result_templates/torrent.html:7 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "Failo dydis" + +#: searx/templates/oscar/result_templates/torrent.html:9 +#: searx/templates/simple/result_templates/torrent.html:12 +msgid "Bytes" +msgstr "Baitai" + +#: searx/templates/oscar/result_templates/torrent.html:10 +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "kiB" +msgstr "kiB" + +#: searx/templates/oscar/result_templates/torrent.html:11 +#: searx/templates/simple/result_templates/torrent.html:14 +msgid "MiB" +msgstr "MiB" + +#: searx/templates/oscar/result_templates/torrent.html:12 +#: searx/templates/simple/result_templates/torrent.html:15 +msgid "GiB" +msgstr "GiB" + +#: searx/templates/oscar/result_templates/torrent.html:13 +#: searx/templates/simple/result_templates/torrent.html:16 +msgid "TiB" +msgstr "TiB" + +#: searx/templates/oscar/result_templates/torrent.html:15 +#: searx/templates/simple/result_templates/torrent.html:20 +msgid "Number of Files" +msgstr "Failų skaičius" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "rodyti vaizdo įrašą" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "slėpti vaizdo įrašą" + +#: searx/templates/pix-art/results.html:28 +msgid "Load more..." +msgstr "Įkelti daugiau..." + +#: searx/templates/simple/base.html:31 +msgid "No item found" +msgstr "Elementų nerasta" + +#: searx/templates/simple/preferences.html:89 +msgid "Supports selected language" +msgstr "Palaiko pasirinktą kalbą" + +#: searx/templates/simple/preferences.html:118 +msgid "User interface" +msgstr "Naudotojo sąsaja" + +#: searx/templates/simple/preferences.html:154 +msgid "Privacy" +msgstr "Privatumas" diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo index 057853be..55f7230b 100644 Binary files a/searx/translations/nl/LC_MESSAGES/messages.mo and b/searx/translations/nl/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po index b4e06140..be2438b8 100644 --- a/searx/translations/nl/LC_MESSAGES/messages.po +++ b/searx/translations/nl/LC_MESSAGES/messages.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-09-22 06:46+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-04-27 08:22+0000\n" "Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/asciimoo/searx/language/nl/)\n" "MIME-Version: 1.0\n" @@ -33,63 +33,63 @@ msgstr "aanvraaguitzondering" msgid "unexpected crash" msgstr "onverwachte crash" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "bestanden" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "algemeen" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "muziek" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociale media" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "afbeeldingen" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "video’s" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "nieuws" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "kaart" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "wetenschap" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ongeldige instellingen, werk je voorkeuren bij" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ongeldige instellingen" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "zoekfout" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} min geleden" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} uur, {minutes} min geleden" @@ -109,29 +109,28 @@ msgstr "Statistische functies" msgid "Compute {functions} of the arguments" msgstr "Bereken {functions} van de argumenten" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Snelheid zoekmachine (sec)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Laden van pagina’s (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Aantal zoekresultaten" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Scores" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Scores per zoekresultaat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fouten" @@ -143,9 +142,15 @@ msgstr "{title} (VEROUDERD)" msgid "This entry has been superseded by" msgstr "Dit object is vervangen door" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Voor deze publicatie is geen abstract beschikbaar." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI herschrijven" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +164,6 @@ msgstr "Oneindig scrollen" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Volgende pagina automatisch laden bij bereiken van de onderkant van de huidige pagina" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI herschrijven" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +326,8 @@ msgstr "Methode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +399,8 @@ msgstr "Momenteel gebruikte zoekmachines" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +415,8 @@ msgstr "Categorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +434,7 @@ msgstr "Blokkeren" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +444,7 @@ msgstr "Deze instellingen worden bewaard in je cookies. Hierdoor hoeven wij niet #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +454,7 @@ msgstr "Deze cookies zijn alleen voor je eigen gemak, we gebruiken deze cookies #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +462,14 @@ msgstr "bewaren" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Standaardinstellingen herstellen" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +640,23 @@ msgid "General" msgstr "Algemeen" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Zoekmachines" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plug-ins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Beantwoorders" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -712,88 +707,78 @@ msgstr "Kies een stijl voor dit thema" msgid "Style" msgstr "Stijl" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI herschrijven" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Doorverwijzen naar vrij toegankelijke versies van publicaties, indien beschikbaar (plug-in vereist)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Snelkoppeling" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Geselecteerde taal" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Tijdspanne" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Gem. duur" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Max. duur" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Dit is het overzicht van de instantantwoordmodules van searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Naam" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Kernwoorden" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Beschrijving" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Voorbeelden" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Dit is de lijst van cookies en hun waarden die searx op je computer opslaat." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Met deze lijst kan je de openheid van searx beoordelen." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookienaam" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Waarde" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Zoek-URL van de huidig opgeslagen voorkeuren" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.mo b/searx/translations/nl_BE/LC_MESSAGES/messages.mo index e233f5c8..e37b9e27 100644 Binary files a/searx/translations/nl_BE/LC_MESSAGES/messages.mo and b/searx/translations/nl_BE/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.po b/searx/translations/nl_BE/LC_MESSAGES/messages.po index c4ef0228..21fa68cf 100644 --- a/searx/translations/nl_BE/LC_MESSAGES/messages.po +++ b/searx/translations/nl_BE/LC_MESSAGES/messages.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# Nathan Follens, 2018 +# Nathan Follens, 2018-2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-06-24 07:59+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 19:47+0000\n" "Last-Translator: Nathan Follens\n" "Language-Team: Dutch (Belgium) (http://www.transifex.com/asciimoo/searx/language/nl_BE/)\n" "MIME-Version: 1.0\n" @@ -31,63 +31,63 @@ msgstr "aanvraaguitzondering" msgid "unexpected crash" msgstr "onverwachte crash" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "bestanden" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "algemeen" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "muziek" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociale media" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "afbeeldingen" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "video’s" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "nieuws" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "kaart" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "wetenschap" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ongeldige instellingen, werkt uw voorkeuren bij" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ongeldige instellingen" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "zoekfout" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} min geleden" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} uur, {minutes} min geleden" @@ -107,29 +107,28 @@ msgstr "Statistische functies" msgid "Compute {functions} of the arguments" msgstr "Berekent {functions} van de argumenten" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Snelheid zoekmachien (sec)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Laden van pagina’s (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Aantal zoekresultaten" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Scores" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Scores per zoekresultaat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fouten" @@ -141,9 +140,15 @@ msgstr "{title} (VEROUDERD)" msgid "This entry has been superseded by" msgstr "Dit object is vervangen door" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Voor deze publicatie is geen abstract beschikbaar." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI herschrijven" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Omzeilt betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Oneindig scrollen" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Volgende pagina automatisch laden bij bereiken van den onderkant van de huidige pagina" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI herschrijven" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Omzeilt betaalmuren met een doorverwijzing naar vrij toegankelijke versies van publicaties indien beschikbaar" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Methode" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Momenteel gebruikte zoekmachienen" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Categorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Blokkeren" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Deze instellingen worden bewaard in uw cookies. Hierdoor hoeven wij niks #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Deze cookies zijn alleen voor uw eigen gemak, we gebruiken deze cookies #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "opslaan" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Standaardinstellingen herstellen" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Algemeen" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Zoekmachienen" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Plug-ins" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Beantwoorders" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -710,88 +705,78 @@ msgstr "Kiest ne stijl voor dit thema" msgid "Style" msgstr "Stijl" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI herschrijven" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Doorverwijzen naar vrij toegankelijke versies van publicaties, indien beschikbaar (plug-in vereist)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Snelkoppeling" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Geselecteerde taal" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Tijdspanne" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Gem. duur" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Max. duur" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Dit is het overzicht van de instantantwoordmodules van searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Naam" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Kernwoorden" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Beschrijving" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Voorbeelden" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Dit is de lijst van cookies en hun waarden die searx op uwe computer opslaat." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Met deze lijst kunt ge de openheid van searx beoordelen." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookienaam" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Waarde" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Zoek-URL van de momenteel opgeslagen voorkeuren" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/oc/LC_MESSAGES/messages.mo b/searx/translations/oc/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..a9519a67 Binary files /dev/null and b/searx/translations/oc/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/oc/LC_MESSAGES/messages.po b/searx/translations/oc/LC_MESSAGES/messages.po new file mode 100644 index 00000000..40434393 --- /dev/null +++ b/searx/translations/oc/LC_MESSAGES/messages.po @@ -0,0 +1,999 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Quentin, 2016,2018 +# Marc Abonce Seguin, 2019 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-04-12 23:05+0000\n" +"Last-Translator: Marc Abonce Seguin\n" +"Language-Team: Occitan (post 1500) (http://www.transifex.com/asciimoo/searx/language/oc/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Language: oc\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: searx/search.py:137 searx/search.py:182 +msgid "timeout" +msgstr "relambi passat" + +#: searx/search.py:144 +msgid "request exception" +msgstr "excepcion de requèsta" + +#: searx/search.py:151 +msgid "unexpected crash" +msgstr "fracàs pas previst" + +#: searx/webapp.py:135 +msgid "files" +msgstr "fichièrs" + +#: searx/webapp.py:136 +msgid "general" +msgstr "general" + +#: searx/webapp.py:137 +msgid "music" +msgstr "musica" + +#: searx/webapp.py:138 +msgid "social media" +msgstr "mèdias socials" + +#: searx/webapp.py:139 +msgid "images" +msgstr "imatges" + +#: searx/webapp.py:140 +msgid "videos" +msgstr "vidèos" + +#: searx/webapp.py:141 +msgid "it" +msgstr "tecnologia" + +#: searx/webapp.py:142 +msgid "news" +msgstr "actualitat" + +#: searx/webapp.py:143 +msgid "map" +msgstr "mapa" + +#: searx/webapp.py:144 +msgid "science" +msgstr "sciéncia" + +#: searx/webapp.py:398 searx/webapp.py:653 +msgid "Invalid settings, please edit your preferences" +msgstr "Paramètre pas valide, mercés de modificar vòstras preferéncias" + +#: searx/webapp.py:410 +msgid "Invalid settings" +msgstr "Paramètres invalids" + +#: searx/webapp.py:444 searx/webapp.py:488 +msgid "search error" +msgstr "error de recèrca" + +#: searx/webapp.py:525 +msgid "{minutes} minute(s) ago" +msgstr "fa {minutes} minuta(s)" + +#: searx/webapp.py:527 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "Fa {hours} ora(s), {minutes} minuta(s)" + +#: searx/answerers/random/answerer.py:53 +msgid "Random value generator" +msgstr "Generator aleatòri" + +#: searx/answerers/random/answerer.py:54 +msgid "Generate different random values" +msgstr "Crèa de valors aleatòrias diferentas" + +#: searx/answerers/statistics/answerer.py:53 +msgid "Statistics functions" +msgstr "Foncions estatisticas" + +#: searx/answerers/statistics/answerer.py:54 +msgid "Compute {functions} of the arguments" +msgstr "Calcula las {functions} dels arguments" + +#: searx/engines/__init__.py:194 +msgid "Engine time (sec)" +msgstr "Temps del motor (sec)" + +#: searx/engines/__init__.py:198 +msgid "Page loads (sec)" +msgstr "Pagina cargada en (sec) segondas" + +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 +#: searx/templates/simple/results.html:20 +msgid "Number of results" +msgstr "Nombre de resultats" + +#: searx/engines/__init__.py:206 +msgid "Scores" +msgstr "Marcas" + +#: searx/engines/__init__.py:210 +msgid "Scores per result" +msgstr "Marcas per resultat" + +#: searx/engines/__init__.py:214 +msgid "Errors" +msgstr "Errors" + +#: searx/engines/pdbe.py:87 +msgid "{title} (OBSOLETE)" +msgstr "{titre} (OBSOLETE)" + +#: searx/engines/pdbe.py:91 +msgid "This entry has been superseded by" +msgstr "Aqueste element es estat remplaçat per" + +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Reescritura DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evitar las paginas de pagament ne virant sus la version en accès liure quand es disponibla" + +#: searx/plugins/https_rewrite.py:32 +msgid "Rewrite HTTP links to HTTPS if possible" +msgstr "Reescritura de los ligam HTTP en HTTPS s'es possible." + +#: searx/plugins/infinite_scroll.py:3 +msgid "Infinite scroll" +msgstr "Desfilament sens fin" + +#: searx/plugins/infinite_scroll.py:4 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "Carga automaticament la pagina seguenta quand arribatz en fin de pagina" + +#: searx/plugins/open_results_on_new_tab.py:18 +#: searx/templates/oscar/preferences.html:114 +#: searx/templates/simple/preferences.html:149 +msgid "Open result links on new browser tabs" +msgstr "Dubrir los ligams de resultats dins un nòu onglet" + +#: searx/plugins/open_results_on_new_tab.py:19 +msgid "" +"Results are opened in the same window by default. This plugin overwrites the" +" default behaviour to open links on new tabs/windows. (JavaScript required)" +msgstr "Los resultats son dobèrts dins una nòva fenestra per defaut. Aquesta extension càmbia lo comportement per defaut per dobrir los ligams dins de nòus onglets o fenestras (Javascript es necessari)" + +#: searx/plugins/search_on_category_select.py:18 +msgid "Search on category select" +msgstr "Cercar dins la categoria causida" + +#: searx/plugins/search_on_category_select.py:19 +msgid "" +"Perform search immediately if a category selected. Disable to select " +"multiple categories. (JavaScript required)" +msgstr "Lança la recèrca sul còp se una categoria es seleccionada. Desactivar per seleccionar mai d'una categoria (Javascript necessari)." + +#: searx/plugins/self_info.py:20 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." +msgstr "Aficha vòstre adreça IP se la demanda es \"ip\", e aficha vòstre user-agent se la demanda conten \"user agent\"." + +#: searx/plugins/tracker_url_remover.py:26 +msgid "Tracker URL remover" +msgstr "Netejador d'URL de traçat" + +#: searx/plugins/tracker_url_remover.py:27 +msgid "Remove trackers arguments from the returned URL" +msgstr "Lèva los arguments de las URL utilizats per vos traçar" + +#: searx/plugins/vim_hotkeys.py:3 +msgid "Vim-like hotkeys" +msgstr "Acorchis coma Vim" + +#: searx/plugins/vim_hotkeys.py:4 +msgid "" +"Navigate search results with Vim-like hotkeys (JavaScript required). Press " +"\"h\" key on main or result page to get help." +msgstr "Percorrètz los resultats de recèrca amb d'acorchis clavièr coma sus Vim (Javascript necessari). Picatz sus \"h\" dins la fenestra principala de resultats per afichar l'ajuda." + +#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 +#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "Pagina pas trobada" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "Anar a %(search_page)s." + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "cercar dins la pagina" + +#: searx/templates/courgette/index.html:9 +#: searx/templates/courgette/index.html:13 +#: searx/templates/courgette/results.html:5 +#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12 +#: searx/templates/oscar/navbar.html:7 +#: searx/templates/oscar/preferences.html:3 +#: searx/templates/pix-art/index.html:8 +msgid "preferences" +msgstr "preferéncias" + +#: searx/templates/courgette/index.html:11 +#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2 +#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7 +msgid "about" +msgstr "a prepaus" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/legacy/preferences.html:5 +#: searx/templates/oscar/preferences.html:8 +#: searx/templates/pix-art/preferences.html:5 +#: searx/templates/simple/preferences.html:26 +msgid "Preferences" +msgstr "Preferéncias" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/legacy/preferences.html:9 +#: searx/templates/oscar/preferences.html:33 +#: searx/templates/oscar/preferences.html:35 +#: searx/templates/simple/preferences.html:34 +msgid "Default categories" +msgstr "Categoria per defaut" + +#: searx/templates/courgette/preferences.html:13 +#: searx/templates/legacy/preferences.html:14 +#: searx/templates/oscar/preferences.html:41 +#: searx/templates/pix-art/preferences.html:9 +#: searx/templates/simple/preferences.html:39 +#: searx/templates/simple/preferences.html:163 +msgid "Search language" +msgstr "Lenga de recerca" + +#: searx/templates/courgette/preferences.html:16 +#: searx/templates/legacy/preferences.html:17 +#: searx/templates/oscar/languages.html:6 +#: searx/templates/pix-art/preferences.html:12 +#: searx/templates/simple/languages.html:2 +#: searx/templates/simple/preferences.html:42 +msgid "Default language" +msgstr "Lenga per defaut" + +#: searx/templates/courgette/preferences.html:24 +#: searx/templates/legacy/preferences.html:25 +#: searx/templates/oscar/preferences.html:47 +#: searx/templates/pix-art/preferences.html:20 +#: searx/templates/simple/preferences.html:120 +msgid "Interface language" +msgstr "Lenga de l'interfàcia" + +#: searx/templates/courgette/preferences.html:34 +#: searx/templates/legacy/preferences.html:35 +#: searx/templates/oscar/preferences.html:57 +#: searx/templates/simple/preferences.html:51 +msgid "Autocomplete" +msgstr "Autocompletar" + +#: searx/templates/courgette/preferences.html:45 +#: searx/templates/legacy/preferences.html:46 +#: searx/templates/oscar/preferences.html:68 +#: searx/templates/simple/preferences.html:166 +msgid "Image proxy" +msgstr "Proxy pels imatges" + +#: searx/templates/courgette/preferences.html:48 +#: searx/templates/legacy/preferences.html:49 +#: searx/templates/oscar/preferences.html:72 +#: searx/templates/simple/preferences.html:169 +msgid "Enabled" +msgstr "Activat" + +#: searx/templates/courgette/preferences.html:49 +#: searx/templates/legacy/preferences.html:50 +#: searx/templates/oscar/preferences.html:73 +#: searx/templates/simple/preferences.html:170 +msgid "Disabled" +msgstr "Desactivat" + +#: searx/templates/courgette/preferences.html:54 +#: searx/templates/legacy/preferences.html:55 +#: searx/templates/oscar/preferences.html:77 +#: searx/templates/pix-art/preferences.html:30 +#: searx/templates/simple/preferences.html:156 +msgid "Method" +msgstr "Metòde" + +#: searx/templates/courgette/preferences.html:63 +#: searx/templates/legacy/preferences.html:64 +#: searx/templates/oscar/preferences.html:86 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 +#: searx/templates/simple/preferences.html:63 +#: searx/templates/simple/preferences.html:90 +msgid "SafeSearch" +msgstr "Recèrca segurizada" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/legacy/preferences.html:67 +#: searx/templates/oscar/preferences.html:90 +#: searx/templates/simple/preferences.html:66 +msgid "Strict" +msgstr "Estricte" + +#: searx/templates/courgette/preferences.html:67 +#: searx/templates/legacy/preferences.html:68 +#: searx/templates/oscar/preferences.html:91 +#: searx/templates/simple/preferences.html:67 +msgid "Moderate" +msgstr "Moderat" + +#: searx/templates/courgette/preferences.html:68 +#: searx/templates/legacy/preferences.html:69 +#: searx/templates/oscar/preferences.html:92 +#: searx/templates/simple/preferences.html:68 +msgid "None" +msgstr "Cap" + +#: searx/templates/courgette/preferences.html:73 +#: searx/templates/legacy/preferences.html:74 +#: searx/templates/oscar/preferences.html:96 +#: searx/templates/pix-art/preferences.html:39 +#: searx/templates/simple/preferences.html:131 +msgid "Themes" +msgstr "Tèmas" + +#: searx/templates/courgette/preferences.html:83 +msgid "Color" +msgstr "Color" + +#: searx/templates/courgette/preferences.html:86 +msgid "Blue (default)" +msgstr "Blau (defaut)" + +#: searx/templates/courgette/preferences.html:87 +msgid "Violet" +msgstr "Violet" + +#: searx/templates/courgette/preferences.html:88 +msgid "Green" +msgstr "Verd" + +#: searx/templates/courgette/preferences.html:89 +msgid "Cyan" +msgstr "Blau" + +#: searx/templates/courgette/preferences.html:90 +msgid "Orange" +msgstr "Irange" + +#: searx/templates/courgette/preferences.html:91 +msgid "Red" +msgstr "Roge" + +#: searx/templates/courgette/preferences.html:96 +#: searx/templates/legacy/preferences.html:93 +#: searx/templates/pix-art/preferences.html:49 +#: searx/templates/simple/preferences.html:77 +msgid "Currently used search engines" +msgstr "Motors de recèrca utilizat actualament" + +#: searx/templates/courgette/preferences.html:100 +#: searx/templates/legacy/preferences.html:97 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 +#: searx/templates/pix-art/preferences.html:53 +#: searx/templates/simple/preferences.html:87 +msgid "Engine name" +msgstr "Nom del motor de cerca" + +#: searx/templates/courgette/preferences.html:101 +#: searx/templates/legacy/preferences.html:98 +msgid "Category" +msgstr "Categoria" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:113 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:110 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:64 +#: searx/templates/simple/preferences.html:86 +msgid "Allow" +msgstr "Autorizar" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:114 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:111 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:65 +msgid "Block" +msgstr "Blocar" + +#: searx/templates/courgette/preferences.html:122 +#: searx/templates/legacy/preferences.html:119 +#: searx/templates/oscar/preferences.html:285 +#: searx/templates/pix-art/preferences.html:73 +#: searx/templates/simple/preferences.html:180 +msgid "" +"These settings are stored in your cookies, this allows us not to store this " +"data about you." +msgstr "Aquestes paramètres son gardats dins vòstres cookies : aquò nos permet pas de collectar vòstras donadas." + +#: searx/templates/courgette/preferences.html:124 +#: searx/templates/legacy/preferences.html:121 +#: searx/templates/oscar/preferences.html:287 +#: searx/templates/pix-art/preferences.html:75 +#: searx/templates/simple/preferences.html:182 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "Aquestes cookies existon per vòstre confòrt d'utilizacion, los empleguem pas per vos espiar." + +#: searx/templates/courgette/preferences.html:127 +#: searx/templates/legacy/preferences.html:124 +#: searx/templates/oscar/preferences.html:293 +#: searx/templates/pix-art/preferences.html:78 +#: searx/templates/simple/preferences.html:185 +msgid "save" +msgstr "enregistrar" + +#: searx/templates/courgette/preferences.html:128 +#: searx/templates/legacy/preferences.html:125 +#: searx/templates/oscar/preferences.html:295 +#: searx/templates/simple/preferences.html:186 +msgid "Reset defaults" +msgstr "Reïnicializar per defaut" + +#: searx/templates/courgette/preferences.html:129 +#: searx/templates/legacy/preferences.html:126 +#: searx/templates/oscar/preferences.html:294 +#: searx/templates/pix-art/preferences.html:79 +#: searx/templates/simple/preferences.html:187 +msgid "back" +msgstr "tornar" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/legacy/results.html:13 +#: searx/templates/oscar/results.html:136 +#: searx/templates/simple/results.html:58 +msgid "Search URL" +msgstr "URL de recèrca" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/legacy/results.html:17 +#: searx/templates/oscar/results.html:141 +#: searx/templates/simple/results.html:62 +msgid "Download results" +msgstr "Telecargar los resultats" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/legacy/results.html:35 +#: searx/templates/simple/results.html:10 +msgid "Answers" +msgstr "Responsas" + +#: searx/templates/courgette/results.html:42 +#: searx/templates/legacy/results.html:43 +#: searx/templates/oscar/results.html:116 +#: searx/templates/simple/results.html:42 +msgid "Suggestions" +msgstr "Suggestions" + +#: searx/templates/courgette/results.html:70 +#: searx/templates/legacy/results.html:81 +#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78 +#: searx/templates/simple/results.html:130 +msgid "previous page" +msgstr "pagina precedenta" + +#: searx/templates/courgette/results.html:81 +#: searx/templates/legacy/results.html:92 +#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84 +#: searx/templates/simple/results.html:145 +msgid "next page" +msgstr "pagina seguenta" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6 +#: searx/templates/oscar/search_full.html:9 +#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4 +msgid "Search for..." +msgstr "Cerca per..." + +#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4 +#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4 +#: searx/templates/simple/stats.html:7 +msgid "Engine stats" +msgstr "Estatistica del motor" + +#: searx/templates/courgette/result_templates/images.html:4 +#: searx/templates/legacy/result_templates/images.html:4 +#: searx/templates/pix-art/result_templates/images.html:4 +msgid "original context" +msgstr "contèxte d'origina" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "Fonts" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "Telecargaires" + +#: searx/templates/courgette/result_templates/torrent.html:9 +#: searx/templates/legacy/result_templates/torrent.html:9 +#: searx/templates/oscar/macros.html:23 +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "ligam magnet" + +#: searx/templates/courgette/result_templates/torrent.html:10 +#: searx/templates/legacy/result_templates/torrent.html:10 +#: searx/templates/oscar/macros.html:24 +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "fichièr torrent" + +#: searx/templates/legacy/categories.html:8 +#: searx/templates/simple/categories.html:6 +msgid "Click on the magnifier to perform search" +msgstr "Clicatz sus la lópia per lançar una recèrca" + +#: searx/templates/legacy/preferences.html:84 +#: searx/templates/oscar/preferences.html:113 +#: searx/templates/simple/preferences.html:142 +msgid "Results on new tabs" +msgstr "Resultat dins de nòus onglets" + +#: searx/templates/legacy/preferences.html:87 +#: searx/templates/oscar/preferences.html:117 +#: searx/templates/simple/preferences.html:145 +msgid "On" +msgstr "Òc" + +#: searx/templates/legacy/preferences.html:88 +#: searx/templates/oscar/preferences.html:118 +#: searx/templates/simple/preferences.html:146 +msgid "Off" +msgstr "Non" + +#: searx/templates/legacy/result_templates/code.html:3 +#: searx/templates/legacy/result_templates/default.html:3 +#: searx/templates/legacy/result_templates/map.html:9 +#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48 +#: searx/templates/simple/macros.html:43 +msgid "cached" +msgstr "en version locala" + +#: searx/templates/oscar/advanced.html:4 +msgid "Advanced settings" +msgstr "Paramètres avançats" + +#: searx/templates/oscar/base.html:62 +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "Tampar" + +#: searx/templates/oscar/base.html:64 +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +#: searx/templates/simple/results.html:25 +msgid "Error!" +msgstr "Error !" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "Powered by" +msgstr "Propulsat per" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "un meta-motor de recèrca hackable e respectuós de la vida privada" + +#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50 +#: searx/templates/simple/macros.html:43 +msgid "proxied" +msgstr "proxifiat" + +#: searx/templates/oscar/macros.html:92 +msgid "supported" +msgstr "compatible" + +#: searx/templates/oscar/macros.html:96 +msgid "not supported" +msgstr "pas compatible" + +#: searx/templates/oscar/preferences.html:13 +#: searx/templates/oscar/preferences.html:22 +#: searx/templates/simple/preferences.html:32 +msgid "General" +msgstr "General" + +#: searx/templates/oscar/preferences.html:14 +#: searx/templates/oscar/preferences.html:134 +#: searx/templates/simple/preferences.html:76 +msgid "Engines" +msgstr "Motors de cerca" + +#: searx/templates/oscar/preferences.html:15 +#: searx/templates/oscar/preferences.html:207 +msgid "Plugins" +msgstr "Extensions" + +#: searx/templates/oscar/preferences.html:16 +#: searx/templates/oscar/preferences.html:233 +msgid "Answerers" +msgstr "Respondaires" + +#: searx/templates/oscar/preferences.html:17 +#: searx/templates/oscar/preferences.html:260 +msgid "Cookies" +msgstr "Cookies" + +#: searx/templates/oscar/preferences.html:42 +#: searx/templates/simple/preferences.html:48 +msgid "What language do you prefer for search?" +msgstr "Dins quina lenga vos agrada mai cercar ?" + +#: searx/templates/oscar/preferences.html:48 +#: searx/templates/simple/preferences.html:128 +msgid "Change the language of the layout" +msgstr "Cambiar la lenga de l'interfàcia" + +#: searx/templates/oscar/preferences.html:58 +#: searx/templates/simple/preferences.html:60 +msgid "Find stuff as you type" +msgstr "Trobar de causas pendent que picatz" + +#: searx/templates/oscar/preferences.html:69 +#: searx/templates/simple/preferences.html:173 +msgid "Proxying image results through searx" +msgstr "Proxifiar los imatges de resultats a travers searx" + +#: searx/templates/oscar/preferences.html:78 +msgid "" +"Change how forms are submited, learn more about request methods" +msgstr "Permet de causir cossí la recèrca es mandada, per ne saber mai suls metòdes HTTP" + +#: searx/templates/oscar/preferences.html:87 +#: searx/templates/simple/preferences.html:71 +msgid "Filter content" +msgstr "Filtrar lo contengut" + +#: searx/templates/oscar/preferences.html:97 +#: searx/templates/simple/preferences.html:139 +msgid "Change searx layout" +msgstr "Cambiar l'interfàcia de searx" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Choose style for this theme" +msgstr "Causir un estil per aqueste tèma" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Style" +msgstr "Estil" + +#: searx/templates/oscar/preferences.html:151 +#: searx/templates/oscar/preferences.html:163 +#: searx/templates/simple/preferences.html:88 +msgid "Shortcut" +msgstr "Acorchis" + +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 +msgid "Selected language" +msgstr "Seleccionatz una lenga" + +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 +#: searx/templates/simple/preferences.html:91 +msgid "Time range" +msgstr "Espaci temporal" + +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 +#: searx/templates/simple/preferences.html:92 +msgid "Avg. time" +msgstr "Temps mejan" + +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 +#: searx/templates/simple/preferences.html:93 +msgid "Max time" +msgstr "Temps max" + +#: searx/templates/oscar/preferences.html:236 +msgid "This is the list of searx's instant answering modules." +msgstr "Vaquí la lista dels module de searx que dònan de responsa instantanèas." + +#: searx/templates/oscar/preferences.html:240 +msgid "Name" +msgstr "Nom" + +#: searx/templates/oscar/preferences.html:241 +msgid "Keywords" +msgstr "Mots claus" + +#: searx/templates/oscar/preferences.html:242 +msgid "Description" +msgstr "Descripcion" + +#: searx/templates/oscar/preferences.html:243 +msgid "Examples" +msgstr "Exemples" + +#: searx/templates/oscar/preferences.html:263 +msgid "" +"This is the list of cookies and their values searx is storing on your " +"computer." +msgstr "S'agís de la lista dels cookies e de lors valors que searx enregistra sus vòstre ordinador." + +#: searx/templates/oscar/preferences.html:264 +msgid "With that list, you can assess searx transparency." +msgstr "Amb aquesta lista, podètz jutjar de la transparéncia de searx." + +#: searx/templates/oscar/preferences.html:269 +msgid "Cookie name" +msgstr "Nom del cookie" + +#: searx/templates/oscar/preferences.html:270 +msgid "Value" +msgstr "Valor" + +#: searx/templates/oscar/preferences.html:289 +msgid "Search URL of the currently saved preferences" +msgstr "URL de recèrca actuala dels paramètres enregistrats" + +#: searx/templates/oscar/preferences.html:289 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." +msgstr "Nòta : especificar de paramètres personalizats en l’URL pòt reduire la privacitat en revelar de donadas als sites de resultat clicats." + +#: searx/templates/oscar/results.html:17 +msgid "Search results" +msgstr "Resultats de la recerca" + +#: searx/templates/oscar/results.html:21 +#: searx/templates/simple/results.html:84 +msgid "Try searching for:" +msgstr "Ensajatz de cercar :" + +#: searx/templates/oscar/results.html:100 +#: searx/templates/simple/results.html:25 +msgid "Engines cannot retrieve results" +msgstr "Los cercadors pòdons pas recuperar los resultats" + +#: searx/templates/oscar/results.html:131 +msgid "Links" +msgstr "Ligams" + +#: searx/templates/oscar/search.html:8 +#: searx/templates/oscar/search_full.html:11 +#: searx/templates/simple/search.html:5 +msgid "Start search" +msgstr "Començar de cercar" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "estatisticas" + +#: searx/templates/oscar/time-range.html:3 +#: searx/templates/simple/time-range.html:3 +msgid "Anytime" +msgstr "Impòrta pas quand" + +#: searx/templates/oscar/time-range.html:6 +#: searx/templates/simple/time-range.html:6 +msgid "Last day" +msgstr "Ièr" + +#: searx/templates/oscar/time-range.html:9 +#: searx/templates/simple/time-range.html:9 +msgid "Last week" +msgstr "La setmana passada" + +#: searx/templates/oscar/time-range.html:12 +#: searx/templates/simple/time-range.html:12 +msgid "Last month" +msgstr "Lo mes passat" + +#: searx/templates/oscar/time-range.html:15 +#: searx/templates/simple/time-range.html:15 +msgid "Last year" +msgstr "L'an passat" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "Astúcia !" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "Sembla qu'utilizatz searx pel primièr còp." + +#: searx/templates/oscar/messages/no_cookies.html:3 +msgid "Information!" +msgstr "Informacion !" + +#: searx/templates/oscar/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "pel moment i a pas cap de cookie definit" + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "Pel moment i a pas cap de donada disponibla." + +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +msgid "Engines cannot retrieve results." +msgstr "Los cercadors pòdons pas recuperar los resultats." + +#: searx/templates/oscar/messages/no_results.html:10 +#: searx/templates/simple/messages/no_results.html:10 +msgid "Please, try again later or find another searx instance." +msgstr "Mercés de tornar ensajar o de trobar una instància searx mai" + +#: searx/templates/oscar/messages/no_results.html:14 +#: searx/templates/simple/messages/no_results.html:14 +msgid "Sorry!" +msgstr "O planhèm !" + +#: searx/templates/oscar/messages/no_results.html:15 +#: searx/templates/simple/messages/no_results.html:15 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "avèm pas trobat cap de resultat. Mercés d'utilizar une autre mot clau o de cercar dins autras categorias." + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "Òsca !" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "Paramètres salvagardats amb succès." + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "Bondu!" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "Quicòm a fracassat." + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "show media" +msgstr "mostrar mèdias" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "hide media" +msgstr "escondre mèdias" + +#: searx/templates/oscar/result_templates/images.html:30 +msgid "Get image" +msgstr "Obténer l'imatge" + +#: searx/templates/oscar/result_templates/images.html:33 +msgid "View source" +msgstr "Veire font" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "show map" +msgstr "mostrar la mapa" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "hide map" +msgstr "escondre la mapa" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "show details" +msgstr "mostrar detalhs" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "hide details" +msgstr "escondre detalhs" + +#: searx/templates/oscar/result_templates/torrent.html:7 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "Talha del fichièr" + +#: searx/templates/oscar/result_templates/torrent.html:9 +#: searx/templates/simple/result_templates/torrent.html:12 +msgid "Bytes" +msgstr "octets" + +#: searx/templates/oscar/result_templates/torrent.html:10 +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "kiB" +msgstr "kiO" + +#: searx/templates/oscar/result_templates/torrent.html:11 +#: searx/templates/simple/result_templates/torrent.html:14 +msgid "MiB" +msgstr "MiO" + +#: searx/templates/oscar/result_templates/torrent.html:12 +#: searx/templates/simple/result_templates/torrent.html:15 +msgid "GiB" +msgstr "GiO" + +#: searx/templates/oscar/result_templates/torrent.html:13 +#: searx/templates/simple/result_templates/torrent.html:16 +msgid "TiB" +msgstr "TiO" + +#: searx/templates/oscar/result_templates/torrent.html:15 +#: searx/templates/simple/result_templates/torrent.html:20 +msgid "Number of Files" +msgstr "Nombre de fichièrs" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "mostrar la vidèo" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "escondre la vidèo" + +#: searx/templates/pix-art/results.html:28 +msgid "Load more..." +msgstr "Ne cargar mai..." + +#: searx/templates/simple/base.html:31 +msgid "No item found" +msgstr "Cap d’element pas trobat" + +#: searx/templates/simple/preferences.html:89 +msgid "Supports selected language" +msgstr "Compatible amb las lengas seleccionadas" + +#: searx/templates/simple/preferences.html:118 +msgid "User interface" +msgstr "Interfàcia utilizaire" + +#: searx/templates/simple/preferences.html:154 +msgid "Privacy" +msgstr "Privacitat" diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo index e4a45101..595154a6 100644 Binary files a/searx/translations/pl/LC_MESSAGES/messages.mo and b/searx/translations/pl/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo index d88c449f..e6fa6dc5 100644 Binary files a/searx/translations/pt/LC_MESSAGES/messages.mo and b/searx/translations/pt/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/pt/LC_MESSAGES/messages.po b/searx/translations/pt/LC_MESSAGES/messages.po index d8446731..f9342cd2 100644 --- a/searx/translations/pt/LC_MESSAGES/messages.po +++ b/searx/translations/pt/LC_MESSAGES/messages.po @@ -4,14 +4,14 @@ # # Translators: # Dickprince, 2017 -# Chacal Exodius, 2018 +# C. E., 2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-26 22:43+0000\n" -"Last-Translator: Chacal Exodius\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Dickprince\n" "Language-Team: Portuguese (http://www.transifex.com/asciimoo/searx/language/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +32,63 @@ msgstr "solicitar exceção" msgid "unexpected crash" msgstr "acidente inesperado" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ficheiros" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "geral" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "música" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "redes sociais" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "imagens" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "vídeos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "ti" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "notícias" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapa" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "ciência" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Definições inválidas, por favor edite as suas preferências" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Configurações inválidas" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "erro de procura" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} minuto(s) atrás" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} hora(s), {minutes} minuto(s) atrás" @@ -108,29 +108,28 @@ msgstr "Funções de estatística" msgid "Compute {functions} of the arguments" msgstr "Calcular {functions} dos argumentos" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Tempo de pesquisa (seg)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Página carregada (seg)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Número de resultados" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Contagens" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Contagens por resultado" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Erros" @@ -142,9 +141,15 @@ msgstr "{title} (OBSOLETE)" msgid "This entry has been superseded by" msgstr "Esta entrada foi substituída por" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Nenhum resumo está disponível para esta publicação." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Reformulação DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evite acessos pagos acedendo a versões de livre acesso sempre que disponível" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -158,16 +163,6 @@ msgstr "Deslocação Infinita" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Carregar automaticamente a próxima página assim que se desloque para o fim da página atual" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Reescrita DOI de acesso aberto" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evite acessos pagos acedendo a versões de livre acesso sempre que disponível" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +325,8 @@ msgstr "Método" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +398,8 @@ msgstr "Motores de pesquisa utilizados" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +414,8 @@ msgstr "Categoria" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +433,7 @@ msgstr "Bloquear" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +443,7 @@ msgstr "Estas definições são guardadas nos seus cookies, isto permite-nos que #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +453,7 @@ msgstr "Estes cookies servem somente para sua conveniência, não os utilizamos #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +461,14 @@ msgstr "Guardar" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Repor predefinições" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +639,23 @@ msgid "General" msgstr "Geral" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motores de pesquisa" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Extensões" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Remetente" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -711,88 +706,78 @@ msgstr "Escolher estilo para este tema" msgid "Style" msgstr "Estilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Resolvedor DOI de Acesso Aberto" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redirecionar para versões de acesso aberto de publicações quando disponíveis (requer plug-in)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Atalho" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Idioma selecionado" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Período de tempo" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Tempo médio" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Tempo máximo" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Esta é a lista dos modulos instantâneos de resposta do searx" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nome" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Palavras-chave" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descrição" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemplos" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Esta é a lista de cookies e os valores que o searx está a guardar no seu computador." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Com essa lista pode aceder à transparência do searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nome de cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valor" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL de pesquisa das preferências salvas atualmente" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo index 03eb74f4..c37882dc 100644 Binary files a/searx/translations/pt_BR/LC_MESSAGES/messages.mo and b/searx/translations/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po index 6a0a6b83..18bae82a 100644 --- a/searx/translations/pt_BR/LC_MESSAGES/messages.po +++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po @@ -4,9 +4,9 @@ # # Translators: # Adam Tauber , 2017 -# Chacal Exodius, 2018 +# C. E., 2018 # Gabriel Nunes , 2017 -# Guimarães Mello , 2017 +# Guimarães Mello , 2017 # Neton Brício , 2015 # pizzaiolo, 2016 # shizuka, 2018 @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-08-06 05:21+0000\n" -"Last-Translator: Chacal Exodius\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: pizzaiolo\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/asciimoo/searx/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,63 +37,63 @@ msgstr "falha na requisição" msgid "unexpected crash" msgstr "erro inesperado" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "arquivos" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "geral" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "áudio" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "redes sociais" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "imagens" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "vídeos" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "códigos" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "notícias" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapas" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "ciência" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Configurações inválidas, por favor, edite suas preferências" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Configurações inválidas" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "erro de busca" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutos} minuto(s) atrás" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} hora(s), {minutes} minuto(s) atrás" @@ -113,29 +113,28 @@ msgstr "Funções estatísticas" msgid "Compute {functions} of the arguments" msgstr "Compute {functions} dos argumentos" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Tempo do motor (segundos)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Carregamento da página (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Número de resultados" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Pontuações" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Pontuações por resultado" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Erros" @@ -147,9 +146,15 @@ msgstr "{title} (OBSOLETA)" msgid "This entry has been superseded by" msgstr "Esta entrada foi substituída por" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Nenhum resumo disponível para essa publicação." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Redirecionamento ao DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evita \"paywalls\" ao redirecionar para versões de acesso livre de publicações, quando possível" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -163,16 +168,6 @@ msgstr "Scroll infinito" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Automaticamente carregar a próxima página quando ir até o fim da página atual" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Reescrita DOI de acesso aberto" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evita \"paywalls\" ao redirecionar para versões de acesso livre de publicações, quando possível" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -335,8 +330,8 @@ msgstr "Método" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -408,8 +403,8 @@ msgstr "Serviço de busca usado atualmente" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -424,8 +419,8 @@ msgstr "Categoria" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -443,7 +438,7 @@ msgstr "Bloqueado" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -453,7 +448,7 @@ msgstr "Essas configurações são armazenadas em seus cookies, nos não armazen #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -463,7 +458,7 @@ msgstr "Estes cookies servem ao seu único propósito, nós não usamos esses co #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -471,14 +466,14 @@ msgstr "salvar" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Redefinir configurações" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -649,23 +644,23 @@ msgid "General" msgstr "Geral" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Buscadores" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Complementos" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Operadores de Resposta" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -716,88 +711,78 @@ msgstr "Escolher um estilo para este tema" msgid "Style" msgstr "Estilo" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Resolvedor DOI de Acesso Aberto" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Quando disponível, redirecionar para as versões de acesso livre das publicações (necessário plugin)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Atalhos" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Idioma selecionado" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Intervalo de tempo" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Tempo médio" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Tempo máximo" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Esta é a lista do módulos de resposta instantânea do searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nome" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Palavras-chave" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descrição" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemplos" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Esta é a lista de cookies que o searx está armazenando em seu computador." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Com essa lista, você pode avaliar a transparência do searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nome do cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valor" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL de Pesquisa das configurações salvas atuais" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo index f3906857..d90ed514 100644 Binary files a/searx/translations/ro/LC_MESSAGES/messages.mo and b/searx/translations/ro/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ro/LC_MESSAGES/messages.po b/searx/translations/ro/LC_MESSAGES/messages.po index 7cfd1be3..625feea8 100644 --- a/searx/translations/ro/LC_MESSAGES/messages.po +++ b/searx/translations/ro/LC_MESSAGES/messages.po @@ -4,14 +4,16 @@ # # Translators: # adrian.fita , 2015 +# adrian.fita , 2015 # Daniel Șerbănescu , 2018 +# Mihai Pora , 2019 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-11-15 21:18+0000\n" -"Last-Translator: Daniel Șerbănescu \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-08-31 18:38+0000\n" +"Last-Translator: Mihai Pora \n" "Language-Team: Romanian (http://www.transifex.com/asciimoo/searx/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,63 +34,63 @@ msgstr "excepție la cerere" msgid "unexpected crash" msgstr "terminare prematură neașteptată" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "fișiere" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "generale" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "muzică" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "rețele sociale" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "imagini" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videouri" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "informatică" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "știri" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "hărți" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "știință" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Configurări nevalide, editați preferințele" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Configurări nevalide" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "eroare de căutare" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} minut(e) în urmă" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} oră(e), {minutes} minut(e) în urmă" @@ -108,29 +110,28 @@ msgstr "Funcții statistice" msgid "Compute {functions} of the arguments" msgstr "Calculează {functions} din argumente" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Timpul motorului (sec)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Încărcarea paginii (sec)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Numărul de rezultate" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Scoruri" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Scoruri per rezultat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Erori" @@ -142,9 +143,15 @@ msgstr "{title} (ÎNVECHIT)" msgid "This entry has been superseded by" msgstr "Această intrare a fost perimată de" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Niciun abstract disponibil pentru această publicație." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Rescriere DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Evită „zidurile de plată” redirecționând către versiuni cu acces deschis ale publicațiilor când sunt disponibile" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -158,16 +165,6 @@ msgstr "Derulare infinită" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Încarcă automat pagina următoare când se derulează la baza paginii curente" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Rescriere către acces deschis DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Evită „zidurile de plată” redirecționând către versiuni cu acces deschis ale publicațiilor când sunt disponibile" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -330,8 +327,8 @@ msgstr "Metodă" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -403,8 +400,8 @@ msgstr "Motoarele de căutare folosite curent" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -419,8 +416,8 @@ msgstr "Categorie" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -438,7 +435,7 @@ msgstr "Blochează" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -448,7 +445,7 @@ msgstr "Aceste configurări sunt stocate în cookie-uri, ceea ce ne permite să #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -458,7 +455,7 @@ msgstr "Aceste cookie-uri servesc doar pentru conveniența dumneavoastră, noi n #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -466,14 +463,14 @@ msgstr "salvează" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Restabilește la valorile implicite" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -644,23 +641,23 @@ msgid "General" msgstr "Generale" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motoare" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Module" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Răspunzători" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookie-uri" @@ -711,88 +708,78 @@ msgstr "Alegeți stilul pentru această temă" msgid "Style" msgstr "Stil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Rezolvator de acces deschis DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Redirecționează către versiuni cu acces deschis ale publicațiilor când sunt disponibile (modul necesar)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Scurtătură" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Limba selectată" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Interval de timp" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Timp mediu" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Timp maxim" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Aceasta este lista de module de răspundere instantă a lui searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Nume" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Cuvinte cheie" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Descriere" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exemple" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Aceasta este lista de cookie-uri și valorile lor pe care searx le stochează pe calculatorul dumneavoastră." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Cu acea listă puteți evalua nivelul de transparență al lui searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Nume cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Valuare" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL-ul de căutare al preferințelor salvate curent" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo index c6bcdd1b..7132a8c1 100644 Binary files a/searx/translations/ru/LC_MESSAGES/messages.mo and b/searx/translations/ru/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ru/LC_MESSAGES/messages.po b/searx/translations/ru/LC_MESSAGES/messages.po index befe7f96..ec7975b5 100644 --- a/searx/translations/ru/LC_MESSAGES/messages.po +++ b/searx/translations/ru/LC_MESSAGES/messages.po @@ -5,7 +5,7 @@ # Translators: # Andrey, 2017-2019 # dimqua , 2015 -# dimqua , 2015 +# dimqua , 2015,2017 # dimqua , 2017 # John DOe , 2018 # Дмитрий Михирев, 2016-2017 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2019-01-05 12:11+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" "Last-Translator: Andrey\n" "Language-Team: Russian (http://www.transifex.com/asciimoo/searx/language/ru/)\n" "MIME-Version: 1.0\n" @@ -36,63 +36,63 @@ msgstr "ошибка выполнения запроса" msgid "unexpected crash" msgstr "неожиданный сбой" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "файлы" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "общие" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "музыка" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "социальные сети" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "картинки" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "видео" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "новости" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "карты" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "наука" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Неправильные параметры, измените настройки" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Настройки некорректны" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "ошибка поиска" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} минут(а) назад" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} час(ов), {minutes} минут(а) назад" @@ -112,29 +112,28 @@ msgstr "Статистические функции" msgid "Compute {functions} of the arguments" msgstr "Вычисляет {functions} от аргументов" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Время поиска (сек)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Загрузка страниц (сек)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Количество результатов" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Попаданий" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Попаданий за результат" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Ошибки" @@ -146,9 +145,15 @@ msgstr "{title} (УСТАРЕВШИЕ)" msgid "This entry has been superseded by" msgstr "Эта запись была заменена на" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Нет аннотации для этой публикации." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Перезапись DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Позволяет получить бесплатную версию запрашиваемой статьи, если таковая имеется" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -162,16 +167,6 @@ msgstr "Бесконечная прокрутка" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Автоматически загружать следующую страницу при прокрутке до конца текущей" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Перезапись открытого доступа к DOI" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Позволяет получить бесплатную версию запрашиваемой статьи, если таковая имеется" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -334,8 +329,8 @@ msgstr "Метод" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -407,8 +402,8 @@ msgstr "Используемые поисковые системы" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -423,8 +418,8 @@ msgstr "Категория" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -442,7 +437,7 @@ msgstr "Блокировать" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -452,7 +447,7 @@ msgstr "Настройки сохраняются в ваших файлах coo #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -462,7 +457,7 @@ msgstr "Эти файлы используются исключительно д #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -470,14 +465,14 @@ msgstr "сохранить" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Восстановить настройки по умолчанию" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -648,23 +643,23 @@ msgid "General" msgstr "Общие" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Поисковые системы" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Плагины" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Ответчики" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookie" @@ -715,88 +710,78 @@ msgstr "Стиль для выбранной темы" msgid "Style" msgstr "Стиль" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Распознаватель открытого доступа к DOI" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Перенаправление на открытые версии публикаций при их наличии (требуется плагин)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Сокращение" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Выбранный язык" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Временной диапазон" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Среднее время" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Максимальное время" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Это список модулей мгновенного ответа searx" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Имя" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ключевые слова" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Описание" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Примеры" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Это список файлов cookie и их значения, которые searx хранит на вашем компьютере." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "С помощью этого списка можно оценить прозрачность searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Имя файла cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Значение" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL поиска для текущих сохраненных параметров" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/sk/LC_MESSAGES/messages.mo b/searx/translations/sk/LC_MESSAGES/messages.mo index 0d8f6fa7..7156b51d 100644 Binary files a/searx/translations/sk/LC_MESSAGES/messages.mo and b/searx/translations/sk/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/sk/LC_MESSAGES/messages.po b/searx/translations/sk/LC_MESSAGES/messages.po index ebf1bba5..60ef0646 100644 --- a/searx/translations/sk/LC_MESSAGES/messages.po +++ b/searx/translations/sk/LC_MESSAGES/messages.po @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-01 20:31+0000\n" -"Last-Translator: Adam Tauber \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Jan Hovancik\n" "Language-Team: Slovak (http://www.transifex.com/asciimoo/searx/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" "Language: sk\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" #: searx/search.py:137 searx/search.py:182 msgid "timeout" @@ -31,63 +31,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "súbory" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "všeobecné" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "hudba" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociálne médiá" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "obrázky" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videá" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "technika" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "správy" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "mapy" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "veda" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Neplatné nastavenia, upravte svoje hodnoty, prosím" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "chyba vyhľadávania" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} min. pred" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} hod., {minutes} min. pred" @@ -107,29 +107,28 @@ msgstr "Štatistické funkcie" msgid "Compute {functions} of the arguments" msgstr "Vypočítať {functions} argumentov" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Načítanie vyhľadávača (sek)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Načítanie stránky (sek)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Počet výsledkov" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Chyby" @@ -141,9 +140,15 @@ msgstr "{title} (ZASTARANÉ)" msgid "This entry has been superseded by" msgstr "Táto položka bola nahradená" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Prepis DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Vyhnúť sa plateným bránam presmerovaním na verejne prístupné verzie publikácií ak sú k dispozícii" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Nekonečné posúvanie" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Automaticky načítať ďalšiu stránku pri posunutí na koniec aktuálnej stránky" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Vyhnúť sa plateným bránam presmerovaním na verejne prístupné verzie publikácií ak sú k dispozícii" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Metóda" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "poruba@contours.cz" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Kategória" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Blokovať" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Tieto nastavenia sú uložené v cookies, čo nám umožňuje neukladať #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Tieto cookies slúžia výhradné pre vaše pohodlie a nie sú používa #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "uložiť" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Obnoviť predvolené" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Všeobecné" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Vyhľadávače" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Zásuvné moduly" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Rýchle odpovede" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -710,88 +705,78 @@ msgstr "Vyberte si štýl pre túto tému" msgid "Style" msgstr "Štýl" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Skratka" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Časový rozsah" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Priemerný čas" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Maximálny čas" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Toto je zoznam modulov rýchlej odpovede pre searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Názov" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Kľúčové slová" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Popis" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Príklady" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Toto je zoznam cookies a ich hodnôt uložených searx na vašom počítači" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Pomocou tohto zoznamu môžte vidieť transparentnosť searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Názov cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Hodnota" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/sl/LC_MESSAGES/messages.mo b/searx/translations/sl/LC_MESSAGES/messages.mo index b2cf9e1b..9e980f78 100644 Binary files a/searx/translations/sl/LC_MESSAGES/messages.mo and b/searx/translations/sl/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/sl/LC_MESSAGES/messages.po b/searx/translations/sl/LC_MESSAGES/messages.po index 3ce7f97d..77ef61b8 100644 --- a/searx/translations/sl/LC_MESSAGES/messages.po +++ b/searx/translations/sl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-05-01 08:59+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" "Last-Translator: asladic \n" "Language-Team: Slovenian (http://www.transifex.com/asciimoo/searx/language/sl/)\n" "MIME-Version: 1.0\n" @@ -31,63 +31,63 @@ msgstr "napaka poizvedbe" msgid "unexpected crash" msgstr "nepričakovana napaka" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "datoteke" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "splošno" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "glasba" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "družabna omrežja" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "slike" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videi" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "informatika" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "novice" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "zemljevid" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "znanost" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Neveljavne nastavitve. Prosimo, preverite vašo konfiguracijo" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Neveljavne nastavitve" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "napaka pri iskanju" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} minut nazaj" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "pred {hours} urami in {minutes} minut" @@ -107,29 +107,28 @@ msgstr "Statistične funkcije" msgid "Compute {functions} of the arguments" msgstr "Izračunaj {functions} argumentov" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Čas iskanja (sek.)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Čas nalaganja (sek.)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Število zadetkov" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Točke" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Točke na zadetek" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Napake" @@ -141,9 +140,15 @@ msgstr "{title} (ZASTARANO)" msgid "This entry has been superseded by" msgstr "Ta vnos je presegel" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "prepisovanje DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Izogibanje plačilom s preusmeritvijo na prostodostopne različice publikacij, ko so na voljo" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Neskončno drsenje" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Samodejno naloži naslednjo stran ob ogledu dna trenutne strani" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Izogibanje plačilom s preusmeritvijo na prostodostopne različice publikacij, ko so na voljo" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Metoda" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Trenutno uporabljeni iskalniki" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Kategorija" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Blokiraj" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Te nastavitve so shranjene v vaših piškotkih; to nam omogoča, da ne h #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Ti piškotki so za boljšo izkušnjo, ne uporabljamo jih za sledenje." #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "shrani" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Ponastavi na privzeto" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Splošno" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Iskalniki" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Vtičniki" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Ponudniki odgovorov" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Piškotki" @@ -710,88 +705,78 @@ msgstr "Izberite stil za trenutno temo" msgid "Style" msgstr "Stil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Preusmeri na prosto dostopne različice publikacij, ko so na voljo (zahtevan vtičnik)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Bližnjica" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Izbrani jezik" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Časovni razpon" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Povprečni čas" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Največji čas" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "To je seznam modulov searx za takojšnje odgovore." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Ime" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ključne besede" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Opis" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Primeri" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "To je seznam piškotkov in pripadajočih vrednosti, ki jih searx hrani na vašem računalniku." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "S tem seznamom lahko ocenite transparentnost searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Ime piškotka" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Vrednost" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Iskalni URL trenutno shranjenih nastavitev" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo index 65efaaa1..d7585916 100644 Binary files a/searx/translations/sr/LC_MESSAGES/messages.mo and b/searx/translations/sr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/sr/LC_MESSAGES/messages.po b/searx/translations/sr/LC_MESSAGES/messages.po index b676f3dc..01e36b1e 100644 --- a/searx/translations/sr/LC_MESSAGES/messages.po +++ b/searx/translations/sr/LC_MESSAGES/messages.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# Marc Abonce Seguin, 2019 # jugi1, 2017 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-03 11:24+0000\n" -"Last-Translator: jugi1\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-07-28 05:07+0000\n" +"Last-Translator: Marc Abonce Seguin\n" "Language-Team: Serbian (http://www.transifex.com/asciimoo/searx/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,63 +32,63 @@ msgstr "захтевај изузетак" msgid "unexpected crash" msgstr "неочекивани пад" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "фајлови" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "уопштено" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "музика" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "друштвени медији" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "слике" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "видео" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "ит" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "новости" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "мапа" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "наука" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Неважеће поставке, молимо уредите свој избор" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Неважећа подешавања" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "грешка у претрази" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} минут(а) назад" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} час(a), {minutes} минут(а) назад" @@ -105,31 +106,30 @@ msgstr "Статистичке функције" #: searx/answerers/statistics/answerer.py:54 msgid "Compute {functions} of the arguments" -msgstr "Израчунајте {функције} аргумената" +msgstr "Израчунајте {functions} аргумената" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Време претраге (сек)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Учитавање странице (сек)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Број резултата" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Резултати" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Остварени резултати" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Грешке" @@ -141,9 +141,15 @@ msgstr "{наслов} (ЗАСТАРЕЛО)" msgid "This entry has been superseded by" msgstr "Овај унос је заменио" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Абстракт није доступан за ову публикацију." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Препис DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Избегните плаћање у случају да је доступна бесплатна публикација" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +163,6 @@ msgstr "Бесконачно померање" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Аутоматско учитавање следеће странице приликом померања на дно текуће странице" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Отворени приступ DOI преписа" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Избегните плаћање у случају да је доступна бесплатна публикација" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +325,8 @@ msgstr "Метода" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +398,8 @@ msgstr "Тренутно коришћени претраживачи" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +414,8 @@ msgstr "Категорија" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +433,7 @@ msgstr "Блокирај" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +443,7 @@ msgstr "Ова подешавања се чувају у вашим колачи #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +453,7 @@ msgstr "Ови колачићи служе Вашој погодности, ми #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +461,14 @@ msgstr "сними" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Врати на подразумевано" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +639,23 @@ msgid "General" msgstr "Уопштено" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Претраживачи" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Плагини" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Одговори" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Колачићи" @@ -710,88 +706,78 @@ msgstr "Изаберите стил за ову тему" msgid "Style" msgstr "Стил" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Отворени приступ DOI решења" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Преусмери на верзије публикација отвореног приступа кад је доступно (потребан је плагин)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Пречица" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Изабрани језик" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Временски опсег" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Просечно време" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Макс. време" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Ово је листа searx инстант одговора." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Име" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Кључне речи" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Опис" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Примери" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Ово је листа колачића и њихова вредност се снима на вашем рачунару." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Са овом листом можете бити searx транспаренти" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Име колачића" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Вредност" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Pretražite URL адресу тренутно сачуваних поставки" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/sv/LC_MESSAGES/messages.mo b/searx/translations/sv/LC_MESSAGES/messages.mo index 73d36de8..d432f219 100644 Binary files a/searx/translations/sv/LC_MESSAGES/messages.mo and b/searx/translations/sv/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/sv/LC_MESSAGES/messages.po b/searx/translations/sv/LC_MESSAGES/messages.po index e8b01c83..1949932d 100644 --- a/searx/translations/sv/LC_MESSAGES/messages.po +++ b/searx/translations/sv/LC_MESSAGES/messages.po @@ -4,14 +4,14 @@ # # Translators: # Jonatan Nyberg, 2016-2017 -# Jonatan Nyberg, 2018 +# Jonatan Nyberg, 2018-2019 # Jonatan Nyberg, 2017-2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-07-24 18:39+0000\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-28 20:53+0000\n" "Last-Translator: Jonatan Nyberg\n" "Language-Team: Swedish (http://www.transifex.com/asciimoo/searx/language/sv/)\n" "MIME-Version: 1.0\n" @@ -33,63 +33,63 @@ msgstr "begär undantag" msgid "unexpected crash" msgstr "oväntad krasch" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "filer" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "allmänt" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "musik" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sociala medier" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "bilder" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videor" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "it" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "nyheter" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "karta" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "vetenskap" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Ogiltiga inställningar, vänligen redigerar dina inställningar" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Ogiltiga inställningar" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "sökfel" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} minut(er) sedan" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} timm(e/ar), {minutes} minut(er) sedan" @@ -109,29 +109,28 @@ msgstr "Statistikfunktioner" msgid "Compute {functions} of the arguments" msgstr "Beräkna {functions} av argumenten" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Sökmotor tid (sek)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Sidan laddas (sek)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Antal resultat" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Poäng" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Poäng per resultat" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Fel" @@ -143,9 +142,15 @@ msgstr "{title} (FÖRÅLDRAD)" msgid "This entry has been superseded by" msgstr "Detta inlägg har ersatts av" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Inget abstract är tillgänglig för denna publikation." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI-omskrivning" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Undvik betalväggar genom att omdirigera till öppen tillgång versioner av publikationer när de är tillgängliga" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +164,6 @@ msgstr "Oändlig bläddring" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Automatiskt ladda nästa sida när du bläddrar till botten av aktuell sida" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Open Access DOI-omskrivning" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Undvik betalväggar genom att omdirigera till öppen tillgång versioner av publikationer när de är tillgängliga" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +326,8 @@ msgstr "Metod" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +399,8 @@ msgstr "För tillfället används sökmotorer" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +415,8 @@ msgstr "Kategori" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +434,7 @@ msgstr "Blockera" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +444,7 @@ msgstr "Dessa inställningar lagras i dina kakor, vilket gör att vi inte lagrar #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +454,7 @@ msgstr "Dessa kakor tjänar din egen bekvämlighet, vi använder inte dessa kako #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +462,14 @@ msgstr "spara" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Återställ standardvärden" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +640,23 @@ msgid "General" msgstr "Allmänt" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Sökmotorer" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Insticksmoduler" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Besvarare" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Kakor" @@ -712,88 +707,78 @@ msgstr "Välj stil för detta tema" msgid "Style" msgstr "Stil" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Open Access DOI-lösare" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Omdirigera till öppna versioner av publikationer när de är tillgängliga (tillägg krävs)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Genväg" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Valt språk" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Tidsintervall" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Genomsnittstid" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Max tid" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Detta är en lista över searxs snabbsvarsmoduler." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Namn" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Nyckelord" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Beskrivning" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Exempel" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Detta är en lista över kakor och deras värden som searx lagrar på din dator." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Med denna lista kan du bedöma searx öppenhet." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Kaknamn" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Värde" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "Sökadressen för de för nuvarande sparade inställningarna" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." @@ -835,22 +820,22 @@ msgstr "Närsom" #: searx/templates/oscar/time-range.html:6 #: searx/templates/simple/time-range.html:6 msgid "Last day" -msgstr "Senaste dag" +msgstr "Igår" #: searx/templates/oscar/time-range.html:9 #: searx/templates/simple/time-range.html:9 msgid "Last week" -msgstr "Senaste vecka" +msgstr "Förra veckan" #: searx/templates/oscar/time-range.html:12 #: searx/templates/simple/time-range.html:12 msgid "Last month" -msgstr "Senaste månad" +msgstr "Förra månaden" #: searx/templates/oscar/time-range.html:15 #: searx/templates/simple/time-range.html:15 msgid "Last year" -msgstr "Senaste år" +msgstr "Förra året" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..356472f6 Binary files /dev/null and b/searx/translations/ta/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ta/LC_MESSAGES/messages.po b/searx/translations/ta/LC_MESSAGES/messages.po new file mode 100644 index 00000000..dbb9aa2a --- /dev/null +++ b/searx/translations/ta/LC_MESSAGES/messages.po @@ -0,0 +1,1003 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Balaji Ravichandran , 2019 +# gurulenin , 2019 +# Manimaran.K , 2019 +# Nazigai Kallan , 2019 +# POORAJITH ST , 2019 +# Prasanna Venkadesh , 2019 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" +"Language-Team: Tamil (http://www.transifex.com/asciimoo/searx/language/ta/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: searx/search.py:137 searx/search.py:182 +msgid "timeout" +msgstr "காலாவதியானது" + +#: searx/search.py:144 +msgid "request exception" +msgstr "" + +#: searx/search.py:151 +msgid "unexpected crash" +msgstr "எதிர்பாராத முடக்கம்" + +#: searx/webapp.py:135 +msgid "files" +msgstr "கோப்புகள்" + +#: searx/webapp.py:136 +msgid "general" +msgstr "பொதுத் தேடல்" + +#: searx/webapp.py:137 +msgid "music" +msgstr "இசை" + +#: searx/webapp.py:138 +msgid "social media" +msgstr "சமூக தளங்கள்" + +#: searx/webapp.py:139 +msgid "images" +msgstr "படங்கள்" + +#: searx/webapp.py:140 +msgid "videos" +msgstr "காணொளிகள்" + +#: searx/webapp.py:141 +msgid "it" +msgstr "" + +#: searx/webapp.py:142 +msgid "news" +msgstr "செய்திகள்" + +#: searx/webapp.py:143 +msgid "map" +msgstr "வரைப்படம்" + +#: searx/webapp.py:144 +msgid "science" +msgstr "அறிவியல்" + +#: searx/webapp.py:398 searx/webapp.py:653 +msgid "Invalid settings, please edit your preferences" +msgstr "ஏற்க முடியாத அமைப்பு,உங்கள் விருப்பத்தை தொகுக்கவும்" + +#: searx/webapp.py:410 +msgid "Invalid settings" +msgstr "ஏற்கமுடியாத அமைப்பு" + +#: searx/webapp.py:444 searx/webapp.py:488 +msgid "search error" +msgstr "தேடல் பிழை" + +#: searx/webapp.py:525 +msgid "{minutes} minute(s) ago" +msgstr "{minutes} நிமிடங்களுக்கு முன்னால்" + +#: searx/webapp.py:527 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "{hours} மணிநேரம், {minutes} நிமிடங்களுக்கு முன்னால்" + +#: searx/answerers/random/answerer.py:53 +msgid "Random value generator" +msgstr "சீரற்ற மதிப்பு உருவாக்கி" + +#: searx/answerers/random/answerer.py:54 +msgid "Generate different random values" +msgstr "வெவ்வாறான சீரற்ற மதிப்புகளை உருவாக்கு" + +#: searx/answerers/statistics/answerer.py:53 +msgid "Statistics functions" +msgstr "புள்ளியியல் செயல்பாடுகள்" + +#: searx/answerers/statistics/answerer.py:54 +msgid "Compute {functions} of the arguments" +msgstr "" + +#: searx/engines/__init__.py:194 +msgid "Engine time (sec)" +msgstr "எந்திர நேரம் (நொடிகளில்)" + +#: searx/engines/__init__.py:198 +msgid "Page loads (sec)" +msgstr "" + +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 +#: searx/templates/simple/results.html:20 +msgid "Number of results" +msgstr "முடிவுகளின் எண்ணிக்கை" + +#: searx/engines/__init__.py:206 +msgid "Scores" +msgstr "மதிப்புகள்" + +#: searx/engines/__init__.py:210 +msgid "Scores per result" +msgstr "தேடல் மதிப்பு" + +#: searx/engines/__init__.py:214 +msgid "Errors" +msgstr "பிழைகள்" + +#: searx/engines/pdbe.py:87 +msgid "{title} (OBSOLETE)" +msgstr "" + +#: searx/engines/pdbe.py:91 +msgid "This entry has been superseded by" +msgstr "" + +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "பணம் பறிக்கும் தளங்களை தவிர்த்து முடிந்த வரையில் open-access பதிப்புகளை வழங்கும் தளங்களுக்கு செல்லவும்" + +#: searx/plugins/https_rewrite.py:32 +msgid "Rewrite HTTP links to HTTPS if possible" +msgstr "முடிந்தால் HTTP இணைப்புகளை HTTPS இணைப்புகளாக மாற்றவும்" + +#: searx/plugins/infinite_scroll.py:3 +msgid "Infinite scroll" +msgstr "தொடர் பட்டியல்" + +#: searx/plugins/infinite_scroll.py:4 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "பக்கத்தின் முடிவை அடைந்தவுடன் தானாக அடுத்த பக்கததிற்கு செல்லவும்" + +#: searx/plugins/open_results_on_new_tab.py:18 +#: searx/templates/oscar/preferences.html:114 +#: searx/templates/simple/preferences.html:149 +msgid "Open result links on new browser tabs" +msgstr "இணைப்புகளை புதிய Tab-ல் திறக்கவும்" + +#: searx/plugins/open_results_on_new_tab.py:19 +msgid "" +"Results are opened in the same window by default. This plugin overwrites the" +" default behaviour to open links on new tabs/windows. (JavaScript required)" +msgstr "" + +#: searx/plugins/search_on_category_select.py:18 +msgid "Search on category select" +msgstr "தேர்ந்தெடுத்தப் பிரிவில் தேடுக" + +#: searx/plugins/search_on_category_select.py:19 +msgid "" +"Perform search immediately if a category selected. Disable to select " +"multiple categories. (JavaScript required)" +msgstr "பிரிவு தேர்வு செய்யப்பட்டால் தேடல் உடனடியாகச் செயற்படுத்தும். பல பிரிவுகளைத் தேர்வு செய்ய முடக்கவும். (ஜாவா ஸ்கிரிப்ட் தேவைப்படும்)" + +#: searx/plugins/self_info.py:20 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." +msgstr "\"ip\" என்று தேடினால் உங்கள் ip முகவரியையும், \"user agent\" என்று தேடினால் உங்கள் user-agent-ம் காட்டப்படும்." + +#: searx/plugins/tracker_url_remover.py:26 +msgid "Tracker URL remover" +msgstr "உளவுப் பார்க்கும் வலைதள முகவரி நீக்கி" + +#: searx/plugins/tracker_url_remover.py:27 +msgid "Remove trackers arguments from the returned URL" +msgstr "உங்களை உளவு பார்த்து பின்தொடர பயன்படும் எழுத்துக்களை வலைதள முகவரியிலிருந்து நீக்குக" + +#: searx/plugins/vim_hotkeys.py:3 +msgid "Vim-like hotkeys" +msgstr "Vim போன்ற hotkeys" + +#: searx/plugins/vim_hotkeys.py:4 +msgid "" +"Navigate search results with Vim-like hotkeys (JavaScript required). Press " +"\"h\" key on main or result page to get help." +msgstr "" + +#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4 +#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4 +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "பக்கம் கிடைக்கவில்லை" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "%(search_page)s-க்கு செல்" + +#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6 +#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6 +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "தேடல் பக்கம்" + +#: searx/templates/courgette/index.html:9 +#: searx/templates/courgette/index.html:13 +#: searx/templates/courgette/results.html:5 +#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12 +#: searx/templates/oscar/navbar.html:7 +#: searx/templates/oscar/preferences.html:3 +#: searx/templates/pix-art/index.html:8 +msgid "preferences" +msgstr "விருப்பத்தேர்வு" + +#: searx/templates/courgette/index.html:11 +#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2 +#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7 +msgid "about" +msgstr "பற்றி" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/legacy/preferences.html:5 +#: searx/templates/oscar/preferences.html:8 +#: searx/templates/pix-art/preferences.html:5 +#: searx/templates/simple/preferences.html:26 +msgid "Preferences" +msgstr "விருப்பத்தேர்வு" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/legacy/preferences.html:9 +#: searx/templates/oscar/preferences.html:33 +#: searx/templates/oscar/preferences.html:35 +#: searx/templates/simple/preferences.html:34 +msgid "Default categories" +msgstr "இயல்புநிலை பிரிவுகள்" + +#: searx/templates/courgette/preferences.html:13 +#: searx/templates/legacy/preferences.html:14 +#: searx/templates/oscar/preferences.html:41 +#: searx/templates/pix-art/preferences.html:9 +#: searx/templates/simple/preferences.html:39 +#: searx/templates/simple/preferences.html:163 +msgid "Search language" +msgstr "தேடல் மொழி" + +#: searx/templates/courgette/preferences.html:16 +#: searx/templates/legacy/preferences.html:17 +#: searx/templates/oscar/languages.html:6 +#: searx/templates/pix-art/preferences.html:12 +#: searx/templates/simple/languages.html:2 +#: searx/templates/simple/preferences.html:42 +msgid "Default language" +msgstr "இயல்புநிலை மொழி" + +#: searx/templates/courgette/preferences.html:24 +#: searx/templates/legacy/preferences.html:25 +#: searx/templates/oscar/preferences.html:47 +#: searx/templates/pix-art/preferences.html:20 +#: searx/templates/simple/preferences.html:120 +msgid "Interface language" +msgstr "முகப்பின் மொழி" + +#: searx/templates/courgette/preferences.html:34 +#: searx/templates/legacy/preferences.html:35 +#: searx/templates/oscar/preferences.html:57 +#: searx/templates/simple/preferences.html:51 +msgid "Autocomplete" +msgstr "நிறைவுத் தானியக்கம்" + +#: searx/templates/courgette/preferences.html:45 +#: searx/templates/legacy/preferences.html:46 +#: searx/templates/oscar/preferences.html:68 +#: searx/templates/simple/preferences.html:166 +msgid "Image proxy" +msgstr "பட நிகராளி" + +#: searx/templates/courgette/preferences.html:48 +#: searx/templates/legacy/preferences.html:49 +#: searx/templates/oscar/preferences.html:72 +#: searx/templates/simple/preferences.html:169 +msgid "Enabled" +msgstr "செயல்படுத்து" + +#: searx/templates/courgette/preferences.html:49 +#: searx/templates/legacy/preferences.html:50 +#: searx/templates/oscar/preferences.html:73 +#: searx/templates/simple/preferences.html:170 +msgid "Disabled" +msgstr "நிறுத்தப்பட்டது" + +#: searx/templates/courgette/preferences.html:54 +#: searx/templates/legacy/preferences.html:55 +#: searx/templates/oscar/preferences.html:77 +#: searx/templates/pix-art/preferences.html:30 +#: searx/templates/simple/preferences.html:156 +msgid "Method" +msgstr "முறை" + +#: searx/templates/courgette/preferences.html:63 +#: searx/templates/legacy/preferences.html:64 +#: searx/templates/oscar/preferences.html:86 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 +#: searx/templates/simple/preferences.html:63 +#: searx/templates/simple/preferences.html:90 +msgid "SafeSearch" +msgstr "பாதுகாப்பன தேடல்" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/legacy/preferences.html:67 +#: searx/templates/oscar/preferences.html:90 +#: searx/templates/simple/preferences.html:66 +msgid "Strict" +msgstr "" + +#: searx/templates/courgette/preferences.html:67 +#: searx/templates/legacy/preferences.html:68 +#: searx/templates/oscar/preferences.html:91 +#: searx/templates/simple/preferences.html:67 +msgid "Moderate" +msgstr "மிதமான" + +#: searx/templates/courgette/preferences.html:68 +#: searx/templates/legacy/preferences.html:69 +#: searx/templates/oscar/preferences.html:92 +#: searx/templates/simple/preferences.html:68 +msgid "None" +msgstr "எதுவுமில்லை" + +#: searx/templates/courgette/preferences.html:73 +#: searx/templates/legacy/preferences.html:74 +#: searx/templates/oscar/preferences.html:96 +#: searx/templates/pix-art/preferences.html:39 +#: searx/templates/simple/preferences.html:131 +msgid "Themes" +msgstr "" + +#: searx/templates/courgette/preferences.html:83 +msgid "Color" +msgstr "வண்ணம்" + +#: searx/templates/courgette/preferences.html:86 +msgid "Blue (default)" +msgstr "நீலம் (இயல்பான)" + +#: searx/templates/courgette/preferences.html:87 +msgid "Violet" +msgstr "ஊதா" + +#: searx/templates/courgette/preferences.html:88 +msgid "Green" +msgstr "பச்சை" + +#: searx/templates/courgette/preferences.html:89 +msgid "Cyan" +msgstr "மயில் நிறம்" + +#: searx/templates/courgette/preferences.html:90 +msgid "Orange" +msgstr "ஆரஞ்சு" + +#: searx/templates/courgette/preferences.html:91 +msgid "Red" +msgstr "சிவப்பு" + +#: searx/templates/courgette/preferences.html:96 +#: searx/templates/legacy/preferences.html:93 +#: searx/templates/pix-art/preferences.html:49 +#: searx/templates/simple/preferences.html:77 +msgid "Currently used search engines" +msgstr "தற்போது பயன்படுத்திய தேடுபொறிகள்" + +#: searx/templates/courgette/preferences.html:100 +#: searx/templates/legacy/preferences.html:97 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 +#: searx/templates/pix-art/preferences.html:53 +#: searx/templates/simple/preferences.html:87 +msgid "Engine name" +msgstr "எந்திரத்தின் பெயர்" + +#: searx/templates/courgette/preferences.html:101 +#: searx/templates/legacy/preferences.html:98 +msgid "Category" +msgstr "வகுப்பு" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:113 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:110 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:64 +#: searx/templates/simple/preferences.html:86 +msgid "Allow" +msgstr "அனுமதி" + +#: searx/templates/courgette/preferences.html:102 +#: searx/templates/courgette/preferences.html:114 +#: searx/templates/legacy/preferences.html:99 +#: searx/templates/legacy/preferences.html:111 +#: searx/templates/pix-art/preferences.html:54 +#: searx/templates/pix-art/preferences.html:65 +msgid "Block" +msgstr "தடை" + +#: searx/templates/courgette/preferences.html:122 +#: searx/templates/legacy/preferences.html:119 +#: searx/templates/oscar/preferences.html:285 +#: searx/templates/pix-art/preferences.html:73 +#: searx/templates/simple/preferences.html:180 +msgid "" +"These settings are stored in your cookies, this allows us not to store this " +"data about you." +msgstr "" + +#: searx/templates/courgette/preferences.html:124 +#: searx/templates/legacy/preferences.html:121 +#: searx/templates/oscar/preferences.html:287 +#: searx/templates/pix-art/preferences.html:75 +#: searx/templates/simple/preferences.html:182 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "இந்த நினைவிகள் உங்களின் வசதிக்காக மட்டுமே. இந்த நினைவிகள் உங்களை உளவு பார்க்காது." + +#: searx/templates/courgette/preferences.html:127 +#: searx/templates/legacy/preferences.html:124 +#: searx/templates/oscar/preferences.html:293 +#: searx/templates/pix-art/preferences.html:78 +#: searx/templates/simple/preferences.html:185 +msgid "save" +msgstr "சேமி" + +#: searx/templates/courgette/preferences.html:128 +#: searx/templates/legacy/preferences.html:125 +#: searx/templates/oscar/preferences.html:295 +#: searx/templates/simple/preferences.html:186 +msgid "Reset defaults" +msgstr "இயல்புநிலைக்குத் திருப்பவும்" + +#: searx/templates/courgette/preferences.html:129 +#: searx/templates/legacy/preferences.html:126 +#: searx/templates/oscar/preferences.html:294 +#: searx/templates/pix-art/preferences.html:79 +#: searx/templates/simple/preferences.html:187 +msgid "back" +msgstr "பின்செல்" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/legacy/results.html:13 +#: searx/templates/oscar/results.html:136 +#: searx/templates/simple/results.html:58 +msgid "Search URL" +msgstr "இத்தேடலின் முகவரி" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/legacy/results.html:17 +#: searx/templates/oscar/results.html:141 +#: searx/templates/simple/results.html:62 +msgid "Download results" +msgstr "தேடல் பதில்களை தரவிறக்கு" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/legacy/results.html:35 +#: searx/templates/simple/results.html:10 +msgid "Answers" +msgstr "பதில்கள்" + +#: searx/templates/courgette/results.html:42 +#: searx/templates/legacy/results.html:43 +#: searx/templates/oscar/results.html:116 +#: searx/templates/simple/results.html:42 +msgid "Suggestions" +msgstr "பரிந்துரைகள்" + +#: searx/templates/courgette/results.html:70 +#: searx/templates/legacy/results.html:81 +#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78 +#: searx/templates/simple/results.html:130 +msgid "previous page" +msgstr "முந்தைய பக்கம்" + +#: searx/templates/courgette/results.html:81 +#: searx/templates/legacy/results.html:92 +#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84 +#: searx/templates/simple/results.html:145 +msgid "next page" +msgstr "அடுத்தப் பக்கம்" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6 +#: searx/templates/oscar/search_full.html:9 +#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4 +msgid "Search for..." +msgstr "எதைப்பற்றி தேட வேண்டும்?" + +#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4 +#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4 +#: searx/templates/simple/stats.html:7 +msgid "Engine stats" +msgstr "எந்திரத்தின் புள்ளி விவரங்கள்" + +#: searx/templates/courgette/result_templates/images.html:4 +#: searx/templates/legacy/result_templates/images.html:4 +#: searx/templates/pix-art/result_templates/images.html:4 +msgid "original context" +msgstr "உண்மையான சூழல்" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "பகிர்பவர்" + +#: searx/templates/courgette/result_templates/torrent.html:7 +#: searx/templates/legacy/result_templates/torrent.html:11 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "எடுப்பவர்" + +#: searx/templates/courgette/result_templates/torrent.html:9 +#: searx/templates/legacy/result_templates/torrent.html:9 +#: searx/templates/oscar/macros.html:23 +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "காந்த இணைப்பு" + +#: searx/templates/courgette/result_templates/torrent.html:10 +#: searx/templates/legacy/result_templates/torrent.html:10 +#: searx/templates/oscar/macros.html:24 +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "டொரன்ட் கோப்பு" + +#: searx/templates/legacy/categories.html:8 +#: searx/templates/simple/categories.html:6 +msgid "Click on the magnifier to perform search" +msgstr "உருப்பெருக்கியைச் சொடுக்கி தேடலைத் தொடங்கவும்" + +#: searx/templates/legacy/preferences.html:84 +#: searx/templates/oscar/preferences.html:113 +#: searx/templates/simple/preferences.html:142 +msgid "Results on new tabs" +msgstr "தேடல் முடிவுகள் புதிய Tab-ல்" + +#: searx/templates/legacy/preferences.html:87 +#: searx/templates/oscar/preferences.html:117 +#: searx/templates/simple/preferences.html:145 +msgid "On" +msgstr "இயக்கு" + +#: searx/templates/legacy/preferences.html:88 +#: searx/templates/oscar/preferences.html:118 +#: searx/templates/simple/preferences.html:146 +msgid "Off" +msgstr "அமர்த்து" + +#: searx/templates/legacy/result_templates/code.html:3 +#: searx/templates/legacy/result_templates/default.html:3 +#: searx/templates/legacy/result_templates/map.html:9 +#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48 +#: searx/templates/simple/macros.html:43 +msgid "cached" +msgstr "" + +#: searx/templates/oscar/advanced.html:4 +msgid "Advanced settings" +msgstr "மேம்பட்ட அமைப்புகள்" + +#: searx/templates/oscar/base.html:62 +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "மூடு" + +#: searx/templates/oscar/base.html:64 +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +#: searx/templates/simple/results.html:25 +msgid "Error!" +msgstr "பிழை!" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "Powered by" +msgstr "" + +#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "உங்கள் அகவுரிமையை மதிக்கும் மாற்றியமைக்ககூடிய ஒரு தேடல் எந்திரம்" + +#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50 +#: searx/templates/simple/macros.html:43 +msgid "proxied" +msgstr "" + +#: searx/templates/oscar/macros.html:92 +msgid "supported" +msgstr "ஆதரவுண்டு" + +#: searx/templates/oscar/macros.html:96 +msgid "not supported" +msgstr "ஆதரவில்லை" + +#: searx/templates/oscar/preferences.html:13 +#: searx/templates/oscar/preferences.html:22 +#: searx/templates/simple/preferences.html:32 +msgid "General" +msgstr "பொது" + +#: searx/templates/oscar/preferences.html:14 +#: searx/templates/oscar/preferences.html:134 +#: searx/templates/simple/preferences.html:76 +msgid "Engines" +msgstr "எந்திரங்கள்" + +#: searx/templates/oscar/preferences.html:15 +#: searx/templates/oscar/preferences.html:207 +msgid "Plugins" +msgstr "நீட்சி" + +#: searx/templates/oscar/preferences.html:16 +#: searx/templates/oscar/preferences.html:233 +msgid "Answerers" +msgstr "பதில்கள்" + +#: searx/templates/oscar/preferences.html:17 +#: searx/templates/oscar/preferences.html:260 +msgid "Cookies" +msgstr "நினைவிகள்" + +#: searx/templates/oscar/preferences.html:42 +#: searx/templates/simple/preferences.html:48 +msgid "What language do you prefer for search?" +msgstr "தேடலுக்கு எந்த மொழியை விரும்புகிறீர்கள்?" + +#: searx/templates/oscar/preferences.html:48 +#: searx/templates/simple/preferences.html:128 +msgid "Change the language of the layout" +msgstr "வடிவமைப்பின் மொழியை மாற்று" + +#: searx/templates/oscar/preferences.html:58 +#: searx/templates/simple/preferences.html:60 +msgid "Find stuff as you type" +msgstr "உள்ளிடும் போதே தேடு" + +#: searx/templates/oscar/preferences.html:69 +#: searx/templates/simple/preferences.html:173 +msgid "Proxying image results through searx" +msgstr "" + +#: searx/templates/oscar/preferences.html:78 +msgid "" +"Change how forms are submited, learn more about request methods" +msgstr "" + +#: searx/templates/oscar/preferences.html:87 +#: searx/templates/simple/preferences.html:71 +msgid "Filter content" +msgstr "" + +#: searx/templates/oscar/preferences.html:97 +#: searx/templates/simple/preferences.html:139 +msgid "Change searx layout" +msgstr "searx-ன் வடிவமைப்பை மாற்று" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Choose style for this theme" +msgstr "" + +#: searx/templates/oscar/preferences.html:106 +#: searx/templates/oscar/preferences.html:111 +msgid "Style" +msgstr "" + +#: searx/templates/oscar/preferences.html:151 +#: searx/templates/oscar/preferences.html:163 +#: searx/templates/simple/preferences.html:88 +msgid "Shortcut" +msgstr "" + +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 +msgid "Selected language" +msgstr "தேர்வு செய்யப்பட்ட மொழி" + +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 +#: searx/templates/simple/preferences.html:91 +msgid "Time range" +msgstr "நேர வரம்பு" + +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 +#: searx/templates/simple/preferences.html:92 +msgid "Avg. time" +msgstr "சராசரி நேரம்" + +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 +#: searx/templates/simple/preferences.html:93 +msgid "Max time" +msgstr "அதிகபட்ச நேரம்" + +#: searx/templates/oscar/preferences.html:236 +msgid "This is the list of searx's instant answering modules." +msgstr "இது searx-ன் உடனடி பதிலளிக்கும் தொகுதிகளின் பட்டியல்." + +#: searx/templates/oscar/preferences.html:240 +msgid "Name" +msgstr "பெயர்" + +#: searx/templates/oscar/preferences.html:241 +msgid "Keywords" +msgstr "குறிப்புச்சொற்கள்" + +#: searx/templates/oscar/preferences.html:242 +msgid "Description" +msgstr "விளக்கம்" + +#: searx/templates/oscar/preferences.html:243 +msgid "Examples" +msgstr "எடுத்துக்காட்டுகள்" + +#: searx/templates/oscar/preferences.html:263 +msgid "" +"This is the list of cookies and their values searx is storing on your " +"computer." +msgstr "இந்தப் பட்டியல் உங்கள் கணினியில் சேமிக்கப்பட்டுள்ள searx-ன் நினைவிகள் மற்றும் அதனுடைய மதிப்புகள்." + +#: searx/templates/oscar/preferences.html:264 +msgid "With that list, you can assess searx transparency." +msgstr "இந்தப் பட்டியல் மூலம் நீங்கள் searx-ன் வெளிப்படைத்தன்மையை மதிப்பிடலாம்." + +#: searx/templates/oscar/preferences.html:269 +msgid "Cookie name" +msgstr "நினைவியின் பெயர்" + +#: searx/templates/oscar/preferences.html:270 +msgid "Value" +msgstr "மதிப்பு" + +#: searx/templates/oscar/preferences.html:289 +msgid "Search URL of the currently saved preferences" +msgstr "தற்போது சேமிக்கப்பட்ட விருப்பத்தேர்வுகளில் வலைதள முகவரியைத் தேடு" + +#: searx/templates/oscar/preferences.html:289 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." +msgstr "குறிப்பு : தேடல் வலைதள முகவரியில் குறிப்பிட்ட விருப்ப அமைப்புகள், கிடைத்தத் தளங்களை சொடுக்குவதன் மூலம் தரவுகள் கசிவதால் அகவுரிமை குறையும்." + +#: searx/templates/oscar/results.html:17 +msgid "Search results" +msgstr "தேடல் முடிவுகள்" + +#: searx/templates/oscar/results.html:21 +#: searx/templates/simple/results.html:84 +msgid "Try searching for:" +msgstr "இதுபோல் தேடி பார்க்கவும்" + +#: searx/templates/oscar/results.html:100 +#: searx/templates/simple/results.html:25 +msgid "Engines cannot retrieve results" +msgstr "எந்திரங்களால் பதில்களை பெற முடியவில்லை" + +#: searx/templates/oscar/results.html:131 +msgid "Links" +msgstr "இணைப்புகள்" + +#: searx/templates/oscar/search.html:8 +#: searx/templates/oscar/search_full.html:11 +#: searx/templates/simple/search.html:5 +msgid "Start search" +msgstr "தேடலை துவங்கு" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "புள்ளி விவரங்கள்" + +#: searx/templates/oscar/time-range.html:3 +#: searx/templates/simple/time-range.html:3 +msgid "Anytime" +msgstr "எந்நேரமும்" + +#: searx/templates/oscar/time-range.html:6 +#: searx/templates/simple/time-range.html:6 +msgid "Last day" +msgstr "நேற்று" + +#: searx/templates/oscar/time-range.html:9 +#: searx/templates/simple/time-range.html:9 +msgid "Last week" +msgstr "கடந்த வாரம்" + +#: searx/templates/oscar/time-range.html:12 +#: searx/templates/simple/time-range.html:12 +msgid "Last month" +msgstr "கடந்த மாதம்" + +#: searx/templates/oscar/time-range.html:15 +#: searx/templates/simple/time-range.html:15 +msgid "Last year" +msgstr "கடந்த ஆண்டு" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "வாழ்த்துக்கள்!" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "நீங்கள் இதை பயன்படுத்துவது இதுதான் முதல்முறை போலுள்ளது." + +#: searx/templates/oscar/messages/no_cookies.html:3 +msgid "Information!" +msgstr "தகவல்!" + +#: searx/templates/oscar/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "தற்போது எந்தவொரு நினைவிகளும் வரையறுக்கப்படவில்லை." + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "தற்போது தரவுகள் ஏதும் இல்லை." + +#: searx/templates/oscar/messages/no_results.html:4 +#: searx/templates/simple/messages/no_results.html:4 +msgid "Engines cannot retrieve results." +msgstr "எந்திரத்தால் பதில்களை மீட்டெடுக்க இயலவில்லை." + +#: searx/templates/oscar/messages/no_results.html:10 +#: searx/templates/simple/messages/no_results.html:10 +msgid "Please, try again later or find another searx instance." +msgstr "தயவுசெய்து பின்னர் முயற்சிக்கவும் அல்லது வேறொரு searx-யைத் தேடவும்" + +#: searx/templates/oscar/messages/no_results.html:14 +#: searx/templates/simple/messages/no_results.html:14 +msgid "Sorry!" +msgstr "மன்னிக்கவும்!" + +#: searx/templates/oscar/messages/no_results.html:15 +#: searx/templates/simple/messages/no_results.html:15 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "எங்களால் எந்ததொரு பதில்களையும் தேட இயலவில்லை. தயவு செய்து வேறொரு வினவலில் அல்லது கூடுதலானப் பிரிவுகளில் தேடவும்." + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "சபாஷ்!" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "அமைப்புகள் வெற்றிகரமாக சேமிக்கப்பட்டது." + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "மன்னிக்கவும்!" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "ஏதோ தவறு நடந்துள்ளது." + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "show media" +msgstr "ஊடகத்தைக் காட்டு" + +#: searx/templates/oscar/result_templates/default.html:7 +#: searx/templates/simple/result_templates/default.html:6 +msgid "hide media" +msgstr "ஊடகத்தை மறை" + +#: searx/templates/oscar/result_templates/images.html:30 +msgid "Get image" +msgstr "படத்தைப் பெறு" + +#: searx/templates/oscar/result_templates/images.html:33 +msgid "View source" +msgstr "மூலத்தைப் பார்" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "show map" +msgstr "வரைபடத்தை காண்பி" + +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/simple/result_templates/map.html:7 +msgid "hide map" +msgstr "வரைபடத்தை மறை" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "show details" +msgstr "விவரங்களைக் காட்டு" + +#: searx/templates/oscar/result_templates/map.html:11 +#: searx/templates/simple/result_templates/map.html:11 +msgid "hide details" +msgstr "விவரங்களை மறை" + +#: searx/templates/oscar/result_templates/torrent.html:7 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "கோப்பளவு" + +#: searx/templates/oscar/result_templates/torrent.html:9 +#: searx/templates/simple/result_templates/torrent.html:12 +msgid "Bytes" +msgstr "பைட்டுகள்" + +#: searx/templates/oscar/result_templates/torrent.html:10 +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "kiB" +msgstr "kiB" + +#: searx/templates/oscar/result_templates/torrent.html:11 +#: searx/templates/simple/result_templates/torrent.html:14 +msgid "MiB" +msgstr "MiB" + +#: searx/templates/oscar/result_templates/torrent.html:12 +#: searx/templates/simple/result_templates/torrent.html:15 +msgid "GiB" +msgstr "GiB" + +#: searx/templates/oscar/result_templates/torrent.html:13 +#: searx/templates/simple/result_templates/torrent.html:16 +msgid "TiB" +msgstr "TiB" + +#: searx/templates/oscar/result_templates/torrent.html:15 +#: searx/templates/simple/result_templates/torrent.html:20 +msgid "Number of Files" +msgstr "மொத்த கோப்புகள்" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "காணொளிகளை காண்பி" + +#: searx/templates/oscar/result_templates/videos.html:7 +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "காணொளிகளை மறை" + +#: searx/templates/pix-art/results.html:28 +msgid "Load more..." +msgstr "இன்னும் கொஞ்சம்" + +#: searx/templates/simple/base.html:31 +msgid "No item found" +msgstr "எதுவும் கிடைக்கவில்லை" + +#: searx/templates/simple/preferences.html:89 +msgid "Supports selected language" +msgstr "தேர்ந்தெடுத்த மொழிக்கு ஆதரவு உள்ளது." + +#: searx/templates/simple/preferences.html:118 +msgid "User interface" +msgstr "பயனர் இடைமுகப்பு" + +#: searx/templates/simple/preferences.html:154 +msgid "Privacy" +msgstr "தனியுரிமை" diff --git a/searx/translations/te/LC_MESSAGES/messages.mo b/searx/translations/te/LC_MESSAGES/messages.mo index 57488bf0..f32870e9 100644 Binary files a/searx/translations/te/LC_MESSAGES/messages.mo and b/searx/translations/te/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/te/LC_MESSAGES/messages.po b/searx/translations/te/LC_MESSAGES/messages.po index 8da1506c..20df5b79 100644 --- a/searx/translations/te/LC_MESSAGES/messages.po +++ b/searx/translations/te/LC_MESSAGES/messages.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-03-08 16:40+0000\n" -"Last-Translator: Joseph Nuthalapati \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Telugu (http://www.transifex.com/asciimoo/searx/language/te/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,63 +31,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "ఫైళ్ళు" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "సాధారణ" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "సంగీతం" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "సోషల్ మీడియా" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "చిత్రాలు" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "వీడియోలు" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "ఐటి" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "వార్తలు" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "పటము" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "విజ్ఞానశాస్త్రం" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "చెల్లని అమరికలు" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "శోధనలో దోషము" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} నిమిషము(ల) క్రిందట" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "" @@ -107,29 +107,28 @@ msgstr "సాంఖ్యకశాస్త్ర ప్రమేయాలు" msgid "Compute {functions} of the arguments" msgstr "" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "ఫలితముల సంఖ్య" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "దోషములు" @@ -141,8 +140,14 @@ msgstr "" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -157,16 +162,6 @@ msgstr "" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "విధానం" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "ప్రస్తుతం ఉపయోగించబడుతున #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "వర్గము" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "అడ్డగించు" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "" #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "దాచు" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "నిష్క్రియాలకు అమర్చు" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "సాధారణ" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "యంత్రాలు" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "ప్లగిన్లు" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "జవాబులు" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "కుకీలు" @@ -710,88 +705,78 @@ msgstr "" msgid "Style" msgstr "శైలి" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "సత్వరమార్గం" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "ఎంచుకున్న భాష" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "కాల శ్రేణి" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "సగటు సమయం" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "గరిష్ఠ సమయం" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "పేరు" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "వర్ణన" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "ఉదాహరణలు" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "కుకీ పేరు" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "విలువ" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo index ec47020a..8698157b 100644 Binary files a/searx/translations/tr/LC_MESSAGES/messages.mo and b/searx/translations/tr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/tr/LC_MESSAGES/messages.po b/searx/translations/tr/LC_MESSAGES/messages.po index a15c8560..5217849e 100644 --- a/searx/translations/tr/LC_MESSAGES/messages.po +++ b/searx/translations/tr/LC_MESSAGES/messages.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-06 17:22+0000\n" -"Last-Translator: Arda Kılıçdağı \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Turkish (http://www.transifex.com/asciimoo/searx/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,63 +33,63 @@ msgstr "istekte bir hata oluştu" msgid "unexpected crash" msgstr "beklenmmeyen hata" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "dosyalar" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "genel" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "müzik" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "sosyal medya" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "görseller" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "videolar" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "bilişim" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "haberler" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "harita" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "bilim" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Hatalı ayar girildi, lütfen ayarlarınızı kontrol edin" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Hatalı ayar" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "arama hatası" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} dakika() önce" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} saat(), {minutes} dakika() önce" @@ -109,29 +109,28 @@ msgstr "İstatistik fonksiyonları" msgid "Compute {functions} of the arguments" msgstr "Argümanların {functions} değerlerini hesapla" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Motor cevap süresi (sn)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Sayfa yüklenmesi (sn)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Sonuç sayısı" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Skor" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Sonuç başına skor" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Hatalar" @@ -143,8 +142,14 @@ msgstr "{title} (GEÇERSİZ)" msgid "This entry has been superseded by" msgstr "" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" msgstr "" #: searx/plugins/https_rewrite.py:32 @@ -159,16 +164,6 @@ msgstr "" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +326,8 @@ msgstr "Sorgu gönderim yöntemi" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +399,8 @@ msgstr "Şu anda kullanılan arama motorları" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +415,8 @@ msgstr "Türü" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +434,7 @@ msgstr "Engelle" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +444,7 @@ msgstr "Ayarlar çerezlerinizde saklanır. Verdiğiniz izinler, sizin hakkınız #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +454,7 @@ msgstr "Bu çerezler size kolaylık sağlar. Sizi takip etmek için kullanılmaz #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +462,14 @@ msgstr "kaydet" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Varsayılanları sıfırla" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +640,23 @@ msgid "General" msgstr "Genel" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Motorlar" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Eklentiler" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "" @@ -712,88 +707,78 @@ msgstr "" msgid "Style" msgstr "" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/uk/LC_MESSAGES/messages.mo b/searx/translations/uk/LC_MESSAGES/messages.mo index 6610dfaa..91b53345 100644 Binary files a/searx/translations/uk/LC_MESSAGES/messages.mo and b/searx/translations/uk/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/uk/LC_MESSAGES/messages.po b/searx/translations/uk/LC_MESSAGES/messages.po index 7c6ac5aa..bd4b294c 100644 --- a/searx/translations/uk/LC_MESSAGES/messages.po +++ b/searx/translations/uk/LC_MESSAGES/messages.po @@ -5,14 +5,15 @@ # Translators: # pvhn4 , 2017 # pvhn4 , 2017 +# pvhn4 , 2017 # zubr139, 2016-2017 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2017-11-01 20:31+0000\n" -"Last-Translator: Adam Tauber \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: zubr139\n" "Language-Team: Ukrainian (http://www.transifex.com/asciimoo/searx/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,63 +34,63 @@ msgstr "" msgid "unexpected crash" msgstr "" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "файли" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "загальні" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "музика" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "соцмережі" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "зображення" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "відео" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "новини" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "карти" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "наука" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Невірні налаштування, будь ласка, зробіть зміни в налаштуваннях" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "помилка пошуку" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} хвилин тому" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} годин, {minutes} хвилин тому" @@ -109,29 +110,28 @@ msgstr "Функції статистики" msgid "Compute {functions} of the arguments" msgstr "Розрахувати {functions} аргументів" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Час пошуку (сек)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Час завантадення (сек)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Число результатів" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Влучань" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Влучань за результат" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Помилок" @@ -143,9 +143,15 @@ msgstr "{title} (OBSOLETE)" msgid "This entry has been superseded by" msgstr "Цей запис був змінений" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "Переписати DOAI" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Уникайте платіжних каналів шляхом переадресації на версії публікацій з відкритим доступом, коли це можливо" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +165,6 @@ msgstr "Нескінченна прокрутка" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Автоматично завантажувати наступну сторінку при прокрутці поточної до кінця" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Уникайте платіжних каналів шляхом переадресації на версії публікацій з відкритим доступом, коли це можливо" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +327,8 @@ msgstr "Метод" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +400,8 @@ msgstr "Пошукові системи, які використовуються #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +416,8 @@ msgstr "Категорія" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +435,7 @@ msgstr "Заблокувати" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +445,7 @@ msgstr "Налаштування зберігаються в ваших cookie- #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +455,7 @@ msgstr "Ці cookie-файли необхідні винятково для ва #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +463,14 @@ msgstr "зберегти" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Відновити стандартні налаштування" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +641,23 @@ msgid "General" msgstr "Загальні" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Пошукові системи" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Плагіни" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Відповідачі" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookie-файли" @@ -712,88 +708,78 @@ msgstr "Обрати стиль для цієї теми" msgid "Style" msgstr "Стиль" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Гарячі клавіші" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Часовий діапазон" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Середній час" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Максимальний час" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Список модулів миттєвих відповідей searx." -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Назва" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Ключові слова" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Опис" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Приклади" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Це список cookie-файлів та їх значень, які searx зберігає на вашому комп'ютері." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "По цьому списку ви можете оцінити відкритість searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Ім'я cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Значення" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/vi/LC_MESSAGES/messages.mo b/searx/translations/vi/LC_MESSAGES/messages.mo index 07dc309e..687a93d6 100644 Binary files a/searx/translations/vi/LC_MESSAGES/messages.mo and b/searx/translations/vi/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/vi/LC_MESSAGES/messages.po b/searx/translations/vi/LC_MESSAGES/messages.po index d8a1a0c9..4ad30d0b 100644 --- a/searx/translations/vi/LC_MESSAGES/messages.po +++ b/searx/translations/vi/LC_MESSAGES/messages.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-02-28 17:27+0000\n" -"Last-Translator: dd721411 \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-02-23 17:39+0000\n" +"Last-Translator: Noémi Ványi \n" "Language-Team: Vietnamese (http://www.transifex.com/asciimoo/searx/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,63 +31,63 @@ msgstr "ngoại lệ yêu cầu" msgid "unexpected crash" msgstr "lỗi bất ngờ" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "các tập tin" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "tổng quát" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "âm nhạc" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "mạng xã hội" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "hình ảnh" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "phim" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "CNTT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "tin tức" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "bản đồ" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "khoa học" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "Cài đặt không hợp lệ, xin xem lại tuỳ chỉnh" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "Cài đặt không hợp lệ" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "lỗi tìm kiếm" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} phút() trước" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} giờ(), {minutes} phút() trước" @@ -107,29 +107,28 @@ msgstr "Các hàm thống kê" msgid "Compute {functions} of the arguments" msgstr "Tính toán {functions} của các đối số" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "Thời gian trình tìm kiếm (giây)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "Tải trang (giây)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "Số lượng kết quả" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "Điểm số" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "Điểm số cho từng kết quả" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "Các lỗi" @@ -141,9 +140,15 @@ msgstr "{title} (LỖI THỜI)" msgid "This entry has been superseded by" msgstr "Mục này đã được thay thế bởi" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "Không có bản tóm tắt nào cho ấn phẩm này." +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "Tránh việc trả phí bằng cách chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -157,16 +162,6 @@ msgstr "Cuộn liên tục" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "Tự động tải trang kế tiếp khi cuộn đến cuối trang hiện tại" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "Viết lại DOI Truy Cập Miễn Phí" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "Tránh việc trả phí bằng cách chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -329,8 +324,8 @@ msgstr "Phương pháp" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -402,8 +397,8 @@ msgstr "Các trình tìm kiếm đang được dùng" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -418,8 +413,8 @@ msgstr "Danh mục" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -437,7 +432,7 @@ msgstr "Chặn" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -447,7 +442,7 @@ msgstr "Những cài đặt này được lưu trữ trong các cookie, điều #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -457,7 +452,7 @@ msgstr "Những cookie này chỉ phục vụ cho chính bạn, chúng tôi khô #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -465,14 +460,14 @@ msgstr "lưu" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "Đưa về mặc định" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -643,23 +638,23 @@ msgid "General" msgstr "Tổng quát" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "Các trình tìm kiếm" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "Các phần mở rộng" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "Trình trả lời nhanh" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Các cookie" @@ -710,88 +705,78 @@ msgstr "Chọn phong cách cho nền này" msgid "Style" msgstr "Phong cách" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "Trình xử lý DOI Truy Cập Miễn Phí" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "Chuyển hướng đến các phiên bản truy cập miễn phí của ấn phẩm khi có thể (yêu cầu phần mở rộng)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "Lối tắt" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "Ngôn ngữ được chọn" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "Khoảng thời gian" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "Thời gian trung bình" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "Thời gian tối đa" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "Đây là danh sách các module trả lời nhanh của searx" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "Tên" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "Các từ khoá" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "Mô tả" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "Các ví dụ" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "Đây là danh sách các cookie và giá trị của chúng mà searx đang lưu trữ trên máy tính của bạn." -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "Với danh sách này, bạn có thể đánh giá tính minh bạch của searx." -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Tên cookie" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "Giá trị" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "URL tìm kiếm của tuỳ chỉnh được lưu hiện tại" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/zh_CN/LC_MESSAGES/messages.mo b/searx/translations/zh_CN/LC_MESSAGES/messages.mo index b98af054..081fc881 100644 Binary files a/searx/translations/zh_CN/LC_MESSAGES/messages.mo and b/searx/translations/zh_CN/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/zh_CN/LC_MESSAGES/messages.po b/searx/translations/zh_CN/LC_MESSAGES/messages.po index d71288ce..c37c6511 100644 --- a/searx/translations/zh_CN/LC_MESSAGES/messages.po +++ b/searx/translations/zh_CN/LC_MESSAGES/messages.po @@ -4,7 +4,9 @@ # # Translators: # Crystal RainSlide, 2018 +# Jsthon, 2019 # Mingye Wang , 2018 +# Noémi Ványi , 2019 # Sion Kazama, 2018 # wenke, 2015 # wenke, 2015-2018 @@ -12,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-12-10 08:32+0000\n" -"Last-Translator: Crystal RainSlide\n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-03-23 07:45+0000\n" +"Last-Translator: Jsthon\n" "Language-Team: Chinese (China) (http://www.transifex.com/asciimoo/searx/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,63 +37,63 @@ msgstr "请求异常" msgid "unexpected crash" msgstr "意外崩溃" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "文件" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "全部" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "音乐" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" -msgstr "社交媒体" +msgstr "社交" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "图片" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "视频" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" -msgstr "IT" +msgstr "技术" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "新闻" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "地图" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "学术" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "设置无效,请编辑您的首选项" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "设置无效" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "搜索错误" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} 分钟前" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} 小时 {minutes} 分钟前" @@ -111,29 +113,28 @@ msgstr "统计功能" msgid "Compute {functions} of the arguments" msgstr "计算 {functions} 参数" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "搜索引擎时间(秒)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "页面加载(秒)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "结果数" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "得分" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "每个结果的分数" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "错误" @@ -145,9 +146,15 @@ msgstr "{title} (过时)" msgid "This entry has been superseded by" msgstr "此条目已被取代" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "本出版物没有摘要。" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI改写" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "尽量重定向到开放访问的文章以避免付费墙(如果可用)" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -161,16 +168,6 @@ msgstr "无限滚动" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "滚动到当前页面底部时自动加载下一页" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "开放访问 DOI 重定向" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "尽量重定向到开放访问的文章以避免付费墙(如果可用)" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -333,8 +330,8 @@ msgstr "方法" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -406,8 +403,8 @@ msgstr "目前使用的搜索引擎" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -422,8 +419,8 @@ msgstr "类别" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -441,7 +438,7 @@ msgstr "阻止" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -451,7 +448,7 @@ msgstr "这些设置被存储在您的 cookie 中,这种保存设置的方式 #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -461,7 +458,7 @@ msgstr "这些 Cookie 信息可辅助您便捷地使用服务,我们不会利 #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -469,14 +466,14 @@ msgstr "保存" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "恢复默认" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -647,23 +644,23 @@ msgid "General" msgstr "常规" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "搜索引擎" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "插件" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "智能答复" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -692,7 +689,7 @@ msgid "" "Change how forms are submited, learn more about request methods" -msgstr "更改提交表单时使用的请求方法,深入了解请求方法" +msgstr "更改提交表单时使用的请求方法,深入了解请求方法" #: searx/templates/oscar/preferences.html:87 #: searx/templates/simple/preferences.html:71 @@ -714,88 +711,78 @@ msgstr "选择此主题的样式" msgid "Style" msgstr "样式" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "开放访问 DOI 解析器" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "尽可能重定向到出版物的开放访问版本(需要插件)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "快捷键" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "选择语言" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "时间范围" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "平均时间" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "最大时间" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "这是 searx 的即时回答模块列表。" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "名称" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "关键词" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "描述" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "示例" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "此列表展示了 searx 在您设备上存储的 cookie 信息。" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "您可以基于此表格来评估 searx 的透明度。" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookie 名称" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "值" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "当前保存选项的搜索链接" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index 0b2a3c92..54e06387 100644 Binary files a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo and b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/zh_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_TW/LC_MESSAGES/messages.mo index b6d43e2a..ee24c1e7 100644 Binary files a/searx/translations/zh_TW/LC_MESSAGES/messages.mo and b/searx/translations/zh_TW/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/zh_TW/LC_MESSAGES/messages.po b/searx/translations/zh_TW/LC_MESSAGES/messages.po index 93adf449..d09317ab 100644 --- a/searx/translations/zh_TW/LC_MESSAGES/messages.po +++ b/searx/translations/zh_TW/LC_MESSAGES/messages.po @@ -4,15 +4,16 @@ # # Translators: # FIRST AUTHOR , 2016 -# Jeff Huang , 2017 +# 黃柏諺 , 2017,2019 +# Marc Abonce Seguin, 2019 # Mingye Wang , 2018 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2017-11-01 21:31+0100\n" -"PO-Revision-Date: 2018-09-16 00:29+0000\n" -"Last-Translator: Mingye Wang \n" +"POT-Creation-Date: 2017-10-07 19:18+0200\n" +"PO-Revision-Date: 2019-07-28 05:46+0000\n" +"Last-Translator: Marc Abonce Seguin\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/asciimoo/searx/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,63 +34,63 @@ msgstr "請求例外" msgid "unexpected crash" msgstr "未預期的當機" -#: searx/webapp.py:136 +#: searx/webapp.py:135 msgid "files" msgstr "檔案" -#: searx/webapp.py:137 +#: searx/webapp.py:136 msgid "general" msgstr "一般" -#: searx/webapp.py:138 +#: searx/webapp.py:137 msgid "music" msgstr "音樂" -#: searx/webapp.py:139 +#: searx/webapp.py:138 msgid "social media" msgstr "社群媒體" -#: searx/webapp.py:140 +#: searx/webapp.py:139 msgid "images" msgstr "圖片" -#: searx/webapp.py:141 +#: searx/webapp.py:140 msgid "videos" msgstr "影片" -#: searx/webapp.py:142 +#: searx/webapp.py:141 msgid "it" msgstr "IT" -#: searx/webapp.py:143 +#: searx/webapp.py:142 msgid "news" msgstr "新聞" -#: searx/webapp.py:144 +#: searx/webapp.py:143 msgid "map" msgstr "地圖" -#: searx/webapp.py:145 +#: searx/webapp.py:144 msgid "science" msgstr "科學" -#: searx/webapp.py:399 searx/webapp.py:658 +#: searx/webapp.py:398 searx/webapp.py:653 msgid "Invalid settings, please edit your preferences" msgstr "無效的設定,請編輯您的偏好設定" -#: searx/webapp.py:415 +#: searx/webapp.py:410 msgid "Invalid settings" msgstr "無效的設定" -#: searx/webapp.py:449 searx/webapp.py:493 +#: searx/webapp.py:444 searx/webapp.py:488 msgid "search error" msgstr "搜尋錯誤" -#: searx/webapp.py:530 +#: searx/webapp.py:525 msgid "{minutes} minute(s) ago" msgstr "{minutes} 分鐘前" -#: searx/webapp.py:532 +#: searx/webapp.py:527 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} 小時 {minutes} 分鐘前" @@ -109,29 +110,28 @@ msgstr "統計功能" msgid "Compute {functions} of the arguments" msgstr "計算 {functions} 參數" -#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201 +#: searx/engines/__init__.py:194 msgid "Engine time (sec)" msgstr "引擎時間(秒)" -#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205 +#: searx/engines/__init__.py:198 msgid "Page loads (sec)" msgstr "頁面載入(秒)" -#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209 -#: searx/templates/oscar/results.html:95 +#: searx/engines/__init__.py:202 searx/templates/oscar/results.html:95 #: searx/templates/simple/results.html:20 msgid "Number of results" msgstr "結果筆數" -#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213 +#: searx/engines/__init__.py:206 msgid "Scores" msgstr "分數" -#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217 +#: searx/engines/__init__.py:210 msgid "Scores per result" msgstr "每個結果的分數" -#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221 +#: searx/engines/__init__.py:214 msgid "Errors" msgstr "錯誤" @@ -143,9 +143,15 @@ msgstr "{title} (已過時)" msgid "This entry has been superseded by" msgstr "此條目已被取代" -#: searx/engines/pubmed.py:74 -msgid "No abstract is available for this publication." -msgstr "此出版品無可用摘要。" +#: searx/plugins/doai_rewrite.py:7 +msgid "DOAI rewrite" +msgstr "DOAI 重寫" + +#: searx/plugins/doai_rewrite.py:8 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "盡可能重新導向至出版品的開放存取版本,來避免付費牆" #: searx/plugins/https_rewrite.py:32 msgid "Rewrite HTTP links to HTTPS if possible" @@ -159,16 +165,6 @@ msgstr "無限捲動" msgid "Automatically load next page when scrolling to bottom of current page" msgstr "當捲動至目前頁面的底部時自動載入下一頁" -#: searx/plugins/oa_doi_rewrite.py:9 -msgid "Open Access DOI rewrite" -msgstr "開放存取 DOI 重寫" - -#: searx/plugins/oa_doi_rewrite.py:10 -msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" -msgstr "盡可能重新導向至出版品的開放存取版本,來避免付費牆" - #: searx/plugins/open_results_on_new_tab.py:18 #: searx/templates/oscar/preferences.html:114 #: searx/templates/simple/preferences.html:149 @@ -331,8 +327,8 @@ msgstr "方法" #: searx/templates/courgette/preferences.html:63 #: searx/templates/legacy/preferences.html:64 #: searx/templates/oscar/preferences.html:86 -#: searx/templates/oscar/preferences.html:165 -#: searx/templates/oscar/preferences.html:173 +#: searx/templates/oscar/preferences.html:153 +#: searx/templates/oscar/preferences.html:161 #: searx/templates/simple/preferences.html:63 #: searx/templates/simple/preferences.html:90 msgid "SafeSearch" @@ -404,8 +400,8 @@ msgstr "目前使用的搜尋引擎" #: searx/templates/courgette/preferences.html:100 #: searx/templates/legacy/preferences.html:97 -#: searx/templates/oscar/preferences.html:162 -#: searx/templates/oscar/preferences.html:176 +#: searx/templates/oscar/preferences.html:150 +#: searx/templates/oscar/preferences.html:164 #: searx/templates/pix-art/preferences.html:53 #: searx/templates/simple/preferences.html:87 msgid "Engine name" @@ -420,8 +416,8 @@ msgstr "分類" #: searx/templates/courgette/preferences.html:113 #: searx/templates/legacy/preferences.html:99 #: searx/templates/legacy/preferences.html:110 -#: searx/templates/oscar/preferences.html:161 -#: searx/templates/oscar/preferences.html:177 +#: searx/templates/oscar/preferences.html:149 +#: searx/templates/oscar/preferences.html:165 #: searx/templates/pix-art/preferences.html:54 #: searx/templates/pix-art/preferences.html:64 #: searx/templates/simple/preferences.html:86 @@ -439,7 +435,7 @@ msgstr "封鎖" #: searx/templates/courgette/preferences.html:122 #: searx/templates/legacy/preferences.html:119 -#: searx/templates/oscar/preferences.html:297 +#: searx/templates/oscar/preferences.html:285 #: searx/templates/pix-art/preferences.html:73 #: searx/templates/simple/preferences.html:180 msgid "" @@ -449,7 +445,7 @@ msgstr "這些設定只會儲存在您的 cookies 中,這樣我們無需也不 #: searx/templates/courgette/preferences.html:124 #: searx/templates/legacy/preferences.html:121 -#: searx/templates/oscar/preferences.html:299 +#: searx/templates/oscar/preferences.html:287 #: searx/templates/pix-art/preferences.html:75 #: searx/templates/simple/preferences.html:182 msgid "" @@ -459,7 +455,7 @@ msgstr "這些 cookies 僅做為提供您方便之用,我們不會使用這些 #: searx/templates/courgette/preferences.html:127 #: searx/templates/legacy/preferences.html:124 -#: searx/templates/oscar/preferences.html:305 +#: searx/templates/oscar/preferences.html:293 #: searx/templates/pix-art/preferences.html:78 #: searx/templates/simple/preferences.html:185 msgid "save" @@ -467,14 +463,14 @@ msgstr "儲存" #: searx/templates/courgette/preferences.html:128 #: searx/templates/legacy/preferences.html:125 -#: searx/templates/oscar/preferences.html:307 +#: searx/templates/oscar/preferences.html:295 #: searx/templates/simple/preferences.html:186 msgid "Reset defaults" msgstr "重設為預設值" #: searx/templates/courgette/preferences.html:129 #: searx/templates/legacy/preferences.html:126 -#: searx/templates/oscar/preferences.html:306 +#: searx/templates/oscar/preferences.html:294 #: searx/templates/pix-art/preferences.html:79 #: searx/templates/simple/preferences.html:187 msgid "back" @@ -645,23 +641,23 @@ msgid "General" msgstr "一般" #: searx/templates/oscar/preferences.html:14 -#: searx/templates/oscar/preferences.html:146 +#: searx/templates/oscar/preferences.html:134 #: searx/templates/simple/preferences.html:76 msgid "Engines" msgstr "引擎" #: searx/templates/oscar/preferences.html:15 -#: searx/templates/oscar/preferences.html:219 +#: searx/templates/oscar/preferences.html:207 msgid "Plugins" msgstr "外掛程式" #: searx/templates/oscar/preferences.html:16 -#: searx/templates/oscar/preferences.html:245 +#: searx/templates/oscar/preferences.html:233 msgid "Answerers" msgstr "答案" #: searx/templates/oscar/preferences.html:17 -#: searx/templates/oscar/preferences.html:272 +#: searx/templates/oscar/preferences.html:260 msgid "Cookies" msgstr "Cookies" @@ -690,7 +686,7 @@ msgid "" "Change how forms are submited, learn more about request methods" -msgstr "變更遞交形式,看看更多關於請求方法的介紹" +msgstr "變更遞交形式,看看更多關於請求方法的介紹" #: searx/templates/oscar/preferences.html:87 #: searx/templates/simple/preferences.html:71 @@ -712,88 +708,78 @@ msgstr "選擇這個主題的樣式" msgid "Style" msgstr "樣式" -#: searx/templates/oscar/preferences.html:122 -msgid "Open Access DOI resolver" -msgstr "開放存取 DOI 解析器" - -#: searx/templates/oscar/preferences.html:123 -msgid "" -"Redirect to open-access versions of publications when available (plugin " -"required)" -msgstr "盡可能重新導向至出版品的開放存取版本(需要外掛程式)" - +#: searx/templates/oscar/preferences.html:151 #: searx/templates/oscar/preferences.html:163 -#: searx/templates/oscar/preferences.html:175 #: searx/templates/simple/preferences.html:88 msgid "Shortcut" msgstr "快捷鍵" -#: searx/templates/oscar/preferences.html:164 -#: searx/templates/oscar/preferences.html:174 +#: searx/templates/oscar/preferences.html:152 +#: searx/templates/oscar/preferences.html:162 msgid "Selected language" msgstr "已選取的語言" -#: searx/templates/oscar/preferences.html:166 -#: searx/templates/oscar/preferences.html:172 +#: searx/templates/oscar/preferences.html:154 +#: searx/templates/oscar/preferences.html:160 #: searx/templates/simple/preferences.html:91 msgid "Time range" msgstr "時間範圍" -#: searx/templates/oscar/preferences.html:167 -#: searx/templates/oscar/preferences.html:171 +#: searx/templates/oscar/preferences.html:155 +#: searx/templates/oscar/preferences.html:159 #: searx/templates/simple/preferences.html:92 msgid "Avg. time" msgstr "平均時間" -#: searx/templates/oscar/preferences.html:168 -#: searx/templates/oscar/preferences.html:170 +#: searx/templates/oscar/preferences.html:156 +#: searx/templates/oscar/preferences.html:158 #: searx/templates/simple/preferences.html:93 msgid "Max time" msgstr "最大時間" -#: searx/templates/oscar/preferences.html:248 +#: searx/templates/oscar/preferences.html:236 msgid "This is the list of searx's instant answering modules." msgstr "這是 searx 的即時回覆模組清單。" -#: searx/templates/oscar/preferences.html:252 +#: searx/templates/oscar/preferences.html:240 msgid "Name" msgstr "名稱" -#: searx/templates/oscar/preferences.html:253 +#: searx/templates/oscar/preferences.html:241 msgid "Keywords" msgstr "關鍵字" -#: searx/templates/oscar/preferences.html:254 +#: searx/templates/oscar/preferences.html:242 msgid "Description" msgstr "描述" -#: searx/templates/oscar/preferences.html:255 +#: searx/templates/oscar/preferences.html:243 msgid "Examples" msgstr "範例" -#: searx/templates/oscar/preferences.html:275 +#: searx/templates/oscar/preferences.html:263 msgid "" "This is the list of cookies and their values searx is storing on your " "computer." msgstr "這是 searx 儲存在您電腦上的 cookies 與它們的值的清單。" -#: searx/templates/oscar/preferences.html:276 +#: searx/templates/oscar/preferences.html:264 msgid "With that list, you can assess searx transparency." msgstr "有了這份清單,您就可以評估 searx 的透明度。" -#: searx/templates/oscar/preferences.html:281 +#: searx/templates/oscar/preferences.html:269 msgid "Cookie name" msgstr "Cookie 名稱" -#: searx/templates/oscar/preferences.html:282 +#: searx/templates/oscar/preferences.html:270 msgid "Value" msgstr "值" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "Search URL of the currently saved preferences" msgstr "目前偏好設定的搜尋 URL" -#: searx/templates/oscar/preferences.html:301 +#: searx/templates/oscar/preferences.html:289 msgid "" "Note: specifying custom settings in the search URL can reduce privacy by " "leaking data to the clicked result sites." diff --git a/searx/version.py b/searx/version.py index 4e149722..3fe3dba8 100644 --- a/searx/version.py +++ b/searx/version.py @@ -18,7 +18,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. # version of searx VERSION_MAJOR = 0 -VERSION_MINOR = 15 +VERSION_MINOR = 16 VERSION_BUILD = 0 VERSION_STRING = "{0}.{1}.{2}".format(VERSION_MAJOR, diff --git a/searx/webapp.py b/searx/webapp.py old mode 100644 new mode 100755 index 7cf4106d..8c353106 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -45,15 +45,20 @@ try: from cgi import escape except: from html import escape +from six import next from datetime import datetime, timedelta from time import time -from werkzeug.contrib.fixers import ProxyFix +from werkzeug.middleware.proxy_fix import ProxyFix from flask import ( Flask, request, render_template, url_for, Response, make_response, redirect, send_from_directory ) +from babel.support import Translations +import flask_babel from flask_babel import Babel, gettext, format_date, format_decimal +from flask.ctx import has_request_context from flask.json import jsonify +from searx import brand from searx import settings, searx_dir, searx_debug from searx.exceptions import SearxParameterException from searx.engines import ( @@ -95,6 +100,8 @@ if sys.version_info[0] == 3: PY3 = True else: PY3 = False + logger.warning('\033[1;31m *** Deprecation Warning ***\033[0m') + logger.warning('\033[1;31m Python2 is deprecated\033[0m') # serve pages with HTTP/1.1 from werkzeug.serving import WSGIRequestHandler @@ -154,21 +161,54 @@ _category_names = (gettext('files'), outgoing_proxies = settings['outgoing'].get('proxies') or None +_flask_babel_get_translations = flask_babel.get_translations + + +# monkey patch for flask_babel.get_translations +def _get_translations(): + if has_request_context() and request.form.get('use-translation') == 'oc': + babel_ext = flask_babel.current_app.extensions['babel'] + return Translations.load(next(babel_ext.translation_directories), 'oc') + + return _flask_babel_get_translations() + + +flask_babel.get_translations = _get_translations + + +def _get_browser_language(request, lang_list): + for lang in request.headers.get("Accept-Language", "en").split(","): + if ';' in lang: + lang = lang.split(';')[0] + locale = match_language(lang, lang_list, fallback=None) + if locale is not None: + return locale + return settings['search']['default_lang'] or 'en' + @babel.localeselector def get_locale(): - if 'locale' in request.form\ - and request.form['locale'] in settings['locales']: - return request.form['locale'] + locale = _get_browser_language(request, settings['locales'].keys()) - if 'locale' in request.args\ - and request.args['locale'] in settings['locales']: - return request.args['locale'] + logger.debug("default locale from browser info is `%s`", locale) if request.preferences.get_value('locale') != '': - return request.preferences.get_value('locale') + locale = request.preferences.get_value('locale') - return request.accept_languages.best_match(settings['locales'].keys()) + if 'locale' in request.form\ + and request.form['locale'] in settings['locales']: + locale = request.form['locale'] + + if locale == 'zh_TW': + locale = 'zh_Hant_TW' + + if locale == 'oc': + request.form['use-translation'] = 'oc' + locale = 'fr_FR' + + logger.debug("selected locale is `%s`", locale) + + return locale # code-highlighter @@ -346,7 +386,9 @@ def render(template_name, override_theme=None, **kwargs): if 'autocomplete' not in kwargs: kwargs['autocomplete'] = request.preferences.get_value('autocomplete') - if get_locale() in rtl_locales and 'rtl' not in kwargs: + locale = request.preferences.get_value('locale') + + if locale in rtl_locales and 'rtl' not in kwargs: kwargs['rtl'] = True kwargs['searx_version'] = VERSION_STRING @@ -358,8 +400,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['language_codes'] = languages if 'current_language' not in kwargs: kwargs['current_language'] = match_language(request.preferences.get_value('language'), - LANGUAGE_CODES, - fallback=settings['search']['language']) + LANGUAGE_CODES) # override url_for function in templates kwargs['url_for'] = url_for_theme @@ -386,6 +427,8 @@ def render(template_name, override_theme=None, **kwargs): kwargs['preferences'] = request.preferences + kwargs['brand'] = brand + kwargs['scripts'] = set() for plugin in request.user_plugins: for script in plugin.js_dependencies: @@ -429,6 +472,12 @@ def pre_request(): logger.exception('invalid settings') request.errors.append(gettext('Invalid settings')) + # init search language and locale + if not preferences.get_value("language"): + preferences.parse_dict({"language": _get_browser_language(request, LANGUAGE_CODES)}) + if not preferences.get_value("locale"): + preferences.parse_dict({"locale": get_locale()}) + # request.user_plugins request.user_plugins = [] allowed_plugins = preferences.plugins.get_enabled() @@ -577,25 +626,38 @@ def index(): 'corrections': list(result_container.corrections), 'infoboxes': result_container.infoboxes, 'suggestions': list(result_container.suggestions), - 'unresponsive_engines': list(result_container.unresponsive_engines)}, + 'unresponsive_engines': __get_translated_errors(result_container.unresponsive_engines)}, # noqa default=lambda item: list(item) if isinstance(item, set) else item), mimetype='application/json') elif output_format == 'csv': csv = UnicodeWriter(StringIO()) - keys = ('title', 'url', 'content', 'host', 'engine', 'score') + keys = ('title', 'url', 'content', 'host', 'engine', 'score', 'type') csv.writerow(keys) for row in results: row['host'] = row['parsed_url'].netloc + row['type'] = 'result' + csv.writerow([row.get(key, '') for key in keys]) + for a in result_container.answers: + row = {'title': a, 'type': 'answer'} + csv.writerow([row.get(key, '') for key in keys]) + for a in result_container.suggestions: + row = {'title': a, 'type': 'suggestion'} + csv.writerow([row.get(key, '') for key in keys]) + for a in result_container.corrections: + row = {'title': a, 'type': 'correction'} csv.writerow([row.get(key, '') for key in keys]) csv.stream.seek(0) response = Response(csv.stream.read(), mimetype='application/csv') - cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query) + cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query.decode('utf-8')) response.headers.add('Content-Disposition', cont_disp) return response elif output_format == 'rss': response_rss = render( 'opensearch_response_rss.xml', results=results, + answers=result_container.answers, + corrections=result_container.corrections, + suggestions=result_container.suggestions, q=request.form['q'], number_of_results=number_of_results, base_url=get_base_url(), @@ -606,11 +668,11 @@ def index(): # HTML output format # suggestions: use RawTextQuery to get the suggestion URLs with the same bang - suggestion_urls = map(lambda suggestion: { - 'url': raw_text_query.changeSearchQuery(suggestion).getFullQuery(), - 'title': suggestion - }, - result_container.suggestions) + suggestion_urls = list(map(lambda suggestion: { + 'url': raw_text_query.changeSearchQuery(suggestion).getFullQuery(), + 'title': suggestion + }, + result_container.suggestions)) correction_urls = list(map(lambda correction: { 'url': raw_text_query.changeSearchQuery(correction).getFullQuery(), @@ -632,10 +694,10 @@ def index(): corrections=correction_urls, infoboxes=result_container.infoboxes, paging=result_container.paging, - unresponsive_engines=result_container.unresponsive_engines, + unresponsive_engines=__get_translated_errors(result_container.unresponsive_engines), current_language=match_language(search_query.lang, LANGUAGE_CODES, - fallback=settings['search']['language']), + fallback=request.preferences.get_value("language")), base_url=get_base_url(), theme=get_current_theme_name(), favicons=global_favicons[themes.index(get_current_theme_name())], @@ -643,6 +705,16 @@ def index(): ) +def __get_translated_errors(unresponsive_engines): + translated_errors = [] + for unresponsive_engine in unresponsive_engines: + error_msg = gettext(unresponsive_engine[1]) + if unresponsive_engine[2]: + error_msg = "{} {}".format(error_msg, unresponsive_engine[2]) + translated_errors.append((unresponsive_engine[0], error_msg)) + return translated_errors + + @app.route('/about', methods=['GET']) def about(): """Render about page""" @@ -729,8 +801,13 @@ def preferences(): # stats for preferences page stats = {} + engines_by_category = {} for c in categories: + engines_by_category[c] = [] for e in categories[c]: + if not request.preferences.validate_token(e): + continue + stats[e.name] = {'time': None, 'warn_timeout': False, 'warn_time': False} @@ -738,9 +815,11 @@ def preferences(): stats[e.name]['warn_timeout'] = True stats[e.name]['supports_selected_language'] = _is_selected_language_supported(e, request.preferences) + engines_by_category[c].append(e) + # get first element [0], the engine time, # and then the second element [1] : the time (the first one is the label) - for engine_stat in get_engines_stats()[0][1]: + for engine_stat in get_engines_stats(request.preferences)[0][1]: stats[engine_stat.get('name')]['time'] = round(engine_stat.get('avg'), 3) if engine_stat.get('avg') > settings['outgoing']['request_timeout']: stats[engine_stat.get('name')]['warn_time'] = True @@ -748,9 +827,9 @@ def preferences(): return render('preferences.html', locales=settings['locales'], - current_locale=get_locale(), + current_locale=request.preferences.get_value("locale"), image_proxy=image_proxy, - engines_by_category=categories, + engines_by_category=engines_by_category, stats=stats, answerers=[{'info': a.self_info(), 'keywords': a.keywords} for a in answerers], disabled_engines=disabled_engines, @@ -826,7 +905,7 @@ def image_proxy(): @app.route('/stats', methods=['GET']) def stats(): """Render engine statistics page.""" - stats = get_engines_stats() + stats = get_engines_stats(request.preferences) return render( 'stats.html', stats=stats, @@ -888,34 +967,51 @@ def clear_cookies(): @app.route('/config') def config(): - return jsonify({'categories': list(categories.keys()), - 'engines': [{'name': engine_name, - 'categories': engine.categories, - 'shortcut': engine.shortcut, - 'enabled': not engine.disabled, - 'paging': engine.paging, - 'language_support': engine.language_support, - 'supported_languages': - list(engine.supported_languages.keys()) - if isinstance(engine.supported_languages, dict) - else engine.supported_languages, - 'safesearch': engine.safesearch, - 'time_range_support': engine.time_range_support, - 'timeout': engine.timeout} - for engine_name, engine in engines.items()], - 'plugins': [{'name': plugin.name, - 'enabled': plugin.default_on} - for plugin in plugins], - 'instance_name': settings['general']['instance_name'], - 'locales': settings['locales'], - 'default_locale': settings['ui']['default_locale'], - 'autocomplete': settings['search']['autocomplete'], - 'safe_search': settings['search']['safe_search'], - 'default_theme': settings['ui']['default_theme'], - 'version': VERSION_STRING, - 'doi_resolvers': [r for r in settings['doi_resolvers']], - 'default_doi_resolver': settings['default_doi_resolver'], - }) + """Return configuration in JSON format.""" + _engines = [] + for name, engine in engines.items(): + if not request.preferences.validate_token(engine): + continue + + supported_languages = engine.supported_languages + if isinstance(engine.supported_languages, dict): + supported_languages = list(engine.supported_languages.keys()) + + _engines.append({ + 'name': name, + 'categories': engine.categories, + 'shortcut': engine.shortcut, + 'enabled': not engine.disabled, + 'paging': engine.paging, + 'language_support': engine.language_support, + 'supported_languages': supported_languages, + 'safesearch': engine.safesearch, + 'time_range_support': engine.time_range_support, + 'timeout': engine.timeout + }) + + _plugins = [] + for _ in plugins: + _plugins.append({'name': _.name, 'enabled': _.default_on}) + + return jsonify({ + 'categories': list(categories.keys()), + 'engines': _engines, + 'plugins': _plugins, + 'instance_name': settings['general']['instance_name'], + 'locales': settings['locales'], + 'default_locale': settings['ui']['default_locale'], + 'autocomplete': settings['search']['autocomplete'], + 'safe_search': settings['search']['safe_search'], + 'default_theme': settings['ui']['default_theme'], + 'version': VERSION_STRING, + 'brand': { + 'GIT_URL': brand.GIT_URL, + 'DOCS_URL': brand.DOCS_URL + }, + 'doi_resolvers': [r for r in settings['doi_resolvers']], + 'default_doi_resolver': settings['default_doi_resolver'], + }) @app.errorhandler(404) diff --git a/setup.py b/setup.py index bd3dd5d1..97a3270e 100644 --- a/setup.py +++ b/setup.py @@ -10,6 +10,7 @@ import sys # required to load VERSION_STRING constant sys.path.insert(0, './searx') from version import VERSION_STRING +import brand with open('README.rst') as f: long_description = f.read() @@ -25,6 +26,11 @@ setup( version=VERSION_STRING, description="A privacy-respecting, hackable metasearch engine", long_description=long_description, + url=brand.DOCS_URL, + project_urls={ + "Code": brand.GIT_URL, + "Issue tracker": brand.ISSUE_URL + }, classifiers=[ "Development Status :: 4 - Beta", "Programming Language :: Python", @@ -36,7 +42,6 @@ setup( keywords='metasearch searchengine search web http', author='Adam Tauber', author_email='asciimoo@gmail.com', - url='https://github.com/asciimoo/searx', license='GNU Affero General Public License', packages=find_packages(exclude=["tests*"]), zip_safe=False, diff --git a/tests/unit/engines/__init__.py b/tests/unit/engines/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/unit/engines/pubmed.py b/tests/unit/engines/pubmed.py deleted file mode 100644 index 370efe06..00000000 --- a/tests/unit/engines/pubmed.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import pubmed -from searx.testing import SearxTestCase - - -class TestPubmedEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = pubmed.request(query, dicto) - self.assertIn('url', params) - self.assertIn('eutils.ncbi.nlm.nih.gov/', params['url']) - self.assertIn('term', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, pubmed.response, None) - self.assertRaises(AttributeError, pubmed.response, []) - self.assertRaises(AttributeError, pubmed.response, '') - self.assertRaises(AttributeError, pubmed.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(pubmed.response(response), []) - - xml_mock = """110 -1 - -""" - - response = mock.Mock(text=xml_mock.encode('utf-8')) - results = pubmed.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['content'], 'No abstract is available for this publication.') diff --git a/tests/unit/engines/seedpeer_fixture.html b/tests/unit/engines/seedpeer_fixture.html deleted file mode 100644 index 28207bfa..00000000 --- a/tests/unit/engines/seedpeer_fixture.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -
-

Verified Narcos season 2 torrents

- - comments | - verified - - Torrent nameAgeSizeSeedsPeersHealth
Narcos season 2 Full Version20 hours681.3 MB28 654 Health
Narcos season 2 Trusted Source12 hours787.1 MB64 220 Health
Full Narcos season 2 Download Usenet24 hours775.5 MB60 236 Health
Narcos season 2 2014 - DIRECT STREAMING Movies17 hours654.1 MB2 391 Health
Narcos season 2 2014 Movies20 hours754.5 MB21 919 Health


Search Binaries

 2 Narcos season 2 Torrents were found

- - comments | - verified - - Torrent nameAgeSizeSeedsPeersHealth
Add to FacebookNarcos Season 2 Complete 720p WebRip EN-SUB x264-[MULVAcoded] S02 19 hours4.39 GB715 183 Health
Add to FacebookNarcos - Season 2 - 720p WEBRiP - x265 HEVC - ShAaNiG 1 day2.48 GB861 332 Health

Related searches for: Narcos season 2


Other suggested searches:

Search for "narcos-season-2" on Torrentz2.eu
Search for "narcos-season-2" on Torrent-Finder
  
- - - \ No newline at end of file diff --git a/tests/unit/engines/test_acgsou.py b/tests/unit/engines/test_acgsou.py deleted file mode 100644 index c01acf5d..00000000 --- a/tests/unit/engines/test_acgsou.py +++ /dev/null @@ -1,78 +0,0 @@ -# coding=utf-8 -from collections import defaultdict -import mock -from searx.engines import acgsou -from searx.testing import SearxTestCase - - -class TestAcgsouEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - params = acgsou.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('acgsou.com' in params['url']) - - def test_response(self): - resp = mock.Mock(text='') - self.assertEqual(acgsou.response(resp), []) - - html = u""" - - - - - - - - - - - - - - - - - - - - - - - - - - -
testtesttesttesttesttesttesttest
datetestcategory テスト - torrentname テスト - 1MB - - 29 - - - - 211 - - - - 168 - - user
- - """ - - resp = mock.Mock(text=html) - results = acgsou.response(resp) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - - r = results[0] - self.assertEqual(r['url'], 'http://www.acgsou.com/show-torrentid.html') - self.assertEqual(r['content'], u'Category: "testcategory テスト".') - self.assertEqual(r['title'], u'torrentname テスト') - self.assertEqual(r['filesize'], 1048576) diff --git a/tests/unit/engines/test_archlinux.py b/tests/unit/engines/test_archlinux.py deleted file mode 100644 index 062f023b..00000000 --- a/tests/unit/engines/test_archlinux.py +++ /dev/null @@ -1,111 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import archlinux -from searx.testing import SearxTestCase - -domains = { - 'all': 'https://wiki.archlinux.org', - 'de': 'https://wiki.archlinux.de', - 'fr': 'https://wiki.archlinux.fr', - 'ja': 'https://wiki.archlinuxjp.org', - 'ro': 'http://wiki.archlinux.ro', - 'tr': 'http://archtr.org/wiki' -} - - -class TestArchLinuxEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - dic['language'] = 'en-US' - params = archlinux.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('wiki.archlinux.org' in params['url']) - - for lang, name in archlinux.main_langs: - dic['language'] = lang - params = archlinux.request(query, dic) - self.assertTrue(name in params['url']) - - for lang, domain in domains.items(): - dic['language'] = lang - params = archlinux.request(query, dic) - self.assertTrue(domain in params['url']) - - def test_response(self): - response = mock.Mock(text='', - search_params={'language': 'en_US'}) - self.assertEqual(archlinux.response(response), []) - - html = """ -
    -
  • -
    - ATI -
    -
    - Lorem ipsum dolor sit amet -
    -
    - 30 KB (4,630 words) - 19:04, 17 March 2016
    -
  • -
  • - -
    - CPUs with AMDs instruction set "AMD64" -
    -
    - 17 KB (2,722 words) - 20:13, 21 March 2016 -
    -
  • -
  • - -
    - ondemand for AMD and older Intel CPU -
    -
    - 15 KB (2,319 words) - 23:46, 16 March 2016 -
    -
  • -
- """ - - expected = [ - { - 'title': 'ATI', - 'url': 'https://wiki.archlinux.org/index.php/ATI' - }, - { - 'title': 'Frequently asked questions', - 'url': 'https://wiki.archlinux.org/index.php/Frequently_asked_questions' - }, - { - 'title': 'CPU frequency scaling', - 'url': 'https://wiki.archlinux.org/index.php/CPU_frequency_scaling' - } - ] - - response = mock.Mock(text=html) - response.search_params = { - 'language': 'en_US' - } - results = archlinux.response(response) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), len(expected)) - - i = 0 - for exp in expected: - res = results[i] - i += 1 - for key, value in exp.items(): - self.assertEqual(res[key], value) diff --git a/tests/unit/engines/test_arxiv.py b/tests/unit/engines/test_arxiv.py deleted file mode 100644 index 83c4f859..00000000 --- a/tests/unit/engines/test_arxiv.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import arxiv -from searx.testing import SearxTestCase - - -class TestBaseEngine(SearxTestCase): - - def test_request(self): - query = 'test_query'.encode('utf-8') - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = arxiv.request(query, dicto) - self.assertIn('url', params) - self.assertIn('export.arxiv.org/api/', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, arxiv.response, None) - self.assertRaises(AttributeError, arxiv.response, []) - self.assertRaises(AttributeError, arxiv.response, '') - self.assertRaises(AttributeError, arxiv.response, '[]') - - response = mock.Mock(content=b''' -''') - self.assertEqual(arxiv.response(response), []) - - xml_mock = b''' - - ArXiv Query: search_query=all:test_query&id_list=&start=0&max_results=1 - http://arxiv.org/api/1 - 2000-01-21T00:00:00-01:00 - 1 - 0 - 1 - - http://arxiv.org/1 - 2000-01-01T00:00:01Z - 2000-01-01T00:00:01Z - Mathematical proof. - Mathematical formula. - - A. B. - - - - - - - -''' - - response = mock.Mock(content=xml_mock) - results = arxiv.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Mathematical proof.') - self.assertEqual(results[0]['content'], 'Mathematical formula.') diff --git a/tests/unit/engines/test_base.py b/tests/unit/engines/test_base.py deleted file mode 100644 index b5da5bde..00000000 --- a/tests/unit/engines/test_base.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import base -from searx.testing import SearxTestCase - - -class TestBaseEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = base.request(query, dicto) - self.assertIn('url', params) - self.assertIn('base-search.net', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, base.response, None) - self.assertRaises(AttributeError, base.response, []) - self.assertRaises(AttributeError, base.response, '') - self.assertRaises(AttributeError, base.response, '[]') - - response = mock.Mock(content=b'') - self.assertEqual(base.response(response), []) - - xml_mock = b""" - - - 0 - 1 - - - - 2000-01-01T01:01:01Z - 1 - cna - us - ftciteseerx - CiteSeerX - Science and more - - Someone - - - Someone - - - Science and more - - Science, and even more. - - The neighbour - - 2001 - 2001 - - text - - - 1 - - - application/pdf - - - application/pdf - - - http://example.org/ - - http://example.org - http://example.org - - en - - Under the example.org licence - 1 - - eng - - - -""" - - response = mock.Mock(content=xml_mock) - results = base.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Science and more') - self.assertEqual(results[0]['content'], 'Science, and even more.') diff --git a/tests/unit/engines/test_bing.py b/tests/unit/engines/test_bing.py deleted file mode 100644 index 38703473..00000000 --- a/tests/unit/engines/test_bing.py +++ /dev/null @@ -1,178 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import bing -from searx.testing import SearxTestCase - - -class TestBingEngine(SearxTestCase): - - def test_request(self): - bing.supported_languages = ['en', 'fr', 'zh-CHS', 'zh-CHT', 'pt-PT', 'pt-BR'] - query = u'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - params = bing.request(query.encode('utf-8'), dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('language%3AFR' in params['url']) - self.assertTrue('bing.com' in params['url']) - - dicto['language'] = 'all' - params = bing.request(query.encode('utf-8'), dicto) - self.assertTrue('language' in params['url']) - - def test_response(self): - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - self.assertRaises(AttributeError, bing.response, None) - self.assertRaises(AttributeError, bing.response, []) - self.assertRaises(AttributeError, bing.response, '') - self.assertRaises(AttributeError, bing.response, '[]') - - response = mock.Mock(text='') - response.search_params = dicto - self.assertEqual(bing.response(response), []) - - response = mock.Mock(text='') - response.search_params = dicto - self.assertEqual(bing.response(response), []) - - html = """ -
-
- 23 900 000 résultats -
-
    -
    -
    - -
    this.meta.com - - - - -
    -

    This should be the content.

    -
    -
    -
-
- """ - response = mock.Mock(text=html) - response.search_params = dicto - results = bing.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This should be the title') - self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/') - self.assertEqual(results[0]['content'], 'This should be the content.') - self.assertEqual(results[-1]['number_of_results'], 23900000) - - html = """ -
-
- 9-18 résultats sur 23 900 000 -
-
    -
  1. -
    - -
    this.meta.com - - - - -
    -

    This should be the content.

    -
    -
  2. -
-
- """ - dicto['pageno'] = 2 - response = mock.Mock(text=html) - response.search_params = dicto - results = bing.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This should be the title') - self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/') - self.assertEqual(results[0]['content'], 'This should be the content.') - self.assertEqual(results[-1]['number_of_results'], 23900000) - - html = """ -
-
- 23 900 000 résultats -
-
    -
  1. -
    - -
    this.meta.com - - - - -
    -

    This should be the content.

    -
    -
  2. -
-
- """ - dicto['pageno'] = 33900000 - response = mock.Mock(text=html) - response.search_params = dicto - results = bing.response(response) - self.assertEqual(bing.response(response), []) - - def test_fetch_supported_languages(self): - html = """""" - response = mock.Mock(text=html) - results = bing._fetch_supported_languages(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - html = """ - - -
-
-
-
-
-
-
-
-
-
-
- - - """ - response = mock.Mock(text=html) - languages = bing._fetch_supported_languages(response) - self.assertEqual(type(languages), list) - self.assertEqual(len(languages), 3) - self.assertIn('es', languages) - self.assertIn('pt-BR', languages) - self.assertIn('pt-PT', languages) diff --git a/tests/unit/engines/test_bing_images.py b/tests/unit/engines/test_bing_images.py deleted file mode 100644 index a4efcab5..00000000 --- a/tests/unit/engines/test_bing_images.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import bing_images -from searx.testing import SearxTestCase - - -class TestBingImagesEngine(SearxTestCase): - - def test_request(self): - bing_images.supported_languages = ['fr-FR', 'en-US'] - bing_images.language_aliases = {} - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['safesearch'] = 1 - dicto['time_range'] = '' - params = bing_images.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('bing.com' in params['url']) - self.assertTrue('SRCHHPGUSR' in params['cookies']) - self.assertTrue('DEMOTE' in params['cookies']['SRCHHPGUSR']) - self.assertTrue('_EDGE_S' in params['cookies']) - self.assertTrue('fr-fr' in params['cookies']['_EDGE_S']) - - dicto['language'] = 'fr' - params = bing_images.request(query, dicto) - self.assertTrue('_EDGE_S' in params['cookies']) - self.assertTrue('fr-fr' in params['cookies']['_EDGE_S']) - - dicto['language'] = 'all' - params = bing_images.request(query, dicto) - self.assertTrue('_EDGE_S' in params['cookies']) - self.assertTrue('en-us' in params['cookies']['_EDGE_S']) - - def test_response(self): - self.assertRaises(AttributeError, bing_images.response, None) - self.assertRaises(AttributeError, bing_images.response, []) - self.assertRaises(AttributeError, bing_images.response, '') - self.assertRaises(AttributeError, bing_images.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(bing_images.response(response), []) - - response = mock.Mock(text='') - self.assertEqual(bing_images.response(response), []) - - html = """ -
- - -
- """ - html = html.replace('\r\n', '').replace('\n', '').replace('\r', '') - response = mock.Mock(text=html) - results = bing_images.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertEqual(results[0]['title'], 'Page 1 title') - self.assertEqual(results[0]['url'], 'page_url') - self.assertEqual(results[0]['content'], '') - self.assertEqual(results[0]['thumbnail_src'], 'thumb_url') - self.assertEqual(results[0]['img_src'], 'img_url') - self.assertEqual(results[0]['img_format'], '1 x 1 - jpeg') - self.assertEqual(results[0]['source'], '1.example.org') - - def test_fetch_supported_languages(self): - html = """ -
-
- - -
-
- """ - response = mock.Mock(text=html) - languages = list(bing_images._fetch_supported_languages(response)) - self.assertEqual(len(languages), 3) - self.assertIn('de-DE', languages) - self.assertIn('no-NO', languages) - self.assertIn('es-AR', languages) diff --git a/tests/unit/engines/test_bing_news.py b/tests/unit/engines/test_bing_news.py deleted file mode 100644 index 1155e79c..00000000 --- a/tests/unit/engines/test_bing_news.py +++ /dev/null @@ -1,147 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import bing_news -from searx.testing import SearxTestCase -import lxml - - -class TestBingNewsEngine(SearxTestCase): - - def test_request(self): - bing_news.supported_languages = ['en', 'fr'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['time_range'] = '' - params = bing_news.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('bing.com', params['url']) - self.assertIn('fr', params['url']) - - dicto['language'] = 'all' - params = bing_news.request(query, dicto) - self.assertIn('en', params['url']) - - def test_no_url_in_request_year_time_range(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['time_range'] = 'year' - params = bing_news.request(query, dicto) - self.assertEqual({}, params['url']) - - def test_response(self): - self.assertRaises(AttributeError, bing_news.response, None) - self.assertRaises(AttributeError, bing_news.response, []) - self.assertRaises(AttributeError, bing_news.response, '') - self.assertRaises(AttributeError, bing_news.response, '[]') - - response = mock.Mock(content='') - self.assertEqual(bing_news.response(response), []) - - response = mock.Mock(content='') - self.assertEqual(bing_news.response(response), []) - - html = """ - - - python - Bing News - https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS - Search results - - http://10.53.64.9/rsslogo.gif - test - https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS - - Copyright - - Title - https://www.bing.com/news/apiclick.aspx?ref=FexRss&aid=&tid=c237eccc50bd4758b106a5e3c94fce09&url=http%3a%2f%2furl.of.article%2f&c=xxxxxxxxx&mkt=en-us - Article Content - Tue, 02 Jun 2015 13:37:00 GMT - Infoworld - http://a1.bing4.com/th?id=ON.13371337133713371337133713371337&pid=News - w={0}&h={1}&c=7 - - 620 - 413 - - - Another Title - https://www.bing.com/news/apiclick.aspx?ref=FexRss&aid=&tid=c237eccc50bd4758b106a5e3c94fce09&url=http%3a%2f%2fanother.url.of.article%2f&c=xxxxxxxxx&mkt=en-us - Another Article Content - Tue, 02 Jun 2015 13:37:00 GMT - - -""" # noqa - response = mock.Mock(content=html.encode('utf-8')) - results = bing_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://url.of.article/') - self.assertEqual(results[0]['content'], 'Article Content') - self.assertEqual(results[0]['img_src'], 'https://www.bing.com/th?id=ON.13371337133713371337133713371337') - self.assertEqual(results[1]['title'], 'Another Title') - self.assertEqual(results[1]['url'], 'http://another.url.of.article/') - self.assertEqual(results[1]['content'], 'Another Article Content') - self.assertNotIn('img_src', results[1]) - - html = """ - - - python - Bing News - https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS - Search results - - http://10.53.64.9/rsslogo.gif - test - https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS - - Copyright - - Title - http://another.url.of.article/ - Article Content - garbage - Infoworld - http://another.bing.com/image - w={0}&h={1}&c=7 - - 620 - 413 - - -""" # noqa - response = mock.Mock(content=html.encode('utf-8')) - results = bing_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://another.url.of.article/') - self.assertEqual(results[0]['content'], 'Article Content') - self.assertEqual(results[0]['img_src'], 'http://another.bing.com/image') - - html = """ - - - python - Bing News - https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS - Search results - - http://10.53.64.9/rsslogo.gif - test - https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS - - -""" # noqa - - response = mock.Mock(content=html.encode('utf-8')) - results = bing_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - html = """gabarge""" - response = mock.Mock(content=html.encode('utf-8')) - self.assertRaises(lxml.etree.XMLSyntaxError, bing_news.response, response) diff --git a/tests/unit/engines/test_bing_videos.py b/tests/unit/engines/test_bing_videos.py deleted file mode 100644 index 5e171eb5..00000000 --- a/tests/unit/engines/test_bing_videos.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import bing_videos -from searx.testing import SearxTestCase - - -class TestBingVideosEngine(SearxTestCase): - - def test_request(self): - bing_videos.supported_languages = ['fr-FR', 'en-US'] - bing_videos.language_aliases = {} - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['safesearch'] = 0 - dicto['time_range'] = '' - params = bing_videos.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('bing.com' in params['url']) - self.assertTrue('SRCHHPGUSR' in params['cookies']) - self.assertTrue('OFF' in params['cookies']['SRCHHPGUSR']) - self.assertTrue('_EDGE_S' in params['cookies']) - self.assertTrue('fr-fr' in params['cookies']['_EDGE_S']) - - dicto['pageno'] = 2 - dicto['time_range'] = 'day' - dicto['safesearch'] = 2 - params = bing_videos.request(query, dicto) - self.assertTrue('first=29' in params['url']) - self.assertTrue('1440' in params['url']) - self.assertIn('SRCHHPGUSR', params['cookies']) - self.assertTrue('STRICT' in params['cookies']['SRCHHPGUSR']) - - def test_response(self): - self.assertRaises(AttributeError, bing_videos.response, None) - self.assertRaises(AttributeError, bing_videos.response, []) - self.assertRaises(AttributeError, bing_videos.response, '') - self.assertRaises(AttributeError, bing_videos.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(bing_videos.response(response), []) - - response = mock.Mock(text='') - self.assertEqual(bing_videos.response(response), []) - - html = """ - - """ - response = mock.Mock(text=html) - results = bing_videos.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title 1') - self.assertEqual(results[0]['url'], 'https://www.example.com/watch?v=DEADBEEF') - self.assertEqual(results[0]['content'], '01:11 - 100 views - 1 year ago - ExampleTube - Channel 1') - self.assertEqual(results[0]['thumbnail'], 'https://www.bing.com/th?id=OVP.BINGTHUMB1') diff --git a/tests/unit/engines/test_btdigg.py b/tests/unit/engines/test_btdigg.py deleted file mode 100644 index 45ddaa6e..00000000 --- a/tests/unit/engines/test_btdigg.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import btdigg -from searx.testing import SearxTestCase - - -class TestBtdiggEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = btdigg.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('btdig.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, btdigg.response, None) - self.assertRaises(AttributeError, btdigg.response, []) - self.assertRaises(AttributeError, btdigg.response, '') - self.assertRaises(AttributeError, btdigg.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(btdigg.response(response), []) - - html = u""" -
-
- -
-
-
- 4217 files 1 GBfound 3 years ago -
-
-
-
-
- -
- found 3 years ago -
-
-
-
-
3.9GBdeLibrosByHuasoFromHell(3de4)

-
Libros H-Z

-
H

H.H. Hollis - El truco de la espada-pdf.zip
17 KB
-
Hagakure - El Libro del Samurai-pdf.zip
95 KB
-
Hamsun, Knut (1859-1952)

-
Hamsun, Knut - Hambre-pdf.zip
786 KB
- -
-
-
- """ - response = mock.Mock(text=html.encode('utf-8')) - results = btdigg.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], '3.9GBdeLibrosByHuasoFromHell(3de4)') - self.assertEqual(results[0]['url'], - 'http://btdig.com/a72f35b7ee3a10928f02bb799e40ae5db701ed1c/pdf?q=pdf&p=1&order=0') - self.assertEqual(results[0]['content'], - '3.9GBdeLibrosByHuasoFromHell(3de4) | ' + - 'Libros H-Z | ' + - 'H H.H. Hollis - El truco de la espada-pdf.zip17 KB | ' + - 'Hagakure - El Libro del Samurai-pdf.zip95 KB | ' + - 'Hamsun, Knut (1859-1952) | Hamsun, Knut - Hambre-pdf.zip786 KB | ' + - '4214 hidden files1 GB') - self.assertEqual(results[0]['filesize'], 1 * 1024 * 1024 * 1024) - self.assertEqual(results[0]['files'], 4217) - self.assertEqual(results[0]['magnetlink'], - 'magnet:?xt=urn:btih:a72f35b7ee3a10928f02bb799e40ae5db701ed1c&dn=3.9GBdeLibrosBy...') - - html = """ -
- -
- """ - response = mock.Mock(text=html.encode('utf-8')) - results = btdigg.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_currency_convert.py b/tests/unit/engines/test_currency_convert.py deleted file mode 100644 index fec19410..00000000 --- a/tests/unit/engines/test_currency_convert.py +++ /dev/null @@ -1,56 +0,0 @@ -from collections import defaultdict -from datetime import datetime -import mock -from searx.engines import currency_convert -from searx.testing import SearxTestCase - - -class TestCurrencyConvertEngine(SearxTestCase): - - def test_request(self): - query = b'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = currency_convert.request(query, dicto) - self.assertNotIn('url', params) - - query = b'convert 10 Pound Sterlings to United States Dollars' - params = currency_convert.request(query, dicto) - self.assertIn('url', params) - self.assertIn('duckduckgo.com', params['url']) - self.assertIn('GBP', params['url']) - self.assertIn('USD', params['url']) - - def test_response(self): - dicto = defaultdict(dict) - dicto['amount'] = float(10) - dicto['from'] = "GBP" - dicto['to'] = "USD" - dicto['from_name'] = "pound sterling" - dicto['to_name'] = "United States dollar" - response = mock.Mock(text='a,b,c,d', search_params=dicto) - self.assertEqual(currency_convert.response(response), []) - body = """ddg_spice_currency( - { - "conversion":{ - "converted-amount": "0.5" - }, - "topConversions":[ - { - }, - { - } - ] - } - ); - """ - response = mock.Mock(text=body, search_params=dicto) - results = currency_convert.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['answer'], '10.0 GBP = 5.0 USD, 1 GBP (pound sterling)' + - ' = 0.5 USD (United States dollar)') - - target_url = 'https://duckduckgo.com/js/spice/currency/1/{}/{}'.format( - dicto['from'], dicto['to']) - self.assertEqual(results[0]['url'], target_url) diff --git a/tests/unit/engines/test_dailymotion.py b/tests/unit/engines/test_dailymotion.py deleted file mode 100644 index ad7f3d28..00000000 --- a/tests/unit/engines/test_dailymotion.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import dailymotion -from searx.testing import SearxTestCase - - -class TestDailymotionEngine(SearxTestCase): - - def test_request(self): - dailymotion.supported_languages = ['en', 'fr'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['language'] = 'fr-FR' - params = dailymotion.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('dailymotion.com' in params['url']) - self.assertTrue('fr' in params['url']) - - dicto['language'] = 'all' - params = dailymotion.request(query, dicto) - self.assertTrue('en' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, dailymotion.response, None) - self.assertRaises(AttributeError, dailymotion.response, []) - self.assertRaises(AttributeError, dailymotion.response, '') - self.assertRaises(AttributeError, dailymotion.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(dailymotion.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(dailymotion.response(response), []) - - json = """ - { - "page": 1, - "limit": 5, - "explicit": false, - "total": 289487, - "has_more": true, - "list": [ - { - "created_time": 1422173451, - "title": "Title", - "description": "Description", - "duration": 81, - "url": "http://www.url", - "thumbnail_360_url": "http://thumbnail", - "id": "x2fit7q" - } - ] - } - """ - response = mock.Mock(text=json) - results = dailymotion.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://www.url') - self.assertEqual(results[0]['content'], 'Description') - self.assertIn('x2fit7q', results[0]['embedded']) - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.dailymotion.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = dailymotion.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - def test_fetch_supported_languages(self): - json = r""" - {"list":[{"code":"af","name":"Afrikaans","native_name":"Afrikaans", - "localized_name":"Afrikaans","display_name":"Afrikaans"}, - {"code":"ar","name":"Arabic","native_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629", - "localized_name":"Arabic","display_name":"Arabic"}, - {"code":"la","name":"Latin","native_name":null, - "localized_name":"Latin","display_name":"Latin"} - ]} - """ - response = mock.Mock(text=json) - languages = dailymotion._fetch_supported_languages(response) - self.assertEqual(type(languages), dict) - self.assertEqual(len(languages), 3) - self.assertIn('af', languages) - self.assertIn('ar', languages) - self.assertIn('la', languages) - - self.assertEqual(type(languages['af']), dict) - self.assertEqual(type(languages['ar']), dict) - self.assertEqual(type(languages['la']), dict) - - self.assertIn('name', languages['af']) - self.assertIn('name', languages['ar']) - self.assertNotIn('name', languages['la']) - - self.assertIn('english_name', languages['af']) - self.assertIn('english_name', languages['ar']) - self.assertIn('english_name', languages['la']) - - self.assertEqual(languages['af']['name'], 'Afrikaans') - self.assertEqual(languages['af']['english_name'], 'Afrikaans') - self.assertEqual(languages['ar']['name'], u'العربية') - self.assertEqual(languages['ar']['english_name'], 'Arabic') - self.assertEqual(languages['la']['english_name'], 'Latin') diff --git a/tests/unit/engines/test_deezer.py b/tests/unit/engines/test_deezer.py deleted file mode 100644 index 5b9f55c3..00000000 --- a/tests/unit/engines/test_deezer.py +++ /dev/null @@ -1,57 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import deezer -from searx.testing import SearxTestCase - - -class TestDeezerEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = deezer.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('deezer.com' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, deezer.response, None) - self.assertRaises(AttributeError, deezer.response, []) - self.assertRaises(AttributeError, deezer.response, '') - self.assertRaises(AttributeError, deezer.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(deezer.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(deezer.response(response), []) - - json = r""" - {"data":[ - {"id":100, "title":"Title of track", - "link":"https:\/\/www.deezer.com\/track\/1094042","duration":232, - "artist":{"id":200,"name":"Artist Name", - "link":"https:\/\/www.deezer.com\/artist\/1217","type":"artist"}, - "album":{"id":118106,"title":"Album Title","type":"album"},"type":"track"} - ]} - """ - response = mock.Mock(text=json) - results = deezer.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title of track') - self.assertEqual(results[0]['url'], 'https://www.deezer.com/track/1094042') - self.assertEqual(results[0]['content'], 'Artist Name - Album Title - Title of track') - self.assertTrue('100' in results[0]['embedded']) - - json = r""" - {"data":[ - {"id":200,"name":"Artist Name", - "link":"https:\/\/www.deezer.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = deezer.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_deviantart.py b/tests/unit/engines/test_deviantart.py deleted file mode 100644 index a3115103..00000000 --- a/tests/unit/engines/test_deviantart.py +++ /dev/null @@ -1,24 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import deviantart -from searx.testing import SearxTestCase - - -class TestDeviantartEngine(SearxTestCase): - - def test_request(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['pageno'] = 0 - dicto['time_range'] = '' - params = deviantart.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('deviantart.com' in params['url']) - - def test_no_url_in_request_year_time_range(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['time_range'] = 'year' - params = deviantart.request(query, dicto) - self.assertEqual({}, params['url']) diff --git a/tests/unit/engines/test_digbt.py b/tests/unit/engines/test_digbt.py deleted file mode 100644 index 31c2ecab..00000000 --- a/tests/unit/engines/test_digbt.py +++ /dev/null @@ -1,61 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import digbt -from searx.testing import SearxTestCase - - -class TestDigBTEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = digbt.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('digbt.org', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, digbt.response, None) - self.assertRaises(AttributeError, digbt.response, []) - self.assertRaises(AttributeError, digbt.response, '') - self.assertRaises(AttributeError, digbt.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(digbt.response(response), []) - - html = """ - - -
-
- - The Big Bang Theory - - 4 hours ago -
-
-
    -
  • The Big Bang Theory 2.9 GB
  • -
  • ....
  • -
-
-
- Files: 1 Size: 2.9 GB Downloads: 1 Updated: 4 hours ago -     - - magnet-link - -     -
-
- """ - response = mock.Mock(text=html.encode('utf-8')) - results = digbt.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'The Big Bang Theory') - self.assertEqual(results[0]['url'], 'https://digbt.org/The-Big-Bang-Theory-d2.html') - self.assertEqual(results[0]['content'], 'The Big Bang Theory 2.9 GB ....') - self.assertEqual(results[0]['filesize'], 3113851289) - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:a&dn=The+Big+Bang+Theory') diff --git a/tests/unit/engines/test_digg.py b/tests/unit/engines/test_digg.py deleted file mode 100644 index 8bc4c67c..00000000 --- a/tests/unit/engines/test_digg.py +++ /dev/null @@ -1,16 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import digg -from searx.testing import SearxTestCase - - -class TestDiggEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = digg.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('digg.com', params['url']) diff --git a/tests/unit/engines/test_doku.py b/tests/unit/engines/test_doku.py deleted file mode 100644 index 22ddb7a7..00000000 --- a/tests/unit/engines/test_doku.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import doku -from searx.testing import SearxTestCase - - -class TestDokuEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - params = doku.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - - def test_response(self): - self.assertRaises(AttributeError, doku.response, None) - self.assertRaises(AttributeError, doku.response, []) - self.assertRaises(AttributeError, doku.response, '') - self.assertRaises(AttributeError, doku.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(doku.response(response), []) - - html = u""" -
-

Pages trouvées :

- -
-
- """ - response = mock.Mock(text=html) - results = doku.response(response) - expected = [{'content': '', 'title': 'xfconf-query', 'url': 'http://localhost:8090/xfconf-query'}] - self.assertEqual(doku.response(response), expected) - - html = u""" -
-
xvnc: 40 Occurrences trouvées
-
er = /usr/bin/Xvnc - server_args = -inetd -query localhost -geometry 640x480 ... er = /usr/bin/Xvnc - server_args = -inetd -query localhost -geometry 800x600 ... er = /usr/bin/Xvnc - server_args = -inetd -query localhost -geometry 1024x768 ... er = /usr/bin/Xvnc - server_args = -inetd -query localhost -geometry 1280x1024 -depth 8 -Sec
-
postfix_mysql_tls_sasl_1404: 14 Occurrences trouvées
-
tdepasse - hosts = 127.0.0.1 - dbname = postfix - query = SELECT goto FROM alias WHERE address='%s' AND a... tdepasse - hosts = 127.0.0.1 - dbname = postfix - query = SELECT domain FROM domain WHERE domain='%s' - #optional query to use when relaying for backup MX - #query = SELECT domain FROM domain WHERE domain='%s' and backupmx =
-
bind9: 12 Occurrences trouvées
-
printcmd -;; Got answer: -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13427 -;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 - -[...] - -;; Query time: 1 msec -;; SERVER: 127.0.0.1#53(127.0.0.1) -;... par la requête (Query time) , entre la première et la deuxième requête.
-
- """ - response = mock.Mock(text=html) - results = doku.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertEqual(results[0]['title'], 'xvnc') -# FIXME self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű') -# FIXME self.assertEqual(results[0]['content'], 'This should be the content.') diff --git a/tests/unit/engines/test_duckduckgo.py b/tests/unit/engines/test_duckduckgo.py deleted file mode 100644 index eb316a40..00000000 --- a/tests/unit/engines/test_duckduckgo.py +++ /dev/null @@ -1,106 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import load_engine, duckduckgo -from searx.testing import SearxTestCase - - -class TestDuckduckgoEngine(SearxTestCase): - - def test_request(self): - duckduckgo = load_engine({'engine': 'duckduckgo', 'name': 'duckduckgo'}) - - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['time_range'] = '' - - dicto['language'] = 'de-CH' - params = duckduckgo.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('duckduckgo.com', params['url']) - self.assertIn('ch-de', params['url']) - self.assertIn('s=0', params['url']) - - # when ddg uses non standard codes - dicto['language'] = 'zh-HK' - params = duckduckgo.request(query, dicto) - self.assertIn('hk-tzh', params['url']) - - dicto['language'] = 'en-GB' - params = duckduckgo.request(query, dicto) - self.assertIn('uk-en', params['url']) - - # no country given - dicto['language'] = 'en' - params = duckduckgo.request(query, dicto) - self.assertIn('us-en', params['url']) - - def test_no_url_in_request_year_time_range(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['time_range'] = 'year' - params = duckduckgo.request(query, dicto) - self.assertEqual({}, params['url']) - - def test_response(self): - self.assertRaises(AttributeError, duckduckgo.response, None) - self.assertRaises(AttributeError, duckduckgo.response, []) - self.assertRaises(AttributeError, duckduckgo.response, '') - self.assertRaises(AttributeError, duckduckgo.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(duckduckgo.response(response), []) - - html = u""" - - """ - response = mock.Mock(text=html) - results = duckduckgo.response(response) - self.assertEqual(duckduckgo.response(response), []) - - html = u""" - - """ - response = mock.Mock(text=html) - results = duckduckgo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű') - self.assertEqual(results[0]['content'], 'This should be the content.') - - def test_fetch_supported_languages(self): - js = """some code...regions:{ - "wt-wt":"All Results","ar-es":"Argentina","au-en":"Australia","at-de":"Austria","be-fr":"Belgium (fr)" - }some more code...""" - response = mock.Mock(text=js) - languages = list(duckduckgo._fetch_supported_languages(response)) - self.assertEqual(len(languages), 5) - self.assertIn('wt-WT', languages) - self.assertIn('es-AR', languages) - self.assertIn('en-AU', languages) - self.assertIn('de-AT', languages) - self.assertIn('fr-BE', languages) diff --git a/tests/unit/engines/test_duckduckgo_definitions.py b/tests/unit/engines/test_duckduckgo_definitions.py deleted file mode 100644 index 37587ed8..00000000 --- a/tests/unit/engines/test_duckduckgo_definitions.py +++ /dev/null @@ -1,255 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import duckduckgo_definitions -from searx.testing import SearxTestCase - - -class TestDDGDefinitionsEngine(SearxTestCase): - - def test_result_to_text(self): - url = '' - text = 'Text' - html_result = 'Html' - result = duckduckgo_definitions.result_to_text(url, text, html_result) - self.assertEqual(result, text) - - html_result = 'Text in link' - result = duckduckgo_definitions.result_to_text(url, text, html_result) - self.assertEqual(result, 'Text in link') - - def test_request(self): - duckduckgo_definitions.supported_languages = ['en-US', 'es-ES'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'es' - params = duckduckgo_definitions.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('duckduckgo.com', params['url']) - self.assertIn('headers', params) - self.assertIn('Accept-Language', params['headers']) - self.assertIn('es', params['headers']['Accept-Language']) - - def test_response(self): - self.assertRaises(AttributeError, duckduckgo_definitions.response, None) - self.assertRaises(AttributeError, duckduckgo_definitions.response, []) - self.assertRaises(AttributeError, duckduckgo_definitions.response, '') - self.assertRaises(AttributeError, duckduckgo_definitions.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(duckduckgo_definitions.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(duckduckgo_definitions.response(response), []) - - json = """ - { - "DefinitionSource": "definition source", - "Heading": "heading", - "ImageWidth": 0, - "RelatedTopics": [ - { - "Result": "Top-level domains", - "Icon": { - "URL": "", - "Height": "", - "Width": "" - }, - "FirstURL": "https://first.url", - "Text": "text" - }, - { - "Topics": [ - { - "Result": "result topic", - "Icon": { - "URL": "", - "Height": "", - "Width": "" - }, - "FirstURL": "https://duckduckgo.com/?q=2%2F2", - "Text": "result topic text" - } - ], - "Name": "name" - } - ], - "Entity": "Entity", - "Type": "A", - "Redirect": "", - "DefinitionURL": "http://definition.url", - "AbstractURL": "https://abstract.url", - "Definition": "this is the definition", - "AbstractSource": "abstract source", - "Infobox": { - "content": [ - { - "data_type": "string", - "value": "1999", - "label": "Introduced", - "wiki_order": 0 - } - ], - "meta": [ - { - "data_type": "string", - "value": ".test", - "label": "article_title" - } - ] - }, - "Image": "image.png", - "ImageIsLogo": 0, - "Abstract": "abstract", - "AbstractText": "abstract text", - "AnswerType": "", - "ImageHeight": 0, - "Results": [{ - "Result" : "result title", - "Icon" : { - "URL" : "result url", - "Height" : 16, - "Width" : 16 - }, - "FirstURL" : "result first url", - "Text" : "result text" - } - ], - "Answer": "answer" - } - """ - response = mock.Mock(text=json) - results = duckduckgo_definitions.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 4) - self.assertEqual(results[0]['answer'], 'answer') - self.assertEqual(results[1]['title'], 'heading') - self.assertEqual(results[1]['url'], 'result first url') - self.assertEqual(results[2]['suggestion'], 'text') - self.assertEqual(results[3]['infobox'], 'heading') - self.assertEqual(results[3]['id'], 'https://definition.url') - self.assertEqual(results[3]['entity'], 'Entity') - self.assertIn('abstract', results[3]['content']) - self.assertIn('this is the definition', results[3]['content']) - self.assertEqual(results[3]['img_src'], 'image.png') - self.assertIn('Introduced', results[3]['attributes'][0]['label']) - self.assertIn('1999', results[3]['attributes'][0]['value']) - self.assertIn({'url': 'https://abstract.url', 'title': 'abstract source'}, results[3]['urls']) - self.assertIn({'url': 'http://definition.url', 'title': 'definition source'}, results[3]['urls']) - self.assertIn({'name': 'name', 'suggestions': ['result topic text']}, results[3]['relatedTopics']) - - json = """ - { - "DefinitionSource": "definition source", - "Heading": "heading", - "ImageWidth": 0, - "RelatedTopics": [], - "Entity": "Entity", - "Type": "A", - "Redirect": "", - "DefinitionURL": "", - "AbstractURL": "https://abstract.url", - "Definition": "", - "AbstractSource": "abstract source", - "Image": "", - "ImageIsLogo": 0, - "Abstract": "", - "AbstractText": "abstract text", - "AnswerType": "", - "ImageHeight": 0, - "Results": [], - "Answer": "" - } - """ - response = mock.Mock(text=json) - results = duckduckgo_definitions.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['url'], 'https://abstract.url') - self.assertEqual(results[0]['title'], 'heading') - self.assertEqual(results[0]['content'], '') - - json = """ - { - "DefinitionSource": "definition source", - "Heading": "heading", - "ImageWidth": 0, - "RelatedTopics": [ - { - "Result": "Top-level domains", - "Icon": { - "URL": "", - "Height": "", - "Width": "" - }, - "FirstURL": "https://first.url", - "Text": "heading" - }, - { - "Name": "name" - }, - { - "Topics": [ - { - "Result": "result topic", - "Icon": { - "URL": "", - "Height": "", - "Width": "" - }, - "FirstURL": "https://duckduckgo.com/?q=2%2F2", - "Text": "heading" - } - ], - "Name": "name" - } - ], - "Entity": "Entity", - "Type": "A", - "Redirect": "", - "DefinitionURL": "http://definition.url", - "AbstractURL": "https://abstract.url", - "Definition": "this is the definition", - "AbstractSource": "abstract source", - "Infobox": { - "meta": [ - { - "data_type": "string", - "value": ".test", - "label": "article_title" - } - ] - }, - "Image": "image.png", - "ImageIsLogo": 0, - "Abstract": "abstract", - "AbstractText": "abstract text", - "AnswerType": "", - "ImageHeight": 0, - "Results": [{ - "Result" : "result title", - "Icon" : { - "URL" : "result url", - "Height" : 16, - "Width" : 16 - }, - "Text" : "result text" - } - ], - "Answer": "" - } - """ - response = mock.Mock(text=json) - results = duckduckgo_definitions.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['infobox'], 'heading') - self.assertEqual(results[0]['id'], 'https://definition.url') - self.assertEqual(results[0]['entity'], 'Entity') - self.assertIn('abstract', results[0]['content']) - self.assertIn('this is the definition', results[0]['content']) - self.assertEqual(results[0]['img_src'], 'image.png') - self.assertIn({'url': 'https://abstract.url', 'title': 'abstract source'}, results[0]['urls']) - self.assertIn({'url': 'http://definition.url', 'title': 'definition source'}, results[0]['urls']) - self.assertIn({'name': 'name', 'suggestions': []}, results[0]['relatedTopics']) diff --git a/tests/unit/engines/test_duckduckgo_images.py b/tests/unit/engines/test_duckduckgo_images.py deleted file mode 100644 index 0d152bec..00000000 --- a/tests/unit/engines/test_duckduckgo_images.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import duckduckgo_images -from searx.testing import SearxTestCase - - -class TestDuckduckgoImagesEngine(SearxTestCase): - - def test_request(self): - duckduckgo_images.supported_languages = ['de-CH', 'en-US'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['is_test'] = True - dicto['pageno'] = 1 - dicto['safesearch'] = 0 - dicto['language'] = 'all' - params = duckduckgo_images.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('duckduckgo.com', params['url']) - self.assertIn('s=0', params['url']) - self.assertIn('p=-1', params['url']) - self.assertIn('vqd=12345', params['url']) - - # test paging, safe search and language - dicto['pageno'] = 2 - dicto['safesearch'] = 2 - dicto['language'] = 'de' - params = duckduckgo_images.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('s=50', params['url']) - self.assertIn('p=1', params['url']) - self.assertIn('ch-de', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, duckduckgo_images.response, None) - self.assertRaises(AttributeError, duckduckgo_images.response, []) - self.assertRaises(AttributeError, duckduckgo_images.response, '') - self.assertRaises(AttributeError, duckduckgo_images.response, '[]') - - response = mock.Mock(text='If this error persists, please let us know: ops@duckduckgo.com') - self.assertRaises(Exception, duckduckgo_images.response, response) - - json = u""" - { - "query": "test_query", - "results": [ - { - "title": "Result 1", - "url": "https://site1.url", - "thumbnail": "https://thumb1.nail", - "image": "https://image1" - }, - { - "title": "Result 2", - "url": "https://site2.url", - "thumbnail": "https://thumb2.nail", - "image": "https://image2" - } - ] - } - """ - response = mock.Mock(text=json) - results = duckduckgo_images.response(response) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'Result 1') - self.assertEqual(results[0]['url'], 'https://site1.url') - self.assertEqual(results[0]['thumbnail_src'], 'https://thumb1.nail') - self.assertEqual(results[0]['img_src'], 'https://image1') - self.assertEqual(results[1]['title'], 'Result 2') - self.assertEqual(results[1]['url'], 'https://site2.url') - self.assertEqual(results[1]['thumbnail_src'], 'https://thumb2.nail') - self.assertEqual(results[1]['img_src'], 'https://image2') diff --git a/tests/unit/engines/test_duden.py b/tests/unit/engines/test_duden.py deleted file mode 100644 index 52fc513d..00000000 --- a/tests/unit/engines/test_duden.py +++ /dev/null @@ -1,47 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import duden -from searx.testing import SearxTestCase -from datetime import datetime - - -class TestDudenEngine(SearxTestCase): - - def test_request(self): - query = 'Haus' - dic = defaultdict(dict) - data = [ - [1, 'https://www.duden.de/suchen/dudenonline/Haus'], - [2, 'https://www.duden.de/suchen/dudenonline/Haus?search_api_fulltext=&page=1'] - ] - for page_no, exp_res in data: - dic['pageno'] = page_no - params = duden.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('duden.de' in params['url']) - self.assertEqual(params['url'], exp_res) - - def test_response(self): - resp = mock.Mock(text='') - self.assertEqual(duden.response(resp), []) - - html = """ -
- - This is the title also here - -

This is the content

-
- """ - resp = mock.Mock(text=html) - results = duden.response(resp) - - self.assertEqual(len(results), 1) - self.assertEqual(type(results), list) - - # testing result (dictionary entry) - r = results[0] - self.assertEqual(r['url'], 'https://www.duden.de/rechtschreibung/Haus') - self.assertEqual(r['title'], 'This is the title also here') - self.assertEqual(r['content'], 'This is the content') diff --git a/tests/unit/engines/test_dummy.py b/tests/unit/engines/test_dummy.py deleted file mode 100644 index 9399beaa..00000000 --- a/tests/unit/engines/test_dummy.py +++ /dev/null @@ -1,26 +0,0 @@ -from searx.engines import dummy -from searx.testing import SearxTestCase - - -class TestDummyEngine(SearxTestCase): - - def test_request(self): - test_params = [ - [1, 2, 3], - ['a'], - [], - 1 - ] - for params in test_params: - self.assertEqual(dummy.request(None, params), params) - - def test_response(self): - responses = [ - None, - [], - True, - dict(), - tuple() - ] - for response in responses: - self.assertEqual(dummy.response(response), []) diff --git a/tests/unit/engines/test_faroo.py b/tests/unit/engines/test_faroo.py deleted file mode 100644 index 1bd9f51c..00000000 --- a/tests/unit/engines/test_faroo.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import faroo -from searx.testing import SearxTestCase - - -class TestFarooEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['category'] = 'general' - params = faroo.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('faroo.com', params['url']) - self.assertIn('en', params['url']) - self.assertIn('web', params['url']) - - dicto['language'] = 'all' - params = faroo.request(query, dicto) - self.assertIn('en', params['url']) - - dicto['language'] = 'de-DE' - params = faroo.request(query, dicto) - self.assertIn('de', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, faroo.response, None) - self.assertRaises(AttributeError, faroo.response, []) - self.assertRaises(AttributeError, faroo.response, '') - self.assertRaises(AttributeError, faroo.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(faroo.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(faroo.response(response), []) - - response = mock.Mock(text='{"data": []}', status_code=429) - self.assertRaises(Exception, faroo.response, response) - - json = """ - { - "results": [ - { - "title": "This is the title", - "kwic": "This is the content", - "content": "", - "url": "http://this.is.the.url/", - "iurl": "", - "domain": "css3test.com", - "author": "Jim Dalrymple", - "news": true, - "votes": "10", - "date": 1360622563000, - "related": [] - }, - { - "title": "This is the title2", - "kwic": "This is the content2", - "content": "", - "url": "http://this.is.the.url2/", - "iurl": "", - "domain": "css3test.com", - "author": "Jim Dalrymple", - "news": false, - "votes": "10", - "related": [] - }, - { - "title": "This is the title3", - "kwic": "This is the content3", - "content": "", - "url": "http://this.is.the.url3/", - "iurl": "http://upload.wikimedia.org/optimized.jpg", - "domain": "css3test.com", - "author": "Jim Dalrymple", - "news": false, - "votes": "10", - "related": [] - } - ], - "query": "test", - "suggestions": [], - "count": 100, - "start": 1, - "length": 10, - "time": "15" - } - """ - response = mock.Mock(text=json) - results = faroo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'http://this.is.the.url/') - self.assertEqual(results[0]['content'], 'This is the content') - self.assertEqual(results[1]['title'], 'This is the title2') - self.assertEqual(results[1]['url'], 'http://this.is.the.url2/') - self.assertEqual(results[1]['content'], 'This is the content2') - self.assertEqual(results[2]['thumbnail'], 'http://upload.wikimedia.org/optimized.jpg') - - json = """ - {} - """ - response = mock.Mock(text=json) - results = faroo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_fdroid.py b/tests/unit/engines/test_fdroid.py deleted file mode 100644 index 42a0a714..00000000 --- a/tests/unit/engines/test_fdroid.py +++ /dev/null @@ -1,60 +0,0 @@ -import mock -from collections import defaultdict -from searx.engines import fdroid -from searx.testing import SearxTestCase - - -class TestFdroidEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - params = fdroid.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('search.f-droid.org' in params['url']) - - def test_response_empty(self): - resp = mock.Mock(text='') - self.assertEqual(fdroid.response(resp), []) - - def test_response_oneresult(self): - html = """ - - - - test - - - - - - """ - - resp = mock.Mock(text=html) - results = fdroid.response(resp) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['url'], 'https://example.com/app.url') - self.assertEqual(results[0]['title'], 'App Example 1') - self.assertEqual(results[0]['content'], 'Description App Example 1 - GPL-3.0-only') - self.assertEqual(results[0]['img_src'], 'https://example.com/appexample.logo.png') diff --git a/tests/unit/engines/test_flickr.py b/tests/unit/engines/test_flickr.py deleted file mode 100644 index be97647c..00000000 --- a/tests/unit/engines/test_flickr.py +++ /dev/null @@ -1,142 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import flickr -from searx.testing import SearxTestCase - - -class TestFlickrEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = flickr.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('flickr.com' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, flickr.response, None) - self.assertRaises(AttributeError, flickr.response, []) - self.assertRaises(AttributeError, flickr.response, '') - self.assertRaises(AttributeError, flickr.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(flickr.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(flickr.response(response), []) - - json = r""" - { "photos": { "page": 1, "pages": "41001", "perpage": 100, "total": "4100032", - "photo": [ - { "id": "15751017054", "owner": "66847915@N08", - "secret": "69c22afc40", "server": "7285", "farm": 8, - "title": "Photo title", "ispublic": 1, - "isfriend": 0, "isfamily": 0, - "description": { "_content": "Description" }, - "ownername": "Owner", - "url_o": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_9178e0f963_o.jpg", - "height_o": "2100", "width_o": "2653", - "url_n": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_69c22afc40_n.jpg", - "height_n": "253", "width_n": "320", - "url_z": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_69c22afc40_z.jpg", - "height_z": "507", "width_z": "640" } - ] }, "stat": "ok" } - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Photo title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/66847915@N08/15751017054') - self.assertTrue('o.jpg' in results[0]['img_src']) - self.assertTrue('n.jpg' in results[0]['thumbnail_src']) - self.assertTrue('Owner' in results[0]['author']) - self.assertTrue('Description' in results[0]['content']) - - json = r""" - { "photos": { "page": 1, "pages": "41001", "perpage": 100, "total": "4100032", - "photo": [ - { "id": "15751017054", "owner": "66847915@N08", - "secret": "69c22afc40", "server": "7285", "farm": 8, - "title": "Photo title", "ispublic": 1, - "isfriend": 0, "isfamily": 0, - "description": { "_content": "Description" }, - "ownername": "Owner", - "url_z": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_69c22afc40_z.jpg", - "height_z": "507", "width_z": "640" } - ] }, "stat": "ok" } - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Photo title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/66847915@N08/15751017054') - self.assertTrue('z.jpg' in results[0]['img_src']) - self.assertTrue('z.jpg' in results[0]['thumbnail_src']) - self.assertTrue('Owner' in results[0]['author']) - self.assertTrue('Description' in results[0]['content']) - - json = r""" - { "photos": { "page": 1, "pages": "41001", "perpage": 100, "total": "4100032", - "photo": [ - { "id": "15751017054", "owner": "66847915@N08", - "secret": "69c22afc40", "server": "7285", "farm": 8, - "title": "Photo title", "ispublic": 1, - "isfriend": 0, "isfamily": 0, - "description": { "_content": "Description" }, - "ownername": "Owner", - "url_o": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_9178e0f963_o.jpg", - "height_o": "2100", "width_o": "2653" } - ] }, "stat": "ok" } - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Photo title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/66847915@N08/15751017054') - self.assertTrue('o.jpg' in results[0]['img_src']) - self.assertTrue('o.jpg' in results[0]['thumbnail_src']) - self.assertTrue('Owner' in results[0]['author']) - self.assertTrue('Description' in results[0]['content']) - - json = r""" - { "photos": { "page": 1, "pages": "41001", "perpage": 100, "total": "4100032", - "photo": [ - { "id": "15751017054", "owner": "66847915@N08", - "secret": "69c22afc40", "server": "7285", "farm": 8, - "title": "Photo title", "ispublic": 1, - "isfriend": 0, "isfamily": 0, - "description": { "_content": "Description" }, - "ownername": "Owner", - "url_n": "https:\/\/farm8.staticflickr.com\/7285\/15751017054_69c22afc40_n.jpg", - "height_n": "253", "width_n": "320" } - ] }, "stat": "ok" } - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { "photos": { "page": 1, "pages": "41001", "perpage": 100, "total": "4100032", - "toto": [] }, "stat": "ok" } - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.flickr.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = flickr.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_flickr_noapi.py b/tests/unit/engines/test_flickr_noapi.py deleted file mode 100644 index 67699f2f..00000000 --- a/tests/unit/engines/test_flickr_noapi.py +++ /dev/null @@ -1,357 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import flickr_noapi -from searx.testing import SearxTestCase - - -class TestFlickrNoapiEngine(SearxTestCase): - - def test_build_flickr_url(self): - url = flickr_noapi.build_flickr_url("uid", "pid") - self.assertIn("uid", url) - self.assertIn("pid", url) - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['time_range'] = '' - params = flickr_noapi.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('flickr.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, flickr_noapi.response, None) - self.assertRaises(AttributeError, flickr_noapi.response, []) - self.assertRaises(AttributeError, flickr_noapi.response, '') - self.assertRaises(AttributeError, flickr_noapi.response, '[]') - - response = mock.Mock(text='"modelExport:{"legend":[],"main":{"search-photos-lite-models":[{"photos":{}}]}}') - self.assertEqual(flickr_noapi.response(response), []) - - response = \ - mock.Mock(text='"modelExport:{"legend":[],"main":{"search-photos-lite-models":[{"photos":{"_data":[]}}]}}') - self.assertEqual(flickr_noapi.response(response), []) - - # everthing is ok test - json = """ - modelExport: { - "legend": [ - [ - "search-photos-lite-models", - "0", - "photos", - "_data", - "0" - ] - ], - "main": { - "search-photos-lite-models": [ - { - "photos": { - "_data": [ - { - "_flickrModelRegistry": "photo-lite-models", - "title": "This%20is%20the%20title", - "username": "Owner", - "pathAlias": "klink692", - "realname": "Owner", - "license": 0, - "ownerNsid": "59729010@N00", - "canComment": false, - "commentCount": 14, - "faveCount": 21, - "id": "14001294434", - "sizes": { - "c": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_c.jpg", - "width": 541, - "height": 800, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_c.jpg", - "key": "c" - }, - "h": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_761d32237a_h.jpg", - "width": 1081, - "height": 1600, - "url": "//c4.staticflickr.com/8/7246/14001294434_761d32237a_h.jpg", - "key": "h" - }, - "k": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_f145a2c11a_k.jpg", - "width": 1383, - "height": 2048, - "url": "//c4.staticflickr.com/8/7246/14001294434_f145a2c11a_k.jpg", - "key": "k" - }, - "l": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_b.jpg", - "width": 692, - "height": 1024, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_b.jpg", - "key": "l" - }, - "m": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777.jpg", - "width": 338, - "height": 500, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777.jpg", - "key": "m" - }, - "n": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_n.jpg", - "width": 216, - "height": 320, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_n.jpg", - "key": "n" - }, - "q": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_q.jpg", - "width": 150, - "height": 150, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_q.jpg", - "key": "q" - }, - "s": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_m.jpg", - "width": 162, - "height": 240, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_m.jpg", - "key": "s" - }, - "sq": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_s.jpg", - "width": 75, - "height": 75, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_s.jpg", - "key": "sq" - }, - "t": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_t.jpg", - "width": 68, - "height": 100, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_t.jpg", - "key": "t" - }, - "z": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg", - "width": 433, - "height": 640, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg", - "key": "z" - } - } - } - ] - } - } - ] - } - } - """ - # Flickr serves search results in a json block named 'modelExport' buried inside a script tag, - # this json is served as a single line terminating with a comma. - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') - self.assertIn('k.jpg', results[0]['img_src']) - self.assertIn('n.jpg', results[0]['thumbnail_src']) - self.assertIn('Owner', results[0]['author']) - - # no n size, only the z size - json = """ - modelExport: { - "legend": [ - [ - "search-photos-lite-models", - "0", - "photos", - "_data", - "0" - ] - ], - "main": { - "search-photos-lite-models": [ - { - "photos": { - "_data": [ - { - "_flickrModelRegistry": "photo-lite-models", - "title": "This%20is%20the%20title", - "username": "Owner", - "pathAlias": "klink692", - "realname": "Owner", - "license": 0, - "ownerNsid": "59729010@N00", - "canComment": false, - "commentCount": 14, - "faveCount": 21, - "id": "14001294434", - "sizes": { - "z": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg", - "width": 433, - "height": 640, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg", - "key": "z" - } - } - } - ] - } - } - ] - } - } - """ - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') - self.assertIn('z.jpg', results[0]['img_src']) - self.assertIn('z.jpg', results[0]['thumbnail_src']) - self.assertIn('Owner', results[0]['author']) - - # no z or n size - json = """ - modelExport: { - "legend": [ - [ - "search-photos-lite-models", - "0", - "photos", - "_data", - "0" - ] - ], - "main": { - "search-photos-lite-models": [ - { - "photos": { - "_data": [ - { - "_flickrModelRegistry": "photo-lite-models", - "title": "This%20is%20the%20title", - "username": "Owner", - "pathAlias": "klink692", - "realname": "Owner", - "license": 0, - "ownerNsid": "59729010@N00", - "canComment": false, - "commentCount": 14, - "faveCount": 21, - "id": "14001294434", - "sizes": { - "o": { - "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_o.jpg", - "width": 433, - "height": 640, - "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_o.jpg", - "key": "o" - } - } - } - ] - } - } - ] - } - } - """ - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') - self.assertIn('o.jpg', results[0]['img_src']) - self.assertIn('o.jpg', results[0]['thumbnail_src']) - self.assertIn('Owner', results[0]['author']) - - # no image test - json = """ - modelExport: { - "legend": [ - [ - "search-photos-lite-models", - "0", - "photos", - "_data", - "0" - ] - ], - "main": { - "search-photos-lite-models": [ - { - "photos": { - "_data": [ - { - "_flickrModelRegistry": "photo-lite-models", - "title": "This is the title", - "username": "Owner", - "pathAlias": "klink692", - "realname": "Owner", - "license": 0, - "ownerNsid": "59729010@N00", - "canComment": false, - "commentCount": 14, - "faveCount": 21, - "id": "14001294434", - "sizes": { - } - } - ] - } - } - ] - } - } - """ - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - # null test - json = """ - modelExport: { - "legend": [null], - "main": { - "search-photos-lite-models": [ - { - "photos": { - "_data": [null] - } - } - ] - } - } - """ - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - # garbage test - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.flickr.com\/artist\/1217","type":"artist"} - ]} - """ - json = ''.join(json.split()) + ',\n' - response = mock.Mock(text=json) - results = flickr_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_framalibre.py b/tests/unit/engines/test_framalibre.py deleted file mode 100644 index 85099637..00000000 --- a/tests/unit/engines/test_framalibre.py +++ /dev/null @@ -1,103 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import framalibre -from searx.testing import SearxTestCase - - -class TestFramalibreEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = framalibre.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('framalibre.org' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, framalibre.response, None) - self.assertRaises(AttributeError, framalibre.response, []) - self.assertRaises(AttributeError, framalibre.response, '') - self.assertRaises(AttributeError, framalibre.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(framalibre.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(framalibre.response(response), []) - - html = u""" -
-
-
-
- -
-
-

Gogs

- -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Gogs est une interface web basée sur git et une bonne alternative à GitHub.

-
-
-
-
- -
-
- """ - response = mock.Mock(text=html) - results = framalibre.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Gogs') - self.assertEqual(results[0]['url'], - 'https://framalibre.org/content/gogs') - self.assertEqual(results[0]['content'], - u"Gogs est une interface web basée sur git et une bonne alternative à GitHub.") diff --git a/tests/unit/engines/test_frinkiac.py b/tests/unit/engines/test_frinkiac.py deleted file mode 100644 index 5ea220cd..00000000 --- a/tests/unit/engines/test_frinkiac.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import frinkiac -from searx.testing import SearxTestCase - - -class TestFrinkiacEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - request_dict = defaultdict(dict) - params = frinkiac.request(query, request_dict) - self.assertTrue('url' in params) - - def test_response(self): - self.assertRaises(AttributeError, frinkiac.response, None) - self.assertRaises(AttributeError, frinkiac.response, []) - self.assertRaises(AttributeError, frinkiac.response, '') - self.assertRaises(AttributeError, frinkiac.response, '[]') - - text = """ -[{"Id":770931, - "Episode":"S06E18", - "Timestamp":534616, - "Filename":""}, - {"Id":1657080, - "Episode":"S12E14", - "Timestamp":910868, - "Filename":""}, - {"Id":1943753, - "Episode":"S14E21", - "Timestamp":773439, - "Filename":""}, - {"Id":107835, - "Episode":"S02E03", - "Timestamp":531709, - "Filename":""}] - """ - - response = mock.Mock(text=text) - results = frinkiac.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 4) - self.assertEqual(results[0]['title'], u'S06E18') - self.assertIn('p=caption', results[0]['url']) - self.assertIn('e=S06E18', results[0]['url']) - self.assertIn('t=534616', results[0]['url']) - self.assertEqual(results[0]['thumbnail_src'], 'https://frinkiac.com/img/S06E18/534616/medium.jpg') - self.assertEqual(results[0]['img_src'], 'https://frinkiac.com/img/S06E18/534616.jpg') diff --git a/tests/unit/engines/test_genius.py b/tests/unit/engines/test_genius.py deleted file mode 100644 index ea721943..00000000 --- a/tests/unit/engines/test_genius.py +++ /dev/null @@ -1,231 +0,0 @@ -from collections import defaultdict -import mock -from datetime import datetime -from searx.engines import genius -from searx.testing import SearxTestCase - - -class TestGeniusEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = genius.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('genius.com' in params['url']) - - def test_response(self): - - json_empty = """ - { - "meta": { - "status": 200 - }, - "response": { - "sections": [ - { - "type": "top_hit", - "hits": [] - }, - { - "type": "song", - "hits": [] - }, - { - "type": "lyric", - "hits": [] - }, - { - "type": "artist", - "hits": [] - }, - { - "type": "album", - "hits": [] - }, - { - "type": "tag", - "hits": [] - }, - { - "type": "video", - "hits": [] - }, - { - "type": "article", - "hits": [] - }, - { - "type": "user", - "hits": [] - } - ] - } - } - """ - - resp = mock.Mock(text=json_empty) - self.assertEqual(genius.response(resp), []) - - json = """ - { - "meta": { - "status": 200 - }, - "response": { - "sections": [ - { - "type": "lyric", - "hits": [ - { - "highlights": [ - { - "property": "lyrics", - "value": "Sample lyrics", - "snippet": true, - "ranges": [] - } - ], - "index": "lyric", - "type": "song", - "result": { - "_type": "song", - "annotation_count": 45, - "api_path": "/songs/52916", - "full_title": "J't'emmerde by MC Jean Gab'1", - "header_image_thumbnail_url": "https://images.genius.com/xxx.300x300x1.jpg", - "header_image_url": "https://images.genius.com/ef9f736a86df3c3b1772f3fb7fbdb21c.1000x1000x1.jpg", - "id": 52916, - "instrumental": false, - "lyrics_owner_id": 15586, - "lyrics_state": "complete", - "lyrics_updated_at": 1498744545, - "path": "/Mc-jean-gab1-jtemmerde-lyrics", - "pyongs_count": 4, - "song_art_image_thumbnail_url": "https://images.genius.com/xxx.300x300x1.jpg", - "stats": { - "hot": false, - "unreviewed_annotations": 0, - "pageviews": 62490 - }, - "title": "J't'emmerde", - "title_with_featured": "J't'emmerde", - "updated_by_human_at": 1498744546, - "url": "https://genius.com/Mc-jean-gab1-jtemmerde-lyrics", - "primary_artist": { - "_type": "artist", - "api_path": "/artists/12691", - "header_image_url": "https://images.genius.com/c7847662a58f8c2b0f02a6e217d60907.960x657x1.jpg", - "id": 12691, - "image_url": "https://s3.amazonaws.com/rapgenius/Mc-jean-gab1.jpg", - "index_character": "m", - "is_meme_verified": false, - "is_verified": false, - "name": "MC Jean Gab'1", - "slug": "Mc-jean-gab1", - "url": "https://genius.com/artists/Mc-jean-gab1" - } - } - } - ] - }, - { - "type": "artist", - "hits": [ - { - "highlights": [], - "index": "artist", - "type": "artist", - "result": { - "_type": "artist", - "api_path": "/artists/191580", - "header_image_url": "https://assets.genius.com/images/default_avatar_300.png?1503090542", - "id": 191580, - "image_url": "https://assets.genius.com/images/default_avatar_300.png?1503090542", - "index_character": "a", - "is_meme_verified": false, - "is_verified": false, - "name": "ASDF Guy", - "slug": "Asdf-guy", - "url": "https://genius.com/artists/Asdf-guy" - } - } - ] - }, - { - "type": "album", - "hits": [ - { - "highlights": [], - "index": "album", - "type": "album", - "result": { - "_type": "album", - "api_path": "/albums/132332", - "cover_art_thumbnail_url": "https://images.genius.com/xxx.300x300x1.jpg", - "cover_art_url": "https://images.genius.com/xxx.600x600x1.jpg", - "full_title": "ASD by A Skylit Drive", - "id": 132332, - "name": "ASD", - "name_with_artist": "ASD (artist: A Skylit Drive)", - "release_date_components": { - "year": 2015, - "month": null, - "day": null - }, - "url": "https://genius.com/albums/A-skylit-drive/Asd", - "artist": { - "_type": "artist", - "api_path": "/artists/48712", - "header_image_url": "https://images.genius.com/814c1551293172c56306d0e310c6aa89.620x400x1.jpg", - "id": 48712, - "image_url": "https://images.genius.com/814c1551293172c56306d0e310c6aa89.620x400x1.jpg", - "index_character": "s", - "is_meme_verified": false, - "is_verified": false, - "name": "A Skylit Drive", - "slug": "A-skylit-drive", - "url": "https://genius.com/artists/A-skylit-drive" - } - } - } - ] - } - ] - } - } - """ - - resp = mock.Mock(text=json) - results = genius.response(resp) - - self.assertEqual(len(results), 3) - self.assertEqual(type(results), list) - - # check lyric parsing - r = results[0] - self.assertEqual(r['url'], 'https://genius.com/Mc-jean-gab1-jtemmerde-lyrics') - self.assertEqual(r['title'], "J't'emmerde by MC Jean Gab'1") - self.assertEqual(r['content'], "Sample lyrics") - self.assertEqual(r['template'], 'videos.html') - self.assertEqual(r['thumbnail'], 'https://images.genius.com/xxx.300x300x1.jpg') - created = datetime.fromtimestamp(1498744545) - self.assertEqual(r['publishedDate'], created) - - # check artist parsing - r = results[1] - self.assertEqual(r['url'], 'https://genius.com/artists/Asdf-guy') - self.assertEqual(r['title'], "ASDF Guy") - self.assertEqual(r['content'], None) - self.assertEqual(r['template'], 'videos.html') - self.assertEqual(r['thumbnail'], 'https://assets.genius.com/images/default_avatar_300.png?1503090542') - - # check album parsing - r = results[2] - self.assertEqual(r['url'], 'https://genius.com/albums/A-skylit-drive/Asd') - self.assertEqual(r['title'], "ASD by A Skylit Drive") - self.assertEqual(r['content'], "Released: 2015") - self.assertEqual(r['template'], 'videos.html') - self.assertEqual(r['thumbnail'], 'https://images.genius.com/xxx.600x600x1.jpg') diff --git a/tests/unit/engines/test_gigablast.py b/tests/unit/engines/test_gigablast.py deleted file mode 100644 index 6b2d2645..00000000 --- a/tests/unit/engines/test_gigablast.py +++ /dev/null @@ -1,119 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import gigablast -from searx.testing import SearxTestCase - - -class TestGigablastEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['safesearch'] = 0 - dicto['language'] = 'all' - params = gigablast.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('gigablast.com' in params['url']) - self.assertTrue('xx' in params['url']) - - dicto['language'] = 'en-US' - params = gigablast.request(query, dicto) - self.assertTrue('en' in params['url']) - self.assertFalse('en-US' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, gigablast.response, None) - self.assertRaises(AttributeError, gigablast.response, []) - self.assertRaises(AttributeError, gigablast.response, '') - self.assertRaises(AttributeError, gigablast.response, '[]') - - response = mock.Mock(text='{"results": []}') - self.assertEqual(gigablast.response(response), []) - - json = """{"results": [ - { - "title":"South by Southwest 2016", - "dmozEntry":{ - "dmozCatId":1041152, - "directCatId":1, - "dmozCatStr":"Top: Regional: North America: United States", - "dmozTitle":"South by Southwest (SXSW)", - "dmozSum":"Annual music, film, and interactive conference.", - "dmozAnchor":"" - }, - "dmozEntry":{ - "dmozCatId":763945, - "directCatId":1, - "dmozCatStr":"Top: Regional: North America: United States", - "dmozTitle":"South by Southwest (SXSW)", - "dmozSum":"", - "dmozAnchor":"www.sxsw.com" - }, - "dmozEntry":{ - "dmozCatId":761446, - "directCatId":1, - "dmozCatStr":"Top: Regional: North America: United States", - "dmozTitle":"South by Southwest (SXSW)", - "dmozSum":"Music, film, and interactive conference and festival.", - "dmozAnchor":"" - }, - "indirectDmozCatId":1041152, - "indirectDmozCatId":763945, - "indirectDmozCatId":761446, - "contentType":"html", - "sum":"This should be the content.", - "url":"www.sxsw.com", - "hopCount":0, - "size":" 102k", - "sizeInBytes":104306, - "bytesUsedToComputeSummary":70000, - "docId":269411794364, - "docScore":586571136.000000, - "summaryGenTimeMS":12, - "summaryTagdbLookupTimeMS":0, - "summaryTitleRecLoadTimeMS":1, - "site":"www.sxsw.com", - "spidered":1452203608, - "firstIndexedDateUTC":1444167123, - "contentHash32":2170650347, - "language":"English", - "langAbbr":"en" - } -]} - """ - response = mock.Mock(text=json) - results = gigablast.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'South by Southwest 2016') - self.assertEqual(results[0]['url'], 'www.sxsw.com') - self.assertEqual(results[0]['content'], 'This should be the content.') - - def test_fetch_supported_languages(self): - html = """""" - response = mock.Mock(text=html) - results = gigablast._fetch_supported_languages(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - html = """ - - - - - - - - - - - - """ - response = mock.Mock(text=html) - languages = gigablast._fetch_supported_languages(response) - self.assertEqual(type(languages), list) - self.assertEqual(len(languages), 2) - self.assertIn('en', languages) - self.assertIn('zh-TW', languages) diff --git a/tests/unit/engines/test_github.py b/tests/unit/engines/test_github.py deleted file mode 100644 index 460be8c3..00000000 --- a/tests/unit/engines/test_github.py +++ /dev/null @@ -1,61 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import github -from searx.testing import SearxTestCase - - -class TestGitHubEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - params = github.request(query, defaultdict(dict)) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('github.com' in params['url']) - self.assertEqual(params['headers']['Accept'], github.accept_header) - - def test_response(self): - self.assertRaises(AttributeError, github.response, None) - self.assertRaises(AttributeError, github.response, []) - self.assertRaises(AttributeError, github.response, '') - self.assertRaises(AttributeError, github.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(github.response(response), []) - - response = mock.Mock(text='{"items": []}') - self.assertEqual(github.response(response), []) - - json = """ - { - "items": [ - { - "name": "title", - "html_url": "url", - "description": "" - } - ] - } - """ - response = mock.Mock(text=json) - results = github.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'title') - self.assertEqual(results[0]['url'], 'url') - self.assertEqual(results[0]['content'], '') - - json = """ - { - "items": [ - { - "name": "title", - "html_url": "url", - "description": "desc" - } - ] - } - """ - response = mock.Mock(text=json) - results = github.response(response) - self.assertEqual(results[0]['content'], "desc") diff --git a/tests/unit/engines/test_google.py b/tests/unit/engines/test_google.py deleted file mode 100644 index 9d0edd43..00000000 --- a/tests/unit/engines/test_google.py +++ /dev/null @@ -1,194 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -import lxml -from searx.engines import google -from searx.testing import SearxTestCase - - -class TestGoogleEngine(SearxTestCase): - - def mock_response(self, text): - response = mock.Mock(text=text, url='https://www.google.com/search?q=test&start=0&gbv=1&gws_rd=cr') - response.search_params = mock.Mock() - response.search_params.get = mock.Mock(return_value='www.google.com') - return response - - def test_request(self): - google.supported_languages = ['en', 'fr', 'zh-CN', 'iw'] - google.language_aliases = {'he': 'iw'} - - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['time_range'] = '' - params = google.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('google.fr', params['url']) - self.assertIn('fr', params['url']) - self.assertIn('fr', params['headers']['Accept-Language']) - - dicto['language'] = 'en-US' - params = google.request(query, dicto) - self.assertIn('google.com', params['url']) - self.assertIn('en', params['url']) - self.assertIn('en', params['headers']['Accept-Language']) - - dicto['language'] = 'zh' - params = google.request(query, dicto) - self.assertIn('google.com', params['url']) - self.assertIn('zh-CN', params['url']) - self.assertIn('zh-CN', params['headers']['Accept-Language']) - - dicto['language'] = 'he' - params = google.request(query, dicto) - self.assertIn('google.com', params['url']) - self.assertIn('iw', params['url']) - self.assertIn('iw', params['headers']['Accept-Language']) - - def test_response(self): - self.assertRaises(AttributeError, google.response, None) - self.assertRaises(AttributeError, google.response, []) - self.assertRaises(AttributeError, google.response, '') - self.assertRaises(AttributeError, google.response, '[]') - - response = self.mock_response('') - self.assertEqual(google.response(response), []) - - html = """ -
-
- -
-
-
-
-
- This should be the content. -
-
-
-
-
-
-

-
-
-
- -
- Related searches -
-
-
- -
-

- """ - response = self.mock_response(html) - results = google.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/') - self.assertEqual(results[0]['content'], 'This should be the content.') - self.assertEqual(results[1]['suggestion'], 'suggestion title') - - html = """ -
  • -
  • - """ - response = self.mock_response(html) - results = google.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - response = mock.Mock(text='', url='https://sorry.google.com') - response.search_params = mock.Mock() - response.search_params.get = mock.Mock(return_value='www.google.com') - self.assertRaises(RuntimeWarning, google.response, response) - - response = mock.Mock(text='', url='https://www.google.com/sorry/IndexRedirect') - response.search_params = mock.Mock() - response.search_params.get = mock.Mock(return_value='www.google.com') - self.assertRaises(RuntimeWarning, google.response, response) - - def test_parse_images(self): - html = """ -
  • -
    - - - -
    -
  • - """ - dom = lxml.html.fromstring(html) - results = google.parse_images(dom, 'www.google.com') - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['url'], 'http://this.is.the.url/') - self.assertEqual(results[0]['title'], '') - self.assertEqual(results[0]['content'], '') - self.assertEqual(results[0]['img_src'], 'https://this.is.the.image/image.jpg') - - def test_fetch_supported_languages(self): - html = """""" - response = mock.Mock(text=html) - languages = google._fetch_supported_languages(response) - self.assertEqual(type(languages), dict) - self.assertEqual(len(languages), 0) - - html = u""" - - -
    -
    - - - -
    -
    - - - """ - response = mock.Mock(text=html) - languages = google._fetch_supported_languages(response) - self.assertEqual(type(languages), dict) - self.assertEqual(len(languages), 3) - - self.assertIn('en', languages) - self.assertIn('zh-CN', languages) - self.assertIn('zh-TW', languages) - - self.assertEquals(type(languages['en']), dict) - self.assertEquals(type(languages['zh-CN']), dict) - self.assertEquals(type(languages['zh-TW']), dict) - - self.assertIn('name', languages['en']) - self.assertIn('name', languages['zh-CN']) - self.assertIn('name', languages['zh-TW']) - - self.assertEquals(languages['en']['name'], 'English') - self.assertEquals(languages['zh-CN']['name'], u'中文 (简体)') - self.assertEquals(languages['zh-TW']['name'], u'中文 (繁體)') diff --git a/tests/unit/engines/test_google_images.py b/tests/unit/engines/test_google_images.py deleted file mode 100644 index 8366e1b0..00000000 --- a/tests/unit/engines/test_google_images.py +++ /dev/null @@ -1,27 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import google_images -from searx.testing import SearxTestCase - - -class TestGoogleImagesEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['safesearch'] = 1 - dicto['time_range'] = '' - params = google_images.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - - dicto['safesearch'] = 0 - params = google_images.request(query, dicto) - self.assertNotIn('safe', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, google_images.response, None) - self.assertRaises(AttributeError, google_images.response, []) - self.assertRaises(AttributeError, google_images.response, '') - self.assertRaises(AttributeError, google_images.response, '[]') diff --git a/tests/unit/engines/test_google_news.py b/tests/unit/engines/test_google_news.py deleted file mode 100644 index 0a122ca6..00000000 --- a/tests/unit/engines/test_google_news.py +++ /dev/null @@ -1,102 +0,0 @@ -# -*- coding: utf-8 -*- - -from collections import defaultdict -import mock -from searx.engines import google_news -from searx.testing import SearxTestCase - - -class TestGoogleNewsEngine(SearxTestCase): - - def test_request(self): - google_news.supported_languages = ['en-US', 'fr-FR'] - google_news.language_aliases = {} - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - dicto['time_range'] = 'w' - params = google_news.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('fr', params['url']) - - dicto['language'] = 'all' - params = google_news.request(query, dicto) - self.assertIn('url', params) - self.assertNotIn('fr', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, google_news.response, None) - self.assertRaises(AttributeError, google_news.response, []) - self.assertRaises(AttributeError, google_news.response, '') - self.assertRaises(AttributeError, google_news.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(google_news.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(google_news.response(response), []) - - html = u""" -

    Search Results

    -
    -
    -
    - -
    -
    -
    -

    - Example title -

    -
    - - Mac & i - - - - - Mar 21, 2016 -
    -
    Example description
    -
    -
    -
    -
    -
    - - Story image for searx from Golem.de - -
    -

    - Example title 2 -

    -
    - - Golem.de - - - - - Oct 4, 2016 -
    -
    Example description 2
    -
    -
    -
    -
    -
    -
    - - - """ # noqa - response = mock.Mock(text=html) - results = google_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], u'Example title') - self.assertEqual(results[0]['url'], 'https://example.com/') - self.assertEqual(results[0]['content'], 'Example description') - self.assertEqual(results[1]['title'], u'Example title 2') - self.assertEqual(results[1]['url'], 'https://example2.com/') - self.assertEqual(results[1]['content'], 'Example description 2') - self.assertEqual(results[1]['img_src'], 'https://example2.com/image.jpg') diff --git a/tests/unit/engines/test_google_videos.py b/tests/unit/engines/test_google_videos.py deleted file mode 100644 index 3b7edf37..00000000 --- a/tests/unit/engines/test_google_videos.py +++ /dev/null @@ -1,79 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import google_videos -from searx.testing import SearxTestCase - - -class TestGoogleVideosEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['safesearch'] = 1 - dicto['time_range'] = '' - params = google_videos.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - - dicto['safesearch'] = 0 - params = google_videos.request(query, dicto) - self.assertNotIn('safe', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, google_videos.response, None) - self.assertRaises(AttributeError, google_videos.response, []) - self.assertRaises(AttributeError, google_videos.response, '') - self.assertRaises(AttributeError, google_videos.response, '[]') - - html = r""" -
    -
    -
    -
    -

    Title 1

    -
    -
    - -
    -
    - Content 1 -
    -
    -
    -
    -

    Title 2

    -
    -
    - -
    -
    - Content 2 -
    -
    -
    -
    - - """ - response = mock.Mock(text=html) - results = google_videos.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['url'], u'url_1') - self.assertEqual(results[0]['title'], u'Title 1') - self.assertEqual(results[0]['content'], u'Content 1') - self.assertEqual(results[1]['url'], u'url_2') - self.assertEqual(results[1]['title'], u'Title 2') - self.assertEqual(results[1]['content'], u'Content 2') diff --git a/tests/unit/engines/test_ina.py b/tests/unit/engines/test_ina.py deleted file mode 100644 index 109a9592..00000000 --- a/tests/unit/engines/test_ina.py +++ /dev/null @@ -1,64 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import ina -from searx.testing import SearxTestCase - - -class TestInaEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = ina.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('ina.fr' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, ina.response, None) - self.assertRaises(AttributeError, ina.response, []) - self.assertRaises(AttributeError, ina.response, '') - self.assertRaises(AttributeError, ina.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(ina.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(ina.response(response), []) - - json = """ - {"content":"\\t
    \\n\\t\\n\ - \\n
    \\n\ -
    \\n\ - \\t\\t\\t\\t\\n\ - \\"Conf\\u00e9rence\\n\ - \\t\\t\\t\\t\\t<\\/a>\\n\ - \\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t

    \\n\ - \\t\\t\\t\\t\\t\\t\\t\ - Conf\\u00e9rence de presse du G\\u00e9n\\u00e9ral de Gaulle <\\/a>\\n\ - <\\/h3>\\n\ -
    \\n27\\/11\\/1967<\\/span>\\n\ - 29321 vues<\\/span>\\n\ - 01h 33m 07s<\\/span>\\n\ - <\\/div>\\n\ -

    VERSION INTEGRALE DE LA CONFERENCE DE PRESSE DU GENERAL DE GAULLE . \ - - PA le Pr\\u00e9sident DE GAULLE : il ouvre les bras et s'assied. DP journalis...<\\/p>\\n\ - <\\/div>\\n<\\/div>\\n" - } - """ - response = mock.Mock(text=json) - results = ina.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], u'Conf\xe9rence de presse du G\xe9n\xe9ral de Gaulle') - self.assertEqual(results[0]['url'], - 'https://www.ina.fr/video/CAF89035682/conference-de-presse-du-general-de-gaulle-video.html') - self.assertEqual(results[0]['content'], - u"VERSION INTEGRALE DE LA CONFERENCE DE PRESSE DU GENERAL DE GAULLE ." - u" - PA le Pr\u00e9sident DE GAULLE : il ouvre les bras et s'assied. DP journalis...") diff --git a/tests/unit/engines/test_kickass.py b/tests/unit/engines/test_kickass.py deleted file mode 100644 index 3a75c669..00000000 --- a/tests/unit/engines/test_kickass.py +++ /dev/null @@ -1,397 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import kickass -from searx.testing import SearxTestCase - - -class TestKickassEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = kickass.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('kickass.cd', params['url']) - self.assertFalse(params['verify']) - - def test_response(self): - self.assertRaises(AttributeError, kickass.response, None) - self.assertRaises(AttributeError, kickass.response, []) - self.assertRaises(AttributeError, kickass.response, '') - self.assertRaises(AttributeError, kickass.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(kickass.response(response), []) - - html = """ - - - - - - - - - - - - - - - - - -
    torrent name - size - - files - - age - - seed - - leech -
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    449 bytes42 years101
    - """ - response = mock.Mock(text=html) - results = kickass.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This should be the title') - self.assertEqual(results[0]['url'], 'https://kickass.cd/url.html') - self.assertEqual(results[0]['content'], 'Posted by riri in Other > Unsorted') - self.assertEqual(results[0]['seed'], 10) - self.assertEqual(results[0]['leech'], 1) - self.assertEqual(results[0]['filesize'], 449) - self.assertEqual(results[0]['files'], 4) - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:MAGNETURL&dn=test') - self.assertEqual(results[0]['torrentfile'], 'http://torcache.net/torrent/53917.torrent?title=test') - - html = """ - - - - - - - - - -
    torrent name - size - - files - - age - - seed - - leech -
    - """ - response = mock.Mock(text=html) - results = kickass.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - html = """ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    torrent name - size - - files - - age - - seed - - leech -
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    1 KiB42 years101
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    1 MiB42 years91
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    1 GiB42 years81
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    1 TiB42 years71
    - -
    - - -
    - - This should be the title - - - Posted by - riri in - - Other > Unsorted - - -
    -
    z bytesr2 yearsat
    - """ - response = mock.Mock(text=html) - results = kickass.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 5) - self.assertEqual(results[0]['title'], 'This should be the title') - self.assertEqual(results[0]['url'], 'https://kickass.cd/url.html') - self.assertEqual(results[0]['content'], 'Posted by riri in Other > Unsorted') - self.assertEqual(results[0]['seed'], 10) - self.assertEqual(results[0]['leech'], 1) - self.assertEqual(results[0]['files'], 4) - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:MAGNETURL&dn=test') - self.assertEqual(results[0]['torrentfile'], 'http://torcache.net/torrent/53917.torrent?title=test') - self.assertEqual(results[0]['filesize'], 1000) - self.assertEqual(results[1]['filesize'], 1000000) - self.assertEqual(results[2]['filesize'], 1000000000) - self.assertEqual(results[3]['filesize'], 1000000000000) - self.assertEqual(results[4]['seed'], 0) - self.assertEqual(results[4]['leech'], 0) - self.assertEqual(results[4]['files'], None) - self.assertEqual(results[4]['filesize'], None) diff --git a/tests/unit/engines/test_mediawiki.py b/tests/unit/engines/test_mediawiki.py deleted file mode 100644 index b8637270..00000000 --- a/tests/unit/engines/test_mediawiki.py +++ /dev/null @@ -1,130 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import mediawiki -from searx.testing import SearxTestCase - - -class TestMediawikiEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr_FR' - params = mediawiki.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('wikipedia.org', params['url']) - self.assertIn('fr', params['url']) - - dicto['language'] = 'all' - params = mediawiki.request(query, dicto) - self.assertIn('en', params['url']) - - mediawiki.base_url = "http://test.url/" - mediawiki.search_url = mediawiki.base_url +\ - 'w/api.php?action=query'\ - '&list=search'\ - '&{query}'\ - '&srprop=timestamp'\ - '&format=json'\ - '&sroffset={offset}'\ - '&srlimit={limit}' # noqa - params = mediawiki.request(query, dicto) - self.assertIn('test.url', params['url']) - - def test_response(self): - dicto = defaultdict(dict) - dicto['language'] = 'fr' - mediawiki.base_url = "https://{language}.wikipedia.org/" - - self.assertRaises(AttributeError, mediawiki.response, None) - self.assertRaises(AttributeError, mediawiki.response, []) - self.assertRaises(AttributeError, mediawiki.response, '') - self.assertRaises(AttributeError, mediawiki.response, '[]') - - response = mock.Mock(text='{}', search_params=dicto) - self.assertEqual(mediawiki.response(response), []) - - response = mock.Mock(text='{"data": []}', search_params=dicto) - self.assertEqual(mediawiki.response(response), []) - - json = """ - { - "query-continue": { - "search": { - "sroffset": 1 - } - }, - "query": { - "searchinfo": { - "totalhits": 29721 - }, - "search": [ - { - "ns": 0, - "title": "This is the title étude", - "timestamp": "2014-12-19T17:42:52Z" - } - ] - } - } - """ - response = mock.Mock(text=json, search_params=dicto) - results = mediawiki.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], u'This is the title étude') - self.assertIn('fr.wikipedia.org', results[0]['url']) - self.assertIn('This_is_the_title', results[0]['url']) - self.assertIn('%C3%A9tude', results[0]['url']) - self.assertEqual(results[0]['content'], '') - - json = """ - { - "query-continue": { - "search": { - "sroffset": 1 - } - }, - "query": { - "searchinfo": { - "totalhits": 29721 - }, - "search": [ - ] - } - } - """ - response = mock.Mock(text=json, search_params=dicto) - results = mediawiki.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { - "query-continue": { - "search": { - "sroffset": 1 - } - }, - "query": { - } - } - """ - response = mock.Mock(text=json, search_params=dicto) - results = mediawiki.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.mediawiki.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json, search_params=dicto) - results = mediawiki.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_mixcloud.py b/tests/unit/engines/test_mixcloud.py deleted file mode 100644 index 9c79a478..00000000 --- a/tests/unit/engines/test_mixcloud.py +++ /dev/null @@ -1,67 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import mixcloud -from searx.testing import SearxTestCase - - -class TestMixcloudEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = mixcloud.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('mixcloud.com' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, mixcloud.response, None) - self.assertRaises(AttributeError, mixcloud.response, []) - self.assertRaises(AttributeError, mixcloud.response, '') - self.assertRaises(AttributeError, mixcloud.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(mixcloud.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(mixcloud.response(response), []) - - json = """ - {"data":[ - { - "user": { - "url": "http://www.mixcloud.com/user/", - "username": "user", - "name": "User", - "key": "/user/" - }, - "key": "/user/this-is-the-url/", - "created_time": "2014-11-14T13:30:02Z", - "audio_length": 3728, - "slug": "this-is-the-url", - "name": "Title of track", - "url": "http://www.mixcloud.com/user/this-is-the-url/", - "updated_time": "2014-11-14T13:14:10Z" - } - ]} - """ - response = mock.Mock(text=json) - results = mixcloud.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title of track') - self.assertEqual(results[0]['url'], 'http://www.mixcloud.com/user/this-is-the-url/') - self.assertEqual(results[0]['content'], 'User') - self.assertTrue('http://www.mixcloud.com/user/this-is-the-url/' in results[0]['embedded']) - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.mixcloud.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = mixcloud.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_nyaa.py b/tests/unit/engines/test_nyaa.py deleted file mode 100644 index 6dcafc6b..00000000 --- a/tests/unit/engines/test_nyaa.py +++ /dev/null @@ -1,124 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import nyaa -from searx.testing import SearxTestCase - - -class TestNyaaEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - params = nyaa.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('nyaa.si' in params['url']) - - def test_response(self): - resp = mock.Mock(text='') - self.assertEqual(nyaa.response(resp), []) - - html = """ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    Category
    -
    -
    Name
    -
    - - - -
    Link
    -
    - -
    Size
    -
    - -
    Date
    -
    - - - - - - - - -
    - - Anime - English-translated - - - Sample title 1 - - - - 723.7 MiB2017-08-21 11:241312
    - - Anime - English-translated - - - Sample title 2 - - - 8.2 GiB2017-04-08 01:40101206
    - """ - - resp = mock.Mock(text=html) - results = nyaa.response(resp) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - - r = results[0] - self.assertTrue(r['url'].find('1') >= 0) - self.assertTrue(r['torrentfile'].find('1.torrent') >= 0) - self.assertTrue(r['content'].find('Anime - English-translated') >= 0) - self.assertTrue(r['content'].find('Downloaded 12 times.') >= 0) - - self.assertEqual(r['title'], 'Sample title 1') - self.assertEqual(r['seed'], 1) - self.assertEqual(r['leech'], 3) - self.assertEqual(r['filesize'], 723700000) - - r = results[1] - self.assertTrue(r['url'].find('2') >= 0) - self.assertTrue(r['magnetlink'].find('magnet:') >= 0) diff --git a/tests/unit/engines/test_openstreetmap.py b/tests/unit/engines/test_openstreetmap.py deleted file mode 100644 index 7b7783f0..00000000 --- a/tests/unit/engines/test_openstreetmap.py +++ /dev/null @@ -1,199 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import openstreetmap -from searx.testing import SearxTestCase - - -class TestOpenstreetmapEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = openstreetmap.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('openstreetmap.org', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, openstreetmap.response, None) - self.assertRaises(AttributeError, openstreetmap.response, []) - self.assertRaises(AttributeError, openstreetmap.response, '') - self.assertRaises(AttributeError, openstreetmap.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(openstreetmap.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(openstreetmap.response(response), []) - - json = """ - [ - { - "place_id": "127732055", - "licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright", - "osm_type": "relation", - "osm_id": "7444", - "boundingbox": [ - "48.8155755", - "48.902156", - "2.224122", - "2.4697602" - ], - "lat": "48.8565056", - "lon": "2.3521334", - "display_name": "This is the title", - "class": "place", - "type": "city", - "importance": 0.96893459932191, - "icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png", - "address": { - "city": "Paris", - "county": "Paris", - "state": "Île-de-France", - "country": "France", - "country_code": "fr" - }, - "geojson": { - "type": "Polygon", - "coordinates": [ - [ - [ - 2.224122, - 48.854199 - ] - ] - ] - } - } - ] - """ - response = mock.Mock(text=json) - results = openstreetmap.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://openstreetmap.org/relation/7444') - self.assertIn('coordinates', results[0]['geojson']) - self.assertEqual(results[0]['geojson']['coordinates'][0][0][0], 2.224122) - self.assertEqual(results[0]['geojson']['coordinates'][0][0][1], 48.854199) - self.assertEqual(results[0]['address'], None) - self.assertIn('48.8155755', results[0]['boundingbox']) - self.assertIn('48.902156', results[0]['boundingbox']) - self.assertIn('2.224122', results[0]['boundingbox']) - self.assertIn('2.4697602', results[0]['boundingbox']) - - json = """ - [ - { - "place_id": "127732055", - "licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright", - "osm_type": "relation", - "osm_id": "7444", - "boundingbox": [ - "48.8155755", - "48.902156", - "2.224122", - "2.4697602" - ], - "lat": "48.8565056", - "lon": "2.3521334", - "display_name": "This is the title", - "class": "tourism", - "type": "city", - "importance": 0.96893459932191, - "icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png", - "address": { - "city": "Paris", - "county": "Paris", - "state": "Île-de-France", - "country": "France", - "country_code": "fr", - "address29": "Address" - }, - "geojson": { - "type": "Polygon", - "coordinates": [ - [ - [ - 2.224122, - 48.854199 - ] - ] - ] - } - }, - { - "place_id": "127732055", - "licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright", - "osm_type": "relation", - "osm_id": "7444", - "boundingbox": [ - "48.8155755", - "48.902156", - "2.224122", - "2.4697602" - ], - "lat": "48.8565056", - "lon": "2.3521334", - "display_name": "This is the title", - "class": "tourism", - "type": "city", - "importance": 0.96893459932191, - "icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png", - "address": { - "city": "Paris", - "county": "Paris", - "state": "Île-de-France", - "country": "France", - "postcode": 75000, - "country_code": "fr" - }, - "geojson": { - "type": "Polygon", - "coordinates": [ - [ - [ - 2.224122, - 48.854199 - ] - ] - ] - } - }, - { - "place_id": "127732055", - "licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright", - "osm_type": "node", - "osm_id": "7444", - "boundingbox": [ - "48.8155755", - "48.902156", - "2.224122", - "2.4697602" - ], - "lat": "48.8565056", - "lon": "2.3521334", - "display_name": "This is the title", - "class": "tourism", - "type": "city", - "importance": 0.96893459932191, - "icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png", - "address": { - "city": "Paris", - "county": "Paris", - "state": "Île-de-France", - "country": "France", - "country_code": "fr", - "address29": "Address" - } - } - ] - """ - response = mock.Mock(text=json) - results = openstreetmap.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertIn('48.8565056', results[2]['geojson']['coordinates']) - self.assertIn('2.3521334', results[2]['geojson']['coordinates']) diff --git a/tests/unit/engines/test_pdbe.py b/tests/unit/engines/test_pdbe.py deleted file mode 100644 index ea5adf9d..00000000 --- a/tests/unit/engines/test_pdbe.py +++ /dev/null @@ -1,109 +0,0 @@ -import mock -from collections import defaultdict -from searx.engines import pdbe -from searx.testing import SearxTestCase - - -class TestPdbeEngine(SearxTestCase): - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - params = pdbe.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue('ebi.ac.uk' in params['url']) - self.assertTrue('data' in params) - self.assertTrue('q' in params['data']) - self.assertTrue(query in params['data']['q']) - self.assertTrue('wt' in params['data']) - self.assertTrue('json' in params['data']['wt']) - self.assertTrue('method' in params) - self.assertTrue(params['method'] == 'POST') - - def test_response(self): - self.assertRaises(AttributeError, pdbe.response, None) - self.assertRaises(AttributeError, pdbe.response, []) - self.assertRaises(AttributeError, pdbe.response, '') - self.assertRaises(AttributeError, pdbe.response, '[]') - - json = """ -{ - "response": { - "docs": [ - { - "citation_title": "X-ray crystal structure of ferric Aplysia limacina myoglobin in different liganded states.", - "citation_year": 1993, - "entry_author_list": [ - "Conti E, Moser C, Rizzi M, Mattevi A, Lionetti C, Coda A, Ascenzi P, Brunori M, Bolognesi M" - ], - "journal": "J. Mol. Biol.", - "journal_page": "498-508", - "journal_volume": "233", - "pdb_id": "2fal", - "status": "REL", - "title": "X-RAY CRYSTAL STRUCTURE OF FERRIC APLYSIA LIMACINA MYOGLOBIN IN DIFFERENT LIGANDED STATES" - } - ], - "numFound": 1, - "start": 0 - }, - "responseHeader": { - "QTime": 0, - "params": { - "q": "2fal", - "wt": "json" - }, - "status": 0 - } -} -""" - - response = mock.Mock(text=json) - results = pdbe.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], - 'X-RAY CRYSTAL STRUCTURE OF FERRIC APLYSIA LIMACINA MYOGLOBIN IN DIFFERENT LIGANDED STATES') - self.assertEqual(results[0]['url'], pdbe.pdbe_entry_url.format(pdb_id='2fal')) - self.assertEqual(results[0]['img_src'], pdbe.pdbe_preview_url.format(pdb_id='2fal')) - self.assertTrue('Conti E' in results[0]['content']) - self.assertTrue('X-ray crystal structure of ferric Aplysia limacina myoglobin in different liganded states.' in - results[0]['content']) - self.assertTrue('1993' in results[0]['content']) - - # Testing proper handling of PDB entries marked as obsolete - json = """ -{ - "response": { - "docs": [ - { - "citation_title": "Obsolete entry test", - "citation_year": 2016, - "entry_author_list": ["Doe J"], - "journal": "J. Obs.", - "journal_page": "1-2", - "journal_volume": "1", - "pdb_id": "xxxx", - "status": "OBS", - "title": "OBSOLETE ENTRY TEST", - "superseded_by": "yyyy" - } - ], - "numFound": 1, - "start": 0 - }, - "responseHeader": { - "QTime": 0, - "params": { - "q": "xxxx", - "wt": "json" - }, - "status": 0 - } -} -""" - response = mock.Mock(text=json) - results = pdbe.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'OBSOLETE ENTRY TEST (OBSOLETE)') - self.assertTrue(results[0]['content'].startswith('This entry has been superseded by')) diff --git a/tests/unit/engines/test_photon.py b/tests/unit/engines/test_photon.py deleted file mode 100644 index 73449788..00000000 --- a/tests/unit/engines/test_photon.py +++ /dev/null @@ -1,166 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import photon -from searx.testing import SearxTestCase - - -class TestPhotonEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'all' - params = photon.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('photon.komoot.de', params['url']) - - dicto['language'] = 'all' - params = photon.request(query, dicto) - self.assertNotIn('lang', params['url']) - - dicto['language'] = 'al' - params = photon.request(query, dicto) - self.assertNotIn('lang', params['url']) - - dicto['language'] = 'fr' - params = photon.request(query, dicto) - self.assertIn('fr', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, photon.response, None) - self.assertRaises(AttributeError, photon.response, []) - self.assertRaises(AttributeError, photon.response, '') - self.assertRaises(AttributeError, photon.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(photon.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(photon.response(response), []) - - json = """ - { - "features": [ - { - "properties": { - "osm_key": "waterway", - "extent": [ - -1.4508446, - 51.1614997, - -1.4408036, - 51.1525635 - ], - "name": "This is the title", - "state": "England", - "osm_id": 114823817, - "osm_type": "W", - "osm_value": "river", - "city": "Test Valley", - "country": "United Kingdom" - }, - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -1.4458571, - 51.1576661 - ] - } - }, - { - "properties": { - "osm_key": "place", - "street": "Rue", - "state": "Ile-de-France", - "osm_id": 129211377, - "osm_type": "R", - "housenumber": "10", - "postcode": "75011", - "osm_value": "house", - "city": "Paris", - "country": "France" - }, - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 2.3725025, - 48.8654481 - ] - } - }, - { - "properties": { - "osm_key": "amenity", - "street": "Allée", - "name": "Bibliothèque", - "state": "Ile-de-France", - "osm_id": 1028573132, - "osm_type": "N", - "postcode": "75001", - "osm_value": "library", - "city": "Paris", - "country": "France" - }, - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 2.3445634, - 48.862494 - ] - } - }, - { - "properties": { - "osm_key": "amenity", - "osm_id": 1028573132, - "osm_type": "Y", - "postcode": "75001", - "osm_value": "library", - "city": "Paris", - "country": "France" - }, - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 2.3445634, - 48.862494 - ] - } - }, - { - } - ], - "type": "FeatureCollection" - } - """ - response = mock.Mock(text=json) - results = photon.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['content'], '') - self.assertEqual(results[0]['longitude'], -1.4458571) - self.assertEqual(results[0]['latitude'], 51.1576661) - self.assertIn(-1.4508446, results[0]['boundingbox']) - self.assertIn(51.1614997, results[0]['boundingbox']) - self.assertIn(-1.4408036, results[0]['boundingbox']) - self.assertIn(51.1525635, results[0]['boundingbox']) - self.assertIn('type', results[0]['geojson']) - self.assertEqual(results[0]['geojson']['type'], 'Point') - self.assertEqual(results[0]['address'], None) - self.assertEqual(results[0]['osm']['type'], 'way') - self.assertEqual(results[0]['osm']['id'], 114823817) - self.assertEqual(results[0]['url'], 'https://openstreetmap.org/way/114823817') - self.assertEqual(results[1]['osm']['type'], 'relation') - self.assertEqual(results[2]['address']['name'], u'Bibliothèque') - self.assertEqual(results[2]['address']['house_number'], None) - self.assertEqual(results[2]['address']['locality'], 'Paris') - self.assertEqual(results[2]['address']['postcode'], '75001') - self.assertEqual(results[2]['address']['country'], 'France') - self.assertEqual(results[2]['osm']['type'], 'node') diff --git a/tests/unit/engines/test_piratebay.py b/tests/unit/engines/test_piratebay.py deleted file mode 100644 index 89a78e79..00000000 --- a/tests/unit/engines/test_piratebay.py +++ /dev/null @@ -1,166 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import piratebay -from searx.testing import SearxTestCase - - -class TestPiratebayEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['category'] = 'Toto' - params = piratebay.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('piratebay.org', params['url']) - self.assertIn('0', params['url']) - - dicto['category'] = 'music' - params = piratebay.request(query, dicto) - self.assertIn('100', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, piratebay.response, None) - self.assertRaises(AttributeError, piratebay.response, []) - self.assertRaises(AttributeError, piratebay.response, '') - self.assertRaises(AttributeError, piratebay.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(piratebay.response(response), []) - - html = """ - - - - - - - - - - - - - - - -
    -
    - Anime
    - (Anime) -
    -
    - - - Magnet link - - - Download - - - VIP - - - - This is the content and should be OK - - 13334
    -
    - Anime
    - (Anime) -
    -
    - - - Magnet link - - - VIP - - - - This is the content and should be OK - - 13334
    - """ - response = mock.Mock(text=html) - results = piratebay.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://thepiratebay.org/this.is.the.link') - self.assertEqual(results[0]['content'], 'This is the content and should be OK') - self.assertEqual(results[0]['seed'], 13) - self.assertEqual(results[0]['leech'], 334) - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:MAGNETLINK') - self.assertEqual(results[0]['torrentfile'], 'http://torcache.net/torrent/TORRENTFILE.torrent') - - self.assertEqual(results[1]['torrentfile'], None) - - html = """ - - - - - - - - - -
    -
    - Anime
    - (Anime) -
    -
    - - - Magnet link - - - Download - - - VIP - - - - This is the content and should be OK - - sd
    - """ - response = mock.Mock(text=html) - results = piratebay.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://thepiratebay.org/this.is.the.link') - self.assertEqual(results[0]['content'], 'This is the content and should be OK') - self.assertEqual(results[0]['seed'], 0) - self.assertEqual(results[0]['leech'], 0) - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:MAGNETLINK') - self.assertEqual(results[0]['torrentfile'], 'http://torcache.net/torrent/TORRENTFILE.torrent') - - html = """ - -
    - """ - response = mock.Mock(text=html) - results = piratebay.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_qwant.py b/tests/unit/engines/test_qwant.py deleted file mode 100644 index 6611264f..00000000 --- a/tests/unit/engines/test_qwant.py +++ /dev/null @@ -1,339 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import qwant -from searx.testing import SearxTestCase - - -class TestQwantEngine(SearxTestCase): - - def test_request(self): - qwant.supported_languages = ['en-US', 'fr-CA', 'fr-FR'] - qwant.language_aliases = {} - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['language'] = 'fr-FR' - qwant.categories = [''] - params = qwant.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('web', params['url']) - self.assertIn('qwant.com', params['url']) - self.assertIn('fr_fr', params['url']) - - dicto['language'] = 'all' - qwant.categories = ['news'] - params = qwant.request(query, dicto) - self.assertFalse('fr' in params['url']) - self.assertIn('news', params['url']) - - dicto['language'] = 'fr' - params = qwant.request(query, dicto) - self.assertIn('fr_fr', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, qwant.response, None) - self.assertRaises(AttributeError, qwant.response, []) - self.assertRaises(AttributeError, qwant.response, '') - self.assertRaises(AttributeError, qwant.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(qwant.response(response), []) - - response = mock.Mock(text='{"data": {}}') - self.assertEqual(qwant.response(response), []) - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "items": [ - { - "title": "Title", - "score": 9999, - "url": "http://www.url.xyz", - "source": "...", - "desc": "Description", - "date": "", - "_id": "db0aadd62c2a8565567ffc382f5c61fa", - "favicon": "https://s.qwant.com/fav.ico" - } - ], - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - qwant.categories = ['general'] - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://www.url.xyz') - self.assertEqual(results[0]['content'], 'Description') - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "items": [ - { - "title": "Title", - "score": 9999, - "url": "http://www.url.xyz", - "source": "...", - "media": "http://image.jpg", - "desc": "", - "thumbnail": "http://thumbnail.jpg", - "date": "", - "_id": "db0aadd62c2a8565567ffc382f5c61fa", - "favicon": "https://s.qwant.com/fav.ico" - } - ], - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - qwant.categories = ['images'] - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://www.url.xyz') - self.assertEqual(results[0]['content'], '') - self.assertEqual(results[0]['thumbnail_src'], 'http://thumbnail.jpg') - self.assertEqual(results[0]['img_src'], 'http://image.jpg') - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "items": [ - { - "title": "Title", - "score": 9999, - "url": "http://www.url.xyz", - "source": "...", - "desc": "Description", - "date": 1433260920, - "_id": "db0aadd62c2a8565567ffc382f5c61fa", - "favicon": "https://s.qwant.com/fav.ico" - } - ], - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - qwant.categories = ['news'] - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://www.url.xyz') - self.assertEqual(results[0]['content'], 'Description') - self.assertIn('publishedDate', results[0]) - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "items": [ - { - "title": "Title", - "score": 9999, - "url": "http://www.url.xyz", - "source": "...", - "desc": "Description", - "date": 1433260920, - "_id": "db0aadd62c2a8565567ffc382f5c61fa", - "favicon": "https://s.qwant.com/fav.ico" - } - ], - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - qwant.categories = ['social media'] - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'http://www.url.xyz') - self.assertEqual(results[0]['content'], 'Description') - self.assertIn('publishedDate', results[0]) - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "items": [ - { - "title": "Title", - "score": 9999, - "url": "http://www.url.xyz", - "source": "...", - "desc": "Description", - "date": 1433260920, - "_id": "db0aadd62c2a8565567ffc382f5c61fa", - "favicon": "https://s.qwant.com/fav.ico" - } - ], - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - qwant.categories = [''] - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "result": { - "filters": [] - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { - "status": "success", - "data": { - "query": { - "locale": "en_us", - "query": "Test", - "offset": 10 - }, - "cache": { - "key": "e66aa864c00147a0e3a16ff7a5efafde", - "created": 1433092754, - "expiration": 259200, - "status": "miss", - "age": 0 - } - } - } - """ - response = mock.Mock(text=json) - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { - "status": "success" - } - """ - response = mock.Mock(text=json) - results = qwant.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - def test_fetch_supported_languages(self): - page = """some code... - config_set('project.regionalisation', {"continents":{},"languages": - {"de":{"code":"de","name":"Deutsch","countries":["DE","CH","AT"]}, - "it":{"code":"it","name":"Italiano","countries":["IT","CH"]}}}); - some more code...""" - response = mock.Mock(text=page) - languages = qwant._fetch_supported_languages(response) - self.assertEqual(type(languages), list) - self.assertEqual(len(languages), 5) - self.assertIn('de-DE', languages) - self.assertIn('de-CH', languages) - self.assertIn('de-AT', languages) - self.assertIn('it-IT', languages) - self.assertIn('it-CH', languages) diff --git a/tests/unit/engines/test_reddit.py b/tests/unit/engines/test_reddit.py deleted file mode 100644 index 9c94f4e2..00000000 --- a/tests/unit/engines/test_reddit.py +++ /dev/null @@ -1,71 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import reddit -from searx.testing import SearxTestCase -from datetime import datetime - - -class TestRedditEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - params = reddit.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('reddit.com' in params['url']) - - def test_response(self): - resp = mock.Mock(text='{}') - self.assertEqual(reddit.response(resp), []) - - json = """ - { - "kind": "Listing", - "data": { - "children": [{ - "data": { - "url": "http://google2.com/", - "permalink": "http://google.com/", - "title": "Title number one", - "selftext": "Sample", - "created_utc": 1401219957.0, - "thumbnail": "http://image.com/picture.jpg" - } - }, { - "data": { - "url": "https://reddit2.com/", - "permalink": "https://reddit.com/", - "title": "Title number two", - "selftext": "Dominus vobiscum", - "created_utc": 1438792533.0, - "thumbnail": "self" - } - }] - } - } - """ - - resp = mock.Mock(text=json) - results = reddit.response(resp) - - self.assertEqual(len(results), 2) - self.assertEqual(type(results), list) - - # testing first result (picture) - r = results[0] - self.assertEqual(r['url'], 'http://google.com/') - self.assertEqual(r['title'], 'Title number one') - self.assertEqual(r['template'], 'images.html') - self.assertEqual(r['img_src'], 'http://google2.com/') - self.assertEqual(r['thumbnail_src'], 'http://image.com/picture.jpg') - - # testing second result (self-post) - r = results[1] - self.assertEqual(r['url'], 'https://reddit.com/') - self.assertEqual(r['title'], 'Title number two') - self.assertEqual(r['content'], 'Dominus vobiscum') - created = datetime.fromtimestamp(1438792533.0) - self.assertEqual(r['publishedDate'], created) - self.assertTrue('thumbnail_src' not in r) - self.assertTrue('img_src' not in r) diff --git a/tests/unit/engines/test_scanr_structures.py b/tests/unit/engines/test_scanr_structures.py deleted file mode 100644 index a7b9e918..00000000 --- a/tests/unit/engines/test_scanr_structures.py +++ /dev/null @@ -1,175 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import scanr_structures -from searx.testing import SearxTestCase - - -class TestScanrStructuresEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = scanr_structures.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['data']) - self.assertIn('scanr.enseignementsup-recherche.gouv.fr', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, scanr_structures.response, None) - self.assertRaises(AttributeError, scanr_structures.response, []) - self.assertRaises(AttributeError, scanr_structures.response, '') - self.assertRaises(AttributeError, scanr_structures.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(scanr_structures.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(scanr_structures.response(response), []) - - json = u""" - { - "request": - { - "query":"test_query", - "page":1, - "pageSize":20, - "sortOrder":"RELEVANCY", - "sortDirection":"ASC", - "searchField":"ALL", - "from":0 - }, - "total":2471, - "results":[ - { - "id":"200711886U", - "label":"Laboratoire d'Informatique de Grenoble", - "kind":"RNSR", - "publicEntity":true, - "address":{"city":"Grenoble","departement":"38"}, - "logo":"/static/logos/200711886U.png", - "acronym":"LIG", - "type":{"code":"UR","label":"Unit\xe9 de recherche"}, - "level":2, - "institutions":[ - { - "id":"193819125", - "label":"Grenoble INP", - "acronym":"IPG", - "code":"UMR 5217" - }, - { - "id":"130021397", - "label":"Universit\xe9 de Grenoble Alpes", - "acronym":"UGA", - "code":"UMR 5217" - }, - { - "id":"180089013", - "label":"Centre national de la recherche scientifique", - "acronym":"CNRS", - "code":"UMR 5217" - }, - { - "id":"180089047", - "label":"Institut national de recherche en informatique et en automatique", - "acronym":"Inria", - "code":"UMR 5217" - } - ], - "highlights":[ - { - "type":"projects", - "value":"linguicielles d\xe9velopp\xe9s jusqu'ici par le GETALP\ - du LIG en tant que prototypes op\xe9rationnels.\ -\\r\\nDans le contexte" - }, - { - "type":"acronym", - "value":"LIG" - }, - { - "type":"websiteContents", - "value":"S\xe9lection\\nListe structures\\nD\xe9tail\\n\ - Accueil\\n200711886U : LIG\ - Laboratoire d'Informatique de Grenoble Unit\xe9 de recherche"}, - { - "type":"publications", - "value":"de noms. Nous avons d'abord d\xe9velopp\xe9 LOOV \ - (pour Lig Overlaid OCR in Vid\xe9o), \ - un outil d'extraction des" - } - ] - }, - { - "id":"199511665F", - "label":"Laboratoire Bordelais de Recherche en Informatique", - "kind":"RNSR", - "publicEntity":true, - "address":{"city":"Talence","departement":"33"}, - "logo":"/static/logos/199511665F.png", - "acronym":"LaBRI", - "type":{"code":"UR","label":"Unit\xe9 de recherche"}, - "level":2, - "institutions":[ - { - "id":"130006356", - "label":"Institut polytechnique de Bordeaux", - "acronym":"IPB", - "code":"UMR 5800" - }, - { - "id":"130018351", - "label":"Universit\xe9 de Bordeaux", - "acronym":null, - "code":"UMR 5800" - }, - { - "id":"180089013", - "label":"Centre national de la recherche scientifique", - "acronym":"CNRS", - "code":"UMR 5800" - }, - { - "id":"180089047", - "label":"Institut national de recherche en informatique et en automatique", - "acronym":"Inria", - "code":"UMR 5800" - } - ], - "highlights":[ - { - "type":"websiteContents", - "value":"Samia Kerdjoudj\\n2016-07-05\\nDouble-exponential\ - and triple-exponential bounds for\ - choosability problems parameterized" - }, - { - "type":"publications", - "value":"de cam\xe9ras install\xe9es dans les lieux publiques \ - a tripl\xe9 en 2009, passant de 20 000 \ - \xe0 60 000. Malgr\xe9 le" - } - ] - } - ] - } - """ - response = mock.Mock(text=json) - results = scanr_structures.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], u"Laboratoire d'Informatique de Grenoble") - self.assertEqual(results[0]['url'], 'https://scanr.enseignementsup-recherche.gouv.fr/structure/200711886U') - self.assertEqual(results[0]['content'], - u"linguicielles d\xe9velopp\xe9s jusqu'ici par le GETALP " - u"du LIG en tant que prototypes " - u"op\xe9rationnels. Dans le contexte") - self.assertEqual(results[1]['img_src'], - 'https://scanr.enseignementsup-recherche.gouv.fr//static/logos/199511665F.png') - self.assertEqual(results[1]['content'], - "Samia Kerdjoudj 2016-07-05 Double-exponential and" - " triple-exponential bounds for " - "choosability problems parameterized") - self.assertEqual(results[1]['url'], 'https://scanr.enseignementsup-recherche.gouv.fr/structure/199511665F') - self.assertEqual(results[1]['title'], u"Laboratoire Bordelais de Recherche en Informatique") diff --git a/tests/unit/engines/test_searchcode_code.py b/tests/unit/engines/test_searchcode_code.py deleted file mode 100644 index 955aea11..00000000 --- a/tests/unit/engines/test_searchcode_code.py +++ /dev/null @@ -1,75 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import searchcode_code -from searx.testing import SearxTestCase - - -class TestSearchcodeCodeEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = searchcode_code.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('searchcode.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, searchcode_code.response, None) - self.assertRaises(AttributeError, searchcode_code.response, []) - self.assertRaises(AttributeError, searchcode_code.response, '') - self.assertRaises(AttributeError, searchcode_code.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(searchcode_code.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(searchcode_code.response(response), []) - - json = """ - { - "matchterm": "test", - "previouspage": null, - "searchterm": "test", - "query": "test", - "total": 1000, - "page": 0, - "nextpage": 1, - "results": [ - { - "repo": "https://repo", - "linescount": 1044, - "location": "/tests", - "name": "Name", - "url": "https://url", - "md5hash": "ecac6e479edd2b9406c9e08603cec655", - "lines": { - "1": "// Test 011", - "2": "// Source: " - }, - "id": 51223527, - "filename": "File.CPP" - } - ] - } - """ - response = mock.Mock(text=json) - results = searchcode_code.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Name - File.CPP') - self.assertEqual(results[0]['url'], 'https://url') - self.assertEqual(results[0]['repository'], 'https://repo') - self.assertEqual(results[0]['code_language'], 'cpp') - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.searchcode_code.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = searchcode_code.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_searchcode_doc.py b/tests/unit/engines/test_searchcode_doc.py deleted file mode 100644 index d02bb7a4..00000000 --- a/tests/unit/engines/test_searchcode_doc.py +++ /dev/null @@ -1,70 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import searchcode_doc -from searx.testing import SearxTestCase - - -class TestSearchcodeDocEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = searchcode_doc.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('searchcode.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, searchcode_doc.response, None) - self.assertRaises(AttributeError, searchcode_doc.response, []) - self.assertRaises(AttributeError, searchcode_doc.response, '') - self.assertRaises(AttributeError, searchcode_doc.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(searchcode_doc.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(searchcode_doc.response(response), []) - - json = """ - { - "matchterm": "test", - "previouspage": null, - "searchterm": "test", - "query": "test", - "total": 60, - "page": 0, - "nextpage": 1, - "results": [ - { - "synopsis": "Synopsis", - "displayname": null, - "name": "test", - "url": "http://url", - "type": "Type", - "icon": null, - "namespace": "Namespace", - "description": "Description" - } - ] - } - """ - response = mock.Mock(text=json) - results = searchcode_doc.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], '[Type] Namespace test') - self.assertEqual(results[0]['url'], 'http://url') - self.assertIn('Description', results[0]['content']) - - json = r""" - {"toto":[ - {"id":200,"name":"Artist Name", - "link":"http:\/\/www.searchcode_doc.com\/artist\/1217","type":"artist"} - ]} - """ - response = mock.Mock(text=json) - results = searchcode_doc.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_seedpeer.py b/tests/unit/engines/test_seedpeer.py deleted file mode 100644 index 2057c1cb..00000000 --- a/tests/unit/engines/test_seedpeer.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import seedpeer -from searx.testing import SearxTestCase - - -class TestBtdiggEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = seedpeer.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('seedpeer', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, seedpeer.response, None) - self.assertRaises(AttributeError, seedpeer.response, []) - self.assertRaises(AttributeError, seedpeer.response, '') - self.assertRaises(AttributeError, seedpeer.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(seedpeer.response(response), []) - - html = u""" - - - - - - - -
    - - - - - - - - - - - - -
    Title1 year1 KB1020
    - - - """ - response = mock.Mock(text=html) - results = seedpeer.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'https://seedpeer.me/link') - self.assertEqual(results[0]['seed'], 10) - self.assertEqual(results[0]['leech'], 20) - self.assertEqual(results[0]['filesize'], 1024) - self.assertEqual(results[0]['torrentfile'], 'https://seedpeer.me/torrent/abc123') - self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:abc123') diff --git a/tests/unit/engines/test_soundcloud.py b/tests/unit/engines/test_soundcloud.py deleted file mode 100644 index 3077d3b4..00000000 --- a/tests/unit/engines/test_soundcloud.py +++ /dev/null @@ -1,192 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import soundcloud -from searx.testing import SearxTestCase -from searx.url_utils import quote_plus - - -class TestSoundcloudEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - params = soundcloud.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('soundcloud.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, soundcloud.response, None) - self.assertRaises(AttributeError, soundcloud.response, []) - self.assertRaises(AttributeError, soundcloud.response, '') - self.assertRaises(AttributeError, soundcloud.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(soundcloud.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(soundcloud.response(response), []) - - json = """ - { - "collection": [ - { - "kind": "track", - "id": 159723640, - "created_at": "2014/07/22 00:51:21 +0000", - "user_id": 2976616, - "duration": 303780, - "commentable": true, - "state": "finished", - "original_content_size": 13236349, - "last_modified": "2015/01/31 15:14:50 +0000", - "sharing": "public", - "tag_list": "seekae flume", - "permalink": "seekae-test-recognise-flume-re-work", - "streamable": true, - "embeddable_by": "all", - "downloadable": true, - "purchase_url": "http://www.facebook.com/seekaemusic", - "label_id": null, - "purchase_title": "Seekae", - "genre": "freedownload", - "title": "This is the title", - "description": "This is the content", - "label_name": "Future Classic", - "release": "", - "track_type": "remix", - "key_signature": "", - "isrc": "", - "video_url": null, - "bpm": null, - "release_year": 2014, - "release_month": 7, - "release_day": 22, - "original_format": "mp3", - "license": "all-rights-reserved", - "uri": "https://api.soundcloud.com/tracks/159723640", - "user": { - "id": 2976616, - "kind": "user", - "permalink": "flume", - "username": "Flume", - "last_modified": "2014/11/24 19:21:29 +0000", - "uri": "https://api.soundcloud.com/users/2976616", - "permalink_url": "http://soundcloud.com/flume", - "avatar_url": "https://i1.sndcdn.com/avatars-000044475439-4zi7ii-large.jpg" - }, - "permalink_url": "http://soundcloud.com/this.is.the.url", - "artwork_url": "https://i1.sndcdn.com/artworks-000085857162-xdxy5c-large.jpg", - "waveform_url": "https://w1.sndcdn.com/DWrL1lAN8BkP_m.png", - "stream_url": "https://api.soundcloud.com/tracks/159723640/stream", - "download_url": "https://api.soundcloud.com/tracks/159723640/download", - "playback_count": 2190687, - "download_count": 54856, - "favoritings_count": 49061, - "comment_count": 826, - "likes_count": 49061, - "reposts_count": 15910, - "attachments_uri": "https://api.soundcloud.com/tracks/159723640/attachments", - "policy": "ALLOW" - } - ], - "total_results": 375750, - "next_href": "https://api.soundcloud.com/search?&q=test", - "tx_id": "" - } - """ - response = mock.Mock(text=json) - results = soundcloud.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'http://soundcloud.com/this.is.the.url') - self.assertEqual(results[0]['content'], 'This is the content') - self.assertIn(quote_plus('https://api.soundcloud.com/tracks/159723640'), results[0]['embedded']) - - json = """ - { - "collection": [ - { - "kind": "user", - "id": 159723640, - "created_at": "2014/07/22 00:51:21 +0000", - "user_id": 2976616, - "duration": 303780, - "commentable": true, - "state": "finished", - "original_content_size": 13236349, - "last_modified": "2015/01/31 15:14:50 +0000", - "sharing": "public", - "tag_list": "seekae flume", - "permalink": "seekae-test-recognise-flume-re-work", - "streamable": true, - "embeddable_by": "all", - "downloadable": true, - "purchase_url": "http://www.facebook.com/seekaemusic", - "label_id": null, - "purchase_title": "Seekae", - "genre": "freedownload", - "title": "This is the title", - "description": "This is the content", - "label_name": "Future Classic", - "release": "", - "track_type": "remix", - "key_signature": "", - "isrc": "", - "video_url": null, - "bpm": null, - "release_year": 2014, - "release_month": 7, - "release_day": 22, - "original_format": "mp3", - "license": "all-rights-reserved", - "uri": "https://api.soundcloud.com/tracks/159723640", - "user": { - "id": 2976616, - "kind": "user", - "permalink": "flume", - "username": "Flume", - "last_modified": "2014/11/24 19:21:29 +0000", - "uri": "https://api.soundcloud.com/users/2976616", - "permalink_url": "http://soundcloud.com/flume", - "avatar_url": "https://i1.sndcdn.com/avatars-000044475439-4zi7ii-large.jpg" - }, - "permalink_url": "http://soundcloud.com/this.is.the.url", - "artwork_url": "https://i1.sndcdn.com/artworks-000085857162-xdxy5c-large.jpg", - "waveform_url": "https://w1.sndcdn.com/DWrL1lAN8BkP_m.png", - "stream_url": "https://api.soundcloud.com/tracks/159723640/stream", - "download_url": "https://api.soundcloud.com/tracks/159723640/download", - "playback_count": 2190687, - "download_count": 54856, - "favoritings_count": 49061, - "comment_count": 826, - "likes_count": 49061, - "reposts_count": 15910, - "attachments_uri": "https://api.soundcloud.com/tracks/159723640/attachments", - "policy": "ALLOW" - } - ], - "total_results": 375750, - "next_href": "https://api.soundcloud.com/search?&q=test", - "tx_id": "" - } - """ - response = mock.Mock(text=json) - results = soundcloud.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - { - "collection": [], - "total_results": 375750, - "next_href": "https://api.soundcloud.com/search?&q=test", - "tx_id": "" - } - """ - response = mock.Mock(text=json) - results = soundcloud.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_spotify.py b/tests/unit/engines/test_spotify.py deleted file mode 100644 index e37c344d..00000000 --- a/tests/unit/engines/test_spotify.py +++ /dev/null @@ -1,124 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import spotify -from searx.testing import SearxTestCase - - -class TestSpotifyEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = spotify.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('spotify.com', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, spotify.response, None) - self.assertRaises(AttributeError, spotify.response, []) - self.assertRaises(AttributeError, spotify.response, '') - self.assertRaises(AttributeError, spotify.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(spotify.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(spotify.response(response), []) - - json = """ - { - "tracks": { - "href": "https://api.spotify.com/v1/search?query=nosfell&offset=0&limit=20&type=track", - "items": [ - { - "album": { - "album_type": "album", - "external_urls": { - "spotify": "https://open.spotify.com/album/5c9ap1PBkSGLxT3J73toxA" - }, - "href": "https://api.spotify.com/v1/albums/5c9ap1PBkSGLxT3J73toxA", - "id": "5c9ap1PBkSGLxT3J73toxA", - "name": "Album Title", - "type": "album", - "uri": "spotify:album:5c9ap1PBkSGLxT3J73toxA" - }, - "artists": [ - { - "external_urls": { - "spotify": "https://open.spotify.com/artist/0bMc6b75FfZEpQHG1jifKu" - }, - "href": "https://api.spotify.com/v1/artists/0bMc6b75FfZEpQHG1jifKu", - "id": "0bMc6b75FfZEpQHG1jifKu", - "name": "Artist Name", - "type": "artist", - "uri": "spotify:artist:0bMc6b75FfZEpQHG1jifKu" - } - ], - "disc_number": 1, - "duration_ms": 202386, - "explicit": false, - "external_ids": { - "isrc": "FRV640600067" - }, - "external_urls": { - "spotify": "https://open.spotify.com/track/2GzvFiedqW8hgqUpWcASZa" - }, - "href": "https://api.spotify.com/v1/tracks/2GzvFiedqW8hgqUpWcASZa", - "id": "1000", - "is_playable": true, - "name": "Title of track", - "popularity": 6, - "preview_url": "https://p.scdn.co/mp3-preview/7b8ecda580965a066b768c2647f877e43f7b1a0a", - "track_number": 3, - "type": "track", - "uri": "spotify:track:2GzvFiedqW8hgqUpWcASZa" - } - ], - "limit": 20, - "next": "https://api.spotify.com/v1/search?query=nosfell&offset=20&limit=20&type=track", - "offset": 0, - "previous": null, - "total": 107 - } - } - """ - response = mock.Mock(text=json) - results = spotify.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title of track') - self.assertEqual(results[0]['url'], 'https://open.spotify.com/track/2GzvFiedqW8hgqUpWcASZa') - self.assertEqual(results[0]['content'], 'Artist Name - Album Title - Title of track') - self.assertIn('1000', results[0]['embedded']) - - json = """ - { - "tracks": { - "href": "https://api.spotify.com/v1/search?query=nosfell&offset=0&limit=20&type=track", - "items": [ - { - "href": "https://api.spotify.com/v1/tracks/2GzvFiedqW8hgqUpWcASZa", - "id": "1000", - "is_playable": true, - "name": "Title of track", - "popularity": 6, - "preview_url": "https://p.scdn.co/mp3-preview/7b8ecda580965a066b768c2647f877e43f7b1a0a", - "track_number": 3, - "type": "album", - "uri": "spotify:track:2GzvFiedqW8hgqUpWcASZa" - } - ], - "limit": 20, - "next": "https://api.spotify.com/v1/search?query=nosfell&offset=20&limit=20&type=track", - "offset": 0, - "previous": null, - "total": 107 - } - } - """ - response = mock.Mock(text=json) - results = spotify.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_stackoverflow.py b/tests/unit/engines/test_stackoverflow.py deleted file mode 100644 index 18a1ff4b..00000000 --- a/tests/unit/engines/test_stackoverflow.py +++ /dev/null @@ -1,106 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import stackoverflow -from searx.testing import SearxTestCase - - -class TestStackoverflowEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = stackoverflow.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('stackoverflow.com' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, stackoverflow.response, None) - self.assertRaises(AttributeError, stackoverflow.response, []) - self.assertRaises(AttributeError, stackoverflow.response, '') - self.assertRaises(AttributeError, stackoverflow.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(stackoverflow.response(response), []) - - html = """ -

    -
    -
    -
    -
    -
    - 2583 -
    votes
    -
    -
    -
    -
    -
    - -
    - This is the content -
    -
    -
    -
    - answered nov 23 '09 by - hallski -
    -
    -
    - """ - response = mock.Mock(text=html) - results = stackoverflow.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://stackoverflow.com/questions/this.is.the.url') - self.assertEqual(results[0]['content'], 'This is the content') - - html = """ -
    -
    -
    -
    -
    - 2583 -
    votes
    -
    -
    -
    -
    -
    - -
    - This is the content -
    -
    -
    -
    - answered nov 23 '09 by - hallski -
    -
    - """ - response = mock.Mock(text=html) - results = stackoverflow.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_startpage.py b/tests/unit/engines/test_startpage.py deleted file mode 100644 index ac445473..00000000 --- a/tests/unit/engines/test_startpage.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import startpage -from searx.testing import SearxTestCase - - -class TestStartpageEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr_FR' - params = startpage.request(query, dicto) - self.assertIn('url', params) - self.assertIn('startpage.com', params['url']) - self.assertIn('data', params) - self.assertIn('query', params['data']) - self.assertIn(query, params['data']['query']) - - dicto['language'] = 'all' - params = startpage.request(query, dicto) - - def test_response(self): - self.assertRaises(AttributeError, startpage.response, None) - self.assertRaises(AttributeError, startpage.response, []) - self.assertRaises(AttributeError, startpage.response, '') - self.assertRaises(AttributeError, startpage.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(startpage.response(response), []) - - html = """ - - """ # noqa - response = mock.Mock(text=html.encode('utf-8')) - results = startpage.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This should be the title') - self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/') - self.assertEqual(results[0]['content'], 'This should be the content.') diff --git a/tests/unit/engines/test_tokyotoshokan.py b/tests/unit/engines/test_tokyotoshokan.py deleted file mode 100644 index b5c6fad1..00000000 --- a/tests/unit/engines/test_tokyotoshokan.py +++ /dev/null @@ -1,110 +0,0 @@ -import mock -from collections import defaultdict -from searx.engines import tokyotoshokan -from searx.testing import SearxTestCase -from datetime import datetime - - -class TestTokyotoshokanEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - params = tokyotoshokan.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('tokyotosho.info' in params['url']) - - def test_response(self): - resp = mock.Mock(text='') - self.assertEqual(tokyotoshokan.response(resp), []) - - html = """ - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - Koyomimonogatari - - Details
    - Authorized: Yes - Submitter: Ohys | - Size: 10.5MB | - Date: 2016-03-26 16:41 UTC | - Comment: sample comment - - S: 53 - L: 18 - C: 0 - ID: 975700 -
    - - - - Owarimonogatari - - Details
    - Submitter: Ohys | - Size: 932.84EB | - Date: QWERTY-03-26 16:41 UTC - - S: 0 -
    - """ - - resp = mock.Mock(text=html) - results = tokyotoshokan.response(resp) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - - # testing the first result, which has correct format - # and should have all information fields filled - r = results[0] - self.assertEqual(r['url'], 'http://www.nyaa.se/f') - self.assertEqual(r['title'], 'Koyomimonogatari') - self.assertEqual(r['magnetlink'], 'magnet:?xt=urn:btih:4c19eb46b5113685fbd2288ed2531b0b') - self.assertEqual(r['filesize'], int(1024 * 1024 * 10.5)) - self.assertEqual(r['publishedDate'], datetime(2016, 3, 26, 16, 41)) - self.assertEqual(r['content'], 'Comment: sample comment') - self.assertEqual(r['seed'], 53) - self.assertEqual(r['leech'], 18) - - # testing the second result, which does not include magnet link, - # seed & leech info, and has incorrect size & creation date - r = results[1] - self.assertEqual(r['url'], 'http://google.com/q') - self.assertEqual(r['title'], 'Owarimonogatari') - - self.assertFalse('magnetlink' in r) - self.assertFalse('filesize' in r) - self.assertFalse('content' in r) - self.assertFalse('publishedDate' in r) - self.assertFalse('seed' in r) - self.assertFalse('leech' in r) diff --git a/tests/unit/engines/test_torrentz.py b/tests/unit/engines/test_torrentz.py deleted file mode 100644 index f483bf68..00000000 --- a/tests/unit/engines/test_torrentz.py +++ /dev/null @@ -1,87 +0,0 @@ -import mock -from collections import defaultdict -from searx.engines import torrentz -from searx.testing import SearxTestCase -from datetime import datetime - - -class TestTorrentzEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dic = defaultdict(dict) - dic['pageno'] = 1 - params = torrentz.request(query, dic) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('torrentz2.eu' in params['url']) - - def test_response(self): - resp = mock.Mock(text='') - self.assertEqual(torrentz.response(resp), []) - - html = """ -
    -
    -
    - - Completely valid info - - books ebooks -
    -
    - 1 - 5 hours - 30 MB - 14 - 1 -
    -
    - -
    -
    - - Invalid hash and date and filesize - - books ebooks -
    -
    - 1 - 5 hours - 30MB - 5,555 - 1,234,567 -
    -
    -
    - """ - - resp = mock.Mock(text=html) - results = torrentz.response(resp) - - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - - # testing against the first result - r = results[0] - self.assertEqual(r['url'], 'https://torrentz2.eu/4362e08b1d80e1820fb2550b752f9f3126fe76d6') - self.assertEqual(r['title'], 'Completely valid info books ebooks') - # 22 Nov 2015 03:01:42 - self.assertEqual(r['publishedDate'], datetime.fromtimestamp(1503595924)) - self.assertEqual(r['seed'], 14) - self.assertEqual(r['leech'], 1) - self.assertEqual(r['filesize'], 30 * 1024 * 1024) - self.assertEqual(r['magnetlink'], 'magnet:?xt=urn:btih:4362e08b1d80e1820fb2550b752f9f3126fe76d6') - - # testing against the second result - r = results[1] - self.assertEqual(r['url'], 'https://torrentz2.eu/poaskdpokaspod') - self.assertEqual(r['title'], 'Invalid hash and date and filesize books ebooks') - self.assertEqual(r['seed'], 5555) - self.assertEqual(r['leech'], 1234567) - - # in the second result we have invalid hash, creation date & torrent size, - # so these tests should fail - self.assertFalse('magnetlink' in r) - self.assertFalse('filesize' in r) - self.assertFalse('publishedDate' in r) diff --git a/tests/unit/engines/test_twitter.py b/tests/unit/engines/test_twitter.py deleted file mode 100644 index b444b48e..00000000 --- a/tests/unit/engines/test_twitter.py +++ /dev/null @@ -1,502 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import twitter -from searx.testing import SearxTestCase - - -class TestTwitterEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['language'] = 'fr_FR' - params = twitter.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('twitter.com', params['url']) - self.assertIn('cookies', params) - self.assertIn('lang', params['cookies']) - self.assertIn('fr', params['cookies']['lang']) - - dicto['language'] = 'all' - params = twitter.request(query, dicto) - self.assertIn('cookies', params) - self.assertIn('lang', params['cookies']) - self.assertIn('en', params['cookies']['lang']) - - def test_response(self): - self.assertRaises(AttributeError, twitter.response, None) - self.assertRaises(AttributeError, twitter.response, []) - self.assertRaises(AttributeError, twitter.response, '') - self.assertRaises(AttributeError, twitter.response, '[]') - - response = mock.Mock(text='') - self.assertEqual(twitter.response(response), []) - - html = """ -
  • -
    -
    -
    -
    - -

    - This is the content étude à€ - - -

    -
    -
    - -
    -
    -
  • - """ - response = mock.Mock(text=html) - results = twitter.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], '@TitleName') - self.assertEqual(results[0]['url'], 'https://twitter.com/this.is.the.url') - self.assertIn(u'This is the content', results[0]['content']) - # self.assertIn(u'This is the content étude à€', results[0]['content']) - - html = """ -
  • -
    -
    -
    -
    - -

    - This is the content étude à€ - - -

    -
    -
    - -
    -
    -
  • - """ - response = mock.Mock(text=html) - results = twitter.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], '@TitleName') - self.assertEqual(results[0]['url'], 'https://twitter.com/this.is.the.url') - self.assertIn(u'This is the content', results[0]['content']) - - html = """ -
  • -
    - -
    - - this.meta.com - - - - -
    -

    - This should be the content.

    -
    -
  • - """ - response = mock.Mock(text=html) - results = twitter.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_unsplash.py b/tests/unit/engines/test_unsplash.py deleted file mode 100644 index 4501de90..00000000 --- a/tests/unit/engines/test_unsplash.py +++ /dev/null @@ -1,38 +0,0 @@ -from collections import defaultdict -import mock -from searx.testing import SearxTestCase -from searx.engines import unsplash - - -class TestUnsplashEngine(SearxTestCase): - def test_request(self): - query = 'penguin' - _dict = defaultdict(dict) - _dict['pageno'] = 1 - params = unsplash.request(query, _dict) - - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - - def test_response(self): - resp = mock.Mock(text='{}') - result = unsplash.response(resp) - self.assertEqual([], result) - - resp.text = '{"results": []}' - result = unsplash.response(resp) - self.assertEqual([], result) - - # Sourced from https://unsplash.com/napi/search/photos?query=penguin&xp=&per_page=20&page=2 - with open('./tests/unit/engines/unsplash_fixture.json') as fixture: - resp.text = fixture.read() - - result = unsplash.response(resp) - self.assertEqual(len(result), 2) - self.assertEqual(result[0]['title'], 'low angle photography of swimming penguin') - self.assertEqual(result[0]['url'], 'https://unsplash.com/photos/FY8d721UO_4') - self.assertEqual(result[0]['thumbnail_src'], 'https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&q=80\ -&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max') - self.assertEqual(result[0]['img_src'], 'https://images.unsplash.com/photo-1523557148507-1b77641c7e7c\ -?ixlib=rb-0.3.5') - self.assertEqual(result[0]['content'], '') diff --git a/tests/unit/engines/test_vimeo.py b/tests/unit/engines/test_vimeo.py deleted file mode 100644 index c86b50a1..00000000 --- a/tests/unit/engines/test_vimeo.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import vimeo -from searx.testing import SearxTestCase - - -class TestVimeoEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - params = vimeo.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('vimeo.com' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, vimeo.response, None) - self.assertRaises(AttributeError, vimeo.response, []) - self.assertRaises(AttributeError, vimeo.response, '') - self.assertRaises(AttributeError, vimeo.response, '[]') - - json = u""" -{"filtered":{"total":274641,"page":1,"per_page":18,"paging":{"next":"?sizes=590x332&page=2","previous":null,"first":"?sizes=590x332&page=1","last":"?sizes=590x332&page=15258"},"data":[{"is_staffpick":false,"is_featured":true,"type":"clip","clip":{"uri":"\\/videos\\/106557563","name":"Hot Rod Revue: The South","link":"https:\\/\\/vimeo.com\\/106557563","duration":4069,"created_time":"2014-09-19T03:38:04+00:00","privacy":{"view":"ptv"},"pictures":{"sizes":[{"width":"590","height":"332","link":"https:\\/\\/i.vimeocdn.com\\/video\\/489717884_590x332.jpg?r=pad","link_with_play_button":"https:\\/\\/i.vimeocdn.com\\/filter\\/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F489717884_590x332.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"}]},"stats":{"plays":null},"metadata":{"connections":{"comments":{"total":0},"likes":{"total":5}},"interactions":[]},"user":{"name":"Cal Thorley","link":"https:\\/\\/vimeo.com\\/calthorley","pictures":{"sizes":[{"width":30,"height":30,"link":"https:\\/\\/i.vimeocdn.com\\/portrait\\/2545308_30x30?r=pad"},{"width":75,"height":75,"link":"https:\\/\\/i.vimeocdn.com\\/portrait\\/2545308_75x75?r=pad"},{"width":100,"height":100,"link":"https:\\/\\/i.vimeocdn.com\\/portrait\\/2545308_100x100?r=pad"},{"width":300,"height":300,"link":"https:\\/\\/i.vimeocdn.com\\/portrait\\/2545308_300x300?r=pad"}]}}}}]}}; - -""" # noqa - response = mock.Mock(text=json) - results = vimeo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], u'Hot Rod Revue: The South') - self.assertEqual(results[0]['url'], 'https://vimeo.com/106557563') - self.assertEqual(results[0]['content'], '') - self.assertEqual(results[0]['thumbnail'], 'https://i.vimeocdn.com/video/489717884_590x332.jpg?r=pad') diff --git a/tests/unit/engines/test_wikidata.py b/tests/unit/engines/test_wikidata.py deleted file mode 100644 index 48be17bb..00000000 --- a/tests/unit/engines/test_wikidata.py +++ /dev/null @@ -1,514 +0,0 @@ -# -*- coding: utf-8 -*- -from lxml.html import fromstring -from lxml import etree -from collections import defaultdict -import mock -from searx.engines import wikidata -from searx.testing import SearxTestCase - - -class TestWikidataEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['language'] = 'all' - params = wikidata.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('wikidata.org', params['url']) - - dicto['language'] = 'es_ES' - params = wikidata.request(query, dicto) - self.assertIn(query, params['url']) - - # successful cases are not tested here to avoid sending additional requests - def test_response(self): - self.assertRaises(AttributeError, wikidata.response, None) - self.assertRaises(AttributeError, wikidata.response, []) - self.assertRaises(AttributeError, wikidata.response, '') - self.assertRaises(AttributeError, wikidata.response, '[]') - - wikidata.supported_languages = ['en', 'es'] - wikidata.language_aliases = {} - response = mock.Mock(content=''.encode("utf-8"), search_params={"language": "en"}) - self.assertEqual(wikidata.response(response), []) - - def test_getDetail(self): - response = {} - results = wikidata.getDetail(response, "Q123", "en", "en-US", etree.HTMLParser()) - self.assertEqual(results, []) - - title_html = '
    Test
    ' - html = """ -
    -
    -
    -
    - -
    -
    - """ - response = {"parse": {"displaytitle": title_html, "text": html}} - - results = wikidata.getDetail(response, "Q123", "en", "en-US", etree.HTMLParser()) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['url'], 'https://en.wikipedia.org/wiki/Test') - - title_html = """ -
    -
    - Test - English -
    -
    - """ - html = """ -
    -
    - Description - English -
    - -
    - -
    -
    - """ - response = {"parse": {"displaytitle": title_html, "text": html}} - - results = wikidata.getDetail(response, "Q123", "yua", "yua_MX", etree.HTMLParser()) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'Official website') - self.assertEqual(results[0]['url'], 'https://officialsite.com') - - self.assertEqual(results[1]['infobox'], 'Test') - self.assertEqual(results[1]['id'], None) - self.assertEqual(results[1]['content'], 'Description') - self.assertEqual(results[1]['attributes'], []) - self.assertEqual(results[1]['urls'][0]['title'], 'Official website') - self.assertEqual(results[1]['urls'][0]['url'], 'https://officialsite.com') - self.assertEqual(results[1]['urls'][1]['title'], 'Wikipedia (en)') - self.assertEqual(results[1]['urls'][1]['url'], 'https://en.wikipedia.org/wiki/Test') - - def test_add_image(self): - image_src = wikidata.add_image(fromstring("
    ")) - self.assertEqual(image_src, None) - - html = u""" -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - image.png -
    2,687 × 3,356; 1.22 MB -
    -
    -
    -
    -
    -
    -
    -
    - """ - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - image_src = wikidata.add_image(id_cache) - self.assertEqual(image_src, - "https://commons.wikimedia.org/wiki/Special:FilePath/image.png?width=500&height=400") - - html = u""" -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - icon.png -
    671 × 671; 18 KB
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - logo.png -
    170 × 170; 1 KB -
    -
    -
    -
    -
    -
    -
    -
    - """ - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - - image_src = wikidata.add_image(id_cache) - self.assertEqual(image_src, - "https://commons.wikimedia.org/wiki/Special:FilePath/logo.png?width=500&height=400") - - def test_add_attribute(self): - html = u""" -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    - """ - attributes = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - - wikidata.add_attribute(attributes, id_cache, "Fail") - self.assertEqual(attributes, []) - - wikidata.add_attribute(attributes, id_cache, "P27") - self.assertEqual(len(attributes), 1) - self.assertEqual(attributes[0]["label"], "Country of citizenship") - self.assertEqual(attributes[0]["value"], "United Kingdom") - - html = u""" -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - 27 January 1832 - - Gregorian - -
    -
    -
    -
    -
    -
    -
    - """ - attributes = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - wikidata.add_attribute(attributes, id_cache, "P569", date=True) - self.assertEqual(len(attributes), 1) - self.assertEqual(attributes[0]["label"], "Date of birth") - self.assertEqual(attributes[0]["value"], "27 January 1832") - - html = u""" -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    - """ - attributes = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - wikidata.add_attribute(attributes, id_cache, "P6") - self.assertEqual(len(attributes), 1) - self.assertEqual(attributes[0]["label"], "Head of government") - self.assertEqual(attributes[0]["value"], "Old Prime Minister, Actual Prime Minister") - - attributes = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - wikidata.add_attribute(attributes, id_cache, "P6", trim=True) - self.assertEqual(len(attributes), 1) - self.assertEqual(attributes[0]["value"], "Actual Prime Minister") - - def test_add_url(self): - html = u""" -
    - -
    - """ - urls = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - wikidata.add_url(urls, html_etree, id_cache, 'P856') - self.assertEquals(len(urls), 1) - self.assertIn({'title': 'Official website', 'url': 'https://searx.me/'}, urls) - urls = [] - results = [] - wikidata.add_url(urls, html_etree, id_cache, 'P856', 'custom label', results=results) - self.assertEquals(len(urls), 1) - self.assertEquals(len(results), 1) - self.assertIn({'title': 'custom label', 'url': 'https://searx.me/'}, urls) - self.assertIn({'title': 'custom label', 'url': 'https://searx.me/'}, results) - - html = u""" - - """ - urls = [] - html_etree = fromstring(html) - id_cache = wikidata.get_id_cache(html_etree) - wikidata.add_url(urls, html_etree, id_cache, 'P856') - self.assertEquals(len(urls), 2) - self.assertIn({'title': 'Official website', 'url': 'http://www.worldofwarcraft.com'}, urls) - self.assertIn({'title': 'Official website', 'url': 'http://eu.battle.net/wow/en/'}, urls) - - def test_get_imdblink(self): - html = u""" -
    -
    - -
    -
    - """ - html_etree = fromstring(html) - imdblink = wikidata.get_imdblink(html_etree, 'https://www.imdb.com/') - - html = u""" -
    -
    - -
    -
    - """ - html_etree = fromstring(html) - imdblink = wikidata.get_imdblink(html_etree, 'https://www.imdb.com/') - self.assertIn('https://www.imdb.com/name/nm4915994', imdblink) - - def test_get_geolink(self): - html = u""" -
    -
    -
    -
    - 60°N, 40°E -
    -
    -
    -
    - """ - html_etree = fromstring(html) - geolink = wikidata.get_geolink(html_etree) - self.assertIn('https://www.openstreetmap.org/', geolink) - self.assertIn('lat=60&lon=40', geolink) - - html = u""" -
    -
    -
    -
    - 34°35'59"S, 58°22'55"W -
    -
    -
    -
    - """ - html_etree = fromstring(html) - geolink = wikidata.get_geolink(html_etree) - self.assertIn('https://www.openstreetmap.org/', geolink) - self.assertIn('lat=-34.59', geolink) - self.assertIn('lon=-58.38', geolink) - - def test_get_wikilink(self): - html = """ -
    -
    - -
    -
    - -
    -
    - """ - html_etree = fromstring(html) - wikilink = wikidata.get_wikilink(html_etree, 'nowiki') - self.assertEqual(wikilink, None) - wikilink = wikidata.get_wikilink(html_etree, 'enwiki') - self.assertEqual(wikilink, 'https://en.wikipedia.org/wiki/Test') - wikilink = wikidata.get_wikilink(html_etree, 'arwiki') - self.assertEqual(wikilink, 'https://ar.wikipedia.org/wiki/Test') - wikilink = wikidata.get_wikilink(html_etree, 'enwikiquote') - self.assertEqual(wikilink, 'https://en.wikiquote.org/wiki/Test') diff --git a/tests/unit/engines/test_wikipedia.py b/tests/unit/engines/test_wikipedia.py deleted file mode 100644 index 316b12bc..00000000 --- a/tests/unit/engines/test_wikipedia.py +++ /dev/null @@ -1,263 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import wikipedia -from searx.testing import SearxTestCase - - -class TestWikipediaEngine(SearxTestCase): - - def test_request(self): - wikipedia.supported_languages = ['fr', 'en', 'no'] - wikipedia.language_aliases = {'nb': 'no'} - - query = 'test_query' - dicto = defaultdict(dict) - dicto['language'] = 'fr-FR' - params = wikipedia.request(query.encode('utf-8'), dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('test_query', params['url']) - self.assertIn('Test_Query', params['url']) - self.assertIn('fr.wikipedia.org', params['url']) - - query = u'Test_Query' - params = wikipedia.request(query.encode('utf-8'), dicto) - self.assertIn('Test_Query', params['url']) - self.assertNotIn('test_query', params['url']) - - dicto['language'] = 'nb' - params = wikipedia.request(query, dicto) - self.assertIn('no.wikipedia.org', params['url']) - dicto['language'] = 'all' - params = wikipedia.request(query, dicto) - self.assertIn('en', params['url']) - - dicto['language'] = 'xx' - params = wikipedia.request(query, dicto) - self.assertIn('en.wikipedia.org', params['url']) - - def test_response(self): - dicto = defaultdict(dict) - dicto['language'] = 'fr' - - self.assertRaises(AttributeError, wikipedia.response, None) - self.assertRaises(AttributeError, wikipedia.response, []) - self.assertRaises(AttributeError, wikipedia.response, '') - self.assertRaises(AttributeError, wikipedia.response, '[]') - - # page not found - json = """ - { - "batchcomplete": "", - "query": { - "normalized": [], - "pages": { - "-1": { - "ns": 0, - "title": "", - "missing": "" - } - } - } - }""" - response = mock.Mock(text=json, search_params=dicto) - self.assertEqual(wikipedia.response(response), []) - - # normal case - json = """ - { - "batchcomplete": "", - "query": { - "normalized": [], - "pages": { - "12345": { - "pageid": 12345, - "ns": 0, - "title": "The Title", - "extract": "The Title is...", - "thumbnail": { - "source": "img_src.jpg" - }, - "pageimage": "img_name.jpg" - } - } - } - }""" - response = mock.Mock(text=json, search_params=dicto) - results = wikipedia.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], u'The Title') - self.assertIn('fr.wikipedia.org/wiki/The_Title', results[0]['url']) - self.assertEqual(results[1]['infobox'], u'The Title') - self.assertIn('fr.wikipedia.org/wiki/The_Title', results[1]['id']) - self.assertIn('The Title is...', results[1]['content']) - self.assertEqual(results[1]['img_src'], 'img_src.jpg') - - # disambiguation page - json = """ - { - "batchcomplete": "", - "query": { - "normalized": [], - "pages": { - "12345": { - "pageid": 12345, - "ns": 0, - "title": "The Title", - "extract": "The Title can be:\\nThe Title 1\\nThe Title 2\\nThe Title 3\\nThe Title 4......................................................................................................................................." """ # noqa - json += """ - } - } - } - }""" - response = mock.Mock(text=json, search_params=dicto) - results = wikipedia.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - - # no image - json = """ - { - "batchcomplete": "", - "query": { - "normalized": [], - "pages": { - "12345": { - "pageid": 12345, - "ns": 0, - "title": "The Title", - "extract": "The Title is......................................................................................................................................................................................." """ # noqa - json += """ - } - } - } - }""" - response = mock.Mock(text=json, search_params=dicto) - results = wikipedia.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertIn('The Title is...', results[1]['content']) - self.assertEqual(results[1]['img_src'], None) - - # title not in first paragraph - json = u""" - { - "batchcomplete": "", - "query": { - "normalized": [], - "pages": { - "12345": { - "pageid": 12345, - "ns": 0, - "title": "披頭四樂隊", - "extract": "披头士乐队....................................................................................................................................................................................................\\n披頭四樂隊...", """ # noqa - json += """ - "thumbnail": { - "source": "img_src.jpg" - }, - "pageimage": "img_name.jpg" - } - } - } - }""" - response = mock.Mock(text=json, search_params=dicto) - results = wikipedia.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[1]['infobox'], u'披頭四樂隊') - self.assertIn(u'披头士乐队...', results[1]['content']) - - def test_fetch_supported_languages(self): - html = u"""""" - response = mock.Mock(text=html) - languages = wikipedia._fetch_supported_languages(response) - self.assertEqual(type(languages), dict) - self.assertEqual(len(languages), 0) - - html = u""" - - -
    -
    -

    Table header

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NLanguageLanguage (local)WikiArticles
    2SwedishSvenskasv3000000
    3CebuanoSinugboanong Binisayaceb3000000
    -

    Table header

    - - - - - - - - - - - - - - - - - - - -
    NLanguageLanguage (local)WikiArticles
    2Norwegian (Bokmål)Norsk (Bokmål)no100000
    -
    -
    - - - """ - response = mock.Mock(text=html) - languages = wikipedia._fetch_supported_languages(response) - self.assertEqual(type(languages), dict) - self.assertEqual(len(languages), 3) - - self.assertIn('sv', languages) - self.assertIn('ceb', languages) - self.assertIn('no', languages) - - self.assertEqual(type(languages['sv']), dict) - self.assertEqual(type(languages['ceb']), dict) - self.assertEqual(type(languages['no']), dict) - - self.assertIn('name', languages['sv']) - self.assertIn('english_name', languages['sv']) - self.assertIn('articles', languages['sv']) - - self.assertEqual(languages['sv']['name'], 'Svenska') - self.assertEqual(languages['sv']['english_name'], 'Swedish') - self.assertEqual(languages['sv']['articles'], 3000000) - self.assertEqual(languages['ceb']['name'], 'Sinugboanong Binisaya') - self.assertEqual(languages['ceb']['english_name'], 'Cebuano') - self.assertEqual(languages['ceb']['articles'], 3000000) - self.assertEqual(languages['no']['name'], u'Norsk (Bokmål)') - self.assertEqual(languages['no']['english_name'], u'Norwegian (Bokmål)') - self.assertEqual(languages['no']['articles'], 100000) diff --git a/tests/unit/engines/test_wolframalpha_api.py b/tests/unit/engines/test_wolframalpha_api.py deleted file mode 100644 index 0433b34a..00000000 --- a/tests/unit/engines/test_wolframalpha_api.py +++ /dev/null @@ -1,166 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from requests import Request -from searx.engines import wolframalpha_api -from searx.testing import SearxTestCase - - -class TestWolframAlphaAPIEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - params = wolframalpha_api.request(query, dicto) - - # TODO: test api_key - self.assertIn('url', params) - self.assertIn('https://api.wolframalpha.com/v2/query?', params['url']) - self.assertIn(query, params['url']) - self.assertEqual('https://www.wolframalpha.com/input/?i=test_query', params['headers']['Referer']) - - def test_replace_pua_chars(self): - self.assertEqual('i', wolframalpha_api.replace_pua_chars(u'\uf74e')) - - def test_response(self): - self.assertRaises(AttributeError, wolframalpha_api.response, None) - self.assertRaises(AttributeError, wolframalpha_api.response, []) - self.assertRaises(AttributeError, wolframalpha_api.response, '') - self.assertRaises(AttributeError, wolframalpha_api.response, '[]') - - referer_url = 'referer_url' - request = Request(headers={'Referer': referer_url}) - - # test failure - xml = ''' - - ''' - response = mock.Mock(content=xml.encode('utf-8')) - self.assertEqual(wolframalpha_api.response(response), []) - - # test basic case - xml = b""" - - - - input_img_alt - input_plaintext</plaintext> - </subpod> - </pod> - <pod title='Result' - scanner='Simplification' - id='Result' - numsubpods='1' - primary='true'> - <subpod title=''> - <img src='result_img_src.gif' - alt='result_img_alt' - title='result_img_title' /> - <plaintext>result_plaintext</plaintext> - </subpod> - </pod> - <pod title='Manipulatives illustration' - scanner='Arithmetic' - id='Illustration' - numsubpods='1'> - <subpod title=''> - <img src='illustration_img_src.gif' - alt='illustration_img_alt' /> - <plaintext>illustration_plaintext</plaintext> - </subpod> - </pod> - </queryresult> - """ - response = mock.Mock(content=xml, request=request) - results = wolframalpha_api.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual('input_plaintext', results[0]['infobox']) - - self.assertEqual(len(results[0]['attributes']), 3) - self.assertEqual('Input', results[0]['attributes'][0]['label']) - self.assertEqual('input_plaintext', results[0]['attributes'][0]['value']) - self.assertEqual('Result', results[0]['attributes'][1]['label']) - self.assertEqual('result_plaintext', results[0]['attributes'][1]['value']) - self.assertEqual('Manipulatives illustration', results[0]['attributes'][2]['label']) - self.assertEqual('illustration_img_src.gif', results[0]['attributes'][2]['image']['src']) - self.assertEqual('illustration_img_alt', results[0]['attributes'][2]['image']['alt']) - - self.assertEqual(len(results[0]['urls']), 1) - - self.assertEqual(referer_url, results[0]['urls'][0]['url']) - self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title']) - self.assertEqual(referer_url, results[1]['url']) - self.assertEqual('Wolfram|Alpha (input_plaintext)', results[1]['title']) - self.assertIn('result_plaintext', results[1]['content']) - - # test calc - xml = b"""<?xml version='1.0' encoding='UTF-8'?> - <queryresult success='true' - error='false' - numpods='2' - datatypes='' - parsetimedout='false' - id='queryresult_id' - host='http://www5b.wolframalpha.com' - related='related_url' - version='2.6' > - <pod title='Indefinite integral' - scanner='Integral' - id='IndefiniteIntegral' - error='false' - numsubpods='1' - primary='true'> - <subpod title=''> - <img src='integral_image.gif' - alt='integral_img_alt' - title='integral_img_title' /> - <plaintext>integral_plaintext</plaintext> - </subpod> - </pod> - <pod title='Plot of the integral' - scanner='Integral' - id='Plot' - error='false' - numsubpods='1'> - <subpod title=''> - <img src='plot.gif' - alt='plot_alt' - title='' /> - <plaintext></plaintext> - </subpod> - </pod> - </queryresult> - """ - response = mock.Mock(content=xml, request=request) - results = wolframalpha_api.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual('integral_plaintext', results[0]['infobox']) - - self.assertEqual(len(results[0]['attributes']), 2) - self.assertEqual('Indefinite integral', results[0]['attributes'][0]['label']) - self.assertEqual('integral_plaintext', results[0]['attributes'][0]['value']) - self.assertEqual('Plot of the integral', results[0]['attributes'][1]['label']) - self.assertEqual('plot.gif', results[0]['attributes'][1]['image']['src']) - self.assertEqual('plot_alt', results[0]['attributes'][1]['image']['alt']) - - self.assertEqual(len(results[0]['urls']), 1) - - self.assertEqual(referer_url, results[0]['urls'][0]['url']) - self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title']) - self.assertEqual(referer_url, results[1]['url']) - self.assertEqual('Wolfram|Alpha (integral_plaintext)', results[1]['title']) - self.assertIn('integral_plaintext', results[1]['content']) diff --git a/tests/unit/engines/test_wolframalpha_noapi.py b/tests/unit/engines/test_wolframalpha_noapi.py deleted file mode 100644 index 982edd9f..00000000 --- a/tests/unit/engines/test_wolframalpha_noapi.py +++ /dev/null @@ -1,224 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from requests import Request -from searx.engines import wolframalpha_noapi -from searx.testing import SearxTestCase - - -class TestWolframAlphaNoAPIEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - params = wolframalpha_noapi.request(query, dicto) - - self.assertIn('url', params) - self.assertIn('https://www.wolframalpha.com/input/json.jsp', params['url']) - self.assertIn(query, params['url']) - self.assertEqual('https://www.wolframalpha.com/input/?i=test_query', params['headers']['Referer']) - - def test_response(self): - self.assertRaises(AttributeError, wolframalpha_noapi.response, None) - self.assertRaises(AttributeError, wolframalpha_noapi.response, []) - self.assertRaises(AttributeError, wolframalpha_noapi.response, '') - self.assertRaises(AttributeError, wolframalpha_noapi.response, '[]') - - referer_url = 'referer_url' - request = Request(headers={'Referer': referer_url}) - - # test failure - json = r''' - {"queryresult" : { - "success" : false, - "error" : false, - "numpods" : 0, - "id" : "", - "host" : "https:\/\/www5a.wolframalpha.com", - "didyoumeans" : {} - }} - ''' - response = mock.Mock(text=json, request=request) - self.assertEqual(wolframalpha_noapi.response(response), []) - - # test basic case - json = r''' - {"queryresult" : { - "success" : true, - "error" : false, - "numpods" : 6, - "datatypes" : "Math", - "id" : "queryresult_id", - "host" : "https:\/\/www5b.wolframalpha.com", - "related" : "related_url", - "version" : "2.6", - "pods" : [ - { - "title" : "Input", - "scanners" : [ - "Identity" - ], - "id" : "Input", - "error" : false, - "numsubpods" : 1, - "subpods" : [ - { - "title" : "", - "img" : { - "src" : "input_img_src.gif", - "alt" : "input_img_alt", - "title" : "input_img_title" - }, - "plaintext" : "input_plaintext", - "minput" : "input_minput" - } - ] - }, - { - "title" : "Result", - "scanners" : [ - "Simplification" - ], - "id" : "Result", - "error" : false, - "numsubpods" : 1, - "primary" : true, - "subpods" : [ - { - "title" : "", - "img" : { - "src" : "result_img_src.gif", - "alt" : "result_img_alt", - "title" : "result_img_title" - }, - "plaintext" : "result_plaintext", - "moutput" : "result_moutput" - } - ] - }, - { - "title" : "Manipulatives illustration", - "scanners" : [ - "Arithmetic" - ], - "id" : "Illustration", - "error" : false, - "numsubpods" : 1, - "subpods" : [ - { - "title" : "", - "CDFcontent" : "Resizeable", - "img" : { - "src" : "illustration_img_src.gif", - "alt" : "illustration_img_alt", - "title" : "illustration_img_title" - }, - "plaintext" : "illustration_img_plaintext" - } - ] - } - ] - }} - ''' - response = mock.Mock(text=json, request=request) - results = wolframalpha_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual('input_plaintext', results[0]['infobox']) - - self.assertEqual(len(results[0]['attributes']), 3) - self.assertEqual('Input', results[0]['attributes'][0]['label']) - self.assertEqual('input_plaintext', results[0]['attributes'][0]['value']) - self.assertEqual('Result', results[0]['attributes'][1]['label']) - self.assertEqual('result_plaintext', results[0]['attributes'][1]['value']) - self.assertEqual('Manipulatives illustration', results[0]['attributes'][2]['label']) - self.assertEqual('illustration_img_src.gif', results[0]['attributes'][2]['image']['src']) - self.assertEqual('illustration_img_alt', results[0]['attributes'][2]['image']['alt']) - - self.assertEqual(len(results[0]['urls']), 1) - - self.assertEqual(referer_url, results[0]['urls'][0]['url']) - self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title']) - self.assertEqual(referer_url, results[1]['url']) - self.assertEqual('Wolfram|Alpha (input_plaintext)', results[1]['title']) - self.assertIn('result_plaintext', results[1]['content']) - - # test calc - json = r""" - {"queryresult" : { - "success" : true, - "error" : false, - "numpods" : 2, - "datatypes" : "", - "id" : "queryresult_id", - "host" : "https:\/\/www4b.wolframalpha.com", - "related" : "related_url", - "version" : "2.6", - "pods" : [ - { - "title" : "Indefinite integral", - "scanners" : [ - "Integral" - ], - "id" : "IndefiniteIntegral", - "error" : false, - "numsubpods" : 1, - "primary" : true, - "subpods" : [ - { - "title" : "", - "img" : { - "src" : "integral_img_src.gif", - "alt" : "integral_img_alt", - "title" : "integral_img_title" - }, - "plaintext" : "integral_plaintext", - "minput" : "integral_minput", - "moutput" : "integral_moutput" - } - ] - }, - { - "title" : "Plot of the integral", - "scanners" : [ - "Integral" - ], - "id" : "Plot", - "error" : false, - "numsubpods" : 1, - "subpods" : [ - { - "title" : "", - "img" : { - "src" : "plot.gif", - "alt" : "plot_alt", - "title" : "plot_title" - }, - "plaintext" : "", - "minput" : "plot_minput" - } - ] - } - ] - }} - """ - response = mock.Mock(text=json, request=request) - results = wolframalpha_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual('integral_plaintext', results[0]['infobox']) - - self.assertEqual(len(results[0]['attributes']), 2) - self.assertEqual('Indefinite integral', results[0]['attributes'][0]['label']) - self.assertEqual('integral_plaintext', results[0]['attributes'][0]['value']) - self.assertEqual('Plot of the integral', results[0]['attributes'][1]['label']) - self.assertEqual('plot.gif', results[0]['attributes'][1]['image']['src']) - self.assertEqual('plot_alt', results[0]['attributes'][1]['image']['alt']) - - self.assertEqual(len(results[0]['urls']), 1) - - self.assertEqual(referer_url, results[0]['urls'][0]['url']) - self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title']) - self.assertEqual(referer_url, results[1]['url']) - self.assertEqual('Wolfram|Alpha (integral_plaintext)', results[1]['title']) - self.assertIn('integral_plaintext', results[1]['content']) diff --git a/tests/unit/engines/test_www1x.py b/tests/unit/engines/test_www1x.py deleted file mode 100644 index 40f5200f..00000000 --- a/tests/unit/engines/test_www1x.py +++ /dev/null @@ -1,14 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import www1x -from searx.testing import SearxTestCase - - -class TestWww1xEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - params = www1x.request(query, defaultdict(dict)) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertTrue('1x.com' in params['url']) diff --git a/tests/unit/engines/test_yacy.py b/tests/unit/engines/test_yacy.py deleted file mode 100644 index f49532cf..00000000 --- a/tests/unit/engines/test_yacy.py +++ /dev/null @@ -1,96 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import yacy -from searx.testing import SearxTestCase - - -class TestYacyEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr_FR' - params = yacy.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('localhost', params['url']) - self.assertIn('fr', params['url']) - - dicto['language'] = 'all' - params = yacy.request(query, dicto) - self.assertIn('url', params) - self.assertNotIn('lr=lang_', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, yacy.response, None) - self.assertRaises(AttributeError, yacy.response, []) - self.assertRaises(AttributeError, yacy.response, '') - self.assertRaises(AttributeError, yacy.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(yacy.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(yacy.response(response), []) - - json = """ - { - "channels": [ - { - "title": "YaCy P2P-Search for test", - "description": "Search for test", - "link": "http://search.yacy.de:7001/yacysearch.html?query=test&amp;resource=global&amp;contentdom=0", - "image": { - "url": "http://search.yacy.de:7001/env/grafics/yacy.png", - "title": "Search for test", - "link": "http://search.yacy.de:7001/yacysearch.html?query=test&amp;resource=global&amp;contentdom=0" - }, - "totalResults": "249", - "startIndex": "0", - "itemsPerPage": "5", - "searchTerms": "test", - "items": [ - { - "title": "This is the title", - "link": "http://this.is.the.url", - "code": "", - "description": "This should be the content", - "pubDate": "Sat, 08 Jun 2013 02:00:00 +0200", - "size": "44213", - "sizename": "43 kbyte", - "guid": "lzh_1T_5FP-A", - "faviconCode": "XTS4uQ_5FP-A", - "host": "www.gamestar.de", - "path": "/spiele/city-of-heroes-freedom/47019.html", - "file": "47019.html", - "urlhash": "lzh_1T_5FP-A", - "ranking": "0.20106804" - }, - { - "title": "This is the title2", - "icon": "/ViewImage.png?maxwidth=96&amp;maxheight=96&amp;code=7EbAbW6BpPOA", - "image": "http://image.url/image.png", - "cache": "/ViewImage.png?quadratic=&amp;url=http://golem.ivwbox.de/cgi-bin/ivw/CP/G_INET?d=14071378", - "url": "http://this.is.the.url", - "urlhash": "7EbAbW6BpPOA", - "host": "www.golem.de", - "width": "-1", - "height": "-1" - } - ] - } - ] - } - """ - response = mock.Mock(text=json) - results = yacy.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'http://this.is.the.url') - self.assertEqual(results[0]['content'], 'This should be the content') - self.assertEqual(results[1]['img_src'], 'http://image.url/image.png') - self.assertEqual(results[1]['content'], '') - self.assertEqual(results[1]['url'], 'http://this.is.the.url') - self.assertEqual(results[1]['title'], 'This is the title2') diff --git a/tests/unit/engines/test_yahoo.py b/tests/unit/engines/test_yahoo.py deleted file mode 100644 index e52c1109..00000000 --- a/tests/unit/engines/test_yahoo.py +++ /dev/null @@ -1,190 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import yahoo -from searx.testing import SearxTestCase - - -class TestYahooEngine(SearxTestCase): - - def test_parse_url(self): - test_url = 'http://r.search.yahoo.com/_ylt=A0LEb9JUSKcAEGRXNyoA;_ylu=X3oDMTEzZm1qazYwBHNlYwNzcgRwb3MDMQRjb' +\ - '2xvA2Jm2dGlkA1NNRTcwM18x/RV=2/RE=1423106085/RO=10/RU=https%3a%2f%2fthis.is.the.url%2f/RK=0/RS=' +\ - 'dtcJsfP4mEeBOjnVfUQ-' - url = yahoo.parse_url(test_url) - self.assertEqual('https://this.is.the.url/', url) - - test_url = 'http://r.search.yahoo.com/_ylt=A0LElb9JUSKcAEGRXNyoA;_ylu=X3oDMTEzZm1qazYwBHNlYwNzcgRwb3MDMQRjb' +\ - '2xvA2Jm2dGlkA1NNRTcwM18x/RV=2/RE=1423106085/RO=10/RU=https%3a%2f%2fthis.is.the.url%2f/RS=' +\ - 'dtcJsfP4mEeBOjnVfUQ-' - url = yahoo.parse_url(test_url) - self.assertEqual('https://this.is.the.url/', url) - - test_url = 'https://this.is.the.url/' - url = yahoo.parse_url(test_url) - self.assertEqual('https://this.is.the.url/', url) - - def test_request(self): - yahoo.supported_languages = ['en', 'fr', 'zh-CHT', 'zh-CHS'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['time_range'] = '' - dicto['language'] = 'fr-FR' - params = yahoo.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('search.yahoo.com', params['url']) - self.assertIn('fr', params['url']) - self.assertIn('cookies', params) - self.assertIn('sB', params['cookies']) - self.assertIn('fr', params['cookies']['sB']) - - dicto['language'] = 'zh' - params = yahoo.request(query, dicto) - self.assertIn('zh_chs', params['url']) - self.assertIn('zh_chs', params['cookies']['sB']) - - dicto['language'] = 'zh-TW' - params = yahoo.request(query, dicto) - self.assertIn('zh_cht', params['url']) - self.assertIn('zh_cht', params['cookies']['sB']) - - dicto['language'] = 'all' - params = yahoo.request(query, dicto) - self.assertIn('cookies', params) - self.assertIn('sB', params['cookies']) - self.assertIn('en', params['cookies']['sB']) - self.assertIn('en', params['url']) - - def test_no_url_in_request_year_time_range(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['time_range'] = 'year' - params = yahoo.request(query, dicto) - self.assertEqual({}, params['url']) - - def test_response(self): - self.assertRaises(AttributeError, yahoo.response, None) - self.assertRaises(AttributeError, yahoo.response, []) - self.assertRaises(AttributeError, yahoo.response, '') - self.assertRaises(AttributeError, yahoo.response, '[]') - - response = mock.Mock(text='<html></html>') - self.assertEqual(yahoo.response(response), []) - - html = """ -<ol class="reg mb-15 searchCenterMiddle"> - <li class="first"> - <div class="dd algo fst Sr"> - <div class="compTitle"> - <h3 class="title"><a class=" td-u" href="http://r.search.yahoo.com/_ylt=A0LEb9JUSKcAEGRXNyoA; - _ylu=X3oDMTEzZm1qazYwBHNlYwNzcgRwb3MDMQRjb2xvA2Jm2dGlkA1NNRTcwM18x/RV=2/RE=1423106085/RO=10 - /RU=https%3a%2f%2fthis.is.the.url%2f/RK=0/RS=dtcJsfP4mEeBOjnVfUQ-" - target="_blank" data-bid="54e712e13671c"> - <b><b>This is the title</b></b></a> - </h3> - </div> - <div class="compText aAbs"> - <p class="lh-18"><b><b>This is the </b>content</b> - </p> - </div> - </div> - </li> - <li> - <div class="dd algo lst Sr"> - <div class="compTitle"> - </div> - <div class="compText aAbs"> - <p class="lh-18">This is the second content</p> - </div> - </div> - </li> -</ol> -<div class="dd assist fst lst AlsoTry" data-bid="54e712e138d04"> - <div class="compTitle mb-4 h-17"> - <h3 class="title">Also Try</h3> </div> - <table class="compTable m-0 ac-1st td-u fz-ms"> - <tbody> - <tr> - <td class="w-50p pr-28"><a href="https://search.yahoo.com/"><B>This is the </B>suggestion<B></B></a> - </td> - </tr> - </table> -</div> - """ - response = mock.Mock(text=html) - results = yahoo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://this.is.the.url/') - self.assertEqual(results[0]['content'], 'This is the content') - self.assertEqual(results[1]['suggestion'], 'This is the suggestion') - - html = """ -<ol class="reg mb-15 searchCenterMiddle"> - <li class="first"> - <div class="dd algo fst Sr"> - <div class="compTitle"> - <h3 class="title"><a class=" td-u" href="http://r.search.yahoo.com/_ylt=A0LEb9JUSKcAEGRXNyoA; - _ylu=X3oDMTEzZm1qazYwBHNlYwNzcgRwb3MDMQRjb2xvA2Jm2dGlkA1NNRTcwM18x/RV=2/RE=1423106085/RO=10 - /RU=https%3a%2f%2fthis.is.the.url%2f/RK=0/RS=dtcJsfP4mEeBOjnVfUQ-" - target="_blank" data-bid="54e712e13671c"> - <b><b>This is the title</b></b></a> - </h3> - </div> - <div class="compText aAbs"> - <p class="lh-18"><b><b>This is the </b>content</b> - </p> - </div> - </div> - </li> -</ol> - """ - response = mock.Mock(text=html) - results = yahoo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title') - self.assertEqual(results[0]['url'], 'https://this.is.the.url/') - self.assertEqual(results[0]['content'], 'This is the content') - - html = """ - <li class="b_algo" u="0|5109|4755453613245655|UAGjXgIrPH5yh-o5oNHRx_3Zta87f_QO"> - </li> - """ - response = mock.Mock(text=html) - results = yahoo.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - def test_fetch_supported_languages(self): - html = """<html></html>""" - response = mock.Mock(text=html) - results = yahoo._fetch_supported_languages(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - html = """ - <html> - <div> - <div id="yschlang"> - <span> - <label><input value="lang_ar"></input></label> - </span> - <span> - <label><input value="lang_zh_chs"></input></label> - <label><input value="lang_zh_cht"></input></label> - </span> - </div> - </div> - </html> - """ - response = mock.Mock(text=html) - languages = yahoo._fetch_supported_languages(response) - self.assertEqual(type(languages), list) - self.assertEqual(len(languages), 3) - self.assertIn('ar', languages) - self.assertIn('zh-CHS', languages) - self.assertIn('zh-CHT', languages) diff --git a/tests/unit/engines/test_yahoo_news.py b/tests/unit/engines/test_yahoo_news.py deleted file mode 100644 index ae27df2a..00000000 --- a/tests/unit/engines/test_yahoo_news.py +++ /dev/null @@ -1,150 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -from datetime import datetime -import mock -from searx.engines import yahoo_news -from searx.testing import SearxTestCase - - -class TestYahooNewsEngine(SearxTestCase): - - def test_request(self): - yahoo_news.supported_languages = ['en', 'fr'] - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 1 - dicto['language'] = 'fr-FR' - params = yahoo_news.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('news.search.yahoo.com', params['url']) - self.assertIn('fr', params['url']) - self.assertIn('cookies', params) - self.assertIn('sB', params['cookies']) - self.assertIn('fr', params['cookies']['sB']) - - dicto['language'] = 'all' - params = yahoo_news.request(query, dicto) - self.assertIn('cookies', params) - self.assertIn('sB', params['cookies']) - self.assertIn('en', params['cookies']['sB']) - self.assertIn('en', params['url']) - - def test_sanitize_url(self): - url = "test.url" - self.assertEqual(url, yahoo_news.sanitize_url(url)) - - url = "www.yahoo.com/;_ylt=test" - self.assertEqual("www.yahoo.com/", yahoo_news.sanitize_url(url)) - - def test_response(self): - self.assertRaises(AttributeError, yahoo_news.response, None) - self.assertRaises(AttributeError, yahoo_news.response, []) - self.assertRaises(AttributeError, yahoo_news.response, '') - self.assertRaises(AttributeError, yahoo_news.response, '[]') - - response = mock.Mock(text='<html></html>') - self.assertEqual(yahoo_news.response(response), []) - - html = """ - <ol class=" reg searchCenterMiddle"> - <li class="first"> - <div class="compTitle"> - <h3> - <a class="yschttl spt" href="http://this.is.the.url" target="_blank"> - This is - the <b>title</b>... - </a> - </h3> - </div> - <div> - <span class="cite">Business via Yahoo!</span> - <span class="tri fc-2nd ml-10">May 01 10:00 AM</span> - </div> - <div class="compText"> - This is the content - </div> - </li> - <li class="first"> - <div class="compTitle"> - <h3> - <a class="yschttl spt" target="_blank"> - </a> - </h3> - </div> - <div class="compText"> - </div> - </li> - </ol> - """ - response = mock.Mock(text=html) - results = yahoo_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'This is the title...') - self.assertEqual(results[0]['url'], 'http://this.is.the.url/') - self.assertEqual(results[0]['content'], 'This is the content') - - html = """ - <ol class=" reg searchCenterMiddle"> - <li class="first"> - <div class="compTitle"> - <h3> - <a class="yschttl spt" href="http://this.is.the.url" target="_blank"> - This is - the <b>title</b>... - </a> - </h3> - </div> - <div> - <span class="cite">Business via Yahoo!</span> - <span class="tri fc-2nd ml-10">2 hours, 22 minutes ago</span> - </div> - <div class="compText"> - This is the content - </div> - </li> - <li> - <div class="compTitle"> - <h3> - <a class="yschttl spt" href="http://this.is.the.url" target="_blank"> - This is - the <b>title</b>... - </a> - </h3> - </div> - <div> - <span class="cite">Business via Yahoo!</span> - <span class="tri fc-2nd ml-10">22 minutes ago</span> - </div> - <div class="compText"> - This is the content - </div> - </li> - <li> - <div class="compTitle"> - <h3> - <a class="yschttl spt" href="http://this.is.the.url" target="_blank"> - This is - the <b>title</b>... - </a> - </h3> - </div> - <div> - <span class="cite">Business via Yahoo!</span> - <span class="tri fc-2nd ml-10">Feb 03 09:45AM 1900</span> - </div> - <div class="compText"> - This is the content - </div> - </li> - </ol> - """ - response = mock.Mock(text=html) - results = yahoo_news.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 3) - self.assertEqual(results[0]['title'], 'This is the title...') - self.assertEqual(results[0]['url'], 'http://this.is.the.url/') - self.assertEqual(results[0]['content'], 'This is the content') - self.assertEqual(results[2]['publishedDate'].year, datetime.now().year) diff --git a/tests/unit/engines/test_youtube_api.py b/tests/unit/engines/test_youtube_api.py deleted file mode 100644 index 0d4d478c..00000000 --- a/tests/unit/engines/test_youtube_api.py +++ /dev/null @@ -1,111 +0,0 @@ -from collections import defaultdict -import mock -from searx.engines import youtube_api -from searx.testing import SearxTestCase - - -class TestYoutubeAPIEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['language'] = 'fr_FR' - params = youtube_api.request(query, dicto) - self.assertTrue('url' in params) - self.assertTrue(query in params['url']) - self.assertIn('googleapis.com', params['url']) - self.assertIn('youtube', params['url']) - self.assertIn('fr', params['url']) - - dicto['language'] = 'all' - params = youtube_api.request(query, dicto) - self.assertFalse('fr' in params['url']) - - def test_response(self): - self.assertRaises(AttributeError, youtube_api.response, None) - self.assertRaises(AttributeError, youtube_api.response, []) - self.assertRaises(AttributeError, youtube_api.response, '') - self.assertRaises(AttributeError, youtube_api.response, '[]') - - response = mock.Mock(text='{}') - self.assertEqual(youtube_api.response(response), []) - - response = mock.Mock(text='{"data": []}') - self.assertEqual(youtube_api.response(response), []) - - json = """ - { - "kind": "youtube#searchListResponse", - "etag": "xmg9xJZuZD438sF4hb-VcBBREXc/YJQDcTBCDcaBvl-sRZJoXdvy1ME", - "nextPageToken": "CAUQAA", - "pageInfo": { - "totalResults": 1000000, - "resultsPerPage": 20 - }, - "items": [ - { - "kind": "youtube#searchResult", - "etag": "xmg9xJZuZD438sF4hb-VcBBREXc/IbLO64BMhbHIgWLwLw7MDYe7Hs4", - "id": { - "kind": "youtube#video", - "videoId": "DIVZCPfAOeM" - }, - "snippet": { - "publishedAt": "2015-05-29T22:41:04.000Z", - "channelId": "UCNodmx1ERIjKqvcJLtdzH5Q", - "title": "Title", - "description": "Description", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/DIVZCPfAOeM/default.jpg" - }, - "medium": { - "url": "https://i.ytimg.com/vi/DIVZCPfAOeM/mqdefault.jpg" - }, - "high": { - "url": "https://i.ytimg.com/vi/DIVZCPfAOeM/hqdefault.jpg" - } - }, - "channelTitle": "MinecraftUniverse", - "liveBroadcastContent": "none" - } - } - ] - } - """ - response = mock.Mock(text=json) - results = youtube_api.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM') - self.assertEqual(results[0]['content'], 'Description') - self.assertEqual(results[0]['thumbnail'], 'https://i.ytimg.com/vi/DIVZCPfAOeM/hqdefault.jpg') - self.assertTrue('DIVZCPfAOeM' in results[0]['embedded']) - - json = """ - { - "kind": "youtube#searchListResponse", - "etag": "xmg9xJZuZD438sF4hb-VcBBREXc/YJQDcTBCDcaBvl-sRZJoXdvy1ME", - "nextPageToken": "CAUQAA", - "pageInfo": { - "totalResults": 1000000, - "resultsPerPage": 20 - } - } - """ - response = mock.Mock(text=json) - results = youtube_api.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) - - json = """ - {"toto":{"entry":[] - } - } - """ - response = mock.Mock(text=json) - results = youtube_api.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/test_youtube_noapi.py b/tests/unit/engines/test_youtube_noapi.py deleted file mode 100644 index cbf7b9bc..00000000 --- a/tests/unit/engines/test_youtube_noapi.py +++ /dev/null @@ -1,124 +0,0 @@ -# -*- coding: utf-8 -*- -from collections import defaultdict -import mock -from searx.engines import youtube_noapi -from searx.testing import SearxTestCase - - -class TestYoutubeNoAPIEngine(SearxTestCase): - - def test_request(self): - query = 'test_query' - dicto = defaultdict(dict) - dicto['pageno'] = 0 - dicto['time_range'] = '' - params = youtube_noapi.request(query, dicto) - self.assertIn('url', params) - self.assertIn(query, params['url']) - self.assertIn('youtube.com', params['url']) - - def test_time_range_search(self): - dicto = defaultdict(dict) - query = 'test_query' - dicto['time_range'] = 'year' - params = youtube_noapi.request(query, dicto) - self.assertIn('&sp=EgIIBQ%253D%253D', params['url']) - - dicto['time_range'] = 'month' - params = youtube_noapi.request(query, dicto) - self.assertIn('&sp=EgIIBA%253D%253D', params['url']) - - dicto['time_range'] = 'week' - params = youtube_noapi.request(query, dicto) - self.assertIn('&sp=EgIIAw%253D%253D', params['url']) - - dicto['time_range'] = 'day' - params = youtube_noapi.request(query, dicto) - self.assertIn('&sp=EgIIAg%253D%253D', params['url']) - - def test_response(self): - self.assertRaises(AttributeError, youtube_noapi.response, None) - self.assertRaises(AttributeError, youtube_noapi.response, []) - self.assertRaises(AttributeError, youtube_noapi.response, '') - self.assertRaises(AttributeError, youtube_noapi.response, '[]') - - response = mock.Mock(text='<html></html>') - self.assertEqual(youtube_noapi.response(response), []) - - html = """ - <div></div> - <script> - window["ytInitialData"] = { - "contents": { - "twoColumnSearchResultsRenderer": { - "primaryContents": { - "sectionListRenderer": { - "contents": [ - { - "itemSectionRenderer": { - "contents": [ - { - "videoRenderer": { - "videoId": "DIVZCPfAOeM", - "title": { - "simpleText": "Title" - }, - "descriptionSnippet": { - "runs": [ - { - "text": "Des" - }, - { - "text": "cription" - } - ] - } - } - }, - { - "videoRenderer": { - "videoId": "9C_HReR_McQ", - "title": { - "simpleText": "Title" - }, - "descriptionSnippet": { - "simpleText": "Description" - } - } - } - ] - } - } - ] - } - } - } - } - }; - </script> - """ - response = mock.Mock(text=html) - results = youtube_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 2) - self.assertEqual(results[0]['title'], 'Title') - self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM') - self.assertEqual(results[0]['content'], 'Description') - self.assertEqual(results[0]['thumbnail'], 'https://i.ytimg.com/vi/DIVZCPfAOeM/hqdefault.jpg') - self.assertTrue('DIVZCPfAOeM' in results[0]['embedded']) - self.assertEqual(results[1]['title'], 'Title') - self.assertEqual(results[1]['url'], 'https://www.youtube.com/watch?v=9C_HReR_McQ') - self.assertEqual(results[1]['content'], 'Description') - self.assertEqual(results[1]['thumbnail'], 'https://i.ytimg.com/vi/9C_HReR_McQ/hqdefault.jpg') - self.assertTrue('9C_HReR_McQ' in results[1]['embedded']) - - html = """ - <ol id="item-section-063864" class="item-section"> - <li> - </li> - </ol> - """ - response = mock.Mock(text=html) - results = youtube_noapi.response(response) - self.assertEqual(type(results), list) - self.assertEqual(len(results), 0) diff --git a/tests/unit/engines/unsplash_fixture.json b/tests/unit/engines/unsplash_fixture.json deleted file mode 100644 index 4c8db2a2..00000000 --- a/tests/unit/engines/unsplash_fixture.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "total": 2, - "total_pages": 1, - "results": [ - { - "id": "FY8d721UO_4", - "created_at": "2018-04-12T14:20:35-04:00", - "updated_at": "2018-08-28T20:58:33-04:00", - "width": 3891, - "height": 5829, - "color": "#152C33", - "description": "low angle photography of swimming penguin", - "urls": { - "raw": "https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=095c5fc319c5a77c705f49ad63e0f195", - "full": "https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjEyMDd9&s=74be977849c173d6929636d491a760c3", - "regular": "https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=ad65df26970bd010085f0ca25434de33", - "small": "https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=5d2edfd073c31eb8ee7b305222bdc5a2", - "thumb": "https://images.unsplash.com/photo-1523557148507-1b77641c7e7c?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=a9b9e56e63efc6f4611a87ce7e9a48f8" - }, - "links": { - "self": "https://api.unsplash.com/photos/FY8d721UO_4", - "html": "https://unsplash.com/photos/FY8d721UO_4", - "download": "https://unsplash.com/photos/FY8d721UO_4/download", - "download_location": "https://api.unsplash.com/photos/FY8d721UO_4/download" - }, - "categories": [], - "sponsored": false, - "likes": 31, - "liked_by_user": false, - "current_user_collections": [], - "slug": null, - "user": { - "id": "N4gE4mrG8lE", - "updated_at": "2018-10-03T02:51:19-04:00", - "username": "gaspanik", - "name": "Masaaki Komori", - "first_name": "Masaaki", - "last_name": "Komori", - "twitter_username": "cipher", - "portfolio_url": "https://www.instagram.com/cipher/", - "bio": null, - "location": "Tokyo, JAPAN", - "links": { - "self": "https://api.unsplash.com/users/gaspanik", - "html": "https://unsplash.com/@gaspanik", - "photos": "https://api.unsplash.com/users/gaspanik/photos", - "likes": "https://api.unsplash.com/users/gaspanik/likes", - "portfolio": "https://api.unsplash.com/users/gaspanik/portfolio", - "following": "https://api.unsplash.com/users/gaspanik/following", - "followers": "https://api.unsplash.com/users/gaspanik/followers" - }, - "profile_image": { - "small": "https://images.unsplash.com/profile-fb-1502270358-e7c86c1011ce.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=32&w=32&s=9fe12f6d177bd6fdbd56d233a80c01a3", - "medium": "https://images.unsplash.com/profile-fb-1502270358-e7c86c1011ce.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=64&w=64&s=6ad7d156b62e438ae9dc794cba712fff", - "large": "https://images.unsplash.com/profile-fb-1502270358-e7c86c1011ce.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=128&w=128&s=13a08a2e72e7d11632410e92bd3a9406" - }, - "instagram_username": "cipher", - "total_collections": 0, - "total_likes": 406, - "total_photos": 196 - }, - "tags": [ - { - "title": "animal" - }, - { - "title": "water" - }, - { - "title": "swim" - }, - { - "title": "aquarium" - }, - { - "title": "wallpaper" - }, - { - "title": "blue" - }, - { - "title": "sealife" - }, - { - "title": "wildlife" - }, - { - "title": "bird" - }, - { - "title": "deep sea" - }, - { - "title": "fish" - }, - { - "title": "water life" - } - ], - "photo_tags": [ - { - "title": "animal" - }, - { - "title": "water" - }, - { - "title": "swim" - }, - { - "title": "aquarium" - }, - { - "title": "wallpaper" - } - ] - }, - { - "id": "ayKyc01xLWA", - "created_at": "2018-02-16T23:14:31-05:00", - "updated_at": "2018-08-28T20:48:27-04:00", - "width": 4928, - "height": 3264, - "color": "#161618", - "description": "black and white penguins on ice field", - "urls": { - "raw": "https://images.unsplash.com/photo-1518840801558-9770b4a34eeb?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=4e107a2bc49ab561ba6272eea2ec725d", - "full": "https://images.unsplash.com/photo-1518840801558-9770b4a34eeb?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjEyMDd9&s=f9b1e4d4572ab44efb2cf3d601d2b4d9", - "regular": "https://images.unsplash.com/photo-1518840801558-9770b4a34eeb?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=4430cedb63841f1fe055d5005316cc96", - "small": "https://images.unsplash.com/photo-1518840801558-9770b4a34eeb?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=ee73c7af22ce445d408e240821ce07af", - "thumb": "https://images.unsplash.com/photo-1518840801558-9770b4a34eeb?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjEyMDd9&s=934302390d383cad8c571905e3a80bac" - }, - "links": { - "self": "https://api.unsplash.com/photos/ayKyc01xLWA", - "html": "https://unsplash.com/photos/ayKyc01xLWA", - "download": "https://unsplash.com/photos/ayKyc01xLWA/download", - "download_location": "https://api.unsplash.com/photos/ayKyc01xLWA/download" - }, - "categories": [], - "sponsored": false, - "likes": 37, - "liked_by_user": false, - "current_user_collections": [], - "slug": null, - "user": { - "id": "tRb_KGw60Xk", - "updated_at": "2018-09-20T11:51:54-04:00", - "username": "ghost_cat", - "name": "Danielle Barnes", - "first_name": "Danielle", - "last_name": "Barnes", - "twitter_username": null, - "portfolio_url": null, - "bio": null, - "location": null, - "links": { - "self": "https://api.unsplash.com/users/ghost_cat", - "html": "https://unsplash.com/@ghost_cat", - "photos": "https://api.unsplash.com/users/ghost_cat/photos", - "likes": "https://api.unsplash.com/users/ghost_cat/likes", - "portfolio": "https://api.unsplash.com/users/ghost_cat/portfolio", - "following": "https://api.unsplash.com/users/ghost_cat/following", - "followers": "https://api.unsplash.com/users/ghost_cat/followers" - }, - "profile_image": { - "small": "https://images.unsplash.com/profile-fb-1508491082-ae77f53e9ac3.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=32&w=32&s=751bf6a557763648d52ffd7e60e79436", - "medium": "https://images.unsplash.com/profile-fb-1508491082-ae77f53e9ac3.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=64&w=64&s=e46cd1c8713035f045130e1b093b981e", - "large": "https://images.unsplash.com/profile-fb-1508491082-ae77f53e9ac3.jpg?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&fit=crop&h=128&w=128&s=352eabcf107c3ce95fe51a18485f116b" - }, - "instagram_username": null, - "total_collections": 0, - "total_likes": 0, - "total_photos": 21 - }, - "tags": [ - { - "title": "ice" - }, - { - "title": "bird" - }, - { - "title": "ice field" - }, - { - "title": "iceberg" - }, - { - "title": "snow" - }, - { - "title": "frozen" - }, - { - "title": "animal" - }, - { - "title": "wildlife" - }, - { - "title": "wild" - }, - { - "title": "antarctica" - }, - { - "title": "sunshine" - }, - { - "title": "daylight" - }, - { - "title": "wilderness" - }, - { - "title": "south pole" - }, - { - "title": "flock" - } - ], - "photo_tags": [ - { - "title": "ice" - }, - { - "title": "bird" - }, - { - "title": "ice field" - }, - { - "title": "iceberg" - }, - { - "title": "snow" - } - ] - } - ] -} \ No newline at end of file diff --git a/tests/unit/test_search.py b/tests/unit/test_search.py index a39786d1..18c22195 100644 --- a/tests/unit/test_search.py +++ b/tests/unit/test_search.py @@ -1,60 +1,112 @@ # -*- coding: utf-8 -*- from searx.testing import SearxTestCase +from searx.preferences import Preferences +from searx.engines import engines -import searx.preferences import searx.search -import searx.engines + + +SAFESEARCH = 0 +PAGENO = 1 +PUBLIC_ENGINE_NAME = 'general dummy' +PRIVATE_ENGINE_NAME = 'general private offline' +TEST_ENGINES = [ + { + 'name': PUBLIC_ENGINE_NAME, + 'engine': 'dummy', + 'categories': 'general', + 'shortcut': 'gd', + 'timeout': 3.0, + 'tokens': [], + }, + { + 'name': PRIVATE_ENGINE_NAME, + 'engine': 'dummy-offline', + 'categories': 'general', + 'shortcut': 'do', + 'timeout': 3.0, + 'offline': True, + 'tokens': ['my-token'], + }, +] class SearchTestCase(SearxTestCase): @classmethod def setUpClass(cls): - searx.engines.initialize_engines([{ - 'name': 'general dummy', - 'engine': 'dummy', - 'categories': 'general', - 'shortcut': 'gd', - 'timeout': 3.0 - }]) + searx.engines.initialize_engines(TEST_ENGINES) def test_timeout_simple(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': 'general dummy'}], - ['general'], 'en-US', 0, 1, None, None) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEquals(search.actual_timeout, 3.0) def test_timeout_query_above_default_nomax(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': 'general dummy'}], - ['general'], 'en-US', 0, 1, None, 5.0) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEquals(search.actual_timeout, 3.0) def test_timeout_query_below_default_nomax(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': 'general dummy'}], - ['general'], 'en-US', 0, 1, None, 1.0) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEquals(search.actual_timeout, 1.0) def test_timeout_query_below_max(self): searx.search.max_request_timeout = 10.0 - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': 'general dummy'}], - ['general'], 'en-US', 0, 1, None, 5.0) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEquals(search.actual_timeout, 5.0) def test_timeout_query_above_max(self): searx.search.max_request_timeout = 10.0 - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': 'general dummy'}], - ['general'], 'en-US', 0, 1, None, 15.0) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEquals(search.actual_timeout, 10.0) + + def test_query_private_engine_without_token(self): + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) + search = searx.search.Search(search_query) + results = search.search() + self.assertEquals(results.results_length(), 0) + + def test_query_private_engine_with_incorrect_token(self): + preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) + preferences_with_tokens.parse_dict({'tokens': 'bad-token'}) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, + preferences=preferences_with_tokens) + search = searx.search.Search(search_query) + results = search.search() + self.assertEquals(results.results_length(), 0) + + def test_query_private_engine_with_correct_token(self): + preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) + preferences_with_tokens.parse_dict({'tokens': 'my-token'}) + search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, + preferences=preferences_with_tokens) + search = searx.search.Search(search_query) + results = search.search() + self.assertEquals(results.results_length(), 1) diff --git a/tests/unit/test_webapp.py b/tests/unit/test_webapp.py index 72ace485..f31332fa 100644 --- a/tests/unit/test_webapp.py +++ b/tests/unit/test_webapp.py @@ -99,9 +99,9 @@ class ViewsTestCase(SearxTestCase): result = self.app.post('/', data={'q': 'test', 'format': 'csv'}) self.assertEqual( - b'title,url,content,host,engine,score\r\n' - b'First Test,http://first.test.xyz,first test content,first.test.xyz,startpage,\r\n' # noqa - b'Second Test,http://second.test.xyz,second test content,second.test.xyz,youtube,\r\n', # noqa + b'title,url,content,host,engine,score,type\r\n' + b'First Test,http://first.test.xyz,first test content,first.test.xyz,startpage,,result\r\n' # noqa + b'Second Test,http://second.test.xyz,second test content,second.test.xyz,youtube,,result\r\n', # noqa result.data ) diff --git a/utils/brand.env b/utils/brand.env new file mode 100644 index 00000000..7fe1a391 --- /dev/null +++ b/utils/brand.env @@ -0,0 +1,5 @@ +export GIT_URL='https://github.com/asciimoo/searx' +export ISSUE_URL='https://github.com/asciimoo/searx/issues' +export SEARX_URL='https://searx.me' +export DOCS_URL='https://asciimoo.github.io/searx' +export PUBLIC_INSTANCES='https://searx.space' diff --git a/utils/fetch_firefox_version.py b/utils/fetch_firefox_version.py index ed179585..722c4822 100755 --- a/utils/fetch_firefox_version.py +++ b/utils/fetch_firefox_version.py @@ -24,7 +24,7 @@ NORMAL_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?$') # useragents = { "versions": (), - "os": ('Windows NT 10; WOW64', + "os": ('Windows NT 10.0; WOW64', 'X11; Linux x86_64'), "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}" } diff --git a/utils/fetch_languages.py b/utils/fetch_languages.py index a6af0730..ddebb411 100644 --- a/utils/fetch_languages.py +++ b/utils/fetch_languages.py @@ -5,7 +5,7 @@ # Output files (engines_languages.json and languages.py) # are written in current directory to avoid overwriting in case something goes wrong. -from json import dump +import json import io from sys import path from babel import Locale, UnknownLocaleError @@ -22,19 +22,22 @@ languages_file = 'languages.py' # Fetchs supported languages for each engine and writes json file with those. def fetch_supported_languages(): + engines_languages = {} - for engine_name in engines: + names = list(engines) + names.sort() + + for engine_name in names: + print("fetching languages of engine %s" % engine_name) + if hasattr(engines[engine_name], 'fetch_supported_languages'): - try: - engines_languages[engine_name] = engines[engine_name].fetch_supported_languages() - if type(engines_languages[engine_name]) == list: - engines_languages[engine_name] = sorted(engines_languages[engine_name]) - except Exception as e: - print(e) + engines_languages[engine_name] = engines[engine_name].fetch_supported_languages() + if type(engines_languages[engine_name]) == list: + engines_languages[engine_name] = sorted(engines_languages[engine_name]) # write json file - with io.open(engines_languages_file, "w", encoding="utf-8") as f: - dump(engines_languages, f, ensure_ascii=False, indent=4, separators=(',', ': ')) + with open(engines_languages_file, 'w', encoding='utf-8') as f: + json.dump(engines_languages, f, indent=2, sort_keys=True) return engines_languages diff --git a/utils/makefile.python b/utils/makefile.python index 228eb3f8..590bbdb4 100644 --- a/utils/makefile.python +++ b/utils/makefile.python @@ -5,6 +5,7 @@ PYOBJECTS ?= SITE_PYTHON ?=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))site-python export PYTHONPATH := $(SITE_PYTHON):$$PYTHONPATH +export PY_ENV PYDIST PYBUILD # folder where the python distribution takes place PYDIST ?= ./py_dist @@ -12,6 +13,9 @@ PYDIST ?= ./py_dist PYBUILD ?= ./py_build # python version to use PY ?=3 +# $(PYTHON) points to the python interpreter from the OS! The python from the +# OS is needed e.g. to create a virtualenv. For tasks inside the virtualenv the +# interpeter from '$(PY_ENV_BIN)/python' is used. PYTHON ?= python$(PY) PIP ?= pip$(PY) PIP_INST ?= --user @@ -59,7 +63,7 @@ python-help:: @echo ' pylint - run pylint *linting*' @echo ' pytest - run *tox* test on python objects' @echo ' pydebug - run tests within a PDB debug session' - @echo ' pybuild - build python packages' + @echo ' pybuild - build python packages ($(PYDIST) $(PYBUILD))' @echo ' pyclean - clean intermediate python objects' @echo ' targets using system users environment:' @echo ' py[un]install - [un]install python objects in editable mode' @@ -94,38 +98,6 @@ python-exe: @: endif -msg-pip-exe: - @echo "\n $(PIP) is required\n\n\ - Make sure you have updated pip installed, grab it from\n\ - https://pip.pypa.io or install it from your package\n\ - manager. On debian based OS these requirements are\n\ - installed by::\n\n\ - sudo -H apt-get install python$(PY)-pip\n" | $(FMT) - -ifeq ($(shell which $(PIP) >/dev/null 2>&1; echo $$?), 1) -pip-exe: msg-pip-exe - $(error The '$(PIP)' command was not found) -else -pip-exe: - @: -endif - -PHONY += msg-virtualenv-exe virtualenv-exe -msg-virtualenv-exe: - @echo "\n virtualenv is required\n\n\ - Make sure you have an updated virtualenv installed, grab it from\n\ - https://virtualenv.pypa.io/en/stable/installation/ or install it\n\ - via pip by::\n\n\ - pip install --user https://github.com/pypa/virtualenv/tarball/master\n" | $(FMT) - -ifeq ($(shell which virtualenv >/dev/null 2>&1; echo $$?), 1) -virtualenv-exe: msg-virtualenv-exe - $(error The 'virtualenv' command was not found) -else -virtualenv-exe: - @: -endif - # ------------------------------------------------------------------------------ # commands # ------------------------------------------------------------------------------ @@ -136,9 +108,9 @@ quiet_cmd_pyinstall = INSTALL $2 # $2 path to folder with setup.py, this uses pip from pyenv (not OS!) quiet_cmd_pyenvinstall = PYENV install $2 - cmd_pyenvinstall = $(PY_ENV_BIN)/pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) + cmd_pyenvinstall = $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) -# Uninstall the package. Since pip does not uninstall the no longer needed +# Uninstall the package. Since pip does not uninstall the no longer needed # depencies (something like autoremove) the depencies remain. # $2 package name to uninstall, this uses pip from the OS. @@ -147,7 +119,7 @@ quiet_cmd_pyuninstall = UNINSTALL $2 # $2 path to folder with setup.py, this uses pip from pyenv (not OS!) quiet_cmd_pyenvuninstall = PYENV uninstall $2 - cmd_pyenvuninstall = $(PY_ENV_BIN)/pip $(PIP_VERBOSE) uninstall --yes $2 + cmd_pyenvuninstall = $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) uninstall --yes $2 # $2 path to folder where virtualenv take place quiet_cmd_virtualenv = PYENV usage: $ source ./$@/bin/activate @@ -155,15 +127,15 @@ quiet_cmd_virtualenv = PYENV usage: $ source ./$@/bin/activate if [ ! -d "./$(PY_ENV)" ];then \ $(VIRTUALENV) $(VIRTUALENV_VERBOSE) $(VTENV_OPTS) $2; \ else \ - echo " PYENV using virtualenv from $2"; \ + echo "PYENV using virtualenv from $2"; \ fi # $2 path to lint quiet_cmd_pylint = LINT $@ - cmd_pylint = $(PY_ENV_BIN)/pylint --rcfile $(PYLINT_RC) $2 + cmd_pylint = $(PY_ENV_BIN)/python -m pylint --rcfile $(PYLINT_RC) $2 quiet_cmd_pytest = TEST $@ - cmd_pytest = $(PY_ENV_BIN)/tox -vv + cmd_pytest = $(PY_ENV_BIN)/python -m tox -vv # setuptools, pip, easy_install its a mess full of cracks, a documentation hell # and broken by design ... all sucks, I really, really hate all this ... aaargh! @@ -192,14 +164,14 @@ quiet_cmd_pytest = TEST $@ # .. _installing: https://packaging.python.org/tutorials/installing-packages/ # quiet_cmd_pybuild = BUILD $@ - cmd_pybuild = $(PY_ENV_BIN)/$(PYTHON) setup.py \ + cmd_pybuild = $(PY_ENV_BIN)/python setup.py \ sdist -d $(PYDIST) \ bdist_wheel --bdist-dir $(PYBUILD) -d $(PYDIST) quiet_cmd_pyclean = CLEAN $@ # remove 'build' folder since bdist_wheel does not care the --bdist-dir cmd_pyclean = \ - rm -rf $(PYDIST) $(PYBUILD) ./local ./.tox *.egg-info ;\ + rm -rf $(PYDIST) $(PYBUILD) $(PY_ENV) ./.tox *.egg-info ;\ find . -name '*.pyc' -exec rm -f {} + ;\ find . -name '*.pyo' -exec rm -f {} + ;\ find . -name __pycache__ -exec rm -rf {} + @@ -230,15 +202,16 @@ PHONY += pyclean pyclean: $(call cmd,pyclean) -# to build *local* environment, python and virtualenv from the OS is needed! +# to build *local* environment, python from the OS is needed! pyenv: $(PY_ENV) -$(PY_ENV): virtualenv-exe python-exe +$(PY_ENV): python-exe $(call cmd,virtualenv,$(PY_ENV)) - @$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) -r requirements.txt + $(Q)$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -U pip wheel pip setuptools + $(Q)$(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -r requirements.txt PHONY += pylint-exe pylint-exe: $(PY_ENV) - @$(PY_ENV_BIN)/pip $(PIP_VERBOSE) install pylint + @$(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install pylint PHONY += pylint pylint: pylint-exe @@ -262,15 +235,15 @@ pydebug: $(PY_ENV) # install / uninstall python objects into virtualenv (PYENV) pyenv-install: $(PY_ENV) - @$(PY_ENV_BIN)/pip $(PIP_VERBOSE) install -e . - @echo " ACTIVATE $(call normpath,$(PY_ENV_ACT)) " + @$(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e . + @echo "ACTIVATE $(call normpath,$(PY_ENV_ACT)) " pyenv-uninstall: $(PY_ENV) - @$(PY_ENV_BIN)/pip $(PIP_VERBOSE) uninstall --yes . + @$(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) uninstall --yes . # runs python interpreter from ./local/py<N>/bin/python pyenv-python: pyenv-install - cd ./local; ../$(PY_ENV_BIN)/python -i + $(PY_ENV_BIN)/python -i # With 'dependency_links=' setuptools supports dependencies on packages hosted # on other reposetories then PyPi, see "Packages Not On PyPI" [1]. The big @@ -284,7 +257,7 @@ pyenv-python: pyenv-install # https://github.com/pypa/twine PHONY += upload-pypi -upload-pypi: pyclean pybuild +upload-pypi: pyclean pyenvinstall pybuild @$(PY_ENV_BIN)/twine upload $(PYDIST)/* .PHONY: $(PHONY) diff --git a/utils/makefile.sphinx b/utils/makefile.sphinx new file mode 100644 index 00000000..2c1922fc --- /dev/null +++ b/utils/makefile.sphinx @@ -0,0 +1,216 @@ +# -*- coding: utf-8; mode: makefile-gmake -*- + +# You can set these variables from the command line. +SPHINXOPTS ?= +SPHINXBUILD ?= $(PY_ENV_BIN)/sphinx-build +SPHINX_CONF ?= conf.py + +DOCS_FOLDER ?= docs +DOCS_BUILD ?= build/docs +DOCS_DIST ?= dist/docs +GH_PAGES ?= gh-pages + +BOOKS_FOLDER ?= docs +BOOKS_DIST ?= dist/books + +ifeq ($(KBUILD_VERBOSE),1) + SPHINX_VERBOSE = "-v" +else + SPHINX_VERBOSE = +endif + +## SPHINXVERS variable +## =================== +## +## .. _requirement-specifiers: https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers +## +## Sphinx version to use, when building documentation. Set this when calling +## build target. The default value is empty (install latest), to select a +## specific version use a requirement-specifiers_. E.g. to build your target +## 'doc' with a select sphinx-doc_ version 1.7.9:: +## +## make SPHINXVERS='==1.7.9' docs +## +## To build with latest 1.7:: +## +## make SPHINXVERS='>=1.7,<1.8' docs +## +SPHINXVERS ?= + +docs-help: + @echo 'makefile.sphinx:' + @echo ' docs-clean - clean intermediate doc objects' + @echo ' $(GH_PAGES) - create & upload github pages' + @echo ' sphinx-pdf - run sphinx latex & pdf targets' + echo '' + @echo ' books/{name}.html : build only the HTML of document {name}' + @echo ' valid values for books/{name}.html are:' + @echo ' $(BOOKS_HTML)' | $(FMT) + @echo ' books/{name}.pdf : build only the PDF of document {name}' + @echo ' valid values for books/{name}.pdf are:' + @echo ' $(BOOKS_PDF) ' | $(FMT) + +# ------------------------------------------------------------------------------ +# requirements +# ------------------------------------------------------------------------------ + +sphinx-doc: $(PY_ENV) + @echo "PYENV installing Sphinx$(SPHINXVERS)" + $(Q)$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) 'Sphinx$(SPHINXVERS)' + +sphinx-live: $(PY_ENV) + @echo "PYENV installing Sphinx$(SPHINXVERS)" + $(Q)$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) 'Sphinx$(SPHINXVERS)' sphinx-autobuild + + +PHONY += msg-texlive texlive + +ifeq ($(shell which xelatex >/dev/null 2>&1; echo $$?), 1) +texlive: msg-TeXLive + $(error The 'xelatex' command was not found) +else +texlive: + @: +endif + +msg-texlive: + $(Q)echo "\n\ +The TeX/PDF output and the *math* extension require TexLive and latexmk:\n\n\ + Make sure you have a updated TeXLive with XeTeX engine installed, grab it\n\ + it from https://www.tug.org/texlive or install it from your package manager.\n\n\ + Install latexmk from your package manager or visit https://ctan.org/pkg/latexmk\n\n\ + Sphinx-doc produce (Xe)LaTeX files which might use additional TeX-packages\n\ + and fonts. To process these LaTeX files, a TexLive installation with the\n\ + additional packages is required. On debian based OS these requirements\n\ + are installed by::\n\n\ + sudo -H apt-get install\n\ + latexmk\n\ + texlive-base texlive-xetex texlive-latex-recommended\n\ + texlive-extra-utils dvipng ttf-dejavu\n" + +# ------------------------------------------------------------------------------ +# commands +# ------------------------------------------------------------------------------ + +# $2 sphinx builder e.g. "html" +# $3 path where configuration file (conf.py) is located +# $4 sourcedir +# $5 dest subfolder e.g. "man" for man pages at $(DOCS_DIST)/man + +quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5) + cmd_sphinx = SPHINX_CONF=$(abspath $4/$(SPHINX_CONF))\ + $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\ + -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5 + +quiet_cmd_sphinx_autobuild = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5) + cmd_sphinx_autobuild = PATH="$(PY_ENV_BIN):$(PATH)" $(PY_ENV_BIN)/sphinx-autobuild $(SPHINX_VERBOSE) --poll -B --host 0.0.0.0 --port 8080 $(SPHINXOPTS)\ + -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5 + +quiet_cmd_sphinx_clean = CLEAN $@ + cmd_sphinx_clean = rm -rf $(DOCS_BUILD) $(DOCS_DIST) $(GH_PAGES)/* $(GH_PAGES)/.buildinfo + +# ------------------------------------------------------------------------------ +# targets +# ------------------------------------------------------------------------------ + +# build PDF of whole documentation in: $(DOCS_DIST)/pdf + +PHONY += sphinx-pdf +sphinx-pdf: sphinx-latex + $(Q)cd $(DOCS_BUILD)/latex/; make all-pdf + $(Q)mkdir -p $(DOCS_DIST)/pdf + $(Q)cp $(DOCS_BUILD)/latex/*.pdf $(DOCS_DIST)/pdf + @echo "SPHINX *.pdf --> file://$(abspath $(DOCS_DIST)/pdf)" + +PHONY += sphinx-latex +sphinx-latex: texlive sphinx-doc + $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\ + -b latex \ + -c $(DOCS_FOLDER) \ + -d $(DOCS_BUILD)/.doctrees \ + $(DOCS_FOLDER) \ + $(DOCS_BUILD)/latex + +# Sphinx projects, we call them *books* (what is more common). Books are +# folders under $(BOOKS_FOLDER) containing a conf.py file. The HTML output goes +# to folder $(BOOKS_DIST)/<name> while PDF is placed (BOOKS_DIST)/<name>/pdf + +BOOKS=$(patsubst $(BOOKS_FOLDER)/%/conf.py,books/%,$(wildcard $(BOOKS_FOLDER)/*/conf.py)) + +# fine grained targets +BOOKS_HTML = $(patsubst %,%.html,$(BOOKS)) +BOOKS_CLEAN = $(patsubst %,%.clean,$(BOOKS)) +BOOKS_LATEX = $(patsubst %,%.latex,$(BOOKS)) +BOOKS_PDF = $(patsubst %,%.pdf,$(BOOKS)) +BOOKS_LIVE = $(patsubst %,%.live,$(BOOKS)) + +$(BOOKS_DIST): + mkdir -p $(BOOKS_DIST) + +PHONY += $(BOOKS_HTML) +$(BOOKS_HTML): sphinx-doc | $(BOOKS_DIST) + SPHINX_CONF=$(patsubst books/%.html,%,$@)/conf.py \ + $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\ + -b html \ + -c $(DOCS_FOLDER) \ + -d $(DOCS_BUILD)/books/$(patsubst books/%.html,%,$@)/.doctrees \ + $(patsubst books/%.html,%,$@) \ + $(BOOKS_DIST)/$(patsubst books/%.html,%,$@) + @echo "SPHINX $@ --> file://$(abspath $(BOOKS_DIST)/$(patsubst books/%.html,%,$@))" + +PHONY += $(BOOKS_HTML) +$(BOOKS_LIVE): sphinx-live | $(BOOKS_DIST) + PATH="$(PY_ENV_BIN):$(PATH)" \ + SPHINX_CONF=$(patsubst books/%.live,%,$@)/conf.py \ + $(PY_ENV_BIN)/sphinx-autobuild --poll -B --host 0.0.0.0 --port 8080 $(SPHINX_VERBOSE) $(SPHINXOPTS)\ + -b html \ + -c $(DOCS_FOLDER) \ + -d $(DOCS_BUILD)/books/$(patsubst books/%.live,%,$@)/.doctrees \ + $(patsubst books/%.live,%,$@) \ + $(BOOKS_DIST)/$(patsubst books/%.live,%,$@) + +$(BOOKS_PDF): %.pdf : %.latex + $(Q)cd $(DOCS_BUILD)/latex/$(patsubst books/%.pdf,%,$@); make all-pdf + $(Q)mkdir -p $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@)/pdf + $(Q)cp -v $(DOCS_BUILD)/latex/$(patsubst books/%.pdf,%,$@)/*.pdf $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@)/pdf + @echo "SPHINX $@ --> file://$(abspath $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@))/pdf" + +PHONY += $(BOOKS_LATEX) +$(BOOKS_LATEX): sphinx-doc | $(BOOKS_DIST) + SPHINX_CONF=$(patsubst books/%.latex,%,$@)/conf.py \ + $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\ + -b latex \ + -c $(DOCS_FOLDER) \ + -d $(DOCS_BUILD)/books/$(patsubst books/%.latex,%,$@)/.doctrees \ + $(patsubst books/%.latex,%,$@) \ + $(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@) + @echo "SPHINX $@ --> file://$(abspath $(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@))" + +$(BOOKS_CLEAN): + $(Q)rm -rf $(BOOKS_DIST)/$(patsubst books/%.clean,%,$@) \ + $(DOCS_BUILD)/books/$(patsubst books/%.clean,%,$@) \ + $(DOCS_BUILD)/latex/$(patsubst books/%.clean,%,$@) + +# github pages + +PHONY += $(GH_PAGES) +$(GH_PAGES):: + $(MAKE) docs + [ -d "gh-pages/.git" ] || git clone $(GIT_URL) gh-pages + -cd $(GH_PAGES); git checkout gh-pages >/dev/null + -cd $(GH_PAGES); git pull + -cd $(GH_PAGES); ls -A | grep -v '.git$$' | xargs rm -rf + cp -r $(DOCS_DIST)/* $(GH_PAGES)/ + touch $(GH_PAGES)/.nojekyll + echo "<html><head><META http-equiv='refresh' content='0;URL=index.html'></head></html>" > $(GH_PAGES)/404.html + cd $(GH_PAGES);\ + git add --all . ;\ + git commit -m "gh-pages: updated" ;\ + git push origin gh-pages + + +PHONY += docs-clean +docs-clean: $(BOOKS_CLEAN) + $(call cmd,sphinx_clean) + +.PHONY: $(PHONY)