# General Translation Python SDKs: interpolate_message URL: https://generaltranslation.com/ja/docs/python/reference/functions/interpolate-message.mdx --- title: interpolate_message description: General Translation Python で ICU MessageFormat 文字列に変数を埋め込みます。interpolate_message の API リファレンス。 --- ICU MessageFormat 文字列に変数を埋め込みます。これは [`t`](/docs/python/reference/functions/t) と [`t_fallback`](/docs/python/reference/functions/t-fallback) の基盤となる低レベルのフォーマッタで、翻訳の参照は行いません。 ## 概要 [#overview] `interpolate_message` は、メッセージ、`options` dict、必要に応じてロケールを指定して呼び出します。`t` や `t_fallback` とは異なり、変数 はキーワード引数ではなく、位置引数の `dict` として渡します。 ```python from gt_i18n import interpolate_message interpolate_message("Hello, {name}!", {"name": "Alice"}) ``` シグネチャ: ```python interpolate_message( message: str, options: dict[str, object], locale: str | None = None, ) -> str ``` `gt_i18n` から `interpolate_message` をインポートします。これはフレームワークパッケージでは再エクスポートされません. ## 仕組み [#how-it-works] * **変数のフィルタリング。** `options` から予約済みの GT キーを除外し、ユーザー変数だけを残します。 * **宣言済み変数。** `__fallback` (source) メッセージから宣言済みの `_gt_` 変数を抽出し、存在する場合は、翻訳で並べ替えられるよう、メッセージ内のインデックス付き select を単純な参照に変換します。 * **フォーマット。** 結合した変数を使って ICU MessageFormat でメッセージをフォーマットし、設定されている場合は `_max_chars` の上限を適用します。 * **エラー処理。** フォーマットエラーが発生した場合は `__fallback` の source で再試行し (ループを避けるために `__fallback` はクリアします) 、フォールバック がない場合は生のメッセージを返します。`_max_chars` が設定されている場合は、その上限も適用します。 ## パラメータ [#parameters] | パラメータ | 説明 | 型 | 省略可 | デフォルト | | --------------------- | --------------------------- | ------------------- | --- | ------ | | [`message`](#message) | 補間する ICU MessageFormat 文字列。 | `str` | いいえ | — | | [`options`](#options) | 変数と GT オプションを格納した `dict`。 | `dict[str, object]` | いいえ | — | | [`locale`](#locale) | ICU フォーマットに使用するロケール。 | `str \| None` | はい | `None` | ### `message` [#message] **型** `str` · **必須** 補間対象の ICU MessageFormat 文字列。 ### `options` [#options] **型** `dict[str, object]` · **必須** ユーザー変数に加え、任意の GT キーも指定できます。`_max_chars` は文字数の上限、`__fallback` (原文メッセージ) は、宣言された `_gt_` 変数の解決と、エラー時の再試行に使用されます。 ### `locale` [#locale] **型** `str | None` · **任意** · **デフォルト** `None` ICUでのフォーマット (数値、日付、複数形ルール用) に渡されるロケール。 ## 戻り値 [#returns] **型** `str` 補間後の文字列、またはフォーマットに失敗した場合は生のメッセージまたはフォールバックメッセージ。 ## 例 [#example] ```python from gt_i18n import interpolate_message interpolate_message("{greeting}, {name}!", {"greeting": "Hi", "name": "Bob"}) # → "Hi, Bob!" # インデックスでsourceの宣言済み変数を参照する翻訳済みメッセージ interpolate_message("Bienvenido de nuevo, {_gt_1}!", {"__fallback": source}) ```