# General Translation Python SDKs: StorageAdapter URL: https://generaltranslation.com/ru/docs/python/reference/classes/storage-adapter.mdx --- title: StorageAdapter description: Абстрактный базовый класс для хранения локали на уровне запроса в General Translation Python. Справочник по API для StorageAdapter. --- Абстрактный базовый класс для адаптеров, которые хранят и считывают локаль на уровне запроса. Создайте его подкласс, чтобы управлять тем, где хранится текущая локаль (например, в контексте запроса фреймворка). Реализация по умолчанию — [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter). ## Обзор [#overview] `StorageAdapter` — это [абстрактный базовый класс](https://docs.python.org/3/library/abc.html) (наследуется от `abc.ABC`). Он определяет два абстрактных метода, которые необходимо реализовать; напрямую создать его экземпляр нельзя. ```python from gt_i18n import StorageAdapter class MyAdapter(StorageAdapter): def get_item(self, key: str) -> str | None: ... def set_item(self, key: str, value: str) -> None: ... ``` Импортируйте `StorageAdapter` из `gt_i18n`. Пакеты фреймворка его не реэкспортируют. ## Как это работает [#how-it-works] * **Абстрактные методы.** `get_item` и `set_item` — абстрактные методы; подкласс должен реализовать оба. * **Ключ локали.** Менеджер читает и записывает локаль по ключу `"locale"`. Адаптер может игнорировать другие ключи. * **Подключение.** Передайте пользовательский адаптер в параметр `store_adapter` класса [`I18nManager`](/docs/python/reference/classes/i18n-manager). ## Методы [#members] | Метод | Описание | Возвращает | | ------------------------------ | ----------------------------------------- | ------------- | | [`get_item`](#member-get-item) | Возвращает сохранённое значение по ключу. | `str \| None` | | [`set_item`](#member-set-item) | Сохраняет значение по ключу. | `None` | ### `get_item(key)` [#member-get-item] **Абстрактно.** Возвращает сохранённое значение по `key` или `None`, если оно отсутствует. ### `set_item(key, value)` [#member-set-item] **Абстрактно.** Сохраняет `value` по ключу `key`. ## Пример [#example] ```python from gt_i18n import StorageAdapter, I18nManager class DictStorageAdapter(StorageAdapter): def __init__(self) -> None: self._data: dict[str, str] = {} def get_item(self, key: str) -> str | None: return self._data.get(key) def set_item(self, key: str, value: str) -> None: self._data[key] = value manager = I18nManager(default_locale="en", store_adapter=DictStorageAdapter()) ```