70def _get_lang_descr(lang: str) -> FromToType | None:
71 """Returns language's code and language's english name if argument ``lang``
72 describes a language known by SearXNG, otherwise ``None``.
73
74 Examples:
75
76 .. code:: python
77
78 >>> _get_lang_descr("zz")
79 None
80 >>> _get_lang_descr("uk")
81 (True, "uk", "ukrainian")
82 >>> _get_lang_descr(b"uk")
83 (True, "uk", "ukrainian")
84 >>> _get_lang_descr("en")
85 (True, "en", "english")
86 >>> _get_lang_descr("Español")
87 (True, "es", "spanish")
88 >>> _get_lang_descr("Spanish")
89 (True, "es", "spanish")
90
91 """
92 lang = lang.lower()
93 is_abbr = len(lang) == 2
94 if is_abbr:
95 for l in sxng_locales:
96 if l[0][:2] == lang:
97 return (True, l[0][:2], l[3].lower())
98 return None
99 for l in sxng_locales:
100 if l[1].lower() == lang or l[3].lower() == lang:
101 return (True, l[0][:2], l[3].lower())
102 return None