on master help sign in
tests for _fetch_supported_languages in engines

and refactor method to make it testable without making requests

commitaf35eee10b98940c51c6e5e18629de514b4bd48d authormarc <a01200356@itesm.mx> dateThu 15 Dec 2016, 00:34 (10 years ago) parente0c270b
27 files changed+387−3388
searx/data/engines_languages.json+1−3256 searx/engines/.yandex.py.swp searx/engines/__init__.py+10−3 searx/engines/bing.py+2−4 searx/engines/bing_images.py+1−1 searx/engines/bing_news.py+1−1 searx/engines/dailymotion.py+2−3 searx/engines/duckduckgo.py+2−3 searx/engines/duckduckgo_definitions.py+1−1 searx/engines/gigablast.py+2−4 searx/engines/google.py+5−7 searx/engines/google_news.py+1−1 searx/engines/swisscows.py+4−4 searx/engines/wikidata.py+1−1 searx/engines/wikipedia.py+2−4 searx/engines/yahoo.py+3−5 searx/engines/yahoo_news.py+1−1 searx/languages.py+25−85 tests/unit/engines/test_bing.py+32 tests/unit/engines/test_dailymotion.py+37 tests/unit/engines/test_duckduckgo.py+14 tests/unit/engines/test_gigablast.py+25 tests/unit/engines/test_google.py+57 tests/unit/engines/test_swisscows.py+27 tests/unit/engines/test_wikipedia.py+93 tests/unit/engines/test_yahoo.py+30 utils/fetch_languages.py+8−4
searx/data/engines_languages.json+1−3256
@@ -1,3256 +1 @@
1−{
2− "google news": {
3− "gu": {
4− "name": "ગુજરાતી"
5− },
6− "mfe": {
7− "name": "Kreol Morisien"
8− },
9− "gd": {
10− "name": "Gàidhlig"
11− },
12− "ga": {
13− "name": "Gaeilge"
14− },
15− "gn": {
16− "name": "Guarani"
17− },
18− "gl": {
19− "name": "Galego"
20− },
21− "lg": {
22− "name": "Luganda"
23− },
24− "la": {
25− "name": "Latin"
26− },
27− "ln": {
28− "name": "Lingála"
29− },
30− "tw": {
31− "name": "Twi"
32− },
33− "tt": {
34− "name": "Tatar"
35− },
36− "tr": {
37− "name": "Türkçe"
38− },
39− "lv": {
40− "name": "Latviešu"
41− },
42− "to": {
43− "name": "Lea Fakatonga"
44− },
45− "lt": {
46− "name": "Lietuvių"
47− },
48− "tk": {
49− "name": "Turkmen"
50− },
51− "th": {
52− "name": "ไทย"
53− },
54− "pcm": {
55− "name": "Nigerian Pidgin"
56− },
57− "tg": {
58− "name": "Tajik"
59− },
60− "te": {
61− "name": "తెలుగు"
62− },
63− "haw": {
64− "name": "ʻŌlelo HawaiʻI"
65− },
66− "yi": {
67− "name": "ייִדיש"
68− },
69− "ceb": {
70− "name": "Cebuano"
71− },
72− "yo": {
73− "name": "Èdè Yorùbá"
74− },
75− "de": {
76− "name": "Deutsch"
77− },
78− "ko": {
79− "name": "한국어"
80− },
81− "da": {
82− "name": "Dansk"
83− },
84− "crs": {
85− "name": "Seychellois Creole"
86− },
87− "qu": {
88− "name": "Runasimi"
89− },
90− "bem": {
91− "name": "Ichibemba"
92− },
93− "xx": {
94− "name": "Pirate"
95− },
96− "ban": {
97− "name": "Balinese"
98− },
99− "el": {
100− "name": "Ελληνικά"
101− },
102− "eo": {
103− "name": "Esperanto"
104− },
105− "en": {
106− "name": "English"
107− },
108− "zh": {
109− "name": "中文 (繁體)"
110− },
111− "ee": {
112− "name": "Eʋegbe"
113− },
114− "eu": {
115− "name": "Euskara"
116− },
117− "et": {
118− "name": "Eesti"
119− },
120− "es": {
121− "name": "Español (Latinoamérica)"
122− },
123− "ru": {
124− "name": "Русский"
125− },
126− "rw": {
127− "name": "Kinyarwanda"
128− },
129− "lua": {
130− "name": "Luba-Lulua"
131− },
132− "rm": {
133− "name": "Rumantsch"
134− },
135− "rn": {
136− "name": "Ikirundi"
137− },
138− "ro": {
139− "name": "Română"
140− },
141− "be": {
142− "name": "Беларуская"
143− },
144− "bg": {
145− "name": "Български"
146− },
147− "uk": {
148− "name": "Українська"
149− },
150− "ps": {
151− "name": "پښتو"
152− },
153− "wo": {
154− "name": "Wolof"
155− },
156− "bn": {
157− "name": "বাংলা"
158− },
159− "jw": {
160− "name": "Javanese"
161− },
162− "tum": {
163− "name": "Tumbuka"
164− },
165− "br": {
166− "name": "Brezhoneg"
167− },
168− "bs": {
169− "name": "Bosanski"
170− },
171− "ja": {
172− "name": "日本語"
173− },
174− "om": {
175− "name": "Oromoo"
176− },
177− "ach": {
178− "name": "Acoli"
179− },
180− "oc": {
181− "name": "Occitan"
182− },
183− "kri": {
184− "name": "Krio (Sierra Leone)"
185− },
186− "lo": {
187− "name": "ລາວ"
188− },
189− "tlh": {
190− "name": "Klingon"
191− },
192− "or": {
193− "name": "ଓଡ଼ିଆ"
194− },
195− "xh": {
196− "name": "Xhosa"
197− },
198− "co": {
199− "name": "Corsican"
200− },
201− "nso": {
202− "name": "Northern Sotho"
203− },
204− "ca": {
205− "name": "Català"
206− },
207− "cy": {
208− "name": "Cymraeg"
209− },
210− "cs": {
211− "name": "Čeština"
212− },
213− "tn": {
214− "name": "Tswana"
215− },
216− "pt": {
217− "name": "Português (Portugal)"
218− },
219− "tl": {
220− "name": "Filipino"
221− },
222− "chr": {
223− "name": "ᏣᎳᎩ"
224− },
225− "pa": {
226− "name": "ਪੰਜਾਬੀ"
227− },
228− "loz": {
229− "name": "Lozi"
230− },
231− "is": {
232− "name": "Íslenska"
233− },
234− "pl": {
235− "name": "Polski"
236− },
237− "hy": {
238− "name": "Հայերեն"
239− },
240− "hr": {
241− "name": "Hrvatski"
242− },
243− "ti": {
244− "name": "ትግርኛ"
245− },
246− "ht": {
247− "name": "Haitian Creole"
248− },
249− "hu": {
250− "name": "Magyar"
251− },
252− "hi": {
253− "name": "हिन्दी"
254− },
255− "ha": {
256− "name": "Hausa"
257− },
258− "gaa": {
259− "name": "Ga"
260− },
261− "mg": {
262− "name": "Malagasy"
263− },
264− "uz": {
265− "name": "O‘Zbek"
266− },
267− "ml": {
268− "name": "മലയാളം"
269− },
270− "mn": {
271− "name": "Монгол"
272− },
273− "mi": {
274− "name": "Maori"
275− },
276− "mk": {
277− "name": "Македонски"
278− },
279− "ur": {
280− "name": "اردو"
281− },
282− "mt": {
283− "name": "Malti"
284− },
285− "ms": {
286− "name": "Bahasa Melayu"
287− },
288− "mr": {
289− "name": "मराठी"
290− },
291− "ug": {
292− "name": "ئۇيغۇرچە"
293− },
294− "ta": {
295− "name": "தமிழ்"
296− },
297− "my": {
298− "name": "ဗမာ"
299− },
300− "af": {
301− "name": "Afrikaans"
302− },
303− "vi": {
304− "name": "Tiếng Việt"
305− },
306− "ak": {
307− "name": "Akan"
308− },
309− "am": {
310− "name": "አማርኛ"
311− },
312− "it": {
313− "name": "Italiano"
314− },
315− "iw": {
316− "name": "עברית"
317− },
318− "kn": {
319− "name": "ಕನ್ನಡ"
320− },
321− "ar": {
322− "name": "العربية"
323− },
324− "km": {
325− "name": "ខ្មែរ"
326− },
327− "zu": {
328− "name": "Isizulu"
329− },
330− "ia": {
331− "name": "Interlingua"
332− },
333− "az": {
334− "name": "Azərbaycan Dili"
335− },
336− "id": {
337− "name": "Indonesia"
338− },
339− "ig": {
340− "name": "Igbo"
341− },
342− "nl": {
343− "name": "Nederlands"
344− },
345− "nn": {
346− "name": "Nynorsk"
347− },
348− "no": {
349− "name": "Norsk"
350− },
351− "ne": {
352− "name": "नेपाली"
353− },
354− "ny": {
355− "name": "Nyanja"
356− },
357− "nyn": {
358− "name": "Runyankore"
359− },
360− "fr": {
361− "name": "Français"
362− },
363− "fy": {
364− "name": "West-Frysk"
365− },
366− "fa": {
367− "name": "فارسی"
368− },
369− "fi": {
370− "name": "Suomi"
371− },
372− "fo": {
373− "name": "Føroyskt"
374− },
375− "ka": {
376− "name": "ქართული"
377− },
378− "kg": {
379− "name": "Kongo"
380− },
381− "ckb": {
382− "name": "Central Kurdish"
383− },
384− "kk": {
385− "name": "Қазақ Тілі"
386− },
387− "sr": {
388− "name": "Српски"
389− },
390− "sq": {
391− "name": "Shqip"
392− },
393− "sw": {
394− "name": "Kiswahili"
395− },
396− "sv": {
397− "name": "Svenska"
398− },
399− "su": {
400− "name": "Sundanese"
401− },
402− "st": {
403− "name": "Southern Sotho"
404− },
405− "sk": {
406− "name": "Slovenčina"
407− },
408− "si": {
409− "name": "සිංහල"
410− },
411− "so": {
412− "name": "Soomaali"
413− },
414− "sn": {
415− "name": "Chishona"
416− },
417− "sl": {
418− "name": "Slovenščina"
419− },
420− "ky": {
421− "name": "Кыргызча"
422− },
423− "sd": {
424− "name": "Sindhi"
425− }
426− },
427− "dailymotion": {
428− "gv": {
429− "english_name": "Manx"
430− },
431− "gu": {
432− "name": "ગુજરાતી",
433− "english_name": "Gujarati"
434− },
435− "gd": {
436− "english_name": "Gaelic, Scottish"
437− },
438− "ga": {
439− "name": "Gaeilge",
440− "english_name": "Irish"
441− },
442− "gn": {
443− "english_name": "Guarani"
444− },
445− "gl": {
446− "name": "Galego",
447− "english_name": "Galician"
448− },
449− "lg": {
450− "english_name": "Ganda"
451− },
452− "lb": {
453− "english_name": "Luxembourgish"
454− },
455− "la": {
456− "english_name": "Latin"
457− },
458− "ln": {
459− "english_name": "Lingala"
460− },
461− "lo": {
462− "english_name": "Lao"
463− },
464− "tt": {
465− "name": "Татарча",
466− "english_name": "Tatar"
467− },
468− "tr": {
469− "name": "Türkçe",
470− "english_name": "Turkish"
471− },
472− "ts": {
473− "english_name": "Tsonga"
474− },
475− "li": {
476− "english_name": "Limburgan"
477− },
478− "lv": {
479− "name": "Latviešu",
480− "english_name": "Latvian"
481− },
482− "to": {
483− "english_name": "Tonga (Tonga Islands)"
484− },
485− "lt": {
486− "name": "Lietuvių",
487− "english_name": "Lithuanian"
488− },
489− "lu": {
490− "english_name": "Luba-Katanga"
491− },
492− "tk": {
493− "english_name": "Turkmen"
494− },
495− "th": {
496− "name": "ไทย",
497− "english_name": "Thai"
498− },
499− "ti": {
500− "name": "ትግርኛ",
501− "english_name": "Tigrinya"
502− },
503− "tg": {
504− "english_name": "Tajik"
505− },
506− "te": {
507− "english_name": "Telugu"
508− },
509− "ta": {
510− "name": "தமிழ்",
511− "english_name": "Tamil"
512− },
513− "yi": {
514− "english_name": "Yiddish"
515− },
516− "yo": {
517− "english_name": "Yoruba"
518− },
519− "de": {
520− "name": "Deutsch",
521− "english_name": "German"
522− },
523− "da": {
524− "name": "Dansk",
525− "english_name": "Danish"
526− },
527− "dz": {
528− "english_name": "Dzongkha"
529− },
530− "st": {
531− "english_name": "Sotho, Southern"
532− },
533− "dv": {
534− "english_name": "Dhivehi"
535− },
536− "qu": {
537− "english_name": "Quechua"
538− },
539− "el": {
540− "name": "Ελληνικά",
541− "english_name": "Greek, Modern (1453-)"
542− },
543− "eo": {
544− "name": "Esperanto",
545− "english_name": "Esperanto"
546− },
547− "en": {
548− "english_name": "English"
549− },
550− "zh": {
551− "name": "中文",
552− "english_name": "Chinese"
553− },
554− "ee": {
555− "english_name": "Ewe"
556− },
557− "za": {
558− "english_name": "Zhuang"
559− },
560− "mh": {
561− "english_name": "Marshallese"
562− },
563− "uk": {
564− "name": "українська",
565− "english_name": "Ukrainian"
566− },
567− "eu": {
568− "name": "Euskara",
569− "english_name": "Basque"
570− },
571− "et": {
572− "name": "Eesti",
573− "english_name": "Estonian"
574− },
575− "es": {
576− "name": "Español",
577− "english_name": "Spanish"
578− },
579− "ru": {
580− "name": "русский",
581− "english_name": "Russian"
582− },
583− "rw": {
584− "name": "Ikinyarwanda",
585− "english_name": "Kinyarwanda"
586− },
587− "rm": {
588− "english_name": "Romansh"
589− },
590− "rn": {
591− "english_name": "Rundi"
592− },
593− "ro": {
594− "name": "Română",
595− "english_name": "Romanian"
596− },
597− "bn": {
598− "name": "বাংলা",
599− "english_name": "Bengali"
600− },
601− "be": {
602− "english_name": "Belarusian"
603− },
604− "bg": {
605− "name": "Български",
606− "english_name": "Bulgarian"
607− },
608− "ba": {
609− "english_name": "Bashkir"
610− },
611− "wa": {
612− "name": "Walon",
613− "english_name": "Walloon"
614− },
615− "wo": {
616− "english_name": "Wolof"
617− },
618− "bm": {
619− "english_name": "Bambara"
620− },
621− "jv": {
622− "english_name": "Javanese"
623− },
624− "bo": {
625− "english_name": "Tibetan"
626− },
627− "bi": {
628− "english_name": "Bislama"
629− },
630− "br": {
631− "name": "Brezhoneg",
632− "english_name": "Breton"
633− },
634− "bs": {
635− "name": "Bosnian",
636− "english_name": "Bosnian"
637− },
638− "ja": {
639− "name": "日本語",
640− "english_name": "Japanese"
641− },
642− "om": {
643− "english_name": "Oromo"
644− },
645− "oj": {
646− "english_name": "Ojibwa"
647− },
648− "ty": {
649− "english_name": "Tahitian"
650− },
651− "oc": {
652− "name": "Occitan",
653− "english_name": "Occitan"
654− },
655− "tw": {
656− "english_name": "Twi"
657− },
658− "os": {
659− "english_name": "Ossetian"
660− },
661− "or": {
662− "name": "Oriya",
663− "english_name": "Oriya"
664− },
665− "xh": {
666− "name": "Xhosa",
667− "english_name": "Xhosa"
668− },
669− "ch": {
670− "english_name": "Chamorro"
671− },
672− "co": {
673− "english_name": "Corsican"
674− },
675− "ca": {
676− "name": "Català",
677− "english_name": "Catalan"
678− },
679− "ce": {
680− "english_name": "Chechen"
681− },
682− "cy": {
683− "name": "Cymraeg",
684− "english_name": "Welsh"
685− },
686− "cs": {
687− "name": "čeština",
688− "english_name": "Czech"
689− },
690− "cr": {
691− "english_name": "Cree"
692− },
693− "cv": {
694− "english_name": "Chuvash"
695− },
696− "cu": {
697− "english_name": "Slavic, Church"
698− },
699− "ve": {
700− "name": "Venda",
701− "english_name": "Venda"
702− },
703− "ps": {
704− "name": "Pushto",
705− "english_name": "Pushto"
706− },
707− "pt": {
708− "name": "Português",
709− "english_name": "Portuguese"
710− },
711− "tl": {
712− "english_name": "Tagalog"
713− },
714− "pa": {
715− "name": "ਪੰਜਾਬੀ",
716− "english_name": "Panjabi"
717− },
718− "vi": {
719− "name": "Tiếng Việt",
720− "english_name": "Vietnamese"
721− },
722− "pi": {
723− "english_name": "Pali"
724− },
725− "is": {
726− "name": "Íslenska",
727− "english_name": "Icelandic"
728− },
729− "pl": {
730− "name": "polski",
731− "english_name": "Polish"
732− },
733− "hz": {
734− "english_name": "Herero"
735− },
736− "hy": {
737− "english_name": "Armenian"
738− },
739− "hr": {
740− "name": "hrvatski",
741− "english_name": "Croatian"
742− },
743− "iu": {
744− "english_name": "Inuktitut"
745− },
746− "ht": {
747− "english_name": "Haitian"
748− },
749− "hu": {
750− "name": "magyar",
751− "english_name": "Hungarian"
752− },
753− "hi": {
754− "name": "हिंदी",
755− "english_name": "Hindi"
756− },
757− "ho": {
758− "english_name": "Hiri Motu"
759− },
760− "ha": {
761− "english_name": "Hausa"
762− },
763− "he": {
764− "name": "עברית",
765− "english_name": "Hebrew"
766− },
767− "mg": {
768− "english_name": "Malagasy"
769− },
770− "uz": {
771− "english_name": "Uzbek"
772− },
773− "ml": {
774− "english_name": "Malayalam"
775− },
776− "mn": {
777− "name": "Монгол",
778− "english_name": "Mongolian"
779− },
780− "mi": {
781− "name": "Reo Māori",
782− "english_name": "Maori"
783− },
784− "ik": {
785− "english_name": "Inupiaq"
786− },
787− "mk": {
788− "name": "Македонски",
789− "english_name": "Macedonian"
790− },
791− "ur": {
792− "english_name": "Urdu"
793− },
794− "mt": {
795− "name": "Malti",
796− "english_name": "Maltese"
797− },
798− "ms": {
799− "name": "Malay",
800− "english_name": "Malay"
801− },
802− "mr": {
803− "name": "मराठी",
804− "english_name": "Marathi"
805− },
806− "ug": {
807− "english_name": "Uighur"
808− },
809− "my": {
810− "english_name": "Burmese"
811− },
812− "sq": {
813− "english_name": "Albanian"
814− },
815− "ae": {
816− "english_name": "Avestan"
817− },
818− "ss": {
819− "english_name": "Swati"
820− },
821− "af": {
822− "name": "Afrikaans",
823− "english_name": "Afrikaans"
824− },
825− "tn": {
826− "english_name": "Tswana"
827− },
828− "sw": {
829− "english_name": "Swahili (macrolanguage)"
830− },
831− "ak": {
832− "english_name": "Akan"
833− },
834− "am": {
835− "name": "አማርኛ",
836− "english_name": "Amharic"
837− },
838− "it": {
839− "name": "Italiano",
840− "english_name": "Italian"
841− },
842− "an": {
843− "english_name": "Aragonese"
844− },
845− "ii": {
846− "english_name": "Yi, Sichuan"
847− },
848− "ia": {
849− "english_name": "Interlingua"
850− },
851− "as": {
852− "english_name": "Assamese"
853− },
854− "ar": {
855− "name": "العربية",
856− "english_name": "Arabic"
857− },
858− "su": {
859− "english_name": "Sundanese"
860− },
861− "io": {
862− "english_name": "Ido"
863− },
864− "av": {
865− "english_name": "Avaric"
866− },
867− "ay": {
868− "english_name": "Aymara"
869− },
870− "az": {
871− "name": "Azerbaijani",
872− "english_name": "Azerbaijani"
873− },
874− "ie": {
875− "english_name": "Interlingue"
876− },
877− "id": {
878− "name": "Indonesian",
879− "english_name": "Indonesian"
880− },
881− "ig": {
882− "english_name": "Igbo"
883− },
884− "sk": {
885− "name": "Slovenský",
886− "english_name": "Slovak"
887− },
888− "sr": {
889− "name": "српски",
890− "english_name": "Serbian"
891− },
892− "nl": {
893− "name": "Nederlands",
894− "english_name": "Dutch"
895− },
896− "nn": {
897− "name": "Norwegian Nynorsk",
898− "english_name": "Norwegian Nynorsk"
899− },
900− "no": {
901− "english_name": "Norwegian"
902− },
903− "na": {
904− "english_name": "Nauru"
905− },
906− "nb": {
907− "name": "Norwegian Bokmål",
908− "english_name": "Norwegian Bokmål"
909− },
910− "nd": {
911− "english_name": "Ndebele, North"
912− },
913− "ne": {
914− "english_name": "Nepali (macrolanguage)"
915− },
916− "ng": {
917− "english_name": "Ndonga"
918− },
919− "ny": {
920− "english_name": "Nyanja"
921− },
922− "vo": {
923− "english_name": "Volapük"
924− },
925− "zu": {
926− "name": "Isi-Zulu",
927− "english_name": "Zulu"
928− },
929− "so": {
930− "english_name": "Somali"
931− },
932− "nr": {
933− "english_name": "Ndebele, South"
934− },
935− "nv": {
936− "english_name": "Navajo"
937− },
938− "sn": {
939− "english_name": "Shona"
940− },
941− "fr": {
942− "name": "français",
943− "english_name": "French"
944− },
945− "sm": {
946− "english_name": "Samoan"
947− },
948− "fy": {
949− "english_name": "Frisian, Western"
950− },
951− "sv": {
952− "name": "Svenska",
953− "english_name": "Swedish"
954− },
955− "fa": {
956− "name": "فارسی",
957− "english_name": "Persian"
958− },
959− "ff": {
960− "english_name": "Fulah"
961− },
962− "fi": {
963− "name": "suomi",
964− "english_name": "Finnish"
965− },
966− "fj": {
967− "english_name": "Fijian"
968− },
969− "sa": {
970− "english_name": "Sanskrit"
971− },
972− "fo": {
973− "english_name": "Faroese"
974− },
975− "ka": {
976− "english_name": "Georgian"
977− },
978− "kg": {
979− "english_name": "Kongo"
980− },
981− "kk": {
982− "english_name": "Kazakh"
983− },
984− "kj": {
985− "english_name": "Kuanyama"
986− },
987− "ki": {
988− "english_name": "Kikuyu"
989− },
990− "ko": {
991− "name": "한국어",
992− "english_name": "Korean"
993− },
994− "kn": {
995− "name": "ಕನ್ನಡ",
996− "english_name": "Kannada"
997− },
998− "km": {
999− "english_name": "Khmer, Central"
1000− },
1001− "kl": {
1002− "english_name": "Kalaallisut"
1003− },
1004− "ks": {
1005− "english_name": "Kashmiri"
1006− },
1007− "kr": {
1008− "english_name": "Kanuri"
1009− },
1010− "si": {
1011− "english_name": "Sinhala"
1012− },
1013− "sh": {
1014− "name": "Serbo-Croatian",
1015− "english_name": "Serbo-Croatian"
1016− },
1017− "kw": {
1018− "english_name": "Cornish"
1019− },
1020− "kv": {
1021− "english_name": "Komi"
1022− },
1023− "ku": {
1024− "english_name": "Kurdish"
1025− },
1026− "sl": {
1027− "name": "slovenščina",
1028− "english_name": "Slovenian"
1029− },
1030− "sc": {
1031− "english_name": "Sardinian"
1032− },
1033− "ky": {
1034− "english_name": "Kirghiz"
1035− },
1036− "sg": {
1037− "english_name": "Sango"
1038− },
1039− "se": {
1040− "english_name": "Sami, Northern"
1041− },
1042− "sd": {
1043− "english_name": "Sindhi"
1044− }
1045− },
1046− "google": {
1047− "gu": {
1048− "name": "ગુજરાતી"
1049− },
1050− "mfe": {
1051− "name": "Kreol Morisien"
1052− },
1053− "gd": {
1054− "name": "Gàidhlig"
1055− },
1056− "ga": {
1057− "name": "Gaeilge"
1058− },
1059− "gn": {
1060− "name": "Guarani"
1061− },
1062− "gl": {
1063− "name": "Galego"
1064− },
1065− "lg": {
1066− "name": "Luganda"
1067− },
1068− "la": {
1069− "name": "Latin"
1070− },
1071− "ln": {
1072− "name": "Lingála"
1073− },
1074− "tw": {
1075− "name": "Twi"
1076− },
1077− "tt": {
1078− "name": "Tatar"
1079− },
1080− "tr": {
1081− "name": "Türkçe"
1082− },
1083− "lv": {
1084− "name": "Latviešu"
1085− },
1086− "to": {
1087− "name": "Lea Fakatonga"
1088− },
1089− "lt": {
1090− "name": "Lietuvių"
1091− },
1092− "tk": {
1093− "name": "Turkmen"
1094− },
1095− "th": {
1096− "name": "ไทย"
1097− },
1098− "pcm": {
1099− "name": "Nigerian Pidgin"
1100− },
1101− "tg": {
1102− "name": "Tajik"
1103− },
1104− "te": {
1105− "name": "తెలుగు"
1106− },
1107− "haw": {
1108− "name": "ʻŌlelo HawaiʻI"
1109− },
1110− "yi": {
1111− "name": "ייִדיש"
1112− },
1113− "ceb": {
1114− "name": "Cebuano"
1115− },
1116− "yo": {
1117− "name": "Èdè Yorùbá"
1118− },
1119− "de": {
1120− "name": "Deutsch"
1121− },
1122− "ko": {
1123− "name": "한국어"
1124− },
1125− "da": {
1126− "name": "Dansk"
1127− },
1128− "crs": {
1129− "name": "Seychellois Creole"
1130− },
1131− "qu": {
1132− "name": "Runasimi"
1133− },
1134− "bem": {
1135− "name": "Ichibemba"
1136− },
1137− "xx": {
1138− "name": "Pirate"
1139− },
1140− "ban": {
1141− "name": "Balinese"
1142− },
1143− "el": {
1144− "name": "Ελληνικά"
1145− },
1146− "eo": {
1147− "name": "Esperanto"
1148− },
1149− "en": {
1150− "name": "English"
1151− },
1152− "zh": {
1153− "name": "中文 (繁體)"
1154− },
1155− "ee": {
1156− "name": "Eʋegbe"
1157− },
1158− "eu": {
1159− "name": "Euskara"
1160− },
1161− "et": {
1162− "name": "Eesti"
1163− },
1164− "es": {
1165− "name": "Español (Latinoamérica)"
1166− },
1167− "ru": {
1168− "name": "Русский"
1169− },
1170− "rw": {
1171− "name": "Kinyarwanda"
1172− },
1173− "lua": {
1174− "name": "Luba-Lulua"
1175− },
1176− "rm": {
1177− "name": "Rumantsch"
1178− },
1179− "rn": {
1180− "name": "Ikirundi"
1181− },
1182− "ro": {
1183− "name": "Română"
1184− },
1185− "be": {
1186− "name": "Беларуская"
1187− },
1188− "bg": {
1189− "name": "Български"
1190− },
1191− "uk": {
1192− "name": "Українська"
1193− },
1194− "ps": {
1195− "name": "پښتو"
1196− },
1197− "wo": {
1198− "name": "Wolof"
1199− },
1200− "bn": {
1201− "name": "বাংলা"
1202− },
1203− "jw": {
1204− "name": "Javanese"
1205− },
1206− "tum": {
1207− "name": "Tumbuka"
1208− },
1209− "br": {
1210− "name": "Brezhoneg"
1211− },
1212− "bs": {
1213− "name": "Bosanski"
1214− },
1215− "ja": {
1216− "name": "日本語"
1217− },
1218− "om": {
1219− "name": "Oromoo"
1220− },
1221− "ach": {
1222− "name": "Acoli"
1223− },
1224− "oc": {
1225− "name": "Occitan"
1226− },
1227− "kri": {
1228− "name": "Krio (Sierra Leone)"
1229− },
1230− "lo": {
1231− "name": "ລາວ"
1232− },
1233− "tlh": {
1234− "name": "Klingon"
1235− },
1236− "or": {
1237− "name": "ଓଡ଼ିଆ"
1238− },
1239− "xh": {
1240− "name": "Xhosa"
1241− },
1242− "co": {
1243− "name": "Corsican"
1244− },
1245− "nso": {
1246− "name": "Northern Sotho"
1247− },
1248− "ca": {
1249− "name": "Català"
1250− },
1251− "cy": {
1252− "name": "Cymraeg"
1253− },
1254− "cs": {
1255− "name": "Čeština"
1256− },
1257− "tn": {
1258− "name": "Tswana"
1259− },
1260− "pt": {
1261− "name": "Português (Portugal)"
1262− },
1263− "tl": {
1264− "name": "Filipino"
1265− },
1266− "chr": {
1267− "name": "ᏣᎳᎩ"
1268− },
1269− "pa": {
1270− "name": "ਪੰਜਾਬੀ"
1271− },
1272− "loz": {
1273− "name": "Lozi"
1274− },
1275− "is": {
1276− "name": "Íslenska"
1277− },
1278− "pl": {
1279− "name": "Polski"
1280− },
1281− "hy": {
1282− "name": "Հայերեն"
1283− },
1284− "hr": {
1285− "name": "Hrvatski"
1286− },
1287− "ti": {
1288− "name": "ትግርኛ"
1289− },
1290− "ht": {
1291− "name": "Haitian Creole"
1292− },
1293− "hu": {
1294− "name": "Magyar"
1295− },
1296− "hi": {
1297− "name": "हिन्दी"
1298− },
1299− "ha": {
1300− "name": "Hausa"
1301− },
1302− "gaa": {
1303− "name": "Ga"
1304− },
1305− "mg": {
1306− "name": "Malagasy"
1307− },
1308− "uz": {
1309− "name": "O‘Zbek"
1310− },
1311− "ml": {
1312− "name": "മലയാളം"
1313− },
1314− "mn": {
1315− "name": "Монгол"
1316− },
1317− "mi": {
1318− "name": "Maori"
1319− },
1320− "mk": {
1321− "name": "Македонски"
1322− },
1323− "ur": {
1324− "name": "اردو"
1325− },
1326− "mt": {
1327− "name": "Malti"
1328− },
1329− "ms": {
1330− "name": "Bahasa Melayu"
1331− },
1332− "mr": {
1333− "name": "मराठी"
1334− },
1335− "ug": {
1336− "name": "ئۇيغۇرچە"
1337− },
1338− "ta": {
1339− "name": "தமிழ்"
1340− },
1341− "my": {
1342− "name": "ဗမာ"
1343− },
1344− "af": {
1345− "name": "Afrikaans"
1346− },
1347− "vi": {
1348− "name": "Tiếng Việt"
1349− },
1350− "ak": {
1351− "name": "Akan"
1352− },
1353− "am": {
1354− "name": "አማርኛ"
1355− },
1356− "it": {
1357− "name": "Italiano"
1358− },
1359− "iw": {
1360− "name": "עברית"
1361− },
1362− "kn": {
1363− "name": "ಕನ್ನಡ"
1364− },
1365− "ar": {
1366− "name": "العربية"
1367− },
1368− "km": {
1369− "name": "ខ្មែរ"
1370− },
1371− "zu": {
1372− "name": "Isizulu"
1373− },
1374− "ia": {
1375− "name": "Interlingua"
1376− },
1377− "az": {
1378− "name": "Azərbaycan Dili"
1379− },
1380− "id": {
1381− "name": "Indonesia"
1382− },
1383− "ig": {
1384− "name": "Igbo"
1385− },
1386− "nl": {
1387− "name": "Nederlands"
1388− },
1389− "nn": {
1390− "name": "Nynorsk"
1391− },
1392− "no": {
1393− "name": "Norsk"
1394− },
1395− "ne": {
1396− "name": "नेपाली"
1397− },
1398− "ny": {
1399− "name": "Nyanja"
1400− },
1401− "nyn": {
1402− "name": "Runyankore"
1403− },
1404− "fr": {
1405− "name": "Français"
1406− },
1407− "fy": {
1408− "name": "West-Frysk"
1409− },
1410− "fa": {
1411− "name": "فارسی"
1412− },
1413− "fi": {
1414− "name": "Suomi"
1415− },
1416− "fo": {
1417− "name": "Føroyskt"
1418− },
1419− "ka": {
1420− "name": "ქართული"
1421− },
1422− "kg": {
1423− "name": "Kongo"
1424− },
1425− "ckb": {
1426− "name": "Central Kurdish"
1427− },
1428− "kk": {
1429− "name": "Қазақ Тілі"
1430− },
1431− "sr": {
1432− "name": "Српски"
1433− },
1434− "sq": {
1435− "name": "Shqip"
1436− },
1437− "sw": {
1438− "name": "Kiswahili"
1439− },
1440− "sv": {
1441− "name": "Svenska"
1442− },
1443− "su": {
1444− "name": "Sundanese"
1445− },
1446− "st": {
1447− "name": "Southern Sotho"
1448− },
1449− "sk": {
1450− "name": "Slovenčina"
1451− },
1452− "si": {
1453− "name": "සිංහල"
1454− },
1455− "so": {
1456− "name": "Soomaali"
1457− },
1458− "sn": {
1459− "name": "Chishona"
1460− },
1461− "sl": {
1462− "name": "Slovenščina"
1463− },
1464− "ky": {
1465− "name": "Кыргызча"
1466− },
1467− "sd": {
1468− "name": "Sindhi"
1469− }
1470− },
1471− "duckduckgo": [
1472− "da-DK",
1473− "vi-VN",
1474− "en-SG",
1475− "sl-SL",
1476− "en-XA",
1477− "tzh-HK",
1478− "en-UK",
1479− "ro-RO",
1480− "en-MY",
1481− "el-GR",
1482− "it-CH",
1483− "hu-HU",
1484− "fr-FR",
1485− "en-PH",
1486− "tl-PH",
1487− "fr-CA",
1488− "fi-FI",
1489− "et-EE",
1490− "sv-SE",
1491− "es-XL",
1492− "th-TH",
1493− "sk-SK",
1494− "es-ES",
1495− "en-IE",
1496− "es-US",
1497− "es-PE",
1498− "nl-NL",
1499− "en-US",
1500− "de-DE",
1501− "de-AT",
1502− "wt-WT",
1503− "no-NO",
1504− "tr-TR",
1505− "ca-ES",
1506− "it-IT",
1507− "es-CO",
1508− "ru-RU",
1509− "ca-CT",
1510− "en-ZA",
1511− "en-CA",
1512− "jp-JP",
1513− "es-MX",
1514− "id-ID",
1515− "es-AR",
1516− "he-IL",
1517− "kr-KR",
1518− "en-AU",
1519− "ms-MY",
1520− "pl-PL",
1521− "lv-LV",
1522− "bg-BG",
1523− "zh-CN",
1524− "en-NZ",
1525− "lt-LT",
1526− "tzh-TW",
1527− "hr-HR",
1528− "pt-PT",
1529− "fr-BE",
1530− "de-CH",
1531− "cs-CZ",
1532− "en-IN",
1533− "nl-BE",
1534− "fr-CH",
1535− "en-ID",
1536− "ar-XA",
1537− "pt-BR",
1538− "uk-UA",
1539− "es-CL"
1540− ],
1541− "bing": [
1542− "sq",
1543− "de",
1544− "ar",
1545− "bg",
1546− "ca",
1547− "cs",
1548− "zh-CHS",
1549− "zh-CHT",
1550− "ko",
1551− "hr",
1552− "da",
1553− "sk",
1554− "sl",
1555− "es",
1556− "et",
1557− "fi",
1558− "fr",
1559− "el",
1560− "he",
1561− "nl",
1562− "hu",
1563− "id",
1564− "en",
1565− "is",
1566− "it",
1567− "ja",
1568− "lv",
1569− "lt",
1570− "ms",
1571− "nb",
1572− "fa",
1573− "pl",
1574− "pt-BR",
1575− "pt-PT",
1576− "ro",
1577− "ru",
1578− "sr",
1579− "sv",
1580− "th",
1581− "tr",
1582− "uk",
1583− "vi"
1584− ],
1585− "wikipedia": {
1586− "sco": {
1587− "articles": 41754,
1588− "name": "Scots",
1589− "english_name": "Scots"
1590− },
1591− "scn": {
1592− "articles": 25373,
1593− "name": "Sicilianu",
1594− "english_name": "Sicilian"
1595− },
1596− "gu": {
1597− "articles": 26690,
1598− "name": "ગુજરાતી",
1599− "english_name": "Gujarati"
1600− },
1601− "gd": {
1602− "articles": 14246,
1603− "name": "Gàidhlig",
1604− "english_name": "Scottish Gaelic"
1605− },
1606− "ga": {
1607− "articles": 38828,
1608− "name": "Gaeilge",
1609− "english_name": "Irish"
1610− },
1611− "gl": {
1612− "articles": 134667,
1613− "name": "Galego",
1614− "english_name": "Galician"
1615− },
1616− "als": {
1617− "articles": 22337,
1618− "name": "Alemannisch",
1619− "english_name": "Alemannic"
1620− },
1621− "lb": {
1622− "articles": 47306,
1623− "name": "Lëtzebuergesch",
1624− "english_name": "Luxembourgish"
1625− },
1626− "la": {
1627− "articles": 125689,
1628− "name": "Latina",
1629− "english_name": "Latin"
1630− },
1631− "tt": {
1632− "articles": 69902,
1633− "name": "Tatarça / Татарча",
1634− "english_name": "Tatar"
1635− },
1636− "tr": {
1637− "articles": 287403,
1638− "name": "Türkçe",
1639− "english_name": "Turkish"
1640− },
1641− "li": {
1642− "articles": 11552,
1643− "name": "Limburgs",
1644− "english_name": "Limburgish"
1645− },
1646− "lv": {
1647− "articles": 74333,
1648− "name": "Latviešu",
1649− "english_name": "Latvian"
1650− },
1651− "tl": {
1652− "articles": 65681,
1653− "name": "Tagalog",
1654− "english_name": "Tagalog"
1655− },
1656− "vec": {
1657− "articles": 10855,
1658− "name": "Vèneto",
1659− "english_name": "Venetian"
1660− },
1661− "th": {
1662− "articles": 113214,
1663− "name": "ไทย",
1664− "english_name": "Thai"
1665− },
1666− "tg": {
1667− "articles": 67389,
1668− "name": "Тоҷикӣ",
1669− "english_name": "Tajik"
1670− },
1671− "te": {
1672− "articles": 66207,
1673− "name": "తెలుగు",
1674− "english_name": "Telugu"
1675− },
1676− "ta": {
1677− "articles": 89565,
1678− "name": "தமிழ்",
1679− "english_name": "Tamil"
1680− },
1681− "yi": {
1682− "articles": 13590,
1683− "name": "ייִדיש",
1684− "english_name": "Yiddish"
1685− },
1686− "ceb": {
1687− "articles": 3525383,
1688− "name": "Sinugboanong Binisaya",
1689− "english_name": "Cebuano"
1690− },
1691− "yo": {
1692− "articles": 31493,
1693− "name": "Yorùbá",
1694− "english_name": "Yoruba"
1695− },
1696− "de": {
1697− "articles": 2008971,
1698− "name": "Deutsch",
1699− "english_name": "German"
1700− },
1701− "da": {
1702− "articles": 221798,
1703− "name": "Dansk",
1704− "english_name": "Danish"
1705− },
1706− "qu": {
1707− "articles": 19808,
1708− "name": "Runa Simi",
1709− "english_name": "Quechua"
1710− },
1711− "bar": {
1712− "articles": 21966,
1713− "name": "Boarisch",
1714− "english_name": "Bavarian"
1715− },
1716− "kn": {
1717− "articles": 21617,
1718− "name": "ಕನ್ನಡ",
1719− "english_name": "Kannada"
1720− },
1721− "bpy": {
1722− "articles": 25067,
1723− "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী",
1724− "english_name": "Bishnupriya Manipuri"
1725− },
1726− "el": {
1727− "articles": 124348,
1728− "name": "Ελληνικά",
1729− "english_name": "Greek"
1730− },
1731− "eo": {
1732− "articles": 235567,
1733− "name": "Esperanto",
1734− "english_name": "Esperanto"
1735− },
1736− "en": {
1737− "articles": 5307436,
1738− "name": "English",
1739− "english_name": "English"
1740− },
1741− "zh": {
1742− "articles": 915298,
1743− "name": "中文",
1744− "english_name": "Chinese"
1745− },
1746− "pms": {
1747− "articles": 63988,
1748− "name": "Piemontèis",
1749− "english_name": "Piedmontese"
1750− },
1751− "arz": {
1752− "articles": 16098,
1753− "name": "مصرى (Maṣri)",
1754− "english_name": "Egyptian Arabic"
1755− },
1756− "eu": {
1757− "articles": 261846,
1758− "name": "Euskara",
1759− "english_name": "Basque"
1760− },
1761− "et": {
1762− "articles": 151580,
1763− "name": "Eesti",
1764− "english_name": "Estonian"
1765− },
1766− "es": {
1767− "articles": 1301725,
1768− "name": "Español",
1769− "english_name": "Spanish"
1770− },
1771− "ba": {
1772− "articles": 36610,
1773− "name": "Башҡорт",
1774− "english_name": "Bashkir"
1775− },
1776− "ru": {
1777− "articles": 1359173,
1778− "name": "Русский",
1779− "english_name": "Russian"
1780− },
1781− "new": {
1782− "articles": 72175,
1783− "name": "नेपाल भाषा",
1784− "english_name": "Newar"
1785− },
1786− "ro": {
1787− "articles": 373067,
1788− "name": "Română",
1789− "english_name": "Romanian"
1790− },
1791− "jv": {
1792− "articles": 49675,
1793− "name": "Basa Jawa",
1794− "english_name": "Javanese"
1795− },
1796− "hsb": {
1797− "articles": 10908,
1798− "name": "Hornjoserbsce",
1799− "english_name": "Upper Sorbian"
1800− },
1801− "be": {
1802− "articles": 123470,
1803− "name": "Беларуская",
1804− "english_name": "Belarusian"
1805− },
1806− "bg": {
1807− "articles": 223701,
1808− "name": "Български",
1809− "english_name": "Bulgarian"
1810− },
1811− "uk": {
1812− "articles": 666877,
1813− "name": "Українська",
1814− "english_name": "Ukrainian"
1815− },
1816− "wa": {
1817− "articles": 14312,
1818− "name": "Walon",
1819− "english_name": "Walloon"
1820− },
1821− "ast": {
1822− "articles": 47712,
1823− "name": "Asturianu",
1824− "english_name": "Asturian"
1825− },
1826− "bn": {
1827− "articles": 46038,
1828− "name": "বাংলা",
1829− "english_name": "Bengali"
1830− },
1831− "map-bms": {
1832− "articles": 13275,
1833− "name": "Basa Banyumasan",
1834− "english_name": "Banyumasan"
1835− },
1836− "br": {
1837− "articles": 60624,
1838− "name": "Brezhoneg",
1839− "english_name": "Breton"
1840− },
1841− "bs": {
1842− "articles": 72057,
1843− "name": "Bosanski",
1844− "english_name": "Bosnian"
1845− },
1846− "ja": {
1847− "articles": 1041538,
1848− "name": "日本語",
1849− "english_name": "Japanese"
1850− },
1851− "oc": {
1852− "articles": 84521,
1853− "name": "Occitan",
1854− "english_name": "Occitan"
1855− },
1856− "be-tarask": {
1857− "articles": 59872,
1858− "name": "Беларуская (тарашкевіца)",
1859− "english_name": "Belarusian (Taraškievica)"
1860− },
1861− "nds": {
1862− "articles": 25732,
1863− "name": "Plattdüütsch",
1864− "english_name": "Low Saxon"
1865− },
1866− "os": {
1867− "articles": 10293,
1868− "name": "Иронау",
1869− "english_name": "Ossetian"
1870− },
1871− "or": {
1872− "articles": 11703,
1873− "name": "ଓଡ଼ିଆ",
1874− "english_name": "Oriya"
1875− },
1876− "simple": {
1877− "articles": 121809,
1878− "name": "Simple English",
1879− "english_name": "Simple English"
1880− },
1881− "ca": {
1882− "articles": 528658,
1883− "name": "Català",
1884− "english_name": "Catalan"
1885− },
1886− "lmo": {
1887− "articles": 34556,
1888− "name": "Lumbaart",
1889− "english_name": "Lombard"
1890− },
1891− "ce": {
1892− "articles": 158845,
1893− "name": "Нохчийн",
1894− "english_name": "Chechen"
1895− },
1896− "cy": {
1897− "articles": 89271,
1898− "name": "Cymraeg",
1899− "english_name": "Welsh"
1900− },
1901− "cs": {
1902− "articles": 369023,
1903− "name": "Čeština",
1904− "english_name": "Czech"
1905− },
1906− "cv": {
1907− "articles": 36500,
1908− "name": "Чăваш",
1909− "english_name": "Chuvash"
1910− },
1911− "pt": {
1912− "articles": 949039,
1913− "name": "Português",
1914− "english_name": "Portuguese"
1915− },
1916− "lt": {
1917− "articles": 180372,
1918− "name": "Lietuvių",
1919− "english_name": "Lithuanian"
1920− },
1921− "zh-min-nan": {
1922− "articles": 201851,
1923− "name": "Bân-lâm-gú",
1924− "english_name": "Min Nan"
1925− },
1926− "pa": {
1927− "articles": 24065,
1928− "name": "ਪੰਜਾਬੀ",
1929− "english_name": "Punjabi"
1930− },
1931− "war": {
1932− "articles": 1261969,
1933− "name": "Winaray",
1934− "english_name": "Waray-Waray"
1935− },
1936− "pl": {
1937− "articles": 1197444,
1938− "name": "Polski",
1939− "english_name": "Polish"
1940− },
1941− "hy": {
1942− "articles": 212704,
1943− "name": "Հայերեն",
1944− "english_name": "Armenian"
1945− },
1946− "an": {
1947− "articles": 31832,
1948− "name": "Aragonés",
1949− "english_name": "Aragonese"
1950− },
1951− "hr": {
1952− "articles": 171042,
1953− "name": "Hrvatski",
1954− "english_name": "Croatian"
1955− },
1956− "ht": {
1957− "articles": 51108,
1958− "name": "Krèyol ayisyen",
1959− "english_name": "Haitian"
1960− },
1961− "hu": {
1962− "articles": 399859,
1963− "name": "Magyar",
1964− "english_name": "Hungarian"
1965− },
1966− "bat-smg": {
1967− "articles": 15940,
1968− "name": "Žemaitėška",
1969− "english_name": "Samogitian"
1970− },
1971− "hi": {
1972− "articles": 114388,
1973− "name": "हिन्दी",
1974− "english_name": "Hindi"
1975− },
1976− "pnb": {
1977− "articles": 42659,
1978− "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)",
1979− "english_name": "Western Punjabi"
1980− },
1981− "bug": {
1982− "articles": 14116,
1983− "name": "Basa Ugi",
1984− "english_name": "Buginese"
1985− },
1986− "he": {
1987− "articles": 199202,
1988− "name": "עברית",
1989− "english_name": "Hebrew"
1990− },
1991− "mg": {
1992− "articles": 82826,
1993− "name": "Malagasy",
1994− "english_name": "Malagasy"
1995− },
1996− "uz": {
1997− "articles": 128742,
1998− "name": "O‘zbek",
1999− "english_name": "Uzbek"
2000− },
2001− "ml": {
2002− "articles": 46792,
2003− "name": "മലയാളം",
2004− "english_name": "Malayalam"
2005− },
2006− "azb": {
2007− "articles": 11813,
2008− "name": "تۆرکجه",
2009− "english_name": "South Azerbaijani"
2010− },
2011− "mn": {
2012− "articles": 16281,
2013− "name": "Монгол",
2014− "english_name": "Mongolian"
2015− },
2016− "mk": {
2017− "articles": 87527,
2018− "name": "Македонски",
2019− "english_name": "Macedonian"
2020− },
2021− "ur": {
2022− "articles": 110767,
2023− "name": "اردو",
2024− "english_name": "Urdu"
2025− },
2026− "ms": {
2027− "articles": 286177,
2028− "name": "Bahasa Melayu",
2029− "english_name": "Malay"
2030− },
2031− "mr": {
2032− "articles": 45049,
2033− "name": "मराठी",
2034− "english_name": "Marathi"
2035− },
2036− "my": {
2037− "articles": 33571,
2038− "name": "မြန်မာဘာသာ",
2039− "english_name": "Burmese"
2040− },
2041− "sah": {
2042− "articles": 10965,
2043− "name": "Саха тыла (Saxa Tyla)",
2044− "english_name": "Sakha"
2045− },
2046− "af": {
2047− "articles": 42949,
2048− "name": "Afrikaans",
2049− "english_name": "Afrikaans"
2050− },
2051− "vi": {
2052− "articles": 1151564,
2053− "name": "Tiếng Việt",
2054− "english_name": "Vietnamese"
2055− },
2056− "is": {
2057− "articles": 41500,
2058− "name": "Íslenska",
2059− "english_name": "Icelandic"
2060− },
2061− "am": {
2062− "articles": 13291,
2063− "name": "አማርኛ",
2064− "english_name": "Amharic"
2065− },
2066− "it": {
2067− "articles": 1317506,
2068− "name": "Italiano",
2069− "english_name": "Italian"
2070− },
2071− "vo": {
2072− "articles": 120413,
2073− "name": "Volapük",
2074− "english_name": "Volapük"
2075− },
2076− "ar": {
2077− "articles": 453499,
2078− "name": "العربية",
2079− "english_name": "Arabic"
2080− },
2081− "io": {
2082− "articles": 26845,
2083− "name": "Ido",
2084− "english_name": "Ido"
2085− },
2086− "ia": {
2087− "articles": 19784,
2088− "name": "Interlingua",
2089− "english_name": "Interlingua"
2090− },
2091− "az": {
2092− "articles": 111474,
2093− "name": "Azərbaycanca",
2094− "english_name": "Azerbaijani"
2095− },
2096− "id": {
2097− "articles": 390200,
2098− "name": "Bahasa Indonesia",
2099− "english_name": "Indonesian"
2100− },
2101− "nl": {
2102− "articles": 1885741,
2103− "name": "Nederlands",
2104− "english_name": "Dutch"
2105− },
2106− "nn": {
2107− "articles": 131696,
2108− "name": "Nynorsk",
2109− "english_name": "Norwegian (Nynorsk)"
2110− },
2111− "no": {
2112− "articles": 458147,
2113− "name": "Norsk (Bokmål)",
2114− "english_name": "Norwegian (Bokmål)"
2115− },
2116− "nah": {
2117− "articles": 10428,
2118− "name": "Nāhuatl",
2119− "english_name": "Nahuatl"
2120− },
2121− "ne": {
2122− "articles": 29164,
2123− "name": "नेपाली",
2124− "english_name": "Nepali"
2125− },
2126− "nap": {
2127− "articles": 14400,
2128− "name": "Nnapulitano",
2129− "english_name": "Neapolitan"
2130− },
2131− "fr": {
2132− "articles": 1822985,
2133− "name": "Français",
2134− "english_name": "French"
2135− },
2136− "mrj": {
2137− "articles": 10164,
2138− "name": "Кырык Мары (Kyryk Mary)",
2139− "english_name": "Hill Mari"
2140− },
2141− "zh-yue": {
2142− "articles": 49352,
2143− "name": "粵語",
2144− "english_name": "Cantonese"
2145− },
2146− "fy": {
2147− "articles": 36464,
2148− "name": "Frysk",
2149− "english_name": "West Frisian"
2150− },
2151− "fa": {
2152− "articles": 516569,
2153− "name": "فارسی",
2154− "english_name": "Persian"
2155− },
2156− "fi": {
2157− "articles": 405166,
2158− "name": "Suomi",
2159− "english_name": "Finnish"
2160− },
2161− "mzn": {
2162− "articles": 12362,
2163− "name": "مَزِروني",
2164− "english_name": "Mazandarani"
2165− },
2166− "sa": {
2167− "articles": 10198,
2168− "name": "संस्कृतम्",
2169− "english_name": "Sanskrit"
2170− },
2171− "fo": {
2172− "articles": 12370,
2173− "name": "Føroyskt",
2174− "english_name": "Faroese"
2175− },
2176− "ka": {
2177− "articles": 111155,
2178− "name": "ქართული",
2179− "english_name": "Georgian"
2180− },
2181− "ckb": {
2182− "articles": 18217,
2183− "name": "Soranî / کوردی",
2184− "english_name": "Sorani"
2185− },
2186− "kk": {
2187− "articles": 217477,
2188− "name": "Қазақша",
2189− "english_name": "Kazakh"
2190− },
2191− "sr": {
2192− "articles": 342497,
2193− "name": "Српски / Srpski",
2194− "english_name": "Serbian"
2195− },
2196− "sq": {
2197− "articles": 62437,
2198− "name": "Shqip",
2199− "english_name": "Albanian"
2200− },
2201− "min": {
2202− "articles": 221961,
2203− "name": "Minangkabau",
2204− "english_name": "Minangkabau"
2205− },
2206− "ko": {
2207− "articles": 367127,
2208− "name": "한국어",
2209− "english_name": "Korean"
2210− },
2211− "sv": {
2212− "articles": 3783326,
2213− "name": "Svenska",
2214− "english_name": "Swedish"
2215− },
2216− "su": {
2217− "articles": 19163,
2218− "name": "Basa Sunda",
2219− "english_name": "Sundanese"
2220− },
2221− "sk": {
2222− "articles": 215360,
2223− "name": "Slovenčina",
2224− "english_name": "Slovak"
2225− },
2226− "si": {
2227− "articles": 12832,
2228− "name": "සිංහල",
2229− "english_name": "Sinhalese"
2230− },
2231− "sh": {
2232− "articles": 436526,
2233− "name": "Srpskohrvatski / Српскохрватски",
2234− "english_name": "Serbo-Croatian"
2235− },
2236− "ku": {
2237− "articles": 22367,
2238− "name": "Kurdî / كوردی",
2239− "english_name": "Kurdish"
2240− },
2241− "sl": {
2242− "articles": 153978,
2243− "name": "Slovenščina",
2244− "english_name": "Slovenian"
2245− },
2246− "ky": {
2247− "articles": 59677,
2248− "name": "Кыргызча",
2249− "english_name": "Kirghiz"
2250− },
2251− "sw": {
2252− "articles": 34773,
2253− "name": "Kiswahili",
2254− "english_name": "Swahili"
2255− }
2256− },
2257− "bing news": [
2258− "sq",
2259− "de",
2260− "ar",
2261− "bg",
2262− "ca",
2263− "cs",
2264− "zh-CHS",
2265− "zh-CHT",
2266− "ko",
2267− "hr",
2268− "da",
2269− "sk",
2270− "sl",
2271− "es",
2272− "et",
2273− "fi",
2274− "fr",
2275− "el",
2276− "he",
2277− "nl",
2278− "hu",
2279− "id",
2280− "en",
2281− "is",
2282− "it",
2283− "ja",
2284− "lv",
2285− "lt",
2286− "ms",
2287− "nb",
2288− "fa",
2289− "pl",
2290− "pt-BR",
2291− "pt-PT",
2292− "ro",
2293− "ru",
2294− "sr",
2295− "sv",
2296− "th",
2297− "tr",
2298− "uk",
2299− "vi"
2300− ],
2301− "yahoo news": [
2302− "ar",
2303− "bg",
2304− "zh_chs",
2305− "zh_cht",
2306− "hr",
2307− "cs",
2308− "da",
2309− "nl",
2310− "en",
2311− "et",
2312− "fi",
2313− "fr",
2314− "de",
2315− "el",
2316− "he",
2317− "hu",
2318− "it",
2319− "ja",
2320− "ko",
2321− "lv",
2322− "lt",
2323− "no",
2324− "pl",
2325− "pt",
2326− "ro",
2327− "ru",
2328− "sk",
2329− "sl",
2330− "es",
2331− "sv",
2332− "th",
2333− "tr"
2334− ],
2335− "swisscows": [
2336− "browser",
2337− "ar-SA",
2338− "es-AR",
2339− "en-AU",
2340− "de-AT",
2341− "fr-BE",
2342− "nl-BE",
2343− "pt-BR",
2344− "en-CA",
2345− "fr-CA",
2346− "es-CL",
2347− "zh-CN",
2348− "da-DK",
2349− "fi-FI",
2350− "fr-FR",
2351− "de-DE",
2352− "zh-HK",
2353− "en-IN",
2354− "en-IE",
2355− "it-IT",
2356− "ja-JP",
2357− "ko-KR",
2358− "en-MY",
2359− "es-MX",
2360− "nl-NL",
2361− "en-NZ",
2362− "nb-NO",
2363− "en-PH",
2364− "pl-PL",
2365− "pt-PT",
2366− "ru-RU",
2367− "en-ZA",
2368− "es-ES",
2369− "sv-SE",
2370− "de-CH",
2371− "fr-CH",
2372− "zh-TW",
2373− "tr-TR",
2374− "en-GB",
2375− "en-US",
2376− "es-US"
2377− ],
2378− "wikidata": {
2379− "sco": {
2380− "articles": 41754,
2381− "name": "Scots",
2382− "english_name": "Scots"
2383− },
2384− "scn": {
2385− "articles": 25373,
2386− "name": "Sicilianu",
2387− "english_name": "Sicilian"
2388− },
2389− "gu": {
2390− "articles": 26690,
2391− "name": "ગુજરાતી",
2392− "english_name": "Gujarati"
2393− },
2394− "gd": {
2395− "articles": 14246,
2396− "name": "Gàidhlig",
2397− "english_name": "Scottish Gaelic"
2398− },
2399− "ga": {
2400− "articles": 38828,
2401− "name": "Gaeilge",
2402− "english_name": "Irish"
2403− },
2404− "gl": {
2405− "articles": 134667,
2406− "name": "Galego",
2407− "english_name": "Galician"
2408− },
2409− "als": {
2410− "articles": 22337,
2411− "name": "Alemannisch",
2412− "english_name": "Alemannic"
2413− },
2414− "lb": {
2415− "articles": 47306,
2416− "name": "Lëtzebuergesch",
2417− "english_name": "Luxembourgish"
2418− },
2419− "la": {
2420− "articles": 125689,
2421− "name": "Latina",
2422− "english_name": "Latin"
2423− },
2424− "tt": {
2425− "articles": 69902,
2426− "name": "Tatarça / Татарча",
2427− "english_name": "Tatar"
2428− },
2429− "tr": {
2430− "articles": 287403,
2431− "name": "Türkçe",
2432− "english_name": "Turkish"
2433− },
2434− "li": {
2435− "articles": 11552,
2436− "name": "Limburgs",
2437− "english_name": "Limburgish"
2438− },
2439− "lv": {
2440− "articles": 74333,
2441− "name": "Latviešu",
2442− "english_name": "Latvian"
2443− },
2444− "tl": {
2445− "articles": 65681,
2446− "name": "Tagalog",
2447− "english_name": "Tagalog"
2448− },
2449− "vec": {
2450− "articles": 10855,
2451− "name": "Vèneto",
2452− "english_name": "Venetian"
2453− },
2454− "th": {
2455− "articles": 113214,
2456− "name": "ไทย",
2457− "english_name": "Thai"
2458− },
2459− "tg": {
2460− "articles": 67389,
2461− "name": "Тоҷикӣ",
2462− "english_name": "Tajik"
2463− },
2464− "te": {
2465− "articles": 66207,
2466− "name": "తెలుగు",
2467− "english_name": "Telugu"
2468− },
2469− "ta": {
2470− "articles": 89565,
2471− "name": "தமிழ்",
2472− "english_name": "Tamil"
2473− },
2474− "yi": {
2475− "articles": 13590,
2476− "name": "ייִדיש",
2477− "english_name": "Yiddish"
2478− },
2479− "ceb": {
2480− "articles": 3525383,
2481− "name": "Sinugboanong Binisaya",
2482− "english_name": "Cebuano"
2483− },
2484− "yo": {
2485− "articles": 31493,
2486− "name": "Yorùbá",
2487− "english_name": "Yoruba"
2488− },
2489− "de": {
2490− "articles": 2008971,
2491− "name": "Deutsch",
2492− "english_name": "German"
2493− },
2494− "da": {
2495− "articles": 221798,
2496− "name": "Dansk",
2497− "english_name": "Danish"
2498− },
2499− "qu": {
2500− "articles": 19808,
2501− "name": "Runa Simi",
2502− "english_name": "Quechua"
2503− },
2504− "bar": {
2505− "articles": 21966,
2506− "name": "Boarisch",
2507− "english_name": "Bavarian"
2508− },
2509− "kn": {
2510− "articles": 21617,
2511− "name": "ಕನ್ನಡ",
2512− "english_name": "Kannada"
2513− },
2514− "bpy": {
2515− "articles": 25067,
2516− "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী",
2517− "english_name": "Bishnupriya Manipuri"
2518− },
2519− "el": {
2520− "articles": 124348,
2521− "name": "Ελληνικά",
2522− "english_name": "Greek"
2523− },
2524− "eo": {
2525− "articles": 235567,
2526− "name": "Esperanto",
2527− "english_name": "Esperanto"
2528− },
2529− "en": {
2530− "articles": 5307436,
2531− "name": "English",
2532− "english_name": "English"
2533− },
2534− "zh": {
2535− "articles": 915298,
2536− "name": "中文",
2537− "english_name": "Chinese"
2538− },
2539− "pms": {
2540− "articles": 63988,
2541− "name": "Piemontèis",
2542− "english_name": "Piedmontese"
2543− },
2544− "arz": {
2545− "articles": 16098,
2546− "name": "مصرى (Maṣri)",
2547− "english_name": "Egyptian Arabic"
2548− },
2549− "eu": {
2550− "articles": 261846,
2551− "name": "Euskara",
2552− "english_name": "Basque"
2553− },
2554− "et": {
2555− "articles": 151580,
2556− "name": "Eesti",
2557− "english_name": "Estonian"
2558− },
2559− "es": {
2560− "articles": 1301725,
2561− "name": "Español",
2562− "english_name": "Spanish"
2563− },
2564− "ba": {
2565− "articles": 36610,
2566− "name": "Башҡорт",
2567− "english_name": "Bashkir"
2568− },
2569− "ru": {
2570− "articles": 1359173,
2571− "name": "Русский",
2572− "english_name": "Russian"
2573− },
2574− "new": {
2575− "articles": 72175,
2576− "name": "नेपाल भाषा",
2577− "english_name": "Newar"
2578− },
2579− "ro": {
2580− "articles": 373067,
2581− "name": "Română",
2582− "english_name": "Romanian"
2583− },
2584− "jv": {
2585− "articles": 49675,
2586− "name": "Basa Jawa",
2587− "english_name": "Javanese"
2588− },
2589− "hsb": {
2590− "articles": 10908,
2591− "name": "Hornjoserbsce",
2592− "english_name": "Upper Sorbian"
2593− },
2594− "be": {
2595− "articles": 123470,
2596− "name": "Беларуская",
2597− "english_name": "Belarusian"
2598− },
2599− "bg": {
2600− "articles": 223701,
2601− "name": "Български",
2602− "english_name": "Bulgarian"
2603− },
2604− "uk": {
2605− "articles": 666877,
2606− "name": "Українська",
2607− "english_name": "Ukrainian"
2608− },
2609− "wa": {
2610− "articles": 14312,
2611− "name": "Walon",
2612− "english_name": "Walloon"
2613− },
2614− "ast": {
2615− "articles": 47712,
2616− "name": "Asturianu",
2617− "english_name": "Asturian"
2618− },
2619− "bn": {
2620− "articles": 46038,
2621− "name": "বাংলা",
2622− "english_name": "Bengali"
2623− },
2624− "map-bms": {
2625− "articles": 13275,
2626− "name": "Basa Banyumasan",
2627− "english_name": "Banyumasan"
2628− },
2629− "br": {
2630− "articles": 60624,
2631− "name": "Brezhoneg",
2632− "english_name": "Breton"
2633− },
2634− "bs": {
2635− "articles": 72057,
2636− "name": "Bosanski",
2637− "english_name": "Bosnian"
2638− },
2639− "ja": {
2640− "articles": 1041538,
2641− "name": "日本語",
2642− "english_name": "Japanese"
2643− },
2644− "oc": {
2645− "articles": 84521,
2646− "name": "Occitan",
2647− "english_name": "Occitan"
2648− },
2649− "be-tarask": {
2650− "articles": 59872,
2651− "name": "Беларуская (тарашкевіца)",
2652− "english_name": "Belarusian (Taraškievica)"
2653− },
2654− "nds": {
2655− "articles": 25732,
2656− "name": "Plattdüütsch",
2657− "english_name": "Low Saxon"
2658− },
2659− "os": {
2660− "articles": 10293,
2661− "name": "Иронау",
2662− "english_name": "Ossetian"
2663− },
2664− "or": {
2665− "articles": 11703,
2666− "name": "ଓଡ଼ିଆ",
2667− "english_name": "Oriya"
2668− },
2669− "simple": {
2670− "articles": 121809,
2671− "name": "Simple English",
2672− "english_name": "Simple English"
2673− },
2674− "ca": {
2675− "articles": 528658,
2676− "name": "Català",
2677− "english_name": "Catalan"
2678− },
2679− "lmo": {
2680− "articles": 34556,
2681− "name": "Lumbaart",
2682− "english_name": "Lombard"
2683− },
2684− "ce": {
2685− "articles": 158845,
2686− "name": "Нохчийн",
2687− "english_name": "Chechen"
2688− },
2689− "cy": {
2690− "articles": 89271,
2691− "name": "Cymraeg",
2692− "english_name": "Welsh"
2693− },
2694− "cs": {
2695− "articles": 369023,
2696− "name": "Čeština",
2697− "english_name": "Czech"
2698− },
2699− "cv": {
2700− "articles": 36500,
2701− "name": "Чăваш",
2702− "english_name": "Chuvash"
2703− },
2704− "pt": {
2705− "articles": 949039,
2706− "name": "Português",
2707− "english_name": "Portuguese"
2708− },
2709− "lt": {
2710− "articles": 180372,
2711− "name": "Lietuvių",
2712− "english_name": "Lithuanian"
2713− },
2714− "zh-min-nan": {
2715− "articles": 201851,
2716− "name": "Bân-lâm-gú",
2717− "english_name": "Min Nan"
2718− },
2719− "pa": {
2720− "articles": 24065,
2721− "name": "ਪੰਜਾਬੀ",
2722− "english_name": "Punjabi"
2723− },
2724− "war": {
2725− "articles": 1261969,
2726− "name": "Winaray",
2727− "english_name": "Waray-Waray"
2728− },
2729− "pl": {
2730− "articles": 1197444,
2731− "name": "Polski",
2732− "english_name": "Polish"
2733− },
2734− "hy": {
2735− "articles": 212704,
2736− "name": "Հայերեն",
2737− "english_name": "Armenian"
2738− },
2739− "an": {
2740− "articles": 31832,
2741− "name": "Aragonés",
2742− "english_name": "Aragonese"
2743− },
2744− "hr": {
2745− "articles": 171042,
2746− "name": "Hrvatski",
2747− "english_name": "Croatian"
2748− },
2749− "ht": {
2750− "articles": 51108,
2751− "name": "Krèyol ayisyen",
2752− "english_name": "Haitian"
2753− },
2754− "hu": {
2755− "articles": 399859,
2756− "name": "Magyar",
2757− "english_name": "Hungarian"
2758− },
2759− "bat-smg": {
2760− "articles": 15940,
2761− "name": "Žemaitėška",
2762− "english_name": "Samogitian"
2763− },
2764− "hi": {
2765− "articles": 114388,
2766− "name": "हिन्दी",
2767− "english_name": "Hindi"
2768− },
2769− "pnb": {
2770− "articles": 42659,
2771− "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)",
2772− "english_name": "Western Punjabi"
2773− },
2774− "bug": {
2775− "articles": 14116,
2776− "name": "Basa Ugi",
2777− "english_name": "Buginese"
2778− },
2779− "he": {
2780− "articles": 199202,
2781− "name": "עברית",
2782− "english_name": "Hebrew"
2783− },
2784− "mg": {
2785− "articles": 82826,
2786− "name": "Malagasy",
2787− "english_name": "Malagasy"
2788− },
2789− "uz": {
2790− "articles": 128742,
2791− "name": "O‘zbek",
2792− "english_name": "Uzbek"
2793− },
2794− "ml": {
2795− "articles": 46792,
2796− "name": "മലയാളം",
2797− "english_name": "Malayalam"
2798− },
2799− "azb": {
2800− "articles": 11813,
2801− "name": "تۆرکجه",
2802− "english_name": "South Azerbaijani"
2803− },
2804− "mn": {
2805− "articles": 16281,
2806− "name": "Монгол",
2807− "english_name": "Mongolian"
2808− },
2809− "mk": {
2810− "articles": 87527,
2811− "name": "Македонски",
2812− "english_name": "Macedonian"
2813− },
2814− "ur": {
2815− "articles": 110767,
2816− "name": "اردو",
2817− "english_name": "Urdu"
2818− },
2819− "ms": {
2820− "articles": 286177,
2821− "name": "Bahasa Melayu",
2822− "english_name": "Malay"
2823− },
2824− "mr": {
2825− "articles": 45049,
2826− "name": "मराठी",
2827− "english_name": "Marathi"
2828− },
2829− "my": {
2830− "articles": 33571,
2831− "name": "မြန်မာဘာသာ",
2832− "english_name": "Burmese"
2833− },
2834− "sah": {
2835− "articles": 10965,
2836− "name": "Саха тыла (Saxa Tyla)",
2837− "english_name": "Sakha"
2838− },
2839− "af": {
2840− "articles": 42949,
2841− "name": "Afrikaans",
2842− "english_name": "Afrikaans"
2843− },
2844− "vi": {
2845− "articles": 1151564,
2846− "name": "Tiếng Việt",
2847− "english_name": "Vietnamese"
2848− },
2849− "is": {
2850− "articles": 41500,
2851− "name": "Íslenska",
2852− "english_name": "Icelandic"
2853− },
2854− "am": {
2855− "articles": 13291,
2856− "name": "አማርኛ",
2857− "english_name": "Amharic"
2858− },
2859− "it": {
2860− "articles": 1317506,
2861− "name": "Italiano",
2862− "english_name": "Italian"
2863− },
2864− "vo": {
2865− "articles": 120413,
2866− "name": "Volapük",
2867− "english_name": "Volapük"
2868− },
2869− "ar": {
2870− "articles": 453499,
2871− "name": "العربية",
2872− "english_name": "Arabic"
2873− },
2874− "io": {
2875− "articles": 26845,
2876− "name": "Ido",
2877− "english_name": "Ido"
2878− },
2879− "ia": {
2880− "articles": 19784,
2881− "name": "Interlingua",
2882− "english_name": "Interlingua"
2883− },
2884− "az": {
2885− "articles": 111474,
2886− "name": "Azərbaycanca",
2887− "english_name": "Azerbaijani"
2888− },
2889− "id": {
2890− "articles": 390200,
2891− "name": "Bahasa Indonesia",
2892− "english_name": "Indonesian"
2893− },
2894− "nl": {
2895− "articles": 1885741,
2896− "name": "Nederlands",
2897− "english_name": "Dutch"
2898− },
2899− "nn": {
2900− "articles": 131696,
2901− "name": "Nynorsk",
2902− "english_name": "Norwegian (Nynorsk)"
2903− },
2904− "no": {
2905− "articles": 458147,
2906− "name": "Norsk (Bokmål)",
2907− "english_name": "Norwegian (Bokmål)"
2908− },
2909− "nah": {
2910− "articles": 10428,
2911− "name": "Nāhuatl",
2912− "english_name": "Nahuatl"
2913− },
2914− "ne": {
2915− "articles": 29164,
2916− "name": "नेपाली",
2917− "english_name": "Nepali"
2918− },
2919− "nap": {
2920− "articles": 14400,
2921− "name": "Nnapulitano",
2922− "english_name": "Neapolitan"
2923− },
2924− "fr": {
2925− "articles": 1822985,
2926− "name": "Français",
2927− "english_name": "French"
2928− },
2929− "mrj": {
2930− "articles": 10164,
2931− "name": "Кырык Мары (Kyryk Mary)",
2932− "english_name": "Hill Mari"
2933− },
2934− "zh-yue": {
2935− "articles": 49352,
2936− "name": "粵語",
2937− "english_name": "Cantonese"
2938− },
2939− "fy": {
2940− "articles": 36464,
2941− "name": "Frysk",
2942− "english_name": "West Frisian"
2943− },
2944− "fa": {
2945− "articles": 516569,
2946− "name": "فارسی",
2947− "english_name": "Persian"
2948− },
2949− "fi": {
2950− "articles": 405166,
2951− "name": "Suomi",
2952− "english_name": "Finnish"
2953− },
2954− "mzn": {
2955− "articles": 12362,
2956− "name": "مَزِروني",
2957− "english_name": "Mazandarani"
2958− },
2959− "sa": {
2960− "articles": 10198,
2961− "name": "संस्कृतम्",
2962− "english_name": "Sanskrit"
2963− },
2964− "fo": {
2965− "articles": 12370,
2966− "name": "Føroyskt",
2967− "english_name": "Faroese"
2968− },
2969− "ka": {
2970− "articles": 111155,
2971− "name": "ქართული",
2972− "english_name": "Georgian"
2973− },
2974− "ckb": {
2975− "articles": 18217,
2976− "name": "Soranî / کوردی",
2977− "english_name": "Sorani"
2978− },
2979− "kk": {
2980− "articles": 217477,
2981− "name": "Қазақша",
2982− "english_name": "Kazakh"
2983− },
2984− "sr": {
2985− "articles": 342497,
2986− "name": "Српски / Srpski",
2987− "english_name": "Serbian"
2988− },
2989− "sq": {
2990− "articles": 62437,
2991− "name": "Shqip",
2992− "english_name": "Albanian"
2993− },
2994− "min": {
2995− "articles": 221961,
2996− "name": "Minangkabau",
2997− "english_name": "Minangkabau"
2998− },
2999− "ko": {
3000− "articles": 367127,
3001− "name": "한국어",
3002− "english_name": "Korean"
3003− },
3004− "sv": {
3005− "articles": 3783326,
3006− "name": "Svenska",
3007− "english_name": "Swedish"
3008− },
3009− "su": {
3010− "articles": 19163,
3011− "name": "Basa Sunda",
3012− "english_name": "Sundanese"
3013− },
3014− "sk": {
3015− "articles": 215360,
3016− "name": "Slovenčina",
3017− "english_name": "Slovak"
3018− },
3019− "si": {
3020− "articles": 12832,
3021− "name": "සිංහල",
3022− "english_name": "Sinhalese"
3023− },
3024− "sh": {
3025− "articles": 436526,
3026− "name": "Srpskohrvatski / Српскохрватски",
3027− "english_name": "Serbo-Croatian"
3028− },
3029− "ku": {
3030− "articles": 22367,
3031− "name": "Kurdî / كوردی",
3032− "english_name": "Kurdish"
3033− },
3034− "sl": {
3035− "articles": 153978,
3036− "name": "Slovenščina",
3037− "english_name": "Slovenian"
3038− },
3039− "ky": {
3040− "articles": 59677,
3041− "name": "Кыргызча",
3042− "english_name": "Kirghiz"
3043− },
3044− "sw": {
3045− "articles": 34773,
3046− "name": "Kiswahili",
3047− "english_name": "Swahili"
3048− }
3049− },
3050− "ddg definitions": [
3051− "da-DK",
3052− "vi-VN",
3053− "en-SG",
3054− "sl-SL",
3055− "en-XA",
3056− "tzh-HK",
3057− "en-UK",
3058− "ro-RO",
3059− "en-MY",
3060− "el-GR",
3061− "it-CH",
3062− "hu-HU",
3063− "fr-FR",
3064− "en-PH",
3065− "tl-PH",
3066− "fr-CA",
3067− "fi-FI",
3068− "et-EE",
3069− "sv-SE",
3070− "es-XL",
3071− "th-TH",
3072− "sk-SK",
3073− "es-ES",
3074− "en-IE",
3075− "es-US",
3076− "es-PE",
3077− "nl-NL",
3078− "en-US",
3079− "de-DE",
3080− "de-AT",
3081− "wt-WT",
3082− "no-NO",
3083− "tr-TR",
3084− "ca-ES",
3085− "it-IT",
3086− "es-CO",
3087− "ru-RU",
3088− "ca-CT",
3089− "en-ZA",
3090− "en-CA",
3091− "jp-JP",
3092− "es-MX",
3093− "id-ID",
3094− "es-AR",
3095− "he-IL",
3096− "kr-KR",
3097− "en-AU",
3098− "ms-MY",
3099− "pl-PL",
3100− "lv-LV",
3101− "bg-BG",
3102− "zh-CN",
3103− "en-NZ",
3104− "lt-LT",
3105− "tzh-TW",
3106− "hr-HR",
3107− "pt-PT",
3108− "fr-BE",
3109− "de-CH",
3110− "cs-CZ",
3111− "en-IN",
3112− "nl-BE",
3113− "fr-CH",
3114− "en-ID",
3115− "ar-XA",
3116− "pt-BR",
3117− "uk-UA",
3118− "es-CL"
3119− ],
3120− "bing images": [
3121− "sq",
3122− "de",
3123− "ar",
3124− "bg",
3125− "ca",
3126− "cs",
3127− "zh-CHS",
3128− "zh-CHT",
3129− "ko",
3130− "hr",
3131− "da",
3132− "sk",
3133− "sl",
3134− "es",
3135− "et",
3136− "fi",
3137− "fr",
3138− "el",
3139− "he",
3140− "nl",
3141− "hu",
3142− "id",
3143− "en",
3144− "is",
3145− "it",
3146− "ja",
3147− "lv",
3148− "lt",
3149− "ms",
3150− "nb",
3151− "fa",
3152− "pl",
3153− "pt-BR",
3154− "pt-PT",
3155− "ro",
3156− "ru",
3157− "sr",
3158− "sv",
3159− "th",
3160− "tr",
3161− "uk",
3162− "vi"
3163− ],
3164− "yahoo": [
3165− "ar",
3166− "bg",
3167− "zh_chs",
3168− "zh_cht",
3169− "hr",
3170− "cs",
3171− "da",
3172− "nl",
3173− "en",
3174− "et",
3175− "fi",
3176− "fr",
3177− "de",
3178− "el",
3179− "he",
3180− "hu",
3181− "it",
3182− "ja",
3183− "ko",
3184− "lv",
3185− "lt",
3186− "no",
3187− "pl",
3188− "pt",
3189− "ro",
3190− "ru",
3191− "sk",
3192− "sl",
3193− "es",
3194− "sv",
3195− "th",
3196− "tr"
3197− ],
3198− "gigablast": [
3199− "en",
3200− "fr",
3201− "es",
3202− "ru",
3203− "tr",
3204− "ja",
3205− "h_",
3206− "tw",
3207− "cn",
3208− "ko",
3209− "de",
3210− "nl",
3211− "it",
3212− "fi",
3213− "sv",
3214− "no",
3215− "pt",
3216− "vi",
3217− "ar",
3218− "he",
3219− "id",
3220− "el",
3221− "th",
3222− "hi",
3223− "bn",
3224− "pl",
3225− "tl",
3226− "la",
3227− "eo",
3228− "ca",
3229− "bg",
3230− "tx",
3231− "sr",
3232− "hu",
3233− "da",
3234− "lt",
3235− "cs",
3236− "gl",
3237− "ka",
3238− "gd",
3239− "go",
3240− "ro",
3241− "ga",
3242− "lv",
3243− "hy",
3244− "is",
3245− "ag",
3246− "gv",
3247− "io",
3248− "fa",
3249− "te",
3250− "vv",
3251− "mg",
3252− "ku",
3253− "lb",
3254− "et"
3255− ]
3256−}
1+{"google news": {"el": {"name": "Ελληνικά"}, "eo": {"name": "Esperanto"}, "en": {"name": "English"}, "af": {"name": "Afrikaans"}, "vi": {"name": "Tiếng Việt"}, "ca": {"name": "Català"}, "it": {"name": "Italiano"}, "iw": {"name": "עברית"}, "hy": {"name": "Հայերեն"}, "cs": {"name": "Čeština"}, "et": {"name": "Eesti"}, "id": {"name": "Indonesia"}, "es": {"name": "Español"}, "ru": {"name": "Русский"}, "nl": {"name": "Nederlands"}, "pt": {"name": "Português"}, "no": {"name": "Norsk"}, "tr": {"name": "Türkçe"}, "lt": {"name": "Lietuvių"}, "lv": {"name": "Latviešu"}, "tl": {"name": "Filipino"}, "zh-TW": {"name": "中文 (繁體)"}, "th": {"name": "ไทย"}, "ro": {"name": "Română"}, "is": {"name": "Íslenska"}, "pl": {"name": "Polski"}, "be": {"name": "Беларуская"}, "fr": {"name": "Français"}, "bg": {"name": "Български"}, "hr": {"name": "Hrvatski"}, "de": {"name": "Deutsch"}, "ko": {"name": "한국어"}, "da": {"name": "Dansk"}, "fa": {"name": "فارسی"}, "hi": {"name": "हिन्दी"}, "fi": {"name": "Suomi"}, "hu": {"name": "Magyar"}, "ja": {"name": "日本語"}, "sr": {"name": "Српски"}, "sw": {"name": "Kiswahili"}, "sv": {"name": "Svenska"}, "sk": {"name": "Slovenčina"}, "zh-CN": {"name": "中文 (简体)"}, "ar": {"name": "العربية"}, "uk": {"name": "Українська"}, "sl": {"name": "Slovenščina"}}, "dailymotion": {"gv": {"english_name": "Manx"}, "gu": {"name": "ગુજરાતી", "english_name": "Gujarati"}, "gd": {"english_name": "Gaelic, Scottish"}, "ga": {"name": "Gaeilge", "english_name": "Irish"}, "gn": {"english_name": "Guarani"}, "gl": {"name": "Galego", "english_name": "Galician"}, "lg": {"english_name": "Ganda"}, "lb": {"english_name": "Luxembourgish"}, "la": {"english_name": "Latin"}, "ln": {"english_name": "Lingala"}, "lo": {"english_name": "Lao"}, "tt": {"name": "Татарча", "english_name": "Tatar"}, "tr": {"name": "Türkçe", "english_name": "Turkish"}, "ts": {"english_name": "Tsonga"}, "li": {"english_name": "Limburgan"}, "lv": {"name": "Latviešu", "english_name": "Latvian"}, "to": {"english_name": "Tonga (Tonga Islands)"}, "lt": {"name": "Lietuvių", "english_name": "Lithuanian"}, "lu": {"english_name": "Luba-Katanga"}, "tk": {"english_name": "Turkmen"}, "th": {"name": "ไทย", "english_name": "Thai"}, "ti": {"name": "ትግርኛ", "english_name": "Tigrinya"}, "tg": {"english_name": "Tajik"}, "te": {"english_name": "Telugu"}, "ta": {"name": "தமிழ்", "english_name": "Tamil"}, "yi": {"english_name": "Yiddish"}, "yo": {"english_name": "Yoruba"}, "de": {"name": "Deutsch", "english_name": "German"}, "da": {"name": "Dansk", "english_name": "Danish"}, "dz": {"english_name": "Dzongkha"}, "st": {"english_name": "Sotho, Southern"}, "dv": {"english_name": "Dhivehi"}, "qu": {"english_name": "Quechua"}, "el": {"name": "Ελληνικά", "english_name": "Greek, Modern (1453-)"}, "eo": {"name": "Esperanto", "english_name": "Esperanto"}, "en": {"english_name": "English"}, "zh": {"name": "中文", "english_name": "Chinese"}, "ee": {"english_name": "Ewe"}, "za": {"english_name": "Zhuang"}, "mh": {"english_name": "Marshallese"}, "uk": {"name": "українська", "english_name": "Ukrainian"}, "eu": {"name": "Euskara", "english_name": "Basque"}, "et": {"name": "Eesti", "english_name": "Estonian"}, "es": {"name": "Español", "english_name": "Spanish"}, "ru": {"name": "русский", "english_name": "Russian"}, "rw": {"name": "Ikinyarwanda", "english_name": "Kinyarwanda"}, "rm": {"english_name": "Romansh"}, "rn": {"english_name": "Rundi"}, "ro": {"name": "Română", "english_name": "Romanian"}, "bn": {"name": "বাংলা", "english_name": "Bengali"}, "be": {"english_name": "Belarusian"}, "bg": {"name": "Български", "english_name": "Bulgarian"}, "ba": {"english_name": "Bashkir"}, "wa": {"name": "Walon", "english_name": "Walloon"}, "wo": {"english_name": "Wolof"}, "bm": {"english_name": "Bambara"}, "jv": {"english_name": "Javanese"}, "bo": {"english_name": "Tibetan"}, "bi": {"english_name": "Bislama"}, "br": {"name": "Brezhoneg", "english_name": "Breton"}, "bs": {"name": "Bosnian", "english_name": "Bosnian"}, "ja": {"name": "日本語", "english_name": "Japanese"}, "om": {"english_name": "Oromo"}, "oj": {"english_name": "Ojibwa"}, "ty": {"english_name": "Tahitian"}, "oc": {"name": "Occitan", "english_name": "Occitan"}, "tw": {"english_name": "Twi"}, "os": {"english_name": "Ossetian"}, "or": {"name": "Oriya", "english_name": "Oriya"}, "xh": {"name": "Xhosa", "english_name": "Xhosa"}, "ch": {"english_name": "Chamorro"}, "co": {"english_name": "Corsican"}, "ca": {"name": "Català", "english_name": "Catalan"}, "ce": {"english_name": "Chechen"}, "cy": {"name": "Cymraeg", "english_name": "Welsh"}, "cs": {"name": "čeština", "english_name": "Czech"}, "cr": {"english_name": "Cree"}, "cv": {"english_name": "Chuvash"}, "cu": {"english_name": "Slavic, Church"}, "ve": {"name": "Venda", "english_name": "Venda"}, "ps": {"name": "Pushto", "english_name": "Pushto"}, "pt": {"name": "Português", "english_name": "Portuguese"}, "tl": {"english_name": "Tagalog"}, "pa": {"name": "ਪੰਜਾਬੀ", "english_name": "Panjabi"}, "vi": {"name": "Tiếng Việt", "english_name": "Vietnamese"}, "pi": {"english_name": "Pali"}, "is": {"name": "Íslenska", "english_name": "Icelandic"}, "pl": {"name": "polski", "english_name": "Polish"}, "hz": {"english_name": "Herero"}, "hy": {"english_name": "Armenian"}, "hr": {"name": "hrvatski", "english_name": "Croatian"}, "iu": {"english_name": "Inuktitut"}, "ht": {"english_name": "Haitian"}, "hu": {"name": "magyar", "english_name": "Hungarian"}, "hi": {"name": "हिंदी", "english_name": "Hindi"}, "ho": {"english_name": "Hiri Motu"}, "ha": {"english_name": "Hausa"}, "he": {"name": "עברית", "english_name": "Hebrew"}, "mg": {"english_name": "Malagasy"}, "uz": {"english_name": "Uzbek"}, "ml": {"english_name": "Malayalam"}, "mn": {"name": "Монгол", "english_name": "Mongolian"}, "mi": {"name": "Reo Māori", "english_name": "Maori"}, "ik": {"english_name": "Inupiaq"}, "mk": {"name": "Македонски", "english_name": "Macedonian"}, "ur": {"english_name": "Urdu"}, "mt": {"name": "Malti", "english_name": "Maltese"}, "ms": {"name": "Malay", "english_name": "Malay"}, "mr": {"name": "मराठी", "english_name": "Marathi"}, "ug": {"english_name": "Uighur"}, "my": {"english_name": "Burmese"}, "sq": {"english_name": "Albanian"}, "ae": {"english_name": "Avestan"}, "ss": {"english_name": "Swati"}, "af": {"name": "Afrikaans", "english_name": "Afrikaans"}, "tn": {"english_name": "Tswana"}, "sw": {"english_name": "Swahili (macrolanguage)"}, "ak": {"english_name": "Akan"}, "am": {"name": "አማርኛ", "english_name": "Amharic"}, "it": {"name": "Italiano", "english_name": "Italian"}, "an": {"english_name": "Aragonese"}, "ii": {"english_name": "Yi, Sichuan"}, "ia": {"english_name": "Interlingua"}, "as": {"english_name": "Assamese"}, "ar": {"name": "العربية", "english_name": "Arabic"}, "su": {"english_name": "Sundanese"}, "io": {"english_name": "Ido"}, "av": {"english_name": "Avaric"}, "ay": {"english_name": "Aymara"}, "az": {"name": "Azerbaijani", "english_name": "Azerbaijani"}, "ie": {"english_name": "Interlingue"}, "id": {"name": "Indonesian", "english_name": "Indonesian"}, "ig": {"english_name": "Igbo"}, "sk": {"name": "Slovenský", "english_name": "Slovak"}, "sr": {"name": "српски", "english_name": "Serbian"}, "nl": {"name": "Nederlands", "english_name": "Dutch"}, "nn": {"name": "Norwegian Nynorsk", "english_name": "Norwegian Nynorsk"}, "no": {"english_name": "Norwegian"}, "na": {"english_name": "Nauru"}, "nb": {"name": "Norwegian Bokmål", "english_name": "Norwegian Bokmål"}, "nd": {"english_name": "Ndebele, North"}, "ne": {"english_name": "Nepali (macrolanguage)"}, "ng": {"english_name": "Ndonga"}, "ny": {"english_name": "Nyanja"}, "vo": {"english_name": "Volapük"}, "zu": {"name": "Isi-Zulu", "english_name": "Zulu"}, "so": {"english_name": "Somali"}, "nr": {"english_name": "Ndebele, South"}, "nv": {"english_name": "Navajo"}, "sn": {"english_name": "Shona"}, "fr": {"name": "français", "english_name": "French"}, "sm": {"english_name": "Samoan"}, "fy": {"english_name": "Frisian, Western"}, "sv": {"name": "Svenska", "english_name": "Swedish"}, "fa": {"name": "فارسی", "english_name": "Persian"}, "ff": {"english_name": "Fulah"}, "fi": {"name": "suomi", "english_name": "Finnish"}, "fj": {"english_name": "Fijian"}, "sa": {"english_name": "Sanskrit"}, "fo": {"english_name": "Faroese"}, "ka": {"english_name": "Georgian"}, "kg": {"english_name": "Kongo"}, "kk": {"english_name": "Kazakh"}, "kj": {"english_name": "Kuanyama"}, "ki": {"english_name": "Kikuyu"}, "ko": {"name": "한국어", "english_name": "Korean"}, "kn": {"name": "ಕನ್ನಡ", "english_name": "Kannada"}, "km": {"english_name": "Khmer, Central"}, "kl": {"english_name": "Kalaallisut"}, "ks": {"english_name": "Kashmiri"}, "kr": {"english_name": "Kanuri"}, "si": {"english_name": "Sinhala"}, "sh": {"name": "Serbo-Croatian", "english_name": "Serbo-Croatian"}, "kw": {"english_name": "Cornish"}, "kv": {"english_name": "Komi"}, "ku": {"english_name": "Kurdish"}, "sl": {"name": "slovenščina", "english_name": "Slovenian"}, "sc": {"english_name": "Sardinian"}, "ky": {"english_name": "Kirghiz"}, "sg": {"english_name": "Sango"}, "se": {"english_name": "Sami, Northern"}, "sd": {"english_name": "Sindhi"}}, "google": {"el": {"name": "Ελληνικά"}, "eo": {"name": "Esperanto"}, "en": {"name": "English"}, "af": {"name": "Afrikaans"}, "vi": {"name": "Tiếng Việt"}, "ca": {"name": "Català"}, "it": {"name": "Italiano"}, "iw": {"name": "עברית"}, "hy": {"name": "Հայերեն"}, "cs": {"name": "Čeština"}, "et": {"name": "Eesti"}, "id": {"name": "Indonesia"}, "es": {"name": "Español"}, "ru": {"name": "Русский"}, "nl": {"name": "Nederlands"}, "pt": {"name": "Português"}, "no": {"name": "Norsk"}, "tr": {"name": "Türkçe"}, "lt": {"name": "Lietuvių"}, "lv": {"name": "Latviešu"}, "tl": {"name": "Filipino"}, "zh-TW": {"name": "中文 (繁體)"}, "th": {"name": "ไทย"}, "ro": {"name": "Română"}, "is": {"name": "Íslenska"}, "pl": {"name": "Polski"}, "be": {"name": "Беларуская"}, "fr": {"name": "Français"}, "bg": {"name": "Български"}, "hr": {"name": "Hrvatski"}, "de": {"name": "Deutsch"}, "ko": {"name": "한국어"}, "da": {"name": "Dansk"}, "fa": {"name": "فارسی"}, "hi": {"name": "हिन्दी"}, "fi": {"name": "Suomi"}, "hu": {"name": "Magyar"}, "ja": {"name": "日本語"}, "sr": {"name": "Српски"}, "sw": {"name": "Kiswahili"}, "sv": {"name": "Svenska"}, "sk": {"name": "Slovenčina"}, "zh-CN": {"name": "中文 (简体)"}, "ar": {"name": "العربية"}, "uk": {"name": "Українська"}, "sl": {"name": "Slovenščina"}}, "duckduckgo": ["da-DK", "vi-VN", "en-SG", "sl-SL", "en-XA", "tzh-HK", "en-UK", "ro-RO", "en-MY", "el-GR", "it-CH", "hu-HU", "fr-FR", "en-PH", "tl-PH", "fr-CA", "fi-FI", "et-EE", "sv-SE", "es-XL", "th-TH", "sk-SK", "es-ES", "en-IE", "es-US", "es-PE", "nl-NL", "en-US", "de-DE", "de-AT", "wt-WT", "no-NO", "tr-TR", "ca-ES", "it-IT", "es-CO", "ru-RU", "ca-CT", "en-ZA", "en-CA", "jp-JP", "es-MX", "id-ID", "es-AR", "he-IL", "kr-KR", "en-AU", "ms-MY", "pl-PL", "lv-LV", "bg-BG", "zh-CN", "en-NZ", "lt-LT", "tzh-TW", "hr-HR", "pt-PT", "fr-BE", "de-CH", "cs-CZ", "en-IN", "nl-BE", "fr-CH", "en-ID", "ar-XA", "pt-BR", "uk-UA", "es-CL"], "bing": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "nb", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "wikipedia": {"sco": {"articles": 41758, "name": "Scots", "english_name": "Scots"}, "scn": {"articles": 25373, "name": "Sicilianu", "english_name": "Sicilian"}, "gu": {"articles": 26688, "name": "ગુજરાતી", "english_name": "Gujarati"}, "gd": {"articles": 14250, "name": "Gàidhlig", "english_name": "Scottish Gaelic"}, "ga": {"articles": 38830, "name": "Gaeilge", "english_name": "Irish"}, "gl": {"articles": 134702, "name": "Galego", "english_name": "Galician"}, "als": {"articles": 22350, "name": "Alemannisch", "english_name": "Alemannic"}, "lb": {"articles": 47313, "name": "Lëtzebuergesch", "english_name": "Luxembourgish"}, "la": {"articles": 125692, "name": "Latina", "english_name": "Latin"}, "tt": {"articles": 69908, "name": "Tatarça / Татарча", "english_name": "Tatar"}, "tr": {"articles": 287464, "name": "Türkçe", "english_name": "Turkish"}, "li": {"articles": 11552, "name": "Limburgs", "english_name": "Limburgish"}, "lv": {"articles": 74371, "name": "Latviešu", "english_name": "Latvian"}, "tl": {"articles": 65689, "name": "Tagalog", "english_name": "Tagalog"}, "vec": {"articles": 10855, "name": "Vèneto", "english_name": "Venetian"}, "th": {"articles": 113239, "name": "ไทย", "english_name": "Thai"}, "tg": {"articles": 67388, "name": "Тоҷикӣ", "english_name": "Tajik"}, "te": {"articles": 66228, "name": "తెలుగు", "english_name": "Telugu"}, "ta": {"articles": 89570, "name": "தமிழ்", "english_name": "Tamil"}, "yi": {"articles": 13591, "name": "ייִדיש", "english_name": "Yiddish"}, "ceb": {"articles": 3535780, "name": "Sinugboanong Binisaya", "english_name": "Cebuano"}, "yo": {"articles": 31494, "name": "Yorùbá", "english_name": "Yoruba"}, "de": {"articles": 2009282, "name": "Deutsch", "english_name": "German"}, "da": {"articles": 221813, "name": "Dansk", "english_name": "Danish"}, "qu": {"articles": 19810, "name": "Runa Simi", "english_name": "Quechua"}, "bar": {"articles": 21968, "name": "Boarisch", "english_name": "Bavarian"}, "kn": {"articles": 21607, "name": "ಕನ್ನಡ", "english_name": "Kannada"}, "bpy": {"articles": 25067, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", "english_name": "Bishnupriya Manipuri"}, "el": {"articles": 124371, "name": "Ελληνικά", "english_name": "Greek"}, "eo": {"articles": 235590, "name": "Esperanto", "english_name": "Esperanto"}, "en": {"articles": 5308212, "name": "English", "english_name": "English"}, "zh": {"articles": 915374, "name": "中文", "english_name": "Chinese"}, "pms": {"articles": 63988, "name": "Piemontèis", "english_name": "Piedmontese"}, "arz": {"articles": 16103, "name": "مصرى (Maṣri)", "english_name": "Egyptian Arabic"}, "eu": {"articles": 261872, "name": "Euskara", "english_name": "Basque"}, "et": {"articles": 151596, "name": "Eesti", "english_name": "Estonian"}, "es": {"articles": 1301888, "name": "Español", "english_name": "Spanish"}, "ba": {"articles": 36625, "name": "Башҡорт", "english_name": "Bashkir"}, "ru": {"articles": 1359387, "name": "Русский", "english_name": "Russian"}, "new": {"articles": 72176, "name": "नेपाल भाषा", "english_name": "Newar"}, "ro": {"articles": 373081, "name": "Română", "english_name": "Romanian"}, "jv": {"articles": 49676, "name": "Basa Jawa", "english_name": "Javanese"}, "hsb": {"articles": 10909, "name": "Hornjoserbsce", "english_name": "Upper Sorbian"}, "be": {"articles": 123483, "name": "Беларуская", "english_name": "Belarusian"}, "bg": {"articles": 223764, "name": "Български", "english_name": "Bulgarian"}, "uk": {"articles": 667063, "name": "Українська", "english_name": "Ukrainian"}, "wa": {"articles": 14315, "name": "Walon", "english_name": "Walloon"}, "ast": {"articles": 47719, "name": "Asturianu", "english_name": "Asturian"}, "bn": {"articles": 46064, "name": "বাংলা", "english_name": "Bengali"}, "map-bms": {"articles": 13275, "name": "Basa Banyumasan", "english_name": "Banyumasan"}, "br": {"articles": 60626, "name": "Brezhoneg", "english_name": "Breton"}, "bs": {"articles": 72084, "name": "Bosanski", "english_name": "Bosnian"}, "ja": {"articles": 1041648, "name": "日本語", "english_name": "Japanese"}, "oc": {"articles": 84329, "name": "Occitan", "english_name": "Occitan"}, "be-tarask": {"articles": 59873, "name": "Беларуская (тарашкевіца)", "english_name": "Belarusian (Taraškievica)"}, "nds": {"articles": 25733, "name": "Plattdüütsch", "english_name": "Low Saxon"}, "os": {"articles": 10293, "name": "Иронау", "english_name": "Ossetian"}, "or": {"articles": 11725, "name": "ଓଡ଼ିଆ", "english_name": "Oriya"}, "simple": {"articles": 121800, "name": "Simple English", "english_name": "Simple English"}, "ca": {"articles": 528757, "name": "Català", "english_name": "Catalan"}, "lmo": {"articles": 34558, "name": "Lumbaart", "english_name": "Lombard"}, "ce": {"articles": 158923, "name": "Нохчийн", "english_name": "Chechen"}, "cy": {"articles": 89273, "name": "Cymraeg", "english_name": "Welsh"}, "cs": {"articles": 369105, "name": "Čeština", "english_name": "Czech"}, "cv": {"articles": 36501, "name": "Чăваш", "english_name": "Chuvash"}, "pt": {"articles": 949123, "name": "Português", "english_name": "Portuguese"}, "lt": {"articles": 180377, "name": "Lietuvių", "english_name": "Lithuanian"}, "zh-min-nan": {"articles": 201884, "name": "Bân-lâm-gú", "english_name": "Min Nan"}, "pa": {"articles": 24072, "name": "ਪੰਜਾਬੀ", "english_name": "Punjabi"}, "war": {"articles": 1261970, "name": "Winaray", "english_name": "Waray-Waray"}, "pl": {"articles": 1197597, "name": "Polski", "english_name": "Polish"}, "hy": {"articles": 212747, "name": "Հայերեն", "english_name": "Armenian"}, "an": {"articles": 31832, "name": "Aragonés", "english_name": "Aragonese"}, "hr": {"articles": 171047, "name": "Hrvatski", "english_name": "Croatian"}, "ht": {"articles": 51108, "name": "Krèyol ayisyen", "english_name": "Haitian"}, "hu": {"articles": 399927, "name": "Magyar", "english_name": "Hungarian"}, "bat-smg": {"articles": 15940, "name": "Žemaitėška", "english_name": "Samogitian"}, "hi": {"articles": 114396, "name": "हिन्दी", "english_name": "Hindi"}, "pnb": {"articles": 42670, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", "english_name": "Western Punjabi"}, "bug": {"articles": 14116, "name": "Basa Ugi", "english_name": "Buginese"}, "he": {"articles": 199250, "name": "עברית", "english_name": "Hebrew"}, "mg": {"articles": 82826, "name": "Malagasy", "english_name": "Malagasy"}, "uz": {"articles": 128744, "name": "O‘zbek", "english_name": "Uzbek"}, "ml": {"articles": 46807, "name": "മലയാളം", "english_name": "Malayalam"}, "azb": {"articles": 11827, "name": "تۆرکجه", "english_name": "South Azerbaijani"}, "mn": {"articles": 16285, "name": "Монгол", "english_name": "Mongolian"}, "mk": {"articles": 87543, "name": "Македонски", "english_name": "Macedonian"}, "ur": {"articles": 110819, "name": "اردو", "english_name": "Urdu"}, "ms": {"articles": 286189, "name": "Bahasa Melayu", "english_name": "Malay"}, "mr": {"articles": 45052, "name": "मराठी", "english_name": "Marathi"}, "my": {"articles": 33576, "name": "မြန်မာဘာသာ", "english_name": "Burmese"}, "sah": {"articles": 10965, "name": "Саха тыла (Saxa Tyla)", "english_name": "Sakha"}, "af": {"articles": 43005, "name": "Afrikaans", "english_name": "Afrikaans"}, "vi": {"articles": 1151596, "name": "Tiếng Việt", "english_name": "Vietnamese"}, "is": {"articles": 41503, "name": "Íslenska", "english_name": "Icelandic"}, "am": {"articles": 13297, "name": "አማርኛ", "english_name": "Amharic"}, "it": {"articles": 1317642, "name": "Italiano", "english_name": "Italian"}, "vo": {"articles": 120413, "name": "Volapük", "english_name": "Volapük"}, "ar": {"articles": 453687, "name": "العربية", "english_name": "Arabic"}, "io": {"articles": 26845, "name": "Ido", "english_name": "Ido"}, "ia": {"articles": 19784, "name": "Interlingua", "english_name": "Interlingua"}, "az": {"articles": 111510, "name": "Azərbaycanca", "english_name": "Azerbaijani"}, "id": {"articles": 390261, "name": "Bahasa Indonesia", "english_name": "Indonesian"}, "nl": {"articles": 1885863, "name": "Nederlands", "english_name": "Dutch"}, "nn": {"articles": 131704, "name": "Nynorsk", "english_name": "Norwegian (Nynorsk)"}, "no": {"articles": 458295, "name": "Norsk (Bokmål)", "english_name": "Norwegian (Bokmål)"}, "nah": {"articles": 10429, "name": "Nāhuatl", "english_name": "Nahuatl"}, "ne": {"articles": 29279, "name": "नेपाली", "english_name": "Nepali"}, "nap": {"articles": 14400, "name": "Nnapulitano", "english_name": "Neapolitan"}, "fr": {"articles": 1823284, "name": "Français", "english_name": "French"}, "mrj": {"articles": 10164, "name": "Кырык Мары (Kyryk Mary)", "english_name": "Hill Mari"}, "zh-yue": {"articles": 49372, "name": "粵語", "english_name": "Cantonese"}, "fy": {"articles": 36467, "name": "Frysk", "english_name": "West Frisian"}, "fa": {"articles": 516655, "name": "فارسی", "english_name": "Persian"}, "fi": {"articles": 405189, "name": "Suomi", "english_name": "Finnish"}, "mzn": {"articles": 12362, "name": "مَزِروني", "english_name": "Mazandarani"}, "sa": {"articles": 10198, "name": "संस्कृतम्", "english_name": "Sanskrit"}, "fo": {"articles": 12373, "name": "Føroyskt", "english_name": "Faroese"}, "ka": {"articles": 111160, "name": "ქართული", "english_name": "Georgian"}, "ckb": {"articles": 18218, "name": "Soranî / کوردی", "english_name": "Sorani"}, "kk": {"articles": 217488, "name": "Қазақша", "english_name": "Kazakh"}, "sr": {"articles": 342526, "name": "Српски / Srpski", "english_name": "Serbian"}, "sq": {"articles": 62453, "name": "Shqip", "english_name": "Albanian"}, "min": {"articles": 221961, "name": "Minangkabau", "english_name": "Minangkabau"}, "ko": {"articles": 367197, "name": "한국어", "english_name": "Korean"}, "sv": {"articles": 3783412, "name": "Svenska", "english_name": "Swedish"}, "su": {"articles": 19163, "name": "Basa Sunda", "english_name": "Sundanese"}, "sk": {"articles": 215364, "name": "Slovenčina", "english_name": "Slovak"}, "si": {"articles": 12831, "name": "සිංහල", "english_name": "Sinhalese"}, "sh": {"articles": 436549, "name": "Srpskohrvatski / Српскохрватски", "english_name": "Serbo-Croatian"}, "ku": {"articles": 22370, "name": "Kurdî / كوردی", "english_name": "Kurdish"}, "sl": {"articles": 153986, "name": "Slovenščina", "english_name": "Slovenian"}, "ky": {"articles": 60035, "name": "Кыргызча", "english_name": "Kirghiz"}, "sw": {"articles": 34775, "name": "Kiswahili", "english_name": "Swahili"}}, "bing news": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "nb", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "yahoo news": ["ar", "bg", "zh-chs", "zh-cht", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"], "swisscows": ["browser", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "en-CA", "fr-CA", "es-CL", "zh-CN", "da-DK", "fi-FI", "fr-FR", "de-DE", "zh-HK", "en-IN", "en-IE", "it-IT", "ja-JP", "ko-KR", "en-MY", "es-MX", "nl-NL", "en-NZ", "nb-NO", "en-PH", "pl-PL", "pt-PT", "ru-RU", "en-ZA", "es-ES", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR", "en-GB", "en-US", "es-US"], "wikidata": {"sco": {"articles": 41758, "name": "Scots", "english_name": "Scots"}, "scn": {"articles": 25373, "name": "Sicilianu", "english_name": "Sicilian"}, "gu": {"articles": 26688, "name": "ગુજરાતી", "english_name": "Gujarati"}, "gd": {"articles": 14250, "name": "Gàidhlig", "english_name": "Scottish Gaelic"}, "ga": {"articles": 38830, "name": "Gaeilge", "english_name": "Irish"}, "gl": {"articles": 134702, "name": "Galego", "english_name": "Galician"}, "als": {"articles": 22350, "name": "Alemannisch", "english_name": "Alemannic"}, "lb": {"articles": 47313, "name": "Lëtzebuergesch", "english_name": "Luxembourgish"}, "la": {"articles": 125692, "name": "Latina", "english_name": "Latin"}, "tt": {"articles": 69908, "name": "Tatarça / Татарча", "english_name": "Tatar"}, "tr": {"articles": 287464, "name": "Türkçe", "english_name": "Turkish"}, "li": {"articles": 11552, "name": "Limburgs", "english_name": "Limburgish"}, "lv": {"articles": 74371, "name": "Latviešu", "english_name": "Latvian"}, "tl": {"articles": 65689, "name": "Tagalog", "english_name": "Tagalog"}, "vec": {"articles": 10855, "name": "Vèneto", "english_name": "Venetian"}, "th": {"articles": 113239, "name": "ไทย", "english_name": "Thai"}, "tg": {"articles": 67388, "name": "Тоҷикӣ", "english_name": "Tajik"}, "te": {"articles": 66228, "name": "తెలుగు", "english_name": "Telugu"}, "ta": {"articles": 89570, "name": "தமிழ்", "english_name": "Tamil"}, "yi": {"articles": 13591, "name": "ייִדיש", "english_name": "Yiddish"}, "ceb": {"articles": 3535780, "name": "Sinugboanong Binisaya", "english_name": "Cebuano"}, "yo": {"articles": 31494, "name": "Yorùbá", "english_name": "Yoruba"}, "de": {"articles": 2009282, "name": "Deutsch", "english_name": "German"}, "da": {"articles": 221813, "name": "Dansk", "english_name": "Danish"}, "qu": {"articles": 19810, "name": "Runa Simi", "english_name": "Quechua"}, "bar": {"articles": 21968, "name": "Boarisch", "english_name": "Bavarian"}, "kn": {"articles": 21607, "name": "ಕನ್ನಡ", "english_name": "Kannada"}, "bpy": {"articles": 25067, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", "english_name": "Bishnupriya Manipuri"}, "el": {"articles": 124371, "name": "Ελληνικά", "english_name": "Greek"}, "eo": {"articles": 235590, "name": "Esperanto", "english_name": "Esperanto"}, "en": {"articles": 5308212, "name": "English", "english_name": "English"}, "zh": {"articles": 915374, "name": "中文", "english_name": "Chinese"}, "pms": {"articles": 63988, "name": "Piemontèis", "english_name": "Piedmontese"}, "arz": {"articles": 16103, "name": "مصرى (Maṣri)", "english_name": "Egyptian Arabic"}, "eu": {"articles": 261872, "name": "Euskara", "english_name": "Basque"}, "et": {"articles": 151596, "name": "Eesti", "english_name": "Estonian"}, "es": {"articles": 1301888, "name": "Español", "english_name": "Spanish"}, "ba": {"articles": 36625, "name": "Башҡорт", "english_name": "Bashkir"}, "ru": {"articles": 1359387, "name": "Русский", "english_name": "Russian"}, "new": {"articles": 72176, "name": "नेपाल भाषा", "english_name": "Newar"}, "ro": {"articles": 373081, "name": "Română", "english_name": "Romanian"}, "jv": {"articles": 49676, "name": "Basa Jawa", "english_name": "Javanese"}, "hsb": {"articles": 10909, "name": "Hornjoserbsce", "english_name": "Upper Sorbian"}, "be": {"articles": 123483, "name": "Беларуская", "english_name": "Belarusian"}, "bg": {"articles": 223764, "name": "Български", "english_name": "Bulgarian"}, "uk": {"articles": 667063, "name": "Українська", "english_name": "Ukrainian"}, "wa": {"articles": 14315, "name": "Walon", "english_name": "Walloon"}, "ast": {"articles": 47719, "name": "Asturianu", "english_name": "Asturian"}, "bn": {"articles": 46064, "name": "বাংলা", "english_name": "Bengali"}, "map-bms": {"articles": 13275, "name": "Basa Banyumasan", "english_name": "Banyumasan"}, "br": {"articles": 60626, "name": "Brezhoneg", "english_name": "Breton"}, "bs": {"articles": 72084, "name": "Bosanski", "english_name": "Bosnian"}, "ja": {"articles": 1041648, "name": "日本語", "english_name": "Japanese"}, "oc": {"articles": 84329, "name": "Occitan", "english_name": "Occitan"}, "be-tarask": {"articles": 59873, "name": "Беларуская (тарашкевіца)", "english_name": "Belarusian (Taraškievica)"}, "nds": {"articles": 25733, "name": "Plattdüütsch", "english_name": "Low Saxon"}, "os": {"articles": 10293, "name": "Иронау", "english_name": "Ossetian"}, "or": {"articles": 11725, "name": "ଓଡ଼ିଆ", "english_name": "Oriya"}, "simple": {"articles": 121800, "name": "Simple English", "english_name": "Simple English"}, "ca": {"articles": 528757, "name": "Català", "english_name": "Catalan"}, "lmo": {"articles": 34558, "name": "Lumbaart", "english_name": "Lombard"}, "ce": {"articles": 158923, "name": "Нохчийн", "english_name": "Chechen"}, "cy": {"articles": 89273, "name": "Cymraeg", "english_name": "Welsh"}, "cs": {"articles": 369105, "name": "Čeština", "english_name": "Czech"}, "cv": {"articles": 36501, "name": "Чăваш", "english_name": "Chuvash"}, "pt": {"articles": 949123, "name": "Português", "english_name": "Portuguese"}, "lt": {"articles": 180377, "name": "Lietuvių", "english_name": "Lithuanian"}, "zh-min-nan": {"articles": 201884, "name": "Bân-lâm-gú", "english_name": "Min Nan"}, "pa": {"articles": 24072, "name": "ਪੰਜਾਬੀ", "english_name": "Punjabi"}, "war": {"articles": 1261970, "name": "Winaray", "english_name": "Waray-Waray"}, "pl": {"articles": 1197597, "name": "Polski", "english_name": "Polish"}, "hy": {"articles": 212747, "name": "Հայերեն", "english_name": "Armenian"}, "an": {"articles": 31832, "name": "Aragonés", "english_name": "Aragonese"}, "hr": {"articles": 171047, "name": "Hrvatski", "english_name": "Croatian"}, "ht": {"articles": 51108, "name": "Krèyol ayisyen", "english_name": "Haitian"}, "hu": {"articles": 399927, "name": "Magyar", "english_name": "Hungarian"}, "bat-smg": {"articles": 15940, "name": "Žemaitėška", "english_name": "Samogitian"}, "hi": {"articles": 114396, "name": "हिन्दी", "english_name": "Hindi"}, "pnb": {"articles": 42670, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", "english_name": "Western Punjabi"}, "bug": {"articles": 14116, "name": "Basa Ugi", "english_name": "Buginese"}, "he": {"articles": 199250, "name": "עברית", "english_name": "Hebrew"}, "mg": {"articles": 82826, "name": "Malagasy", "english_name": "Malagasy"}, "uz": {"articles": 128744, "name": "O‘zbek", "english_name": "Uzbek"}, "ml": {"articles": 46807, "name": "മലയാളം", "english_name": "Malayalam"}, "azb": {"articles": 11827, "name": "تۆرکجه", "english_name": "South Azerbaijani"}, "mn": {"articles": 16285, "name": "Монгол", "english_name": "Mongolian"}, "mk": {"articles": 87543, "name": "Македонски", "english_name": "Macedonian"}, "ur": {"articles": 110819, "name": "اردو", "english_name": "Urdu"}, "ms": {"articles": 286189, "name": "Bahasa Melayu", "english_name": "Malay"}, "mr": {"articles": 45052, "name": "मराठी", "english_name": "Marathi"}, "my": {"articles": 33576, "name": "မြန်မာဘာသာ", "english_name": "Burmese"}, "sah": {"articles": 10965, "name": "Саха тыла (Saxa Tyla)", "english_name": "Sakha"}, "af": {"articles": 43005, "name": "Afrikaans", "english_name": "Afrikaans"}, "vi": {"articles": 1151596, "name": "Tiếng Việt", "english_name": "Vietnamese"}, "is": {"articles": 41503, "name": "Íslenska", "english_name": "Icelandic"}, "am": {"articles": 13297, "name": "አማርኛ", "english_name": "Amharic"}, "it": {"articles": 1317642, "name": "Italiano", "english_name": "Italian"}, "vo": {"articles": 120413, "name": "Volapük", "english_name": "Volapük"}, "ar": {"articles": 453687, "name": "العربية", "english_name": "Arabic"}, "io": {"articles": 26845, "name": "Ido", "english_name": "Ido"}, "ia": {"articles": 19784, "name": "Interlingua", "english_name": "Interlingua"}, "az": {"articles": 111510, "name": "Azərbaycanca", "english_name": "Azerbaijani"}, "id": {"articles": 390261, "name": "Bahasa Indonesia", "english_name": "Indonesian"}, "nl": {"articles": 1885863, "name": "Nederlands", "english_name": "Dutch"}, "nn": {"articles": 131704, "name": "Nynorsk", "english_name": "Norwegian (Nynorsk)"}, "no": {"articles": 458295, "name": "Norsk (Bokmål)", "english_name": "Norwegian (Bokmål)"}, "nah": {"articles": 10429, "name": "Nāhuatl", "english_name": "Nahuatl"}, "ne": {"articles": 29279, "name": "नेपाली", "english_name": "Nepali"}, "nap": {"articles": 14400, "name": "Nnapulitano", "english_name": "Neapolitan"}, "fr": {"articles": 1823284, "name": "Français", "english_name": "French"}, "mrj": {"articles": 10164, "name": "Кырык Мары (Kyryk Mary)", "english_name": "Hill Mari"}, "zh-yue": {"articles": 49372, "name": "粵語", "english_name": "Cantonese"}, "fy": {"articles": 36467, "name": "Frysk", "english_name": "West Frisian"}, "fa": {"articles": 516655, "name": "فارسی", "english_name": "Persian"}, "fi": {"articles": 405189, "name": "Suomi", "english_name": "Finnish"}, "mzn": {"articles": 12362, "name": "مَزِروني", "english_name": "Mazandarani"}, "sa": {"articles": 10198, "name": "संस्कृतम्", "english_name": "Sanskrit"}, "fo": {"articles": 12373, "name": "Føroyskt", "english_name": "Faroese"}, "ka": {"articles": 111160, "name": "ქართული", "english_name": "Georgian"}, "ckb": {"articles": 18218, "name": "Soranî / کوردی", "english_name": "Sorani"}, "kk": {"articles": 217488, "name": "Қазақша", "english_name": "Kazakh"}, "sr": {"articles": 342526, "name": "Српски / Srpski", "english_name": "Serbian"}, "sq": {"articles": 62453, "name": "Shqip", "english_name": "Albanian"}, "min": {"articles": 221961, "name": "Minangkabau", "english_name": "Minangkabau"}, "ko": {"articles": 367197, "name": "한국어", "english_name": "Korean"}, "sv": {"articles": 3783412, "name": "Svenska", "english_name": "Swedish"}, "su": {"articles": 19163, "name": "Basa Sunda", "english_name": "Sundanese"}, "sk": {"articles": 215364, "name": "Slovenčina", "english_name": "Slovak"}, "si": {"articles": 12831, "name": "සිංහල", "english_name": "Sinhalese"}, "sh": {"articles": 436549, "name": "Srpskohrvatski / Српскохрватски", "english_name": "Serbo-Croatian"}, "ku": {"articles": 22370, "name": "Kurdî / كوردی", "english_name": "Kurdish"}, "sl": {"articles": 153986, "name": "Slovenščina", "english_name": "Slovenian"}, "ky": {"articles": 60035, "name": "Кыргызча", "english_name": "Kirghiz"}, "sw": {"articles": 34775, "name": "Kiswahili", "english_name": "Swahili"}}, "ddg definitions": ["da-DK", "vi-VN", "en-SG", "sl-SL", "en-XA", "tzh-HK", "en-UK", "ro-RO", "en-MY", "el-GR", "it-CH", "hu-HU", "fr-FR", "en-PH", "tl-PH", "fr-CA", "fi-FI", "et-EE", "sv-SE", "es-XL", "th-TH", "sk-SK", "es-ES", "en-IE", "es-US", "es-PE", "nl-NL", "en-US", "de-DE", "de-AT", "wt-WT", "no-NO", "tr-TR", "ca-ES", "it-IT", "es-CO", "ru-RU", "ca-CT", "en-ZA", "en-CA", "jp-JP", "es-MX", "id-ID", "es-AR", "he-IL", "kr-KR", "en-AU", "ms-MY", "pl-PL", "lv-LV", "bg-BG", "zh-CN", "en-NZ", "lt-LT", "tzh-TW", "hr-HR", "pt-PT", "fr-BE", "de-CH", "cs-CZ", "en-IN", "nl-BE", "fr-CH", "en-ID", "ar-XA", "pt-BR", "uk-UA", "es-CL"], "bing images": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "nb", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "yahoo": ["ar", "bg", "zh-chs", "zh-cht", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"], "gigablast": ["en", "fr", "es", "ru", "tr", "ja", "h_", "tw", "cn", "ko", "de", "nl", "it", "fi", "sv", "no", "pt", "vi", "ar", "he", "id", "el", "th", "hi", "bn", "pl", "tl", "la", "eo", "ca", "bg", "tx", "sr", "hu", "da", "lt", "cs", "gl", "ka", "gd", "go", "ro", "ga", "lv", "hy", "is", "ag", "gv", "io", "fa", "te", "vv", "mg", "ku", "lb", "et"]}
searx/engines/.yandex.py.swpdeleted

Binary file not shown.

searx/engines/__init__.py+10−3
@@ -21,6 +21,7 @@ import sys
2121from flask_babel import gettext
2222from operator import itemgetter
2323from json import loads
24+from requests import get
2425from searx import settings
2526from searx import logger
2627from searx.utils import load_module
@@ -79,9 +80,6 @@ def load_engine(engine_data):
7980 if not hasattr(engine, arg_name):
8081 setattr(engine, arg_name, arg_value)
8182
82− if engine_data['name'] in languages:
83− setattr(engine, 'supported_languages', languages[engine_data['name']])
84−
8583 # checking required variables
8684 for engine_attr in dir(engine):
8785 if engine_attr.startswith('_'):
@@ -91,6 +89,15 @@ def load_engine(engine_data):
9189 .format(engine.name, engine_attr))
9290 sys.exit(1)
9391
92+ # assign supported languages from json file
93+ if engine_data['name'] in languages:
94+ setattr(engine, 'supported_languages', languages[engine_data['name']])
95+
96+ # assign language fetching method if auxiliary method exists
97+ if hasattr(engine, '_fetch_supported_languages'):
98+ setattr(engine, 'fetch_supported_languages',
99+ lambda: engine._fetch_supported_languages(get(engine.supported_languages_url)))
100+
94101 engine.stats = {
95102 'result_count': 0,
96103 'search_count': 0,
searx/engines/bing.py+2−4
@@ -15,7 +15,6 @@
1515
1616from urllib import urlencode
1717from lxml import html
18−from requests import get
1918from searx.engines.xpath import extract_text
2019
2120# engine dependent config
@@ -86,10 +85,9 @@ def response(resp):
8685
8786
8887# get supported languages from their site
89−def fetch_supported_languages():
88+def _fetch_supported_languages(resp):
9089 supported_languages = []
91− response = get(supported_languages_url)
92− dom = html.fromstring(response.text)
90+ dom = html.fromstring(resp.text)
9391 options = dom.xpath('//div[@id="limit-languages"]//input')
9492 for option in options:
9593 code = option.xpath('./@id')[0].replace('_', '-')
searx/engines/bing_images.py+1−1
@@ -19,7 +19,7 @@ from urllib import urlencode
1919from lxml import html
2020from json import loads
2121import re
22−from searx.engines.bing import fetch_supported_languages
22+from searx.engines.bing import _fetch_supported_languages, supported_languages_url
2323
2424# engine dependent config
2525categories = ['images']
searx/engines/bing_news.py+1−1
@@ -17,7 +17,7 @@ from datetime import datetime
1717from dateutil import parser
1818from lxml import etree
1919from searx.utils import list_get
20−from searx.engines.bing import fetch_supported_languages
20+from searx.engines.bing import _fetch_supported_languages, supported_languages_url
2121
2222# engine dependent config
2323categories = ['news']
searx/engines/dailymotion.py+2−3
@@ -80,11 +80,10 @@ def response(resp):
8080
8181
8282# get supported languages from their site
83−def fetch_supported_languages():
83+def _fetch_supported_languages(resp):
8484 supported_languages = {}
8585
86− response = get(supported_languages_url)
87− response_json = loads(response.text)
86+ response_json = loads(resp.text)
8887
8988 for language in response_json['list']:
9089 supported_languages[language['code']] = {}
searx/engines/duckduckgo.py+2−3
@@ -119,11 +119,10 @@ def response(resp):
119119
120120
121121# get supported languages from their site
122−def fetch_supported_languages():
123− response = get(supported_languages_url)
122+def _fetch_supported_languages(resp):
124123
125124 # response is a js file with regions as an embedded object
126− response_page = response.text
125+ response_page = resp.text
127126 response_page = response_page[response_page.find('regions:{') + 8:]
128127 response_page = response_page[:response_page.find('}') + 1]
129128
searx/engines/duckduckgo_definitions.py+1−1
@@ -4,7 +4,7 @@ from re import compile, sub
44from lxml import html
55from searx.utils import html_to_text
66from searx.engines.xpath import extract_text
7−from searx.engines.duckduckgo import fetch_supported_languages
7+from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url
88
99url = 'https://api.duckduckgo.com/'\
1010 + '?{query}&format=json&pretty=0&no_redirect=1&d=1'
searx/engines/gigablast.py+2−4
@@ -14,7 +14,6 @@ from json import loads
1414from random import randint
1515from time import time
1616from urllib import urlencode
17−from requests import get
1817from lxml.html import fromstring
1918
2019# engine dependent config
@@ -91,10 +90,9 @@ def response(resp):
9190
9291
9392# get supported languages from their site
94−def fetch_supported_languages():
93+def _fetch_supported_languages(resp):
9594 supported_languages = []
96− response = get(supported_languages_url)
97− dom = fromstring(response.text)
95+ dom = fromstring(resp.text)
9896 links = dom.xpath('//span[@id="menu2"]/a')
9997 for link in links:
10098 code = link.xpath('./@href')[0][-2:]
searx/engines/google.py+5−7
@@ -12,7 +12,6 @@ import re
1212from urllib import urlencode
1313from urlparse import urlparse, parse_qsl
1414from lxml import html, etree
15−from requests import get
1615from searx.engines.xpath import extract_text, extract_url
1716from searx.search import logger
1817
@@ -364,14 +363,13 @@ def attributes_to_html(attributes):
364363
365364
366365# get supported languages from their site
367−def fetch_supported_languages():
366+def _fetch_supported_languages(resp):
368367 supported_languages = {}
369− response = get(supported_languages_url)
370− dom = html.fromstring(response.text)
371− options = dom.xpath('//select[@name="hl"]/option')
368+ dom = html.fromstring(resp.text)
369+ options = dom.xpath('//table//td/font/label/span')
372370 for option in options:
373− code = option.xpath('./@value')[0].split('-')[0]
374− name = option.text[:-1].title()
371+ code = option.xpath('./@id')[0][1:]
372+ name = option.text.title()
375373 supported_languages[code] = {"name": name}
376374
377375 return supported_languages
searx/engines/google_news.py+1−1
@@ -13,7 +13,7 @@
1313from lxml import html
1414from urllib import urlencode
1515from json import loads
16−from searx.engines.google import fetch_supported_languages
16+from searx.engines.google import _fetch_supported_languages, supported_languages_url
1717
1818# search-url
1919categories = ['news']
searx/engines/swisscows.py+4−4
@@ -13,7 +13,6 @@
1313from json import loads
1414from urllib import urlencode, unquote
1515import re
16−from requests import get
1716from lxml.html import fromstring
1817
1918# engine dependent config
@@ -25,6 +24,8 @@ language_support = True
2524base_url = 'https://swisscows.ch/'
2625search_string = '?{query}&page={page}'
2726
27+supported_languages_url = base_url
28+
2829# regex
2930regex_json = re.compile(r'initialData: {"Request":(.|\n)*},\s*environment')
3031regex_json_remove_start = re.compile(r'^initialData:\s*')
@@ -113,10 +114,9 @@ def response(resp):
113114
114115
115116# get supported languages from their site
116−def fetch_supported_languages():
117+def _fetch_supported_languages(resp):
117118 supported_languages = []
118− response = get(base_url)
119− dom = fromstring(response.text)
119+ dom = fromstring(resp.text)
120120 options = dom.xpath('//div[@id="regions-popup"]//ul/li/a')
121121 for option in options:
122122 code = option.xpath('./@data-val')[0]
searx/engines/wikidata.py+1−1
@@ -15,7 +15,7 @@ from searx import logger
1515from searx.poolrequests import get
1616from searx.engines.xpath import extract_text
1717from searx.utils import format_date_by_locale
18−from searx.engines.wikipedia import fetch_supported_languages
18+from searx.engines.wikipedia import _fetch_supported_languages, supported_languages_url
1919
2020from json import loads
2121from lxml.html import fromstring
searx/engines/wikipedia.py+2−4
@@ -12,7 +12,6 @@
1212
1313from json import loads
1414from urllib import urlencode, quote
15−from requests import get
1615from lxml.html import fromstring
1716
1817
@@ -119,10 +118,9 @@ def response(resp):
119118
120119
121120# get supported languages from their site
122−def fetch_supported_languages():
121+def _fetch_supported_languages(resp):
123122 supported_languages = {}
124− response = get(supported_languages_url)
125− dom = fromstring(response.text)
123+ dom = fromstring(resp.text)
126124 tables = dom.xpath('//table[contains(@class,"sortable")]')
127125 for table in tables:
128126 # exclude header row
searx/engines/yahoo.py+3−5
@@ -14,7 +14,6 @@
1414from urllib import urlencode
1515from urlparse import unquote
1616from lxml import html
17−from requests import get
1817from searx.engines.xpath import extract_text, extract_url
1918
2019# engine dependent config
@@ -144,13 +143,12 @@ def response(resp):
144143
145144
146145# get supported languages from their site
147−def fetch_supported_languages():
146+def _fetch_supported_languages(resp):
148147 supported_languages = []
149− response = get(supported_languages_url)
150− dom = html.fromstring(response.text)
148+ dom = html.fromstring(resp.text)
151149 options = dom.xpath('//div[@id="yschlang"]/span/label/input')
152150 for option in options:
153− code = option.xpath('./@value')[0][5:]
151+ code = option.xpath('./@value')[0][5:].replace('_', '-')
154152 supported_languages.append(code)
155153
156154 return supported_languages
searx/engines/yahoo_news.py+1−1
@@ -12,7 +12,7 @@
1212from urllib import urlencode
1313from lxml import html
1414from searx.engines.xpath import extract_text, extract_url
15−from searx.engines.yahoo import parse_url, fetch_supported_languages
15+from searx.engines.yahoo import parse_url, _fetch_supported_languages, supported_languages_url
1616from datetime import datetime, timedelta
1717import re
1818from dateutil import parser
searx/languages.py+25−85
@@ -3,36 +3,27 @@
33# this file is generated automatically by utils/update_search_languages.py
44
55language_codes = (
6− (u"ach", u"Acoli", u"", u""),
76 (u"af", u"Afrikaans", u"", u""),
8− (u"ak", u"Akan", u"", u""),
9− (u"am", u"አማርኛ", u"", u""),
7+ (u"am", u"አማርኛ", u"", u"Amharic"),
108 (u"ar-SA", u"العربية", u"المملكة العربية السعودية", u"Arabic"),
119 (u"az", u"Azərbaycanca", u"", u"Azerbaijani"),
12− (u"ban", u"Balinese", u"", u""),
1310 (u"be", u"Беларуская", u"", u"Belarusian"),
14− (u"bem", u"Ichibemba", u"", u""),
1511 (u"bg-BG", u"Български", u"България", u"Bulgarian"),
16− (u"bn", u"বাংলা", u"", u""),
17− (u"br", u"Brezhoneg", u"", u""),
18− (u"bs", u"Bosanski", u"", u""),
12+ (u"bn", u"বাংলা", u"", u"Bengali"),
13+ (u"br", u"Brezhoneg", u"", u"Breton"),
14+ (u"bs", u"Bosnian", u"", u"Bosnian"),
1915 (u"ca", u"Català", u"", u"Catalan"),
2016 (u"ca-CT", u"Català", u"", u"Catalan"),
2117 (u"ca-ES", u"Català", u"Espanya", u"Catalan"),
2218 (u"ce", u"Нохчийн", u"", u"Chechen"),
2319 (u"ceb", u"Sinugboanong Binisaya", u"", u"Cebuano"),
24− (u"chr", u"ᏣᎳᎩ", u"", u""),
25− (u"ckb", u"Central Kurdish", u"", u""),
26− (u"co", u"Corsican", u"", u""),
27− (u"crs", u"Seychellois Creole", u"", u""),
2820 (u"cs-CZ", u"Čeština", u"Česko", u"Czech"),
29− (u"cy", u"Cymraeg", u"", u""),
21+ (u"cy", u"Cymraeg", u"", u"Welsh"),
3022 (u"da-DK", u"Dansk", u"Danmark", u"Danish"),
3123 (u"de", u"Deutsch", u"", u"German"),
3224 (u"de-AT", u"Deutsch", u"Österreich", u"German"),
3325 (u"de-CH", u"Deutsch", u"Schweiz", u"German"),
3426 (u"de-DE", u"Deutsch", u"Deutschland", u"German"),
35− (u"ee", u"Eʋegbe", u"", u""),
3627 (u"el-GR", u"Ελληνικά", u"Ελλάδα", u"Greek"),
3728 (u"en", u"English", u"", u"English"),
3829 (u"en-AU", u"English", u"Australia", u"English"),
@@ -60,30 +51,20 @@ language_codes = (
6051 (u"eu", u"Euskara", u"", u"Basque"),
6152 (u"fa", u"فارسی", u"", u"Persian"),
6253 (u"fi-FI", u"Suomi", u"Suomi", u"Finnish"),
63− (u"fo", u"Føroyskt", u"", u""),
6454 (u"fr", u"Français", u"", u"French"),
6555 (u"fr-BE", u"Français", u"Belgique", u"French"),
6656 (u"fr-CA", u"Français", u"Canada", u"French"),
6757 (u"fr-CH", u"Français", u"Suisse", u"French"),
6858 (u"fr-FR", u"Français", u"France", u"French"),
69− (u"fy", u"West-Frysk", u"", u""),
70− (u"ga", u"Gaeilge", u"", u""),
71− (u"gaa", u"Ga", u"", u""),
72− (u"gd", u"Gàidhlig", u"", u""),
59+ (u"ga", u"Gaeilge", u"", u"Irish"),
7360 (u"gl", u"Galego", u"", u"Galician"),
74− (u"gn", u"Guarani", u"", u""),
75− (u"gu", u"ગુજરાતી", u"", u""),
76− (u"ha", u"Hausa", u"", u""),
77− (u"haw", u"ʻŌlelo HawaiʻI", u"", u""),
61+ (u"gu", u"ગુજરાતી", u"", u"Gujarati"),
7862 (u"he-IL", u"עברית", u"ישראל", u"Hebrew"),
7963 (u"hi", u"हिन्दी", u"", u"Hindi"),
8064 (u"hr-HR", u"Hrvatski", u"Hrvatska", u"Croatian"),
81− (u"ht", u"Haitian Creole", u"", u""),
8265 (u"hu-HU", u"Magyar", u"Magyarország", u"Hungarian"),
8366 (u"hy", u"Հայերեն", u"", u"Armenian"),
84− (u"ia", u"Interlingua", u"", u""),
8567 (u"id-ID", u"Bahasa Indonesia", u"Indonesia", u"Indonesian"),
86− (u"ig", u"Igbo", u"", u""),
8768 (u"is", u"Íslenska", u"", u""),
8869 (u"it", u"Italiano", u"", u"Italian"),
8970 (u"it-CH", u"Italiano", u"Svizzera", u"Italian"),
@@ -91,86 +72,48 @@ language_codes = (
9172 (u"iw", u"עברית", u"", u""),
9273 (u"ja-JP", u"日本語", u"日本", u"Japanese"),
9374 (u"ka", u"ქართული", u"", u"Georgian"),
94− (u"kg", u"Kongo", u"", u""),
9575 (u"kk", u"Қазақша", u"", u"Kazakh"),
96− (u"km", u"ខ្មែរ", u"", u""),
97− (u"kn", u"ಕನ್ನಡ", u"", u""),
76+ (u"kn", u"ಕನ್ನಡ", u"", u"Kannada"),
9877 (u"ko-KR", u"한국어", u"대한민국", u"Korean"),
99− (u"kri", u"Krio", u"", u""),
100− (u"ky", u"Кыргызча", u"", u""),
10178 (u"la", u"Latina", u"", u"Latin"),
102− (u"lg", u"Luganda", u"", u""),
103− (u"ln", u"Lingála", u"", u""),
104− (u"lo", u"ລາວ", u"", u""),
105− (u"loz", u"Lozi", u"", u""),
10679 (u"lt-LT", u"Lietuvių", u"Lietuva", u"Lithuanian"),
107− (u"lua", u"Luba-Lulua", u"", u""),
10880 (u"lv-LV", u"Latviešu", u"Latvijas Republika", u""),
109− (u"mfe", u"Kreol Morisien", u"", u""),
110− (u"mg", u"Malagasy", u"", u""),
111− (u"mi", u"Maori", u"", u""),
81+ (u"mi", u"Reo Māori", u"", u"Maori"),
11282 (u"min", u"Minangkabau", u"", u"Minangkabau"),
113− (u"mk", u"Македонски", u"", u""),
114− (u"ml", u"മലയാളം", u"", u""),
115− (u"mn", u"Монгол", u"", u""),
116− (u"mr", u"मराठी", u"", u""),
83+ (u"mk", u"Македонски", u"", u"Macedonian"),
84+ (u"mn", u"Монгол", u"", u"Mongolian"),
85+ (u"mr", u"मराठी", u"", u"Marathi"),
11786 (u"ms-MY", u"Bahasa Melayu", u"Malaysia", u"Malay"),
118− (u"mt", u"Malti", u"", u""),
119− (u"my", u"ဗမာ", u"", u""),
87+ (u"mt", u"Malti", u"", u"Maltese"),
12088 (u"nb-NO", u"Norwegian Bokmål", u"Norge", u"Norwegian Bokmål"),
121− (u"ne", u"नेपाली", u"", u""),
12289 (u"nl", u"Nederlands", u"", u"Dutch"),
12390 (u"nl-BE", u"Nederlands", u"België", u"Dutch"),
12491 (u"nl-NL", u"Nederlands", u"Nederland", u"Dutch"),
12592 (u"nn", u"Nynorsk", u"", u"Norwegian"),
12693 (u"no-NO", u"Norsk", u"Norge", u"Norwegian"),
127− (u"nso", u"Northern Sotho", u"", u""),
128− (u"ny", u"Nyanja", u"", u""),
129− (u"nyn", u"Runyankore", u"", u""),
130− (u"oc", u"Occitan", u"", u""),
131− (u"om", u"Oromoo", u"", u""),
132− (u"or", u"ଓଡ଼ିଆ", u"", u""),
133− (u"pa", u"ਪੰਜਾਬੀ", u"", u""),
134− (u"pcm", u"Nigerian Pidgin", u"", u""),
94+ (u"oc", u"Occitan", u"", u"Occitan"),
95+ (u"or", u"Oriya", u"", u"Oriya"),
96+ (u"pa", u"ਪੰਜਾਬੀ", u"", u"Panjabi"),
13597 (u"pl-PL", u"Polski", u"Rzeczpospolita Polska", u"Polish"),
136− (u"ps", u"پښتو", u"", u""),
98+ (u"ps", u"Pushto", u"", u"Pushto"),
13799 (u"pt", u"Português", u"", u"Portuguese"),
138100 (u"pt-BR", u"Português", u"Brasil", u"Portuguese"),
139101 (u"pt-PT", u"Português", u"Portugal", u"Portuguese"),
140− (u"qu", u"Runasimi", u"", u""),
141− (u"rm", u"Rumantsch", u"", u""),
142− (u"rn", u"Ikirundi", u"", u""),
143102 (u"ro-RO", u"Română", u"România", u"Romanian"),
144103 (u"ru-RU", u"Русский", u"Россия", u"Russian"),
145− (u"rw", u"Kinyarwanda", u"", u""),
146− (u"sd", u"Sindhi", u"", u""),
104+ (u"rw", u"Ikinyarwanda", u"", u"Kinyarwanda"),
147105 (u"sh", u"Srpskohrvatski / Српскохрватски", u"", u"Serbo-Croatian"),
148− (u"si", u"සිංහල", u"", u""),
149106 (u"sk-SK", u"Slovenčina", u"Slovenská republika", u"Slovak"),
150107 (u"sl", u"Slovenščina", u"", u"Slovenian"),
151− (u"sn", u"Chishona", u"", u""),
152− (u"so", u"Soomaali", u"", u""),
153− (u"sq", u"Shqip", u"", u""),
154108 (u"sr", u"Српски / Srpski", u"", u"Serbian"),
155− (u"st", u"Southern Sotho", u"", u""),
156− (u"su", u"Sundanese", u"", u""),
157109 (u"sv-SE", u"Svenska", u"Sverige", u"Swedish"),
158110 (u"sw", u"Kiswahili", u"", u""),
159− (u"ta", u"தமிழ்", u"", u""),
160− (u"te", u"తెలుగు", u"", u""),
161− (u"tg", u"Tajik", u"", u""),
111+ (u"ta", u"தமிழ்", u"", u"Tamil"),
162112 (u"th-TH", u"ไทย", u"ไทย", u"Thai"),
163− (u"ti", u"ትግርኛ", u"", u""),
164− (u"tk", u"Turkmen", u"", u""),
113+ (u"ti", u"ትግርኛ", u"", u"Tigrinya"),
165114 (u"tl-PH", u"Filipino", u"Pilipinas", u""),
166− (u"tlh", u"Klingon", u"", u""),
167− (u"tn", u"Tswana", u"", u""),
168− (u"to", u"Lea Fakatonga", u"", u""),
169115 (u"tr-TR", u"Türkçe", u"Türkiye", u"Turkish"),
170− (u"tt", u"Tatar", u"", u""),
171− (u"tum", u"Tumbuka", u"", u""),
172− (u"tw", u"Twi", u"", u""),
173− (u"ug", u"ئۇيغۇرچە", u"", u""),
116+ (u"tt", u"Татарча", u"", u"Tatar"),
174117 (u"uk-UA", u"Українська", u"Україна", u"Ukrainian"),
175118 (u"ur", u"اردو", u"", u"Urdu"),
176119 (u"uz", u"O‘zbek", u"", u"Uzbek"),
@@ -179,13 +122,10 @@ language_codes = (
179122 (u"vo", u"Volapük", u"", u"Volapük"),
180123 (u"wa", u"Walon", u"", u"Walloon"),
181124 (u"war", u"Winaray", u"", u"Waray-Waray"),
182− (u"wo", u"Wolof", u"", u""),
183− (u"xh", u"Xhosa", u"", u""),
184− (u"yi", u"ייִדיש", u"", u""),
185− (u"yo", u"Èdè Yorùbá", u"", u""),
125+ (u"xh", u"Xhosa", u"", u"Xhosa"),
186126 (u"zh", u"中文", u"", u"Chinese"),
187− (u"zh-CN", u"中文", u"中国", u"Chinese"),
127+ (u"zh-CN", u"中文", u"中国", u""),
188128 (u"zh-HK", u"中文", u"香港", u"Chinese"),
189− (u"zh-TW", u"中文", u"台湾", u"Chinese"),
190− (u"zu", u"Isizulu", u"", u"")
129+ (u"zh-TW", u"中文", u"台湾", u""),
130+ (u"zu", u"Isi-Zulu", u"", u"Zulu")
191131)
tests/unit/engines/test_bing.py+32
@@ -86,3 +86,35 @@ class TestBingEngine(SearxTestCase):
8686 self.assertEqual(results[0]['title'], 'This should be the title')
8787 self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/')
8888 self.assertEqual(results[0]['content'], 'This should be the content.')
89+
90+ def test_fetch_supported_languages(self):
91+ html = """<html></html>"""
92+ response = mock.Mock(text=html)
93+ results = bing._fetch_supported_languages(response)
94+ self.assertEqual(type(results), list)
95+ self.assertEqual(len(results), 0)
96+
97+ html = """
98+ <html>
99+ <body>
100+ <form>
101+ <div id="limit-languages">
102+ <div>
103+ <div><input id="es" value="es"></input></div>
104+ </div>
105+ <div>
106+ <div><input id="pt_BR" value="pt_BR"></input></div>
107+ <div><input id="pt_PT" value="pt_PT"></input></div>
108+ </div>
109+ </div>
110+ </form>
111+ </body>
112+ </html>
113+ """
114+ response = mock.Mock(text=html)
115+ languages = bing._fetch_supported_languages(response)
116+ self.assertEqual(type(languages), list)
117+ self.assertEqual(len(languages), 3)
118+ self.assertIn('es', languages)
119+ self.assertIn('pt-BR', languages)
120+ self.assertIn('pt-PT', languages)
tests/unit/engines/test_dailymotion.py+37
@@ -1,3 +1,4 @@
1+# -*- coding: utf-8 -*-
12from collections import defaultdict
23import mock
34from searx.engines import dailymotion
@@ -72,3 +73,39 @@ class TestDailymotionEngine(SearxTestCase):
7273 results = dailymotion.response(response)
7374 self.assertEqual(type(results), list)
7475 self.assertEqual(len(results), 0)
76+
77+ def test_fetch_supported_languages(self):
78+ json = r"""
79+ {"list":[{"code":"af","name":"Afrikaans","native_name":"Afrikaans",
80+ "localized_name":"Afrikaans","display_name":"Afrikaans"},
81+ {"code":"ar","name":"Arabic","native_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",
82+ "localized_name":"Arabic","display_name":"Arabic"},
83+ {"code":"la","name":"Latin","native_name":null,
84+ "localized_name":"Latin","display_name":"Latin"}
85+ ]}
86+ """
87+ response = mock.Mock(text=json)
88+ languages = dailymotion._fetch_supported_languages(response)
89+ self.assertEqual(type(languages), dict)
90+ self.assertEqual(len(languages), 3)
91+ self.assertIn('af', languages)
92+ self.assertIn('ar', languages)
93+ self.assertIn('la', languages)
94+
95+ self.assertEqual(type(languages['af']), dict)
96+ self.assertEqual(type(languages['ar']), dict)
97+ self.assertEqual(type(languages['la']), dict)
98+
99+ self.assertIn('name', languages['af'])
100+ self.assertIn('name', languages['ar'])
101+ self.assertNotIn('name', languages['la'])
102+
103+ self.assertIn('english_name', languages['af'])
104+ self.assertIn('english_name', languages['ar'])
105+ self.assertIn('english_name', languages['la'])
106+
107+ self.assertEqual(languages['af']['name'], 'Afrikaans')
108+ self.assertEqual(languages['af']['english_name'], 'Afrikaans')
109+ self.assertEqual(languages['ar']['name'], u'العربية')
110+ self.assertEqual(languages['ar']['english_name'], 'Arabic')
111+ self.assertEqual(languages['la']['english_name'], 'Latin')
tests/unit/engines/test_duckduckgo.py+14
@@ -84,3 +84,17 @@ class TestDuckduckgoEngine(SearxTestCase):
8484 self.assertEqual(results[0]['title'], 'This is the title')
8585 self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű')
8686 self.assertEqual(results[0]['content'], 'This should be the content.')
87+
88+ def test_fetch_supported_languages(self):
89+ js = """some code...regions:{
90+ "wt-wt":"All Results","ar-es":"Argentina","au-en":"Australia","at-de":"Austria","be-fr":"Belgium (fr)"
91+ }some more code..."""
92+ response = mock.Mock(text=js)
93+ languages = duckduckgo._fetch_supported_languages(response)
94+ self.assertEqual(type(languages), list)
95+ self.assertEqual(len(languages), 5)
96+ self.assertIn('wt-WT', languages)
97+ self.assertIn('es-AR', languages)
98+ self.assertIn('en-AU', languages)
99+ self.assertIn('de-AT', languages)
100+ self.assertIn('fr-BE', languages)
tests/unit/engines/test_gigablast.py+25
@@ -89,3 +89,28 @@ class TestGigablastEngine(SearxTestCase):
8989 self.assertEqual(results[0]['title'], 'South by Southwest 2016')
9090 self.assertEqual(results[0]['url'], 'www.sxsw.com')
9191 self.assertEqual(results[0]['content'], 'This should be the content.')
92+
93+ def test_fetch_supported_languages(self):
94+ html = """<html></html>"""
95+ response = mock.Mock(text=html)
96+ results = gigablast._fetch_supported_languages(response)
97+ self.assertEqual(type(results), list)
98+ self.assertEqual(len(results), 0)
99+
100+ html = """
101+ <html>
102+ <body>
103+ <span id="menu2">
104+ <a href="/search?&rxikd=1&qlang=xx"></a>
105+ <a href="/search?&rxikd=1&qlang=en"></a>
106+ <a href="/search?&rxikd=1&qlang=fr"></a>
107+ </span>
108+ </body>
109+ </html>
110+ """
111+ response = mock.Mock(text=html)
112+ languages = gigablast._fetch_supported_languages(response)
113+ self.assertEqual(type(languages), list)
114+ self.assertEqual(len(languages), 2)
115+ self.assertIn('en', languages)
116+ self.assertIn('fr', languages)
tests/unit/engines/test_google.py+57
@@ -177,3 +177,60 @@ class TestGoogleEngine(SearxTestCase):
177177 self.assertEqual(results[0]['title'], '')
178178 self.assertEqual(results[0]['content'], '')
179179 self.assertEqual(results[0]['img_src'], 'https://this.is.the.image/image.jpg')
180+
181+ def test_fetch_supported_languages(self):
182+ html = """<html></html>"""
183+ response = mock.Mock(text=html)
184+ languages = google._fetch_supported_languages(response)
185+ self.assertEqual(type(languages), dict)
186+ self.assertEqual(len(languages), 0)
187+
188+ html = u"""
189+ <html>
190+ <body>
191+ <table>
192+ <tbody>
193+ <tr>
194+ <td>
195+ <font>
196+ <label>
197+ <span id="ten">English</span>
198+ </label>
199+ </font>
200+ </td>
201+ <td>
202+ <font>
203+ <label>
204+ <span id="tzh-CN">中文 (简体)</span>
205+ </label>
206+ <label>
207+ <span id="tzh-TW">中文 (繁體)</span>
208+ </label>
209+ </font>
210+ </td>
211+ </tr>
212+ </tbody>
213+ </table>
214+ </body>
215+ </html>
216+ """
217+ response = mock.Mock(text=html)
218+ languages = google._fetch_supported_languages(response)
219+ self.assertEqual(type(languages), dict)
220+ self.assertEqual(len(languages), 3)
221+
222+ self.assertIn('en', languages)
223+ self.assertIn('zh-CN', languages)
224+ self.assertIn('zh-TW', languages)
225+
226+ self.assertEquals(type(languages['en']), dict)
227+ self.assertEquals(type(languages['zh-CN']), dict)
228+ self.assertEquals(type(languages['zh-TW']), dict)
229+
230+ self.assertIn('name', languages['en'])
231+ self.assertIn('name', languages['zh-CN'])
232+ self.assertIn('name', languages['zh-TW'])
233+
234+ self.assertEquals(languages['en']['name'], 'English')
235+ self.assertEquals(languages['zh-CN']['name'], u'中文 (简体)')
236+ self.assertEquals(languages['zh-TW']['name'], u'中文 (繁體)')
tests/unit/engines/test_swisscows.py+27
@@ -126,3 +126,30 @@ class TestSwisscowsEngine(SearxTestCase):
126126 self.assertEqual(results[2]['url'], 'http://de.wikipedia.org/wiki/Datei:This should.svg')
127127 self.assertEqual(results[2]['img_src'], 'http://ts2.mm.This/should.png')
128128 self.assertEqual(results[2]['template'], 'images.html')
129+
130+ def test_fetch_supported_languages(self):
131+ html = """<html></html>"""
132+ response = mock.Mock(text=html)
133+ languages = swisscows._fetch_supported_languages(response)
134+ self.assertEqual(type(languages), list)
135+ self.assertEqual(len(languages), 0)
136+
137+ html = """
138+ <html>
139+ <div id="regions-popup">
140+ <div>
141+ <ul>
142+ <li><a data-val="browser"></a></li>
143+ <li><a data-val="de-CH"></a></li>
144+ <li><a data-val="fr-CH"></a></li>
145+ </ul>
146+ </div>
147+ </div>
148+ </html>
149+ """
150+ response = mock.Mock(text=html)
151+ languages = swisscows._fetch_supported_languages(response)
152+ self.assertEqual(type(languages), list)
153+ self.assertEqual(len(languages), 3)
154+ self.assertIn('de-CH', languages)
155+ self.assertIn('fr-CH', languages)
tests/unit/engines/test_wikipedia.py+93
@@ -164,3 +164,96 @@ class TestWikipediaEngine(SearxTestCase):
164164 self.assertEqual(len(results), 2)
165165 self.assertEqual(results[1]['infobox'], u'披頭四樂隊')
166166 self.assertIn(u'披头士乐队...', results[1]['content'])
167+
168+ def test_fetch_supported_languages(self):
169+ html = u"""<html></html>"""
170+ response = mock.Mock(text=html)
171+ languages = wikipedia._fetch_supported_languages(response)
172+ self.assertEqual(type(languages), dict)
173+ self.assertEqual(len(languages), 0)
174+
175+ html = u"""
176+ <html>
177+ <body>
178+ <div>
179+ <div>
180+ <h3>Table header</h3>
181+ <table class="sortable jquery-tablesorter">
182+ <thead>
183+ <tr>
184+ <th>N</th>
185+ <th>Language</th>
186+ <th>Language (local)</th>
187+ <th>Wiki</th>
188+ <th>Articles</th>
189+ </tr>
190+ </thead>
191+ <tbody>
192+ <tr>
193+ <td>2</td>
194+ <td><a>Swedish</a></td>
195+ <td><a>Svenska</a></td>
196+ <td><a>sv</a></td>
197+ <td><a><b>3000000</b></a></td>
198+ </tr>
199+ <tr>
200+ <td>3</td>
201+ <td><a>Cebuano</a></td>
202+ <td><a>Sinugboanong Binisaya</a></td>
203+ <td><a>ceb</a></td>
204+ <td><a><b>3000000</b></a></td>
205+ </tr>
206+ </tbody>
207+ </table>
208+ <h3>Table header</h3>
209+ <table class="sortable jquery-tablesorter">
210+ <thead>
211+ <tr>
212+ <th>N</th>
213+ <th>Language</th>
214+ <th>Language (local)</th>
215+ <th>Wiki</th>
216+ <th>Articles</th>
217+ </tr>
218+ </thead>
219+ <tbody>
220+ <tr>
221+ <td>2</td>
222+ <td><a>Norwegian (Bokmål)</a></td>
223+ <td><a>Norsk (Bokmål)</a></td>
224+ <td><a>no</a></td>
225+ <td><a><b>100000</b></a></td>
226+ </tr>
227+ </tbody>
228+ </table>
229+ </div>
230+ </div>
231+ </body>
232+ </html>
233+ """
234+ response = mock.Mock(text=html)
235+ languages = wikipedia._fetch_supported_languages(response)
236+ self.assertEqual(type(languages), dict)
237+ self.assertEqual(len(languages), 3)
238+
239+ self.assertIn('sv', languages)
240+ self.assertIn('ceb', languages)
241+ self.assertIn('no', languages)
242+
243+ self.assertEqual(type(languages['sv']), dict)
244+ self.assertEqual(type(languages['ceb']), dict)
245+ self.assertEqual(type(languages['no']), dict)
246+
247+ self.assertIn('name', languages['sv'])
248+ self.assertIn('english_name', languages['sv'])
249+ self.assertIn('articles', languages['sv'])
250+
251+ self.assertEqual(languages['sv']['name'], 'Svenska')
252+ self.assertEqual(languages['sv']['english_name'], 'Swedish')
253+ self.assertEqual(languages['sv']['articles'], 3000000)
254+ self.assertEqual(languages['ceb']['name'], 'Sinugboanong Binisaya')
255+ self.assertEqual(languages['ceb']['english_name'], 'Cebuano')
256+ self.assertEqual(languages['ceb']['articles'], 3000000)
257+ self.assertEqual(languages['no']['name'], u'Norsk (Bokmål)')
258+ self.assertEqual(languages['no']['english_name'], u'Norwegian (Bokmål)')
259+ self.assertEqual(languages['no']['articles'], 100000)
tests/unit/engines/test_yahoo.py+30
@@ -147,3 +147,33 @@ class TestYahooEngine(SearxTestCase):
147147 results = yahoo.response(response)
148148 self.assertEqual(type(results), list)
149149 self.assertEqual(len(results), 0)
150+
151+ def test_fetch_supported_languages(self):
152+ html = """<html></html>"""
153+ response = mock.Mock(text=html)
154+ results = yahoo._fetch_supported_languages(response)
155+ self.assertEqual(type(results), list)
156+ self.assertEqual(len(results), 0)
157+
158+ html = """
159+ <html>
160+ <div>
161+ <div id="yschlang">
162+ <span>
163+ <label><input value="lang_ar"></input></label>
164+ </span>
165+ <span>
166+ <label><input value="lang_zh_chs"></input></label>
167+ <label><input value="lang_zh_cht"></input></label>
168+ </span>
169+ </div>
170+ </div>
171+ </html>
172+ """
173+ response = mock.Mock(text=html)
174+ languages = yahoo._fetch_supported_languages(response)
175+ self.assertEqual(type(languages), list)
176+ self.assertEqual(len(languages), 3)
177+ self.assertIn('ar', languages)
178+ self.assertIn('zh-chs', languages)
179+ self.assertIn('zh-cht', languages)
utils/fetch_languages.py+8−4
@@ -84,7 +84,7 @@ def fetch_supported_languages():
8484
8585 # write json file
8686 f = io.open(engines_languages_file, "w", encoding="utf-8")
87− f.write(unicode(dumps(engines_languages, indent=4, ensure_ascii=False, encoding="utf-8")))
87+ f.write(unicode(dumps(engines_languages, ensure_ascii=False, encoding="utf-8")))
8888 f.close()
8989
9090
@@ -110,18 +110,22 @@ def join_language_lists():
110110 else:
111111 languages[locale] = {}
112112
113− # get locales that have no name yet
113+ # get locales that have no name or country yet
114114 for locale in languages.keys():
115115 if not languages[locale].get('name'):
116− # try to get language and country names
116+ # try to get language names
117117 name = languages.get(locale.split('-')[0], {}).get('name', None)
118118 if name:
119119 languages[locale]['name'] = name
120− languages[locale]['country'] = get_country_name(locale) or ''
121120 languages[locale]['english_name'] = languages.get(locale.split('-')[0], {}).get('english_name', '')
122121 else:
123122 # filter out locales with no name
124123 del languages[locale]
124+ continue
125+
126+ # try to get country name
127+ if locale.find('-') > 0 and not languages[locale].get('country'):
128+ languages[locale]['country'] = get_country_name(locale) or ''
125129
126130
127131# Remove countryless language if language is featured in only one country.