# General Translation Python SDKs: interpolate_message
URL: https://generaltranslation.com/ja/docs/python/reference/functions/interpolate-message.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation Python で ICU MessageFormat 文字列に変数を埋め込みます。interpolate_message の API リファレンス。

`interpolate_message` は [`t`](/docs/python/reference/functions/t) と [`t_fallback`](/docs/python/reference/functions/t-fallback) の基盤となる低レベルのフォーマッタです。ICU MessageFormat 文字列に変数の値を埋め込み、翻訳の参照は行いません。

## 概要 [#overview]

`interpolate_message` は、メッセージ、`options` dict、必要に応じてロケールを指定して呼び出します。[`t`](/docs/python/reference/functions/t) や [`t_fallback`](/docs/python/reference/functions/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})
```

## Sitemap

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