# General Translation Python SDKs: TranslationsLoader URL: https://generaltranslation.com/zh/docs/python/reference/classes/translations-loader.mdx --- title: TranslationsLoader description: General Translation Python 中自定义翻译加载器的可调用类型。TranslationsLoader 的 API 参考。 --- 自定义翻译加载器的类型——也就是你传给 `load_translations`、用于接入自有翻译的回调函数。它会将区域设置代码映射到 translations dict。 *注意:`TranslationsLoader` 是一个 **类型别名**,不是类、protocol 或 ABC。你不需要继承它;只需提供任何符合其签名的可调用对象即可。* ## 总览 [#overview] `TranslationsLoader` 被定义为 `Callable` 的别名: ```python from collections.abc import Awaitable, Callable TranslationsLoader = Callable[[str], dict[str, str] | Awaitable[dict[str, str]]] ``` 加载器接收一个区域设置代码,并返回一个 `dict[str, str]`,用于将消息哈希映射到已翻译的字符串。它可以是同步的,也可以返回一个 awaitable——当结果是 awaitable 时,管理器会等待其完成。 从 `gt_i18n` 导入 `TranslationsLoader`。框架包不会重新导出它。 ## 工作原理 [#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 # 异步加载器同样有效 async def load_translations(locale: str) -> dict[str, str]: return await fetch_from_somewhere(locale) ```