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_ |