# General Translation Python SDKs: ContextVarStorageAdapter
URL: https://generaltranslation.com/ru/docs/python/reference/classes/context-var-storage-adapter.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Адаптер хранения переменных контекста по умолчанию для локали запроса в General Translation Python. Справочник API для ContextVarStorageAdapter.

Адаптер [`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())
```

Импортируйте `ContextVarStorageAdapter` из `gt_i18n`. Он не реэкспортируется пакетами фреймворка.

## Как это работает [#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.
