# General Translation Python SDKs: StorageAdapter URL: https://generaltranslation.com/ja/docs/python/reference/classes/storage-adapter.mdx --- title: StorageAdapter description: General Translation Python におけるリクエスト単位のロケール保存用の抽象基底クラス。StorageAdapter の API リファレンス。 --- リクエスト単位のロケールを保存および取得するアダプター用の抽象基底クラスです。現在のロケールをどこに保持するか (たとえば、フレームワークの request context) を制御したい場合は、このクラスを継承してください。デフォルトの実装は [`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()) ```