From 922d51bf0c992cee71a69496efbfafee5c81afcf Mon Sep 17 00:00:00 2001 From: marc Date: Sun, 30 Oct 2016 19:12:38 -0600 Subject: [PATCH] Add country names in language list. --- searx/languages.py | 554 ++++++++++++++------------------------ utils/update_languages.py | 64 ++++- 2 files changed, 262 insertions(+), 356 deletions(-) diff --git a/searx/languages.py b/searx/languages.py index a6cbdb9b1..6d41d809f 100644 --- a/searx/languages.py +++ b/searx/languages.py @@ -3,358 +3,220 @@ # this file is generated automatically by utils/update_search_languages.py language_codes = ( - (u"gv", u"Gaelg", u"", u"Manx"), - (u"sco", u"Scots", u"", u"Scots"), - (u"scn", u"Sicilianu", u"", u"Sicilian"), - (u"gu", u"ગુજરાતી", u"", u"Gujarati"), - (u"gd", u"Gàidhlig", u"", u"Scottish Gaelic"), - (u"ga", u"Gaeilge", u"", u"Irish"), - (u"gn", u"Avañe'ẽ", u"", u"Guarani"), - (u"gl", u"Galego", u"", u"Galician"), + (u"ach", u"Acoli", u"", u""), + (u"af", u"Afrikaans", u"", u"Afrikaans"), + (u"ak", u"Akan", u"", u""), (u"als", u"Alemannisch", u"", u"Alemannic"), - (u"lt-LT", u"Lietuvių", u"", u"Lithuanian"), - (u"vep", u"Vepsän", u"", u"Vepsian"), - (u"ty", u"Reo Mā`ohi", u"", u"Tahitian"), - (u"tw", u"Twi", u"", u"Twi"), - (u"tt", u"Tatarça / Татарча", u"", u"Tatar"), - (u"tr", u"Türkçe", u"", u"Turkish"), - (u"ts", u"Xitsonga", u"", u"Tsonga"), - (u"tn", u"Setswana", u"", u"Tswana"), - (u"to", u"faka Tonga", u"", u"Tongan"), - (u"tl", u"Tagalog", u"", u"Tagalog"), - (u"vec", u"Vèneto", u"", u"Venetian"), - (u"th", u"ไทย", u"", u"Thai"), - (u"ti", u"ትግርኛ", u"", u"Tigrinya"), - (u"tg", u"Тоҷикӣ", u"", u"Tajik"), - (u"te", u"తెలుగు", u"", u"Telugu"), - (u"ta", u"தமிழ்", u"", u"Tamil"), - (u"lrc", u"لۊری شومالی", u"", u"Northern Luri"), - (u"en-NZ", u"English", u"", u"English"), - (u"got", u"𐌲𐌿𐍄𐌹𐍃𐌺", u"", u"Gothic"), - (u"vls", u"West-Vlams", u"", u"West Flemish"), - (u"bxr", u"Буряад", u"", u"Buryat"), - (u"diq", u"Zazaki", u"", u"Zazaki"), - (u"zh", u"中文", u"", u"Chinese"), - (u"pms", u"Piemontèis", u"", u"Piedmontese"), - (u"za", u"Cuengh", u"", u"Zhuang"), - (u"zh-HK", u"中文", u"", u"Chinese"), - (u"zu", u"isiZulu", u"", u"Zulu"), - (u"tet", u"Tetun", u"", u"Tetum"), - (u"zh-CN", u"中文 (简体)", u"", u""), - (u"new", u"नेपाल भाषा", u"", u"Newar"), - (u"ro-RO", u"Română", u"", u"Romanian"), - (u"lez", u"Лезги чІал (Lezgi č’al)", u"", u"Lezgian"), - (u"glk", u"گیلکی", u"", u"Gilaki"), - (u"ko-KR", u"한국어", u"", u"Korean"), - (u"id-ID", u"Bahasa Indonesia", u"", u"Indonesian"), - (u"chr", u"ᏣᎳᎩ", u"", u"Cherokee"), - (u"vi", u"Tiếng Việt", u"", u"Vietnamese"), - (u"chy", u"Tsetsêhestâhese", u"", u"Cheyenne"), - (u"tk", u"تركمن / Туркмен", u"", u"Turkmen"), - (u"da-DK", u"Dansk", u"", u"Danish"), - (u"pfl", u"Pälzisch", u"", u"Palatinate German"), - (u"hu-HU", u"Magyar", u"", u"Hungarian"), - (u"mg", u"Malagasy", u"", u"Malagasy"), - (u"ml", u"മലയാളം", u"", u"Malayalam"), - (u"mo", u"Молдовеняскэ", u"", u"Moldovan"), - (u"mn", u"Монгол", u"", u"Mongolian"), - (u"mi", u"Māori", u"", u"Maori"), - (u"mk", u"Македонски", u"", u"Macedonian"), - (u"mt", u"Malti", u"", u"Maltese"), - (u"ms", u"Bahasa Melayu", u"", u"Malay"), - (u"mr", u"मराठी", u"", u"Marathi"), - (u"mwl", u"Mirandés", u"", u"Mirandese"), - (u"my", u"မြန်မာဘာသာ", u"", u"Burmese"), - (u"en-PH", u"English", u"", u"English"), - (u"srn", u"Sranantongo", u"", u"Sranan"), - (u"pl-PL", u"Polski", u"", u"Polish"), - (u"sl-SL", u"Slovenščina", u"", u"Slovenian"), - (u"csb", u"Kaszëbsczi", u"", u"Kashubian"), - (u"nyn", u"Runyankore", u"", u""), - (u"ig", u"Igbo", u"", u"Igbo"), - (u"fr", u"Français", u"", u"French"), - (u"lad", u"Dzhudezmo", u"", u"Ladino"), - (u"fy", u"Frysk", u"", u"West Frisian"), - (u"fa", u"فارسی", u"", u"Persian"), - (u"ff", u"Fulfulde", u"", u"Fula"), - (u"mai", u"मैथिली", u"", u"Maithili"), - (u"fi", u"Suomi", u"", u"Finnish"), - (u"fj", u"Na Vosa Vakaviti", u"", u"Fijian"), - (u"fo", u"Føroyskt", u"", u"Faroese"), - (u"ss", u"SiSwati", u"", u"Swati"), - (u"sr", u"Српски / Srpski", u"", u"Serbian"), - (u"sq", u"Shqip", u"", u"Albanian"), - (u"sw", u"Kiswahili", u"", u"Swahili"), - (u"sv", u"Svenska", u"", u"Swedish"), - (u"su", u"Basa Sunda", u"", u"Sundanese"), - (u"st", u"Sesotho", u"", u"Sesotho"), - (u"sk", u"Slovenčina", u"", u"Slovak"), - (u"si", u"සිංහල", u"", u"Sinhalese"), - (u"sh", u"Srpskohrvatski / Српскохрватски", u"", u"Serbo-Croatian"), - (u"so", u"Soomaali", u"", u"Somali"), - (u"sn", u"chiShona", u"", u"Shona"), - (u"sm", u"Gagana Samoa", u"", u"Samoan"), - (u"sl", u"Slovenščina", u"", u"Slovenian"), - (u"sc", u"Sardu", u"", u"Sardinian"), - (u"pt-BR", u"português (Brasil)", u"", u""), - (u"sa", u"संस्कृतम्", u"", u"Sanskrit"), - (u"he-IL", u"עברית", u"", u"Hebrew"), - (u"se", u"Sámegiella", u"", u"Northern Sami"), - (u"sd", u"سنڌي ،सिन्ध", u"", u"Sindhi"), - (u"fr-CH", u"Français", u"", u"French"), - (u"zea", u"Zeêuws", u"", u"Zeelandic"), - (u"it-CH", u"Italiano", u"", u"Italian"), - (u"wuu", u"吴语", u"", u"Wu"), - (u"fr-CA", u"Français", u"", u"French"), - (u"kbd", u"Адыгэбзэ (Adighabze)", u"", u"Kabardian Circassian"), - (u"no-NO", u"Norsk (Bokmål)", u"", u"Norwegian (Bokmål)"), - (u"ca-ES", u"Català", u"", u"Catalan"), - (u"lg", u"Luganda", u"", u"Luganda"), - (u"lb", u"Lëtzebuergesch", u"", u"Luxembourgish"), - (u"la", u"Latina", u"", u"Latin"), - (u"ln", u"Lingala", u"", u"Lingala"), - (u"lo", u"ລາວ", u"", u"Lao"), - (u"de-CH", u"Deutsch", u"", u"German"), - (u"li", u"Limburgs", u"", u"Limburgish"), - (u"lv", u"Latviešu", u"", u"Latvian"), - (u"lt", u"Lietuvių", u"", u"Lithuanian"), - (u"pcm", u"Nigerian Pidgin", u"", u""), - (u"pcd", u"Picard", u"", u"Picard"), - (u"yi", u"ייִדיש", u"", u"Yiddish"), - (u"ceb", u"Sinugboanong Binisaya", u"", u"Cebuano"), - (u"yo", u"Yorùbá", u"", u"Yoruba"), - (u"ru-RU", u"Русский", u"", u"Russian"), - (u"bar", u"Boarisch", u"", u"Bavarian"), - (u"nov", u"Novial", u"", u"Novial"), - (u"sr-ME", u"srpski (Crna Gora)", u"", u""), - (u"es-CL", u"Español", u"", u"Spanish"), - (u"es-CO", u"Español", u"", u"Spanish"), - (u"nl-NL", u"Nederlands", u"", u"Dutch"), - (u"el", u"Ελληνικά", u"", u"Greek"), - (u"eo", u"Esperanto", u"", u"Esperanto"), - (u"en", u"English", u"", u"English"), - (u"ee", u"Eʋegbe", u"", u"Ewe"), - (u"mdf", u"Мокшень (Mokshanj Kälj)", u"", u"Moksha"), - (u"eu", u"Euskara", u"", u"Basque"), - (u"et", u"Eesti", u"", u"Estonian"), - (u"es", u"Español", u"", u"Spanish"), - (u"gom", u"गोवा कोंकणी / Gova Konknni", u"", u"Goan Konkani"), - (u"ru", u"Русский", u"", u"Russian"), - (u"rw", u"Ikinyarwanda", u"", u"Kinyarwanda"), - (u"rm", u"Rumantsch", u"", u"Romansh"), - (u"rn", u"Kirundi", u"", u"Kirundi"), - (u"ro", u"Română", u"", u"Romanian"), - (u"dsb", u"Dolnoserbski", u"", u"Lower Sorbian"), - (u"ast", u"Asturianu", u"", u"Asturian"), - (u"lmo", u"Lumbaart", u"", u"Lombard"), - (u"ltg", u"Latgaļu", u"", u"Latgalian"), - (u"xh", u"isiXhosa", u"", u"Xhosa"), - (u"en-CA", u"English", u"", u"English"), - (u"koi", u"Перем Коми (Perem Komi)", u"", u"Komi-Permyak"), - (u"tr-TR", u"Türkçe", u"", u"Turkish"), - (u"pnt", u"Ποντιακά", u"", u"Pontic"), - (u"fi-FI", u"Suomi", u"", u"Finnish"), - (u"pnb", u"شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", u"", u"Western Punjabi"), - (u"ar-SA", u"العربية", u"", u"Arabic"), - (u"bem", u"Ichibemba", u"", u""), - (u"en-ZA", u"English", u"", u"English"), - (u"stq", u"Seeltersk", u"", u"Saterland Frisian"), - (u"ang", u"Englisc", u"", u"Anglo-Saxon"), - (u"lbe", u"Лакку", u"", u"Lak"), - (u"min", u"Minangkabau", u"", u"Minangkabau"), - (u"es-US", u"Español", u"", u"Spanish"), - (u"lij", u"Líguru", u"", u"Ligurian"), - (u"kab", u"Taqbaylit", u"", u"Kabyle"), - (u"kaa", u"Qaraqalpaqsha", u"", u"Karakalpak"), - (u"fr-FR", u"Français", u"", u"French"), - (u"tyv", u"Тыва", u"", u"Tuvan"), - (u"ka", u"ქართული", u"", u"Georgian"), - (u"kg", u"KiKongo", u"", u"Kongo"), - (u"ckb", u"Soranî / کوردی", u"", u"Sorani"), - (u"kk", u"Қазақша", u"", u"Kazakh"), - (u"sg", u"Sängö", u"", u"Sango"), - (u"ki", u"Gĩkũyũ", u"", u"Kikuyu"), - (u"ko", u"한국어", u"", u"Korean"), - (u"kn", u"ಕನ್ನಡ", u"", u"Kannada"), - (u"tpi", u"Tok Pisin", u"", u"Tok Pisin"), - (u"kl", u"Kalaallisut", u"", u"Greenlandic"), - (u"ks", u"कश्मीरी / كشميري", u"", u"Kashmiri"), - (u"ext", u"Estremeñu", u"", u"Extremaduran"), - (u"kw", u"Kernewek/Karnuack", u"", u"Cornish"), - (u"kv", u"Коми", u"", u"Komi"), - (u"mrj", u"Кырык Мары (Kyryk Mary)", u"", u"Hill Mari"), - (u"ky", u"Кыргызча", u"", u"Kirghiz"), - (u"szl", u"Ślůnski", u"", u"Silesian"), - (u"cdo", u"Mìng-dĕ̤ng-ngṳ̄", u"", u"Min Dong"), - (u"en-GB", u"English", u"", u"English"), - (u"xmf", u"მარგალური (Margaluri)", u"", u"Mingrelian"), - (u"jam", u"Jamaican Creole English", u"", u"Patois"), - (u"udm", u"Удмурт кыл", u"", u"Udmurt"), - (u"ksh", u"Ripoarisch", u"", u"Ripuarian"), - (u"sl-SI", u"Slovenščina", u"", u"Slovenian"), - (u"ms-MY", u"Bahasa Melayu", u"", u"Malay"), - (u"de", u"Deutsch", u"", u"German"), - (u"da", u"Dansk", u"", u"Danish"), - (u"dz", u"ཇོང་ཁ", u"", u"Dzongkha"), - (u"hif", u"Fiji Hindi", u"", u"Fiji Hindi"), - (u"dv", u"ދިވެހިބަސް", u"", u"Divehi"), - (u"crs", u"Seychellois Creole", u"", u""), - (u"qu", u"Runa Simi", u"", u"Quechua"), - (u"eml", u"Emiliàn e rumagnòl", u"", u"Emilian-Romagnol"), - (u"ban", u"Balinese", u"", u""), - (u"crh", u"Qırımtatarca", u"", u"Crimean Tatar"), - (u"arz", u"مصرى (Maṣri)", u"", u"Egyptian Arabic"), - (u"rmy", u"romani - रोमानी", u"", u"Romani"), - (u"arc", u"ܐܪܡܝܐ", u"", u"Aramaic"), - (u"th-TH", u"ไทย", u"", u"Thai"), - (u"lua", u"Luba-Lulua", u"", u""), - (u"wa", u"Walon", u"", u"Walloon"), - (u"wo", u"Wolof", u"", u"Wolof"), - (u"jv", u"Basa Jawa", u"", u"Javanese"), - (u"fr-BE", u"Français", u"", u"French"), - (u"tum", u"chiTumbuka", u"", u"Tumbuka"), - (u"ja", u"日本語", u"", u"Japanese"), - (u"pt-PT", u"português (Portugal)", u"", u""), - (u"ilo", u"Ilokano", u"", u"Ilokano"), - (u"tlh", u"Klingon", u"", u""), - (u"pdc", u"Deitsch", u"", u"Pennsylvania German"), - (u"ch", u"Chamoru", u"", u"Chamorro"), - (u"co", u"Corsu", u"", u"Corsican"), - (u"ca", u"Català", u"", u"Catalan"), - (u"ce", u"Нохчийн", u"", u"Chechen"), - (u"cy", u"Cymraeg", u"", u"Welsh"), - (u"sah", u"Саха тыла (Saxa Tyla)", u"", u"Sakha"), - (u"cs", u"Čeština", u"", u"Czech"), - (u"cr", u"Nehiyaw", u"", u"Cree"), - (u"bg-BG", u"Български", u"", u"Bulgarian"), - (u"cv", u"Чăваш", u"", u"Chuvash"), - (u"cu", u"Словѣньскъ", u"", u"Old Church Slavonic"), - (u"ps", u"پښتو", u"", u"Pashto"), - (u"pt", u"Português", u"", u"Portuguese"), - (u"vi-VN", u"Tiếng Việt", u"", u"Vietnamese"), - (u"frr", u"Nordfriisk", u"", u"North Frisian"), - (u"frp", u"Arpitan", u"", u"Franco-Provençal"), - (u"xal", u"Хальмг", u"", u"Kalmyk"), - (u"pi", u"पाऴि", u"", u"Pali"), - (u"ak", u"Akana", u"", u"Akan"), - (u"pl", u"Polski", u"", u"Polish"), - (u"nrm", u"Nouormand/Normaund", u"", u"Norman"), - (u"en-US", u"English", u"", u"English"), - (u"gan", u"贛語", u"", u"Gan"), - (u"gag", u"Gagauz", u"", u"Gagauz"), + (u"am", u"አማርኛ", u"", u"Amharic"), (u"an", u"Aragonés", u"", u"Aragonese"), - (u"gaa", u"Ga", u"", u""), - (u"fur", u"Furlan", u"", u"Friulian"), - (u"es-PE", u"Español", u"", u"Spanish"), - (u"tl-PH", u"Tagalog", u"", u"Tagalog"), - (u"en-IN", u"English", u"", u"English"), - (u"ve", u"Tshivenda", u"", u"Venda"), - (u"en-ID", u"English", u"", u"English"), - (u"en-IE", u"English", u"", u"English"), - (u"is", u"Íslenska", u"", u"Icelandic"), - (u"iu", u"ᐃᓄᒃᑎᑐᑦ", u"", u"Inuktitut"), - (u"it", u"Italiano", u"", u"Italian"), - (u"iw", u"עברית", u"", u""), - (u"vo", u"Volapük", u"", u"Volapük"), - (u"ik", u"Iñupiak", u"", u"Inupiak"), - (u"io", u"Ido", u"", u"Ido"), - (u"ia", u"Interlingua", u"", u"Interlingua"), - (u"ja-JP", u"日本語", u"", u"Japanese"), - (u"ie", u"Interlingue", u"", u"Interlingue"), - (u"id", u"Bahasa Indonesia", u"", u"Indonesian"), - (u"nds-nl", u"Nedersaksisch", u"", u"Dutch Low Saxon"), - (u"pap", u"Papiamentu", u"", u"Papiamentu"), - (u"pag", u"Pangasinan", u"", u"Pangasinan"), - (u"pam", u"Kapampangan", u"", u"Kapampangan"), - (u"nl", u"Nederlands", u"", u"Dutch"), - (u"mzn", u"مَزِروني", u"", u"Mazandarani"), - (u"nl-BE", u"Nederlands", u"", u"Dutch"), - (u"sk-SK", u"Slovenčina", u"", u"Slovak"), - (u"zh-TW", u"中文 (繁體)", u"", u""), - (u"es-MX", u"Español", u"", u"Spanish"), - (u"de-DE", u"Deutsch", u"", u"German"), - (u"jbo", u"Lojban", u"", u"Lojban"), - (u"mfe", u"kreol morisien", u"", u""), - (u"tcy", u"Tulu", u"", u"ತುಳು"), - (u"hak", u"Hak-kâ-fa / 客家話", u"", u"Hakka"), - (u"ny", u"Chichewa", u"", u"Chichewa"), - (u"ady", u"Адыгэбзэ", u"", u"Adyghe"), - (u"haw", u"Hawai`i", u"", u"Hawaiian"), - (u"el-GR", u"Ελληνικά", u"", u"Greek"), - (u"bpy", u"ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", u"", u"Bishnupriya Manipuri"), - (u"mhr", u"Олык Марий (Olyk Marij)", u"", u"Meadow Mari"), - (u"ca-CT", u"Català", u"", u"Catalan"), - (u"en-MY", u"English", u"", u"English"), - (u"olo", u"Livvi-Karelian", u"", u"Livvinkarjala"), - (u"sv-SE", u"Svenska", u"", u"Swedish"), - (u"de-AT", u"Deutsch", u"", u"German"), - (u"hsb", u"Hornjoserbsce", u"", u"Upper Sorbian"), - (u"be", u"Беларуская", u"", u"Belarusian"), - (u"bg", u"Български", u"", u"Bulgarian"), + (u"ar-SA", u"العربية", u"المملكة العربية السعودية", u"Arabic"), + (u"arz", u"مصرى (Maṣri)", u"", u"Egyptian Arabic"), + (u"ast", u"Asturianu", u"", u"Asturian"), + (u"az", u"Azərbaycanca", u"", u"Azerbaijani"), + (u"azb", u"تۆرکجه", u"", u"South Azerbaijani"), (u"ba", u"Башҡорт", u"", u"Bashkir"), - (u"bm", u"Bamanankan", u"", u"Bambara"), + (u"ban", u"Balinese", u"", u""), + (u"bar", u"Boarisch", u"", u"Bavarian"), + (u"be", u"Беларуская", u"", u"Belarusian"), + (u"bem", u"Ichibemba", u"", u""), + (u"bg-BG", u"Български", u"България", u"Bulgarian"), (u"bn", u"বাংলা", u"", u"Bengali"), - (u"bo", u"བོད་སྐད", u"", u"Tibetan"), - (u"bh", u"भोजपुरी", u"", u"Bihari"), - (u"bi", u"Bislama", u"", u"Bislama"), - (u"rue", u"Русиньскый", u"", u"Rusyn"), - (u"et-EE", u"Eesti", u"", u"Estonian"), + (u"bpy", u"ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", u"", u"Bishnupriya Manipuri"), (u"br", u"Brezhoneg", u"", u"Breton"), (u"bs", u"Bosanski", u"", u"Bosnian"), - (u"om", u"Oromoo", u"", u"Oromo"), - (u"ace", u"Bahsa Acèh", u"", u"Acehnese"), - (u"es-AR", u"Español", u"", u"Spanish"), - (u"ach", u"Acoli", u"", u""), - (u"oc", u"Occitan", u"", u"Occitan"), - (u"kri", u"Krio (Sierra Leone)", u"", u""), - (u"krc", u"Къарачай-Малкъар (Qarachay-Malqar)", u"", u"Karachay-Balkar"), - (u"nds", u"Plattdüütsch", u"", u"Low Saxon"), - (u"os", u"Иронау", u"", u"Ossetian"), - (u"or", u"ଓଡ଼ିଆ", u"", u"Oriya"), - (u"nso", u"Sepedi", u"", u"Northern Sotho"), - (u"bjn", u"Bahasa Banjar", u"", u"Banjar"), - (u"pa", u"ਪੰਜਾਬੀ", u"", u"Punjabi"), - (u"loz", u"Lozi", u"", u""), - (u"war", u"Winaray", u"", u"Waray-Waray"), - (u"hy", u"Հայերեն", u"", u"Armenian"), - (u"hr", u"Hrvatski", u"", u"Croatian"), - (u"ht", u"Krèyol ayisyen", u"", u"Haitian"), - (u"hu", u"Magyar", u"", u"Hungarian"), - (u"hi", u"हिन्दी", u"", u"Hindi"), - (u"ha", u"هَوُسَ", u"", u"Hausa"), (u"bug", u"Basa Ugi", u"", u"Buginese"), - (u"he", u"עברית", u"", u"Hebrew"), - (u"hr-HR", u"Hrvatski", u"", u"Croatian"), - (u"uz", u"O‘zbek", u"", u"Uzbek"), - (u"azb", u"تۆرکجه", u"", u"South Azerbaijani"), - (u"ur", u"اردو", u"", u"Urdu"), - (u"uk", u"Українська", u"", u"Ukrainian"), - (u"ug", u"ئۇيغۇر تىلى", u"", u"Uyghur"), - (u"pih", u"Norfuk", u"", u"Norfolk"), - (u"ab", u"Аҧсуа", u"", u"Abkhazian"), - (u"af", u"Afrikaans", u"", u"Afrikaans"), - (u"it-IT", u"Italiano", u"", u"Italian"), - (u"am", u"አማርኛ", u"", u"Amharic"), - (u"myv", u"Эрзянь (Erzjanj Kelj)", u"", u"Erzya"), - (u"as", u"অসমীয়া", u"", u"Assamese"), - (u"ar", u"العربية", u"", u"Arabic"), - (u"km", u"ភាសាខ្មែរ", u"", u"Khmer"), - (u"uk-UA", u"Українська", u"", u"Ukrainian"), - (u"av", u"Авар", u"", u"Avar"), - (u"ay", u"Aymar", u"", u"Aymara"), - (u"az", u"Azərbaycanca", u"", u"Azerbaijani"), - (u"es-ES", u"Español", u"", u"Spanish"), - (u"lv-LV", u"Latviešu", u"", u"Latvian"), - (u"nn", u"Nynorsk", u"", u"Norwegian (Nynorsk)"), - (u"no", u"Norsk (Bokmål)", u"", u"Norwegian (Bokmål)"), - (u"na", u"dorerin Naoero", u"", u"Nauruan"), - (u"nah", u"Nāhuatl", u"", u"Nahuatl"), - (u"ne", u"नेपाली", u"", u"Nepali"), - (u"en-AU", u"English", u"", u"English"), - (u"nap", u"Nnapulitano", u"", u"Neapolitan"), - (u"nv", u"Diné bizaad", u"", u"Navajo"), + (u"ca", u"Català", u"", u"Catalan"), + (u"ca-CT", u"Català", u"", u"Catalan"), + (u"ca-ES", u"Català", u"Espanya", u"Catalan"), + (u"ce", u"Нохчийн", u"", u"Chechen"), + (u"ceb", u"Sinugboanong Binisaya", u"", u"Cebuano"), + (u"chr", u"ᏣᎳᎩ", u"", u""), + (u"ckb", u"Soranî / کوردی", u"", u"Sorani"), + (u"co", u"Corsican", u"", u""), + (u"crs", u"Seychellois Creole", u"", u""), + (u"cs-CZ", u"Čeština", u"Česko", u"Czech"), + (u"cv", u"Чăваш", u"", u"Chuvash"), + (u"cy", u"Cymraeg", u"", u"Welsh"), + (u"da-DK", u"Dansk", u"Danmark", u"Danish"), + (u"de", u"Deutsch", u"", u"German"), + (u"de-AT", u"Deutsch", u"Österreich", u"German"), + (u"de-CH", u"Deutsch", u"Schweiz", u"German"), + (u"de-DE", u"Deutsch", u"Deutschland", u"German"), + (u"ee", u"Eʋegbe", u"", u""), + (u"el-GR", u"Ελληνικά", u"Ελλάδα", u"Greek"), + (u"en", u"English", u"", u"English"), + (u"en-AU", u"English", u"Australia", u"English"), + (u"en-CA", u"English", u"Canada", u"English"), + (u"en-GB", u"English", u"United Kingdom", u"English"), + (u"en-ID", u"English", u"Indonesia", u"English"), + (u"en-IE", u"English", u"Ireland", u"English"), + (u"en-IN", u"English", u"India", u"English"), + (u"en-MY", u"English", u"Malaysia", u"English"), + (u"en-NZ", u"English", u"New Zealand", u"English"), + (u"en-PH", u"English", u"Philippines", u"English"), + (u"en-SG", u"English", u"Singapore", u"English"), + (u"en-US", u"English", u"United States", u"English"), + (u"en-ZA", u"English", u"South Africa", u"English"), + (u"eo", u"Esperanto", u"", u"Esperanto"), + (u"es", u"Español", u"", u"Spanish"), + (u"es-AR", u"Español", u"Argentina", u"Spanish"), + (u"es-CL", u"Español", u"Chile", u"Spanish"), + (u"es-CO", u"Español", u"Colombia", u"Spanish"), + (u"es-ES", u"Español", u"España", u"Spanish"), + (u"es-MX", u"Español", u"México", u"Spanish"), + (u"es-PE", u"Español", u"Perú", u"Spanish"), + (u"es-US", u"Español", u"Estados Unidos", u"Spanish"), + (u"et-EE", u"Eesti", u"Eesti", u"Estonian"), + (u"eu", u"Euskara", u"", u"Basque"), + (u"fa", u"فارسی", u"", u"Persian"), + (u"fi-FI", u"Suomi", u"Suomi", u"Finnish"), + (u"fo", u"Føroyskt", u"", u"Faroese"), + (u"fr", u"Français", u"", u"French"), + (u"fr-BE", u"Français", u"Belgique", u"French"), + (u"fr-CA", u"Français", u"Canada", u"French"), + (u"fr-CH", u"Français", u"Suisse", u"French"), + (u"fr-FR", u"Français", u"France", u"French"), + (u"fy", u"Frysk", u"", u"West Frisian"), + (u"ga", u"Gaeilge", u"", u"Irish"), + (u"gaa", u"Ga", u"", u""), + (u"gd", u"Gàidhlig", u"", u"Scottish Gaelic"), + (u"gl", u"Galego", u"", u"Galician"), + (u"gn", u"Guarani", u"", u""), + (u"gu", u"ગુજરાતી", u"", u"Gujarati"), + (u"ha", u"Hausa", u"", u""), + (u"haw", u"ʻŌlelo HawaiʻI", u"", u""), + (u"he-IL", u"עברית", u"ישראל", u"Hebrew"), + (u"hi", u"हिन्दी", u"", u"Hindi"), + (u"hr-HR", u"Hrvatski", u"Hrvatska", u"Croatian"), + (u"hsb", u"Hornjoserbsce", u"", u"Upper Sorbian"), + (u"ht", u"Krèyol ayisyen", u"", u"Haitian"), + (u"hu-HU", u"Magyar", u"Magyarország", u"Hungarian"), + (u"hy", u"Հայերեն", u"", u"Armenian"), + (u"ia", u"Interlingua", u"", u"Interlingua"), + (u"id-ID", u"Bahasa Indonesia", u"Indonesia", u"Indonesian"), + (u"ig", u"Igbo", u"", u""), + (u"io", u"Ido", u"", u"Ido"), + (u"is", u"Íslenska", u"", u"Icelandic"), + (u"it", u"Italiano", u"", u"Italian"), + (u"it-CH", u"Italiano", u"Svizzera", u"Italian"), + (u"it-IT", u"Italiano", u"Italia", u"Italian"), + (u"iw", u"עברית", u"", u""), + (u"ja-JP", u"日本語", u"日本", u"Japanese"), + (u"jv", u"Basa Jawa", u"", u"Javanese"), + (u"ka", u"ქართული", u"", u"Georgian"), + (u"kg", u"Kongo", u"", u""), + (u"kk", u"Қазақша", u"", u"Kazakh"), + (u"km", u"ខ្មែរ", u"", u""), + (u"kn", u"ಕನ್ನಡ", u"", u"Kannada"), + (u"ko-KR", u"한국어", u"대한민국", u"Korean"), + (u"kri", u"Krio (Sierra Leone)", u"", u""), (u"ku", u"Kurdî / كوردی", u"", u"Kurdish"), - (u"cs-CZ", u"Čeština", u"", u"Czech"), - (u"en-SG", u"English", u"", u"English"), - (u"bcl", u"Bikol", u"", u"Central Bicolano") + (u"ky", u"Кыргызча", u"", u"Kirghiz"), + (u"la", u"Latina", u"", u"Latin"), + (u"lb", u"Lëtzebuergesch", u"", u"Luxembourgish"), + (u"lg", u"Luganda", u"", u""), + (u"li", u"Limburgs", u"", u"Limburgish"), + (u"lmo", u"Lumbaart", u"", u"Lombard"), + (u"ln", u"Lingála", u"", u""), + (u"lo", u"ລາວ", u"", u""), + (u"loz", u"Lozi", u"", u""), + (u"lt-LT", u"Lietuvių", u"Lietuva", u"Lithuanian"), + (u"lua", u"Luba-Lulua", u"", u""), + (u"lv-LV", u"Latviešu", u"Latvijas Republika", u"Latvian"), + (u"mfe", u"Kreol Morisien", u"", u""), + (u"mg", u"Malagasy", u"", u"Malagasy"), + (u"mi", u"Maori", u"", u""), + (u"min", u"Minangkabau", u"", u"Minangkabau"), + (u"mk", u"Македонски", u"", u"Macedonian"), + (u"ml", u"മലയാളം", u"", u"Malayalam"), + (u"mn", u"Монгол", u"", u"Mongolian"), + (u"mr", u"मराठी", u"", u"Marathi"), + (u"mrj", u"Кырык Мары (Kyryk Mary)", u"", u"Hill Mari"), + (u"ms-MY", u"Bahasa Melayu", u"Malaysia", u"Malay"), + (u"mt", u"Malti", u"", u""), + (u"my", u"မြန်မာဘာသာ", u"", u"Burmese"), + (u"mzn", u"مَزِروني", u"", u"Mazandarani"), + (u"nah", u"Nāhuatl", u"", u"Nahuatl"), + (u"nap", u"Nnapulitano", u"", u"Neapolitan"), + (u"nds-nl", u"Plattdüütsch", u"Nedderlannen", u"Low Saxon"), + (u"ne", u"नेपाली", u"", u"Nepali"), + (u"new", u"नेपाल भाषा", u"", u"Newar"), + (u"nl", u"Nederlands", u"", u"Dutch"), + (u"nl-BE", u"Nederlands", u"België", u"Dutch"), + (u"nl-NL", u"Nederlands", u"Nederland", u"Dutch"), + (u"nn", u"Nynorsk", u"", u"Norwegian (Nynorsk)"), + (u"no-NO", u"Norsk (Bokmål)", u"Norge", u"Norwegian (Bokmål)"), + (u"nso", u"Northern Sotho", u"", u""), + (u"ny", u"Nyanja", u"", u""), + (u"nyn", u"Runyankore", u"", u""), + (u"oc", u"Occitan", u"", u"Occitan"), + (u"om", u"Oromoo", u"", u""), + (u"or", u"ଓଡ଼ିଆ", u"", u"Oriya"), + (u"os", u"Иронау", u"", u"Ossetian"), + (u"pa", u"ਪੰਜਾਬੀ", u"", u"Punjabi"), + (u"pcm", u"Nigerian Pidgin", u"", u""), + (u"pl-PL", u"Polski", u"Rzeczpospolita Polska", u"Polish"), + (u"pms", u"Piemontèis", u"", u"Piedmontese"), + (u"pnb", u"شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", u"", u"Western Punjabi"), + (u"ps", u"پښتو", u"", u""), + (u"pt", u"Português", u"", u"Portuguese"), + (u"pt-BR", u"Português", u"Brasil", u"Portuguese"), + (u"pt-PT", u"Português", u"Portugal", u"Portuguese"), + (u"qu", u"Runa Simi", u"", u"Quechua"), + (u"rm", u"Rumantsch", u"", u""), + (u"rn", u"Ikirundi", u"", u""), + (u"ro-RO", u"Română", u"România", u"Romanian"), + (u"ru-RU", u"Русский", u"Россия", u"Russian"), + (u"rw", u"Kinyarwanda", u"", u""), + (u"sa", u"संस्कृतम्", u"", u"Sanskrit"), + (u"sah", u"Саха тыла (Saxa Tyla)", u"", u"Sakha"), + (u"scn", u"Sicilianu", u"", u"Sicilian"), + (u"sco", u"Scots", u"", u"Scots"), + (u"sd", u"Sindhi", u"", u""), + (u"sh", u"Srpskohrvatski / Српскохрватски", u"", u"Serbo-Croatian"), + (u"si", u"සිංහල", u"", u"Sinhalese"), + (u"sk-SK", u"Slovenčina", u"Slovenská republika", u"Slovak"), + (u"sl", u"Slovenščina", u"", u"Slovenian"), + (u"sl-SI", u"Slovenščina", u"Slovenija", u"Slovenian"), + (u"sl-SL", u"Slovenščina", u"Sierra Leone", u"Slovenian"), + (u"sn", u"Chishona", u"", u""), + (u"so", u"Soomaali", u"", u""), + (u"sq", u"Shqip", u"", u"Albanian"), + (u"sr-ME", u"Српски / Srpski", u"Црна Гора", u"Serbian"), + (u"st", u"Southern Sotho", u"", u""), + (u"su", u"Basa Sunda", u"", u"Sundanese"), + (u"sv-SE", u"Svenska", u"Sverige", u"Swedish"), + (u"sw", u"Kiswahili", u"", u"Swahili"), + (u"ta", u"தமிழ்", u"", u"Tamil"), + (u"te", u"తెలుగు", u"", u"Telugu"), + (u"tg", u"Тоҷикӣ", u"", u"Tajik"), + (u"th-TH", u"ไทย", u"ไทย", u"Thai"), + (u"ti", u"ትግርኛ", u"", u""), + (u"tk", u"Turkmen", u"", u""), + (u"tl-PH", u"Tagalog", u"Pilipinas", u"Tagalog"), + (u"tlh", u"Klingon", u"", u""), + (u"tn", u"Tswana", u"", u""), + (u"to", u"Lea Fakatonga", u"", u""), + (u"tr-TR", u"Türkçe", u"Türkiye", u"Turkish"), + (u"tt", u"Tatarça / Татарча", u"", u"Tatar"), + (u"tum", u"Tumbuka", u"", u""), + (u"tw", u"Twi", u"", u""), + (u"ug", u"ئۇيغۇرچە", u"", u""), + (u"uk-UA", u"Українська", u"Україна", u"Ukrainian"), + (u"ur", u"اردو", u"", u"Urdu"), + (u"uz", u"O‘zbek", u"", u"Uzbek"), + (u"vec", u"Vèneto", u"", u"Venetian"), + (u"vi-VN", u"Tiếng Việt", u"Công Hòa Xã Hội Chủ Nghĩa Việt Nam", u"Vietnamese"), + (u"vo", u"Volapük", u"", u"Volapük"), + (u"wa", u"Walon", u"", u"Walloon"), + (u"war", u"Winaray", u"", u"Waray-Waray"), + (u"wo", u"Wolof", u"", u""), + (u"xh", u"Xhosa", u"", u""), + (u"yi", u"ייִדיש", u"", u"Yiddish"), + (u"yo", u"Yorùbá", u"", u"Yoruba"), + (u"zh", u"中文", u"", u"Chinese"), + (u"zh-CN", u"中文", u"中国", u"Chinese"), + (u"zh-HK", u"中文", u"香港", u"Chinese"), + (u"zh-TW", u"中文", u"台湾", u"Chinese"), + (u"zu", u"Isizulu", u"", u"") ) diff --git a/utils/update_languages.py b/utils/update_languages.py index 6f86742c6..193c19278 100644 --- a/utils/update_languages.py +++ b/utils/update_languages.py @@ -4,22 +4,28 @@ # intersecting each engine's supported languages. # # The language's native names are obtained from -# Wikipedia's supported languages. +# Wikipedia and Google's supported languages. +# +# The country names are obtained from http://api.geonames.org +# which requires registering as a user. # # Output file (languages.py) is written in current directory # to avoid overwriting in case something goes wrong. from requests import get -from re import sub -from lxml.html import fromstring, tostring +from urllib import urlencode +from lxml.html import fromstring from json import loads from sys import path path.append('../searx') from searx.engines import engines -# list of language names +# list of names wiki_languages_url = 'https://meta.wikimedia.org/wiki/List_of_Wikipedias' google_languages_url = 'https://www.google.com/preferences?#languages' +country_names_url = 'http://api.geonames.org/countryInfoJSON?{parameters}' + +geonames_user = '' # add user name here google_json_name = 'google.preferences.langMap' @@ -46,6 +52,29 @@ def valid_code(lang_code): return True +# Get country name in specified language. +def get_country_name(locale): + if geonames_user is '': + return '' + + locale = locale.split('-') + if len(locale) != 2: + return '' + + url = country_names_url.format(parameters=urlencode({'lang': locale[0], + 'country': locale[1], + 'username': geonames_user})) + response = get(url) + json = loads(response.text) + content = json.get('geonames', None) + if content is None or len(content) != 1: + print "No country name found for " + locale[0] + "-" + locale[1] + print json + return '' + + return content[0].get('countryName', '') + + # Get language names from Wikipedia. def get_wikipedia_languages(): response = get(wiki_languages_url) @@ -62,7 +91,7 @@ def get_wikipedia_languages(): articles = int(td[4].xpath('./a/b')[0].text.replace(',','')) # exclude language variants and languages with few articles - if code not in languages and articles >= 1000 and valid_code(code): + if code not in languages and articles >= 10000 and valid_code(code): languages[code] = (name, '', english_name) @@ -72,8 +101,8 @@ def get_google_languages(): dom = fromstring(response.text) options = dom.xpath('//select[@name="hl"]/option') for option in options: - code = option.xpath('./@value')[0] - name = option.text[:-1] + code = option.xpath('./@value')[0].split('-')[0] + name = option.text[:-1].title() if code not in languages and valid_code(code): languages[code] = (name, '', '') @@ -92,8 +121,22 @@ def join_language_lists(): print engine_name + ": " + locale continue - (name, country, english) = language - languages[locale] = (name, country, english) + country = get_country_name(locale) + languages[locale] = (language[0], country, language[2]) + + +# Remove countryless language if language is featured in only one country. +def filter_single_country_languages(): + prev_lang = None + for code in sorted(languages): + lang = code.split('-')[0] + if lang == prev_lang: + countries += 1 + else: + if prev_lang is not None and countries == 1: + del languages[prev_lang] + countries = 0 + prev_lang = lang # Write languages.py. @@ -103,7 +146,7 @@ def write_languages_file(): file_content += '# list of language codes\n' file_content += '# this file is generated automatically by utils/update_search_languages.py\n' file_content += '\nlanguage_codes = (' - for code in languages: + for code in sorted(languages): (name, country, english) = languages[code] file_content += '\n (u"' + code + '"'\ + ', u"' + name + '"'\ @@ -120,4 +163,5 @@ if __name__ == "__main__": get_wikipedia_languages() get_google_languages() join_language_lists() + filter_single_country_languages() write_languages_file()