Spaces:
Paused
Paused
#coding: utf-8 | |
from typing import Optional | |
from typing import Union | |
from typing import Dict | |
from typing import Any | |
from typing import List | |
def convert_language_name_to_iso6391(language_data: Union[str, Dict[str, str]]) -> str: | |
""" | |
Convertit un nom de langue en son code ISO 639-1. | |
Args: | |
language_data (Union[str, Dict[str, str]]): Le nom de la langue ou un dictionnaire | |
contenant le nom de la langue. | |
Returns: | |
str: Le code ISO 639-1 pour la langue donnée, ou 'en' si non trouvé. | |
""" | |
# Dictionnaire associant les noms de langues aux codes ISO 639-1 | |
language_to_iso: Dict[str, str] = { | |
"Afrikaans": "af", "Arabic": "ar", "Armenian": "hy", "Azerbaijani": "az", | |
"Belarusian": "be", "Bosnian": "bs", "Bulgarian": "bg", "Catalan": "ca", | |
"Chinese": "zh", "Croatian": "hr", "Czech": "cs", "Danish": "da", | |
"Dutch": "nl", "English": "en", "Estonian": "et", "Finnish": "fi", | |
"French": "fr", "Galician": "gl", "German": "de", "Greek": "el", | |
"Hebrew": "he", "Hindi": "hi", "Hungarian": "hu", "Icelandic": "is", | |
"Indonesian": "id", "Italian": "it", "Japanese": "ja", "Kannada": "kn", | |
"Kazakh": "kk", "Korean": "ko", "Latvian": "lv", "Lithuanian": "lt", | |
"Macedonian": "mk", "Malay": "ms", "Marathi": "mr", "Maori": "mi", | |
"Nepali": "ne", "Norwegian": "no", "Persian": "fa", "Polish": "pl", | |
"Portuguese": "pt", "Romanian": "ro", "Russian": "ru", "Serbian": "sr", | |
"Slovak": "sk", "Slovenian": "sl", "Spanish": "es", "Swahili": "sw", | |
"Swedish": "sv", "Tagalog": "tl", "Tamil": "ta", "Thai": "th", | |
"Turkish": "tr", "Ukrainian": "uk", "Urdu": "ur", "Vietnamese": "vi", | |
"Welsh": "cy" | |
} | |
default_ = "en" | |
# Vérifier si language_data est un dictionnaire | |
if isinstance(language_data, dict): | |
language_name = language_data.get('language', '') | |
else: | |
language_name = language_data | |
try: | |
# Retourner le code ISO 639-1 correspondant au nom de la langue | |
return language_to_iso[language_name] | |
except KeyError: | |
if f"{language_name}" in language_to_iso.values(): | |
return language_name | |
else: | |
# Gérer spécifiquement l'exception KeyError | |
print(f"Langue non trouvée : {language_name}") | |
return default_ | |
def convert_iso6391_to_language_name(language_code: str, | |
filter_mode=True) -> str: | |
""" | |
Convertit un code ISO 639-1 en nom de langue. | |
Args: | |
language_code (str): Le code ISO 639-1 de la langue. | |
Returns: | |
str: Le nom de la langue correspondant au code ISO 639-1, ou 'English' si non trouvé. | |
""" | |
# Dictionnaire associant les codes ISO 639-1 aux noms de langues | |
iso_to_language: Dict[str, str] = { | |
"af": "Afrikaans", "ar": "Arabic", "hy": "Armenian", "az": "Azerbaijani", | |
"be": "Belarusian", "bs": "Bosnian", "bg": "Bulgarian", "ca": "Catalan", | |
"zh": "Chinese", "hr": "Croatian", "cs": "Czech", "da": "Danish", | |
"nl": "Dutch", "en": "English", "et": "Estonian", "fi": "Finnish", | |
"fr": "French", "gl": "Galician", "de": "German", "el": "Greek", | |
"he": "Hebrew", "hi": "Hindi", "hu": "Hungarian", "is": "Icelandic", | |
"id": "Indonesian", "it": "Italian", "ja": "Japanese", "kn": "Kannada", | |
"kk": "Kazakh", "ko": "Korean", "lv": "Latvian", "lt": "Lithuanian", | |
"mk": "Macedonian", "ms": "Malay", "mr": "Marathi", "mi": "Maori", | |
"ne": "Nepali", "no": "Norwegian", "fa": "Persian", "pl": "Polish", | |
"pt": "Portuguese", "ro": "Romanian", "ru": "Russian", "sr": "Serbian", | |
"sk": "Slovak", "sl": "Slovenian", "es": "Spanish", "sw": "Swahili", | |
"sv": "Swedish", "tl": "Tagalog", "ta": "Tamil", "th": "Thai", | |
"tr": "Turkish", "uk": "Ukrainian", "ur": "Urdu", "vi": "Vietnamese", | |
"cy": "Welsh" | |
} | |
default_ = "English" | |
try: | |
# Retourner le nom de la langue correspondant au code ISO 639-1 | |
return iso_to_language[language_code] | |
except KeyError: | |
if f"{language_code}" in iso_to_language.values(): | |
return language_code | |
else: | |
# Gérer spécifiquement l'exception KeyError | |
print(f"Code de langue non trouvé : {language_code}") | |
return default_ |