# General Translation Python SDKs: TranslationsLoader
URL: https://generaltranslation.com/fr/docs/python/reference/classes/translations-loader.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Le type appelable des loaders de traduction personnalisés dans General Translation Python. Référence d’API pour TranslationsLoader.

`TranslationsLoader` est le type du 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)
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
