# General Translation Python SDKs: StorageAdapter
URL: https://generaltranslation.com/ja/docs/python/reference/classes/storage-adapter.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation Python におけるリクエスト単位のロケール保存用の抽象基底クラス。StorageAdapter の API リファレンス。

現在のロケールをどこに保持するか (たとえば、フレームワークの request context) を制御したい場合は、`StorageAdapter` を継承してください。デフォルトの実装は [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) です。

## 概要 [#overview]

`StorageAdapter` は [抽象基底クラス](https://docs.python.org/3/library/abc.html) (`abc.ABC` を継承) です。実装が必要な 2 つの抽象メソッドを定義しており、直接インスタンス化することはできません。

```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` は抽象メソッドであり、サブクラスで両方を実装する必要があります。
* **ロケールキー。** manager はキー `"locale"` を使ってロケールを読み書きします。アダプターは他のキーを無視しても問題ありません。
* **組み込み。** カスタムアダプターは、[`I18nManager`](/docs/python/reference/classes/i18n-manager) に `store_adapter` として渡します。

## メソッド [#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]

**抽象メソッド。** `key` に `value` を保存します。

## 例 [#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())
```

## Sitemap

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