Spaces:
Running
Running
class Language(): | |
def __init__(self, code, name): | |
self.code = code | |
self.name = name | |
def __str__(self): | |
return "Language(code={}, name={})".format(self.code, self.name) | |
LANGUAGES = [ | |
Language('en', 'English'), | |
Language('zh', 'Chinese'), | |
Language('de', 'German'), | |
Language('es', 'Spanish'), | |
Language('ru', 'Russian'), | |
Language('ko', 'Korean'), | |
Language('fr', 'French'), | |
Language('ja', 'Japanese'), | |
Language('pt', 'Portuguese'), | |
Language('tr', 'Turkish'), | |
Language('pl', 'Polish'), | |
Language('ca', 'Catalan'), | |
Language('nl', 'Dutch'), | |
Language('ar', 'Arabic'), | |
Language('sv', 'Swedish'), | |
Language('it', 'Italian'), | |
Language('id', 'Indonesian'), | |
Language('hi', 'Hindi'), | |
Language('fi', 'Finnish'), | |
Language('vi', 'Vietnamese'), | |
Language('he', 'Hebrew'), | |
Language('uk', 'Ukrainian'), | |
Language('el', 'Greek'), | |
Language('ms', 'Malay'), | |
Language('cs', 'Czech'), | |
Language('ro', 'Romanian'), | |
Language('da', 'Danish'), | |
Language('hu', 'Hungarian'), | |
Language('ta', 'Tamil'), | |
Language('no', 'Norwegian'), | |
Language('th', 'Thai'), | |
Language('ur', 'Urdu'), | |
Language('hr', 'Croatian'), | |
Language('bg', 'Bulgarian'), | |
Language('lt', 'Lithuanian'), | |
Language('la', 'Latin'), | |
Language('mi', 'Maori'), | |
Language('ml', 'Malayalam'), | |
Language('cy', 'Welsh'), | |
Language('sk', 'Slovak'), | |
Language('te', 'Telugu'), | |
Language('fa', 'Persian'), | |
Language('lv', 'Latvian'), | |
Language('bn', 'Bengali'), | |
Language('sr', 'Serbian'), | |
Language('az', 'Azerbaijani'), | |
Language('sl', 'Slovenian'), | |
Language('kn', 'Kannada'), | |
Language('et', 'Estonian'), | |
Language('mk', 'Macedonian'), | |
Language('br', 'Breton'), | |
Language('eu', 'Basque'), | |
Language('is', 'Icelandic'), | |
Language('hy', 'Armenian'), | |
Language('ne', 'Nepali'), | |
Language('mn', 'Mongolian'), | |
Language('bs', 'Bosnian'), | |
Language('kk', 'Kazakh'), | |
Language('sq', 'Albanian'), | |
Language('sw', 'Swahili'), | |
Language('gl', 'Galician'), | |
Language('mr', 'Marathi'), | |
Language('pa', 'Punjabi'), | |
Language('si', 'Sinhala'), | |
Language('km', 'Khmer'), | |
Language('sn', 'Shona'), | |
Language('yo', 'Yoruba'), | |
Language('so', 'Somali'), | |
Language('af', 'Afrikaans'), | |
Language('oc', 'Occitan'), | |
Language('ka', 'Georgian'), | |
Language('be', 'Belarusian'), | |
Language('tg', 'Tajik'), | |
Language('sd', 'Sindhi'), | |
Language('gu', 'Gujarati'), | |
Language('am', 'Amharic'), | |
Language('yi', 'Yiddish'), | |
Language('lo', 'Lao'), | |
Language('uz', 'Uzbek'), | |
Language('fo', 'Faroese'), | |
Language('ht', 'Haitian creole'), | |
Language('ps', 'Pashto'), | |
Language('tk', 'Turkmen'), | |
Language('nn', 'Nynorsk'), | |
Language('mt', 'Maltese'), | |
Language('sa', 'Sanskrit'), | |
Language('lb', 'Luxembourgish'), | |
Language('my', 'Myanmar'), | |
Language('bo', 'Tibetan'), | |
Language('tl', 'Tagalog'), | |
Language('mg', 'Malagasy'), | |
Language('as', 'Assamese'), | |
Language('tt', 'Tatar'), | |
Language('haw', 'Hawaiian'), | |
Language('ln', 'Lingala'), | |
Language('ha', 'Hausa'), | |
Language('ba', 'Bashkir'), | |
Language('jw', 'Javanese'), | |
Language('su', 'Sundanese') | |
] | |
_TO_LANGUAGE_CODE = { | |
**{language.code: language for language in LANGUAGES}, | |
"burmese": "my", | |
"valencian": "ca", | |
"flemish": "nl", | |
"haitian": "ht", | |
"letzeburgesch": "lb", | |
"pushto": "ps", | |
"panjabi": "pa", | |
"moldavian": "ro", | |
"moldovan": "ro", | |
"sinhalese": "si", | |
"castilian": "es", | |
} | |
_FROM_LANGUAGE_NAME = { | |
**{language.name.lower(): language for language in LANGUAGES} | |
} | |
def get_language_from_code(language_code, default=None) -> Language: | |
"""Return the language name from the language code.""" | |
return _TO_LANGUAGE_CODE.get(language_code, default) | |
def get_language_from_name(language, default=None) -> Language: | |
"""Return the language code from the language name.""" | |
return _FROM_LANGUAGE_NAME.get(language.lower() if language else None, default) | |
def get_language_names(): | |
"""Return a list of language names.""" | |
return [language.name for language in LANGUAGES] | |
if __name__ == "__main__": | |
# Test lookup | |
print(get_language_from_code('en')) | |
print(get_language_from_name('English')) | |
print(get_language_names()) |