# General Translation Python SDKs: TranslationsLoader
URL: https://generaltranslation.com/zh/docs/python/reference/classes/translations-loader.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation Python 中自定义翻译加载器的可调用类型。TranslationsLoader 的 API 参考。

`TranslationsLoader`` 是你传给 `load&#95;translations&#96;、用于接入自有翻译的回调函数类型。它会将区域设置代码映射到 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)
```

## Sitemap

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