# python: 本地译文存储 URL: https://generaltranslation.com/zh/docs/python/guides/local-tx.mdx --- title: 本地译文存储 description: 将译文存储在本地,而不是从 CDN 拉取 --- ## 什么是本地译文? 默认情况下,GT 的 Python 库会在 runtime 从 General Translation CDN 拉取译文。使用本地译文时,你可以将翻译文件随应用一同 bundle,因此无需任何外部网络请求。 **默认行为:** GT 默认使用 CDN 存储。只有在你确实需要本地存储提供的特定优势时,才切换到本地存储。 ## 取舍 ### 本地译文的优势 * **响应更快**:无需通过网络往返拉取译文 * **不依赖外部服务**:你的应用无需依赖 CDN 的可用性即可运行 * **支持离线使用**:译文内容是你的 部署 的一部分 ### 本地译文的缺点 * **部署体积增加**:每个受支持的区域设置都会增加翻译文件 * **更新需要重新部署**:更改译文需要重新部署 ## 设置 ### 第 1 步:配置 CLI 安装 GT CLI,并将其配置为本地存储: ```bash pip install gtx-cli gt configure ``` 出现提示时: * **保存到 CDN?** 选择“否” * **译文目录:** 输入 `./translations` ### 第 2 步:生成译文 ```bash gt translate ``` 这会在你的 `translations/` 目录中创建 JSON 文件——每个区域设置对应一个文件。 ### 第 3 步:在应用中加载译文 让应用读取本地翻译文件: ```python import json from pathlib import Path from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) def load_translations(locale: str): path = Path('translations') / f'{locale}.json' if path.exists(): return json.loads(path.read_text()) return {} initialize_gt( app, default_locale='en', locales=['es', 'fr', 'ja'], load_translations=load_translations, ) ``` ```python import json from pathlib import Path from fastapi import FastAPI from gt_fastapi import initialize_gt app = FastAPI() def load_translations(locale: str): path = Path('translations') / f'{locale}.json' if path.exists(): return json.loads(path.read_text()) return {} initialize_gt( app, default_locale='en', locales=['es', 'fr', 'ja'], load_translations=load_translations, ) ``` ## 构建集成 作为部署处理流水线的一部分生成译文: ```yaml title=".github/workflows/deploy.yml" - name: Generate Translations run: gt translate - name: Deploy run: ``` 或者在 `Makefile` 中: ```makefile deploy: gt translate ``` 务必在部署前先生成译文。如果缺少翻译文件,`t()` 会回退为 `default_locale` 中的源字符串。 ## 下一步 * [CLI `translate` 命令](/docs/cli/translate) — 翻译生成参考文档 * [字符串翻译模式](/docs/python/guides/strings) — 如何翻译内容 * [区域设置检测与中间件](/docs/python/guides/middleware) — 区域设置上下文如何工作