# General Translation Python SDKs: ContextVarStorageAdapter
URL: https://generaltranslation.com/zh/docs/python/reference/classes/context-var-storage-adapter.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation Python 中用于请求区域设置的默认上下文变量存储适配器。ContextVarStorageAdapter 的 API 参考。

用于请求区域设置的默认 [`StorageAdapter`](/docs/python/reference/classes/storage-adapter)，底层基于 `contextvars.ContextVar`。它同时适用于线程 (Flask) 和异步 (FastAPI) 上下文，并会自动为每个请求提供各自隔离的区域设置。

## 概览 [#overview]

[`I18nManager`](/docs/python/reference/classes/i18n-manager) 默认使用此适配器，除非你传入自定义的 `store_adapter`。你很少需要自行构造它。

```python
from gt_i18n import ContextVarStorageAdapter, I18nManager

manager = I18nManager(default_locale="en", store_adapter=ContextVarStorageAdapter())
```

从 `gt_i18n` 导入 `ContextVarStorageAdapter`。框架包不会重新导出该项。

## 工作原理 [#how-it-works]

* **上下文变量。** 它将区域设置存储在模块级的 `ContextVar` 中，因此并发请求之间不会互相看到对方的区域设置。
* **仅处理 locale 键。** 它只处理 `"locale"` 这个键；对于任何其他键，`get_item` 都会返回 `None`，而 `set_item` 则会将其忽略。
* **未设置时的默认行为。** 如果当前上下文中尚未设置区域设置，`get_item("locale")` 会返回 `None`，管理器随后会回退到默认区域设置。

## 方法 [#members]

| 成员                             | 说明                | 返回值           |
| ------------------------------ | ----------------- | ------------- |
| [`get_item`](#member-get-item) | 从上下文变量中读取请求的区域设置。 | `str \| None` |
| [`set_item`](#member-set-item) | 将请求的区域设置写入上下文变量。  | `None`        |

### `get_item(key)` [#member-get-item]

当 `key` 为 `"locale"` 时，返回当前上下文中的区域设置；否则返回 `None`。

### `set_item(key, value)` [#member-set-item]

当 `key` 为 `"locale"` 时，会设置当前上下文的区域设置；否则不执行任何操作。

## 示例 [#example]

```python
from gt_i18n import ContextVarStorageAdapter

adapter = ContextVarStorageAdapter()
adapter.set_item("locale", "es")
adapter.get_item("locale")  # "es"（在相同的上下文中）
```

## Sitemap

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