# python: initialize_gt
URL: https://generaltranslation.com/zh/docs/python/api/initialize-gt.mdx
---
title: initialize_gt
description: initialize_gt 设置函数的 API 参考
---
## 概览
`initialize_gt` 函数用于为 Flask 或 FastAPI 应用配置 General Translation。
必须在使用任何翻译函数之前调用一次。
设置会自动从当前工作目录中的 `gt.config.json` 文件加载。
传入的任何关键字参数都会覆盖配置文件中的值。
```python
from flask import Flask
from gt_flask import initialize_gt
app = Flask(__name__)
initialize_gt(app)
```
```python
from fastapi import FastAPI
from gt_fastapi import initialize_gt
app = FastAPI()
initialize_gt(app)
```
## 参考
### 参数
str',
optional: true,
description: '自定义区域设置检测回调。默认会解析 Accept-Language 请求头。',
},
"load_translations?": {
type: '(locale: str) -> dict[str, str]',
optional: true,
description: '用于加载指定区域设置翻译的自定义函数。',
},
"eager_loading?": {
type: 'bool',
optional: true,
default: 'True',
description: '在启动时加载所有翻译。',
},
"config_path?": {
type: 'str',
optional: true,
description: 'gt.config.json 文件的路径。默认为当前工作目录中的 "gt.config.json"。',
},
"load_config?": {
type: '(path: str | None) -> GTConfig',
optional: true,
description: '用于替换默认配置加载器的自定义函数。',
},
}}
/>
### 返回
`I18nManager` — 已配置好的翻译管理器实例。
***
## 配置文件
在项目根目录创建一个 `gt.config.json`。所有字段均为可选:
```json title="gt.config.json"
{
"projectId": "your-project-id",
"defaultLocale": "en",
"locales": ["es", "fr"],
"cacheUrl": "https://custom-cache.example.com"
}
```
`gt.config.json` 中的设置将作为默认值使用。传递给 `initialize_gt` 的任何关键字参数都会优先生效。
***
## 示例
### 最简设置 (使用配置文件)
```python
from flask import Flask
from gt_flask import initialize_gt
app = Flask(__name__)
initialize_gt(app)
```
### 使用自定义翻译加载器
```python
from flask import Flask
from gt_flask import initialize_gt
app = Flask(__name__)
def load_translations(locale: str) -> dict[str, str]:
# 从您自己的数据源加载翻译
...
initialize_gt(app, load_translations=load_translations)
```
### 使用自定义的区域设置检测
```python
from flask import Flask
from gt_flask import initialize_gt
app = Flask(__name__)
def get_locale(request):
return request.args.get("lang", "en")
initialize_gt(app, get_locale=get_locale)
```
***
## 注意事项
* 在使用 `t` 或其他任何翻译函数之前,必须**先调用一次** `initialize_gt`。
* 在 Flask 中,它会注册一个用于检测区域设置的 `before_request` 钩子。
* 在 FastAPI 中,它会注册用于检测区域设置的中间件,并包装应用生命周期以进行预加载。