# General Translation Python SDKs: StorageAdapter URL: https://generaltranslation.com/zh/docs/python/reference/classes/storage-adapter.mdx --- title: StorageAdapter description: General Translation Python 中用于按请求存储区域设置的抽象基类。StorageAdapter 的 API 参考。 --- 用于存储和读取按请求区域设置的适配器抽象基类。通过继承此类,你可以控制当前区域设置存储在哪里 (例如,框架的请求上下文中) 。默认实现是 [`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: ... ``` 从 `gt_i18n` 导入 `StorageAdapter`。框架包不会重新导出它。 ## 工作原理 [#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()) ```