# 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) — 区域设置上下文如何工作