# General Translation Python SDKs: TranslationsLoader URL: https://generaltranslation.com/fr/docs/python/reference/classes/translations-loader.mdx --- title: TranslationsLoader description: Le type appelable des loaders de traduction personnalisés dans General Translation Python. Référence d’API pour TranslationsLoader. --- Type d’un loader de traduction personnalisé — le callback que vous passez à `load_translations` pour fournir vos propres traductions. Il associe un code de langue à un dictionnaire de traductions. *Remarque : `TranslationsLoader` est un **alias de type**, et non une classe, un protocole ou une ABC. Vous n’en héritez pas ; vous fournissez n’importe quel objet appelable qui en respecte la signature.* ## Vue d’ensemble [#overview] `TranslationsLoader` est défini comme un alias de `Callable` : ```python from collections.abc import Awaitable, Callable TranslationsLoader = Callable[[str], dict[str, str] | Awaitable[dict[str, str]]] ``` Un loader prend un code de langue et renvoie un `dict[str, str]`, c’est-à-dire un mapping qui associe les hachages de messages à leurs chaînes traduites. Il peut être synchrone ou renvoyer un objet awaitable — le gestionnaire attend le résultat lorsqu’il s’agit d’un awaitable. Importez `TranslationsLoader` depuis `gt_i18n`. Il n’est pas réexporté par les packages du framework. ## Fonctionnement [#how-it-works] * **Entrée.** Une seule chaîne contenant un code de langue (par exemple, `"es"`). * **Sortie.** Un `dict[str, str]` de hachage → chaîne traduite, ou un awaitable qui en renvoie un. * **Où il est utilisé.** Passé comme `load_translations` à [`I18nManager`](/docs/python/reference/classes/i18n-manager) ou [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Lorsqu’il est fourni, il remplace le loader CDN intégré. Les clés doivent être des hachages produits par [`hash_message`](/docs/python/reference/functions/hash-message). ## Exemple [#example] ```python import json from pathlib import Path from gt_i18n import I18nManager, TranslationsLoader # Un loader synchrone lisant un fichier JSON par paramètre régional def load_translations(locale: str) -> dict[str, str]: path = Path("translations") / f"{locale}.json" return json.loads(path.read_text()) if path.exists() else {} loader: TranslationsLoader = load_translations manager = I18nManager(default_locale="en", locales=["es"], load_translations=loader) ``` ```python # Un loader asynchrone est également valide async def load_translations(locale: str) -> dict[str, str]: return await fetch_from_somewhere(locale) ```