Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Download app/languages.py from MsThai/switchlingo: direct link, hf CLI and curl.
- Browser
- Download file 7.17 kB
-
https://huggingface.co/spaces/MsThai/switchlingo/resolve/main/app/languages.py
- Command line
-
hf download hf://spaces/MsThai/switchlingo/app/languages.py
-
curl -L -o languages.py https://huggingface.co/spaces/MsThai/switchlingo/resolve/main/app/languages.py
7.17 kB
| """Language table: one row per language with the codes each engine needs. | |
| code = our ID (ISO 639-1 style; also what Whisper understands for speech input) | |
| nllb = Meta NLLB-200 code (offline engine) or None | |
| google = Google Translate code or None | |
| tts = Edge neural-voice locale prefix (None = no voice for that language) | |
| speech = True if the speech model can transcribe it (source language) | |
| """ | |
| from __future__ import annotations | |
| # code, name, nllb, google, tts, speech | |
| _ROWS = [ | |
| ("af", "Afrikaans", "afr_Latn", "af", "af-ZA", True), | |
| ("am", "Amharic", "amh_Ethi", "am", "am-ET", True), | |
| ("ar", "Arabic", "arb_Arab", "ar", "ar-EG", True), | |
| ("as", "Assamese", "asm_Beng", "as", None, True), | |
| ("az", "Azerbaijani", "azj_Latn", "az", "az-AZ", True), | |
| ("be", "Belarusian", "bel_Cyrl", "be", None, True), | |
| ("bg", "Bulgarian", "bul_Cyrl", "bg", "bg-BG", True), | |
| ("bn", "Bengali", "ben_Beng", "bn", "bn-BD", True), | |
| ("bo", "Tibetan", "bod_Tibt", None, None, True), | |
| ("bs", "Bosnian", "bos_Latn", "bs", "bs-BA", True), | |
| ("ca", "Catalan", "cat_Latn", "ca", "ca-ES", True), | |
| ("ceb", "Cebuano", "ceb_Latn", "ceb", None, False), | |
| ("ckb", "Kurdish (Sorani)", "ckb_Arab", "ckb", None, False), | |
| ("cs", "Czech", "ces_Latn", "cs", "cs-CZ", True), | |
| ("cy", "Welsh", "cym_Latn", "cy", "cy-GB", True), | |
| ("da", "Danish", "dan_Latn", "da", "da-DK", True), | |
| ("de", "German", "deu_Latn", "de", "de-DE", True), | |
| ("el", "Greek", "ell_Grek", "el", "el-GR", True), | |
| ("en", "English", "eng_Latn", "en", "en-US", True), | |
| ("es", "Spanish", "spa_Latn", "es", "es-MX", True), | |
| ("et", "Estonian", "est_Latn", "et", "et-EE", True), | |
| ("eu", "Basque", "eus_Latn", "eu", None, True), | |
| ("fa", "Persian (Farsi)", "pes_Arab", "fa", "fa-IR", True), | |
| ("fi", "Finnish", "fin_Latn", "fi", "fi-FI", True), | |
| ("fr", "French", "fra_Latn", "fr", "fr-FR", True), | |
| ("ga", "Irish", "gle_Latn", "ga", "ga-IE", False), | |
| ("gl", "Galician", "glg_Latn", "gl", "gl-ES", True), | |
| ("gu", "Gujarati", "guj_Gujr", "gu", "gu-IN", True), | |
| ("ha", "Hausa", "hau_Latn", "ha", None, True), | |
| ("haw", "Hawaiian", None, "haw", None, True), | |
| ("he", "Hebrew", "heb_Hebr", "iw", "he-IL", True), | |
| ("hi", "Hindi", "hin_Deva", "hi", "hi-IN", True), | |
| ("hmn", "Hmong", None, "hmn", None, False), | |
| ("hr", "Croatian", "hrv_Latn", "hr", "hr-HR", True), | |
| ("ht", "Haitian Creole", "hat_Latn", "ht", None, True), | |
| ("hu", "Hungarian", "hun_Latn", "hu", "hu-HU", True), | |
| ("hy", "Armenian", "hye_Armn", "hy", None, True), | |
| ("id", "Indonesian", "ind_Latn", "id", "id-ID", True), | |
| ("ig", "Igbo", "ibo_Latn", "ig", None, False), | |
| ("ilo", "Ilocano", "ilo_Latn", "ilo", None, False), | |
| ("is", "Icelandic", "isl_Latn", "is", "is-IS", True), | |
| ("it", "Italian", "ita_Latn", "it", "it-IT", True), | |
| ("ja", "Japanese", "jpn_Jpan", "ja", "ja-JP", True), | |
| ("jw", "Javanese", "jav_Latn", "jw", "jv-ID", True), | |
| ("ka", "Georgian", "kat_Geor", "ka", "ka-GE", True), | |
| ("kk", "Kazakh", "kaz_Cyrl", "kk", "kk-KZ", True), | |
| ("km", "Khmer", "khm_Khmr", "km", "km-KH", True), | |
| ("kn", "Kannada", "kan_Knda", "kn", "kn-IN", True), | |
| ("ko", "Korean", "kor_Hang", "ko", "ko-KR", True), | |
| ("ku", "Kurdish (Kurmanji)", "kmr_Latn", "ku", None, False), | |
| ("ky", "Kyrgyz", "kir_Cyrl", "ky", None, False), | |
| ("lb", "Luxembourgish", "ltz_Latn", "lb", None, True), | |
| ("lo", "Lao", "lao_Laoo", "lo", "lo-LA", True), | |
| ("lt", "Lithuanian", "lit_Latn", "lt", "lt-LT", True), | |
| ("lv", "Latvian", "lvs_Latn", "lv", "lv-LV", True), | |
| ("mg", "Malagasy", "plt_Latn", "mg", None, True), | |
| ("mi", "Maori", "mri_Latn", "mi", None, True), | |
| ("mk", "Macedonian", "mkd_Cyrl", "mk", "mk-MK", True), | |
| ("ml", "Malayalam", "mal_Mlym", "ml", "ml-IN", True), | |
| ("mn", "Mongolian", "khk_Cyrl", "mn", "mn-MN", True), | |
| ("mr", "Marathi", "mar_Deva", "mr", "mr-IN", True), | |
| ("ms", "Malay", "zsm_Latn", "ms", "ms-MY", True), | |
| ("mt", "Maltese", "mlt_Latn", "mt", "mt-MT", True), | |
| ("my", "Burmese (Myanmar)", "mya_Mymr", "my", "my-MM", True), | |
| ("ne", "Nepali", "npi_Deva", "ne", "ne-NP", True), | |
| ("nl", "Dutch", "nld_Latn", "nl", "nl-NL", True), | |
| ("no", "Norwegian", "nob_Latn", "no", "nb-NO", True), | |
| ("ny", "Chichewa", "nya_Latn", "ny", None, False), | |
| ("om", "Oromo", "gaz_Latn", "om", None, False), | |
| ("pa", "Punjabi", "pan_Guru", "pa", None, True), | |
| ("pl", "Polish", "pol_Latn", "pl", "pl-PL", True), | |
| ("ps", "Pashto", "pbt_Arab", "ps", "ps-AF", True), | |
| ("pt", "Portuguese", "por_Latn", "pt", "pt-BR", True), | |
| ("ro", "Romanian", "ron_Latn", "ro", "ro-RO", True), | |
| ("ru", "Russian", "rus_Cyrl", "ru", "ru-RU", True), | |
| ("rw", "Kinyarwanda", "kin_Latn", "rw", None, False), | |
| ("sd", "Sindhi", "snd_Arab", "sd", None, True), | |
| ("si", "Sinhala", "sin_Sinh", "si", "si-LK", True), | |
| ("sk", "Slovak", "slk_Latn", "sk", "sk-SK", True), | |
| ("sl", "Slovenian", "slv_Latn", "sl", "sl-SI", True), | |
| ("sm", "Samoan", "smo_Latn", "sm", None, False), | |
| ("sn", "Shona", "sna_Latn", "sn", None, True), | |
| ("so", "Somali", "som_Latn", "so", "so-SO", True), | |
| ("sq", "Albanian", "als_Latn", "sq", "sq-AL", True), | |
| ("sr", "Serbian", "srp_Cyrl", "sr", "sr-RS", True), | |
| ("su", "Sundanese", "sun_Latn", "su", "su-ID", True), | |
| ("sv", "Swedish", "swe_Latn", "sv", "sv-SE", True), | |
| ("sw", "Swahili", "swh_Latn", "sw", "sw-KE", True), | |
| ("ta", "Tamil", "tam_Taml", "ta", "ta-IN", True), | |
| ("te", "Telugu", "tel_Telu", "te", "te-IN", True), | |
| ("tg", "Tajik", "tgk_Cyrl", "tg", None, True), | |
| ("th", "Thai", "tha_Thai", "th", "th-TH", True), | |
| ("ti", "Tigrinya", "tir_Ethi", "ti", None, False), | |
| ("tk", "Turkmen", "tuk_Latn", "tk", None, True), | |
| ("tl", "Filipino (Tagalog)", "tgl_Latn", "tl", "fil-PH", True), | |
| ("tr", "Turkish", "tur_Latn", "tr", "tr-TR", True), | |
| ("tt", "Tatar", "tat_Cyrl", "tt", None, True), | |
| ("uk", "Ukrainian", "ukr_Cyrl", "uk", "uk-UA", True), | |
| ("ur", "Urdu", "urd_Arab", "ur", "ur-PK", True), | |
| ("uz", "Uzbek", "uzn_Latn", "uz", "uz-UZ", True), | |
| ("vi", "Vietnamese", "vie_Latn", "vi", "vi-VN", True), | |
| ("xh", "Xhosa", "xho_Latn", "xh", None, False), | |
| ("yi", "Yiddish", "ydd_Hebr", "yi", None, True), | |
| ("yo", "Yoruba", "yor_Latn", "yo", None, True), | |
| ("yue", "Cantonese", "yue_Hant", "zh-TW", "zh-HK", True), | |
| ("zh", "Chinese (Simplified)", "zho_Hans", "zh-CN", "zh-CN", True), | |
| ("zh-TW", "Chinese (Traditional)", "zho_Hant", "zh-TW", "zh-TW", False), | |
| ("zu", "Zulu", "zul_Latn", "zu", "zu-ZA", False), | |
| ] | |
| LANGS = {r[0]: {"code": r[0], "name": r[1], "nllb": r[2], "google": r[3], "tts": r[4], | |
| "speech": r[5]} for r in _ROWS} | |
| # Most spoken languages in US homes (Census ACS), shown first in the menus | |
| POPULAR_US = ["en", "es", "zh", "tl", "vi", "ar", "fr", "ko", "ru", "ht", "pt", "hi", "de", "ur", "fa", "ja", | |
| "pl", "it", "so", "lo", "km", "hmn", "th", "am", "pa"] | |
| def get(code: str) -> dict: | |
| if code not in LANGS: | |
| raise ValueError(f"Unknown language code: {code}") | |
| return LANGS[code] | |
| def public_list() -> list[dict]: | |
| return sorted(LANGS.values(), key=lambda r: r["name"]) | |