# General Translation Python SDKs: TranslationsLoader URL: https://generaltranslation.com/ru/docs/python/reference/classes/translations-loader.mdx --- title: TranslationsLoader description: Вызываемый тип для пользовательских загрузчиков переводов в General Translation Python. Справочник по API для 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) ```