mirror of
https://github.com/searxng/searxng
synced 2024-01-01 18:24:07 +00:00
filter langauges
This commit is contained in:
parent
149802c569
commit
c677aee58a
@ -40,6 +40,12 @@ url_xpath = './/url'
|
||||
title_xpath = './/title'
|
||||
content_xpath = './/sum'
|
||||
|
||||
supported_languages = ["en", "fr", "es", "ru", "tr", "ja", "zh-CN", "zh-TW", "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"]
|
||||
|
||||
|
||||
# do search-request
|
||||
def request(query, params):
|
||||
@ -48,7 +54,9 @@ def request(query, params):
|
||||
if params['language'] == 'all':
|
||||
language = 'xx'
|
||||
else:
|
||||
language = params['language'].split('-')[0]
|
||||
language = params['language'].replace('-', '_').lower()
|
||||
if language.split('-')[0] != 'zh':
|
||||
language = language.split('-')[0]
|
||||
|
||||
if params['safesearch'] >= 1:
|
||||
safesearch = 1
|
||||
|
@ -23,20 +23,20 @@ categories = ['general']
|
||||
paging = True
|
||||
language_support = True
|
||||
use_locale_domain = True
|
||||
supported_languages = ['de', 'en', 'es', 'es_419', 'fr', 'hr', 'it', 'nl', 'pl', 'pt-BR',
|
||||
'pt-PT', 'vi', 'tr', 'ru', 'ar', 'th', 'ko', 'zh-CN', 'zh-TW', 'ja',
|
||||
'ach', 'af', 'ak', 'az', 'ms', 'ban', 'xx_bork', 'bs', 'br', 'ca',
|
||||
'ceb', 'ckb', 'cs', 'sn', 'co', 'cy', 'da', 'yo', 'et', 'xx_elmer',
|
||||
'eo', 'eu', 'ee', 'tl', 'fo', 'gaa', 'ga', 'gd', 'gl', 'gn', 'xx_hacker',
|
||||
'ht', 'ha', 'haw', 'bem', 'ig', 'rn', 'id', 'ia', 'zu', 'is', 'jw', 'rw',
|
||||
'sw', 'tlh', 'kg', 'mfe', 'kri', 'la', 'lv', 'to', 'lt', 'ln', 'loz',
|
||||
'lua', 'lg', 'hu', 'mg', 'mt', 'mi', 'pcm', 'no', 'nso', 'ny', 'nn',
|
||||
'uz', 'oc', 'om', 'xx_pirate', 'pt', 'ro', 'mo', 'rm', 'qu', 'nyn', 'crs',
|
||||
'sq', 'sd', 'sk', 'sl', 'so', 'st', 'sr_ME', 'sr_Latn', 'su', 'fi', 'sv',
|
||||
'tg', 'tt', 'tn', 'tum', 'tk', 'tw', 'fy', 'wo', 'xh', 'el', 'be', 'bg',
|
||||
'ky', 'kk', 'mk', 'mn', 'sr', 'uk', 'ka', 'hy', 'yi', 'iw', 'ug', 'ur',
|
||||
'ps', 'fa', 'ti', 'am', 'ne', 'mr', 'hi', 'bn', 'pa', 'gu', 'or', 'ta',
|
||||
'te', 'kn', 'ml', 'si', 'lo', 'my', 'km', 'chr']
|
||||
supported_languages = ["ach", "af", "ak", "az", "ms", "ban", "xx-bork", "bs", "br", "ca",
|
||||
"ceb", "ckb", "cs", "sn", "co", "cy", "da", "de", "yo", "et",
|
||||
"xx-elmer", "en", "es", "es-419", "eo", "eu", "ee", "tl", "fo", "fr",
|
||||
"gaa", "ga", "gd", "gl", "gn", "xx-hacker", "ht", "ha", "hr", "haw",
|
||||
"bem", "ig", "rn", "id", "ia", "zu", "is", "it", "jw", "rw", "sw",
|
||||
"tlh", "kg", "mfe", "kri", "la", "lv", "to", "lt", "ln", "loz",
|
||||
"lua", "lg", "hu", "mg", "mt", "mi", "nl", "pcm", "no", "nso",
|
||||
"ny", "nn", "uz", "oc", "om", "xx-pirate", "pl", "pt-BR", "pt-PT",
|
||||
"ro", "rm", "qu", "nyn", "crs", "sq", "sd", "sk", "sl", "so", "st",
|
||||
"sr-ME", "sr-Latn", "su", "fi", "sv", "tg", "tt", "vi", "tn", "tum",
|
||||
"tr", "tk", "tw", "fy", "wo", "xh", "el", "be", "bg", "ky", "kk", "mk",
|
||||
"mn", "ru", "sr", "uk", "ka", "hy", "yi", "iw", "ug", "ur", "ar", "ps",
|
||||
"fa", "ti", "am", "ne", "mr", "hi", "bn", "pa", "gu", "or", "ta", "te",
|
||||
"kn", "ml", "si", "th", "lo", "my", "km", "chr", "ko", "zh-CN", "zh-TW", "ja"]
|
||||
time_range_support = True
|
||||
|
||||
# based on https://en.wikipedia.org/wiki/List_of_Google_domains and tests
|
||||
@ -181,8 +181,12 @@ def request(query, params):
|
||||
language = 'en'
|
||||
country = 'US'
|
||||
url_lang = ''
|
||||
elif params['language'][:2] == 'jv':
|
||||
language = 'jw'
|
||||
country = 'ID'
|
||||
url_lang = 'lang_jw'
|
||||
else:
|
||||
language_array = params['language'].lower().split('_')
|
||||
language_array = params['language'].lower().split('-')
|
||||
if len(language_array) == 2:
|
||||
country = language_array[1]
|
||||
else:
|
||||
|
@ -32,9 +32,7 @@ language_codes = (
|
||||
(u"en-NZ", u"English", u"", u"English"),
|
||||
(u"got", u"𐌲𐌿𐍄𐌹𐍃𐌺", u"", u"Gothic"),
|
||||
(u"vls", u"West-Vlams", u"", u"West Flemish"),
|
||||
(u"ro", u"Română", u"", u"Romanian"),
|
||||
(u"bxr", u"Буряад", u"", u"Buryat"),
|
||||
(u"fiu-vro", u"Võro", u"", u"Võro"),
|
||||
(u"diq", u"Zazaki", u"", u"Zazaki"),
|
||||
(u"zh", u"中文", u"", u"Chinese"),
|
||||
(u"pms", u"Piemontèis", u"", u"Piedmontese"),
|
||||
@ -42,28 +40,25 @@ language_codes = (
|
||||
(u"zh-HK", u"中文", u"", u"Chinese"),
|
||||
(u"zu", u"isiZulu", u"", u"Zulu"),
|
||||
(u"tet", u"Tetun", u"", u"Tetum"),
|
||||
(u"es-PE", u"Español", u"", u"Spanish"),
|
||||
(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"cho", u"Choctaw", u"", u"Choctaw"),
|
||||
(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"is", u"Íslenska", u"", u"Icelandic"),
|
||||
(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"he-IL", u"עברית", u"", u"Hebrew"),
|
||||
(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"mh", u"Ebon", u"", u"Marshallese"),
|
||||
(u"mk", u"Македонски", u"", u"Macedonian"),
|
||||
(u"mt", u"Malti", u"", u"Maltese"),
|
||||
(u"ms", u"Bahasa Melayu", u"", u"Malay"),
|
||||
@ -75,7 +70,6 @@ language_codes = (
|
||||
(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"cbk-zam", u"Chavacano de Zamboanga", u"", u"Zamboanga Chavacano"),
|
||||
(u"nyn", u"Runyankore", u"", u""),
|
||||
(u"ig", u"Igbo", u"", u"Igbo"),
|
||||
(u"fr", u"Français", u"", u"French"),
|
||||
@ -88,7 +82,7 @@ language_codes = (
|
||||
(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"roa-tara", u"Tarandíne", u"", u"Tarantino"),
|
||||
(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"),
|
||||
@ -104,7 +98,7 @@ language_codes = (
|
||||
(u"sc", u"Sardu", u"", u"Sardinian"),
|
||||
(u"pt-BR", u"português (Brasil)", u"", u""),
|
||||
(u"sa", u"संस्कृतम्", u"", u"Sanskrit"),
|
||||
(u"sg", u"Sängö", u"", u"Sango"),
|
||||
(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"),
|
||||
@ -112,7 +106,6 @@ language_codes = (
|
||||
(u"it-CH", u"Italiano", u"", u"Italian"),
|
||||
(u"wuu", u"吴语", u"", u"Wu"),
|
||||
(u"fr-CA", u"Français", u"", u"French"),
|
||||
(u"ar-XA", u"العربية", u"", u"Arabic"),
|
||||
(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"),
|
||||
@ -130,14 +123,13 @@ language_codes = (
|
||||
(u"yi", u"ייִדיש", u"", u"Yiddish"),
|
||||
(u"ceb", u"Sinugboanong Binisaya", u"", u"Cebuano"),
|
||||
(u"yo", u"Yorùbá", u"", u"Yoruba"),
|
||||
(u"ro-RO", u"Română", u"", u"Romanian"),
|
||||
(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"map-bms", u"Basa Banyumasan", u"", u"Banyumasan"),
|
||||
(u"el", u"Ελληνικά", u"", u"Greek"),
|
||||
(u"eo", u"Esperanto", u"", u"Esperanto"),
|
||||
(u"en", u"English", u"", u"English"),
|
||||
@ -151,7 +143,7 @@ language_codes = (
|
||||
(u"rw", u"Ikinyarwanda", u"", u"Kinyarwanda"),
|
||||
(u"rm", u"Rumantsch", u"", u"Romansh"),
|
||||
(u"rn", u"Kirundi", u"", u"Kirundi"),
|
||||
(u"es-419", u"español (Latinoamérica)", u"", u""),
|
||||
(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"),
|
||||
@ -161,17 +153,13 @@ language_codes = (
|
||||
(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"es-XL", u"Español", u"", u"Spanish"),
|
||||
(u"fi-FI", u"Suomi", u"", u"Finnish"),
|
||||
(u"pnb", u"شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", u"", u"Western Punjabi"),
|
||||
(u"udm", u"Удмурт кыл", u"", u"Udmurt"),
|
||||
(u"ar-SA", u"العربية", u"", u"Arabic"),
|
||||
(u"bem", u"Ichibemba", u"", u""),
|
||||
(u"roa-rup", u"Armãneashce", u"", u"Aromanian"),
|
||||
(u"sr-Latn", u"srpski (latinica)", u"", u""),
|
||||
(u"en-ZA", u"English", u"", u"English"),
|
||||
(u"stq", u"Seeltersk", u"", u"Saterland Frisian"),
|
||||
(u"sr", u"Српски / Srpski", u"", u"Serbian"),
|
||||
(u"ang", u"Englisc", u"", u"Anglo-Saxon"),
|
||||
(u"ru-RU", u"Русский", u"", u"Russian"),
|
||||
(u"lbe", u"Лакку", u"", u"Lak"),
|
||||
(u"min", u"Minangkabau", u"", u"Minangkabau"),
|
||||
(u"es-US", u"Español", u"", u"Spanish"),
|
||||
@ -184,14 +172,13 @@ language_codes = (
|
||||
(u"kg", u"KiKongo", u"", u"Kongo"),
|
||||
(u"ckb", u"Soranî / کوردی", u"", u"Sorani"),
|
||||
(u"kk", u"Қазақша", u"", u"Kazakh"),
|
||||
(u"kj", u"Kuanyama", u"", u"Kuanyama"),
|
||||
(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"kr", u"Kanuri", u"", u"Kanuri"),
|
||||
(u"ext", u"Estremeñu", u"", u"Extremaduran"),
|
||||
(u"kw", u"Kernewek/Karnuack", u"", u"Cornish"),
|
||||
(u"kv", u"Коми", u"", u"Komi"),
|
||||
@ -202,7 +189,7 @@ language_codes = (
|
||||
(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"ar-SA", u"العربية", u"", u"Arabic"),
|
||||
(u"udm", u"Удмурт кыл", u"", u"Udmurt"),
|
||||
(u"ksh", u"Ripoarisch", u"", u"Ripuarian"),
|
||||
(u"ms-MY", u"Bahasa Melayu", u"", u"Malay"),
|
||||
(u"de", u"Deutsch", u"", u"German"),
|
||||
@ -219,13 +206,10 @@ language_codes = (
|
||||
(u"rmy", u"romani - रोमानी", u"", u"Romani"),
|
||||
(u"arc", u"ܐܪܡܝܐ", u"", u"Aramaic"),
|
||||
(u"th-TH", u"ไทย", u"", u"Thai"),
|
||||
(u"mus", u"Muskogee", u"", u"Muscogee"),
|
||||
(u"lua", u"Luba-Lulua", u"", u""),
|
||||
(u"en-ZA", u"English", u"", u"English"),
|
||||
(u"wa", u"Walon", u"", u"Walloon"),
|
||||
(u"wo", u"Wolof", u"", u"Wolof"),
|
||||
(u"jv", u"Basa Jawa", u"", u"Javanese"),
|
||||
(u"jw", u"Javanese", u"", u""),
|
||||
(u"fr-BE", u"Français", u"", u"French"),
|
||||
(u"tum", u"chiTumbuka", u"", u"Tumbuka"),
|
||||
(u"ja", u"日本語", u"", u"Japanese"),
|
||||
@ -233,12 +217,9 @@ language_codes = (
|
||||
(u"ilo", u"Ilokano", u"", u"Ilokano"),
|
||||
(u"tlh", u"Klingon", u"", u""),
|
||||
(u"pdc", u"Deitsch", u"", u"Pennsylvania German"),
|
||||
(u"aa", u"Afar", u"", u"Afar"),
|
||||
(u"ch", u"Chamoru", u"", u"Chamorro"),
|
||||
(u"co", u"Corsu", u"", u"Corsican"),
|
||||
(u"simple", u"Simple English", u"", u"Simple English"),
|
||||
(u"ca", u"Català", u"", u"Catalan"),
|
||||
(u"xx-pirate", u"Pirate", u"", u""),
|
||||
(u"ce", u"Нохчийн", u"", u"Chechen"),
|
||||
(u"cy", u"Cymraeg", u"", u"Welsh"),
|
||||
(u"sah", u"Саха тыла (Saxa Tyla)", u"", u"Sakha"),
|
||||
@ -254,30 +235,26 @@ language_codes = (
|
||||
(u"frp", u"Arpitan", u"", u"Franco-Provençal"),
|
||||
(u"xal", u"Хальмг", u"", u"Kalmyk"),
|
||||
(u"pi", u"पाऴि", u"", u"Pali"),
|
||||
(u"it-IT", u"Italiano", u"", u"Italian"),
|
||||
(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"bat-smg", u"Žemaitėška", u"", u"Samogitian"),
|
||||
(u"en-UK", u"English", u"", u"English"),
|
||||
(u"gag", u"Gagauz", u"", u"Gagauz"),
|
||||
(u"an", u"Aragonés", u"", u"Aragonese"),
|
||||
(u"gaa", u"Ga", u"", u""),
|
||||
(u"fur", u"Furlan", u"", u"Friulian"),
|
||||
(u"kr-KR", u"Kanuri", u"", u"Kanuri"),
|
||||
(u"zh-CN", u"中文 (简体)", u"", u""),
|
||||
(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"xx-bork", u"Bork, bork, bork!", u"", u""),
|
||||
(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"ii", u"ꆇꉙ", u"", u"Sichuan Yi"),
|
||||
(u"ik", u"Iñupiak", u"", u"Inupiak"),
|
||||
(u"io", u"Ido", u"", u"Ido"),
|
||||
(u"ia", u"Interlingua", u"", u"Interlingua"),
|
||||
@ -288,7 +265,7 @@ language_codes = (
|
||||
(u"pap", u"Papiamentu", u"", u"Papiamentu"),
|
||||
(u"pag", u"Pangasinan", u"", u"Pangasinan"),
|
||||
(u"pam", u"Kapampangan", u"", u"Kapampangan"),
|
||||
(u"lv-LV", u"Latviešu", u"", u"Latvian"),
|
||||
(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"),
|
||||
@ -297,6 +274,7 @@ language_codes = (
|
||||
(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"),
|
||||
@ -308,7 +286,6 @@ language_codes = (
|
||||
(u"en-MY", u"English", u"", u"English"),
|
||||
(u"sv-SE", u"Svenska", u"", u"Swedish"),
|
||||
(u"de-AT", u"Deutsch", u"", u"German"),
|
||||
(u"xx-elmer", u"Elmer Fudd", u"", u""),
|
||||
(u"hsb", u"Hornjoserbsce", u"", u"Upper Sorbian"),
|
||||
(u"be", u"Беларуская", u"", u"Belarusian"),
|
||||
(u"bg", u"Български", u"", u"Bulgarian"),
|
||||
@ -328,25 +305,20 @@ language_codes = (
|
||||
(u"ach", u"Acoli", u"", u""),
|
||||
(u"oc", u"Occitan", u"", u"Occitan"),
|
||||
(u"kri", u"Krio (Sierra Leone)", u"", u""),
|
||||
(u"be-tarask", u"Беларуская (тарашкевіца)", u"", u"Belarusian (Taraškievica)"),
|
||||
(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"xx-hacker", u"Hacker", u"", u""),
|
||||
(u"zh-min-nan", u"Bân-lâm-gú", u"", u"Min Nan"),
|
||||
(u"pa", u"ਪੰਜਾਬੀ", u"", u"Punjabi"),
|
||||
(u"loz", u"Lozi", u"", u""),
|
||||
(u"war", u"Winaray", u"", u"Waray-Waray"),
|
||||
(u"hz", u"Otsiherero", u"", u"Herero"),
|
||||
(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"ho", u"Hiri Motu", u"", u"Hiri Motu"),
|
||||
(u"ha", u"هَوُسَ", u"", u"Hausa"),
|
||||
(u"bug", u"Basa Ugi", u"", u"Buginese"),
|
||||
(u"he", u"עברית", u"", u"Hebrew"),
|
||||
@ -359,7 +331,7 @@ language_codes = (
|
||||
(u"pih", u"Norfuk", u"", u"Norfolk"),
|
||||
(u"ab", u"Аҧсуа", u"", u"Abkhazian"),
|
||||
(u"af", u"Afrikaans", u"", u"Afrikaans"),
|
||||
(u"ak", u"Akana", u"", u"Akan"),
|
||||
(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"),
|
||||
@ -370,21 +342,17 @@ language_codes = (
|
||||
(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"nl", u"Nederlands", u"", u"Dutch"),
|
||||
(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"ng", u"Oshiwambo", u"", u"Ndonga"),
|
||||
(u"en-AU", u"English", u"", u"English"),
|
||||
(u"nap", u"Nnapulitano", u"", u"Neapolitan"),
|
||||
(u"nv", u"Diné bizaad", u"", u"Navajo"),
|
||||
(u"ku", u"Kurdî / كوردی", u"", u"Kurdish"),
|
||||
(u"cs-CZ", u"Čeština", u"", u"Czech"),
|
||||
(u"zh-yue", u"粵語", u"", u"Cantonese"),
|
||||
(u"en-SG", u"English", u"", u"English"),
|
||||
(u"zh-classical", u"古文 / 文言文", u"", u"Classical Chinese"),
|
||||
(u"bcl", u"Bikol", u"", u"Central Bicolano"),
|
||||
(u"en-XA", u"English", u"", u"English")
|
||||
(u"bcl", u"Bikol", u"", u"Central Bicolano")
|
||||
)
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
from requests import get
|
||||
from re import sub
|
||||
from lxml.html import fromstring
|
||||
from lxml.html import fromstring, tostring
|
||||
from json import loads
|
||||
from sys import path
|
||||
path.append('../searx')
|
||||
@ -25,6 +25,28 @@ google_json_name = 'google.preferences.langMap'
|
||||
|
||||
languages = {}
|
||||
|
||||
|
||||
# To filter out invalid codes and dialects.
|
||||
def valid_code(lang_code):
|
||||
# filter invalid codes
|
||||
if lang_code[:2] == 'xx'\
|
||||
or lang_code == 'jw'\
|
||||
or lang_code[-2:] == 'UK'\
|
||||
or lang_code[-2:] == 'XA'\
|
||||
or lang_code[-2:] == 'XL':
|
||||
return False
|
||||
|
||||
# filter dialects
|
||||
lang_code = lang_code.split('-')
|
||||
if len(lang_code) > 2 or len(lang_code[0]) > 3:
|
||||
return False
|
||||
if len(lang_code) == 2 and len(lang_code[1]) > 2:
|
||||
print lang_code
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
# Get language names from Wikipedia.
|
||||
def get_wikipedia_languages():
|
||||
response = get(wiki_languages_url)
|
||||
@ -38,10 +60,13 @@ def get_wikipedia_languages():
|
||||
code = td[3].xpath('./a')[0].text
|
||||
name = td[2].xpath('./a')[0].text
|
||||
english_name = td[1].xpath('./a')[0].text
|
||||
articles = int(td[4].xpath('./a/b')[0].text.replace(',',''))
|
||||
|
||||
if code not in languages:
|
||||
# exclude languages with few articles and language variants
|
||||
if code not in languages and articles >= 100 and valid_code(code):
|
||||
languages[code] = (name, '', english_name)
|
||||
|
||||
|
||||
# Get language names from Google.
|
||||
def get_google_languages():
|
||||
response = get(google_languages_url)
|
||||
@ -51,25 +76,27 @@ def get_google_languages():
|
||||
code = option.xpath('./@value')[0]
|
||||
name = option.text[:-1]
|
||||
|
||||
if code not in languages:
|
||||
if code not in languages and valid_code(code):
|
||||
languages[code] = (name, '', '')
|
||||
|
||||
|
||||
# Join all language lists.
|
||||
# iterate all languages supported by each engine
|
||||
def join_language_lists():
|
||||
for engine_name in engines:
|
||||
for locale in engines[engine_name].supported_languages:
|
||||
locale = locale.replace('_', '-')
|
||||
if locale not in languages:
|
||||
if locale not in languages and valid_code(locale):
|
||||
# try to get language name
|
||||
language = languages.get(locale.split('-')[0], None)
|
||||
if language == None:
|
||||
print engine_name + ": " + locale
|
||||
# print engine_name + ": " + locale
|
||||
continue
|
||||
|
||||
(name, country, english) = language
|
||||
languages[locale] = (name, country, english)
|
||||
|
||||
|
||||
# Write languages.py.
|
||||
def write_languages_file():
|
||||
new_file = open('languages.py', 'w')
|
||||
@ -81,7 +108,7 @@ def write_languages_file():
|
||||
(name, country, english) = languages[code]
|
||||
file_content += '\n (u"' + code + '"'\
|
||||
+ ', u"' + name + '"'\
|
||||
+ ', u"' + country[1:-1] + '"'\
|
||||
+ ', u"' + country + '"'\
|
||||
+ ', u"' + english + '"),'
|
||||
# remove last comma
|
||||
file_content = file_content[:-1]
|
||||
@ -89,11 +116,13 @@ def write_languages_file():
|
||||
new_file.write(file_content.encode('utf8'))
|
||||
new_file.close()
|
||||
|
||||
|
||||
def main():
|
||||
get_wikipedia_languages()
|
||||
get_google_languages()
|
||||
join_language_lists()
|
||||
write_languages_file()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user