# General Translation Python SDKs: TranslationsLoader
URL: https://generaltranslation.com/ru/docs/python/reference/classes/translations-loader.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Вызываемый тип для пользовательских загрузчиков переводов в General Translation Python. Справочник по API для TranslationsLoader.

`TranslationsLoader` — это тип callback, который вы передаёте в `load_translations`, чтобы использовать собственные переводы. Он сопоставляет код локали со словарём переводов.

*Примечание: `TranslationsLoader` — это **алиас типа**, а не класс, protocol или ABC. От него не наследуются; вместо этого вы передаёте любой callable, соответствующий его сигнатуре.*

## Обзор [#overview]

`TranslationsLoader` определяется как алиас `Callable`:

```python
from collections.abc import Awaitable, Callable

TranslationsLoader = Callable[[str], dict[str, str] | Awaitable[dict[str, str]]]
```

`загрузчик` принимает код локали и возвращает `dict[str, str]` — отображение хэшей сообщений в переведённые строки. Он может быть синхронным или возвращать awaitable-объект: в этом случае менеджер ожидает результат.

Импортируйте `TranslationsLoader` из `gt_i18n`. Он не реэкспортируется пакетами фреймворка.

## Как это работает [#how-it-works]

* **Входные данные.** Одна строка с кодом локали (например, `"es"`).
* **Выходные данные.** `dict[str, str]`, где hash → переведённая строка, или awaitable, который возвращает такой словарь.
* **Где используется.** Передаётся как `load_translations` в [`I18nManager`](/docs/python/reference/classes/i18n-manager) или [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Если указано, заменяет встроенный CDN-загрузчик. Ключами должны быть хеши, созданные с помощью [`hash_message`](/docs/python/reference/functions/hash-message).

## Пример [#example]

```python
import json
from pathlib import Path
from gt_i18n import I18nManager, TranslationsLoader

# Синхронный загрузчик, читающий один JSON-файл для каждой локали
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
# Асинхронный loader также допустим
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.
