> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 多言語メッセージング

> OneSignalのダッシュボードまたはAPIを使用して、プッシュ、メール、アプリ内メッセージングで複数の言語でパーソナライズされたメッセージを送信します。

このガイドでは、OneSignalでユーザーの言語を設定し、プッシュ通知、メール、アプリ内メッセージで優先言語でメッセージを送信する方法について説明します。

## ユーザーの言語を設定する

OneSignalは、WebまたはモバイルSDKを使用してユーザーが最初に作成されたときに、デバイスの言語から`language`プロパティを自動的に設定します。

[ISO 639-1](#supported-languages) 2文字の言語コードを使用して、ユーザーの言語を手動で設定または更新することもできます：

1. SDKの`setLanguage`メソッド。
2. [ユーザーを作成](/reference/create-user)または[ユーザーを更新](/reference/update-user) APIの`language`フィールド。
3. [CSVインポーター](./import)の`language`列。

<Note>
  有効な言語コードのリストについては、[サポートされている言語](#supported-languages)を参照してください。
</Note>

***

## 異なる言語でメッセージを送信する

以下のタブを使用して、メッセージングチャネル別のローカライゼーションオプションを表示します。

<Tabs>
  <Tab title="プッシュ通知">
    ### ダッシュボードからの送信

    **Messages > Push > New Message**または[テンプレート](./templates)から、**Add Languages**をクリックします。以下から選択します：

    #### オプション1：チェックボックス

    サポートする言語を選択します。選択されていない言語はAny/Englishにフォールバックされます。

    <Frame caption="チェックボックスを使用して言語を選択します。">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/6291cdff9431f4ac7c4cbb7cbeff8d39f06c9cd5332f0b9b9309f8ff1071632a-Screenshot_2025-01-30_at_10.30.54_AM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=0fb96aa3471800377551d68effdfa1ae" width="1390" height="924" data-path="images/docs/6291cdff9431f4ac7c4cbb7cbeff8d39f06c9cd5332f0b9b9309f8ff1071632a-Screenshot_2025-01-30_at_10.30.54_AM.png" />
    </Frame>

    #### オプション2：言語コンテンツのインポート

    提供されたテンプレートを使用して、各言語でメッセージをフォーマットします。

    <Frame caption="スプレッドシートからデータをコピーして貼り付けるモーダル。">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5aa9be9a86f23eaef5810d84496e974d3ec911f884e3bd2e4765cb97faa94e76-Screenshot_2025-01-30_at_10.46.31_AM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=06d2858a2e8eef6019f4b87ec9b862f6" width="1780" height="1018" data-path="images/docs/5aa9be9a86f23eaef5810d84496e974d3ec911f884e3bd2e4765cb97faa94e76-Screenshot_2025-01-30_at_10.46.31_AM.png" />
    </Frame>

    コンテンツを「Add Languages」フィールドにコピーして貼り付けます。

    <Frame caption="サンプルデータを含むモーダル。">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5661f24c79e47b246eaffc22955de3b5dfbc8ab746958b0c0db82a997a2ad5d3-Screenshot_2025-01-30_at_10.53.34_AM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=b1fd2210bc3fb85c554b0f71ffbd2f94" width="1780" height="1018" data-path="images/docs/5661f24c79e47b246eaffc22955de3b5dfbc8ab746958b0c0db82a997a2ad5d3-Screenshot_2025-01-30_at_10.53.34_AM.png" />
    </Frame>

    コンテンツをプレビューして再確認し、コンテンツを挿入すると、指定されたコンテンツが入力された新しいタブがエディターに表示されます。

    <Frame caption="コンテンツのプレビュー。">
      <img src="https://mintcdn.com/onesignal/jBdBk5XvQR5eKOks/images/docs/7acf7e51c3b6dd2ace8c4da6acd04942ca1a10086949e2f7ffd1c88328f1f78e-Screenshot_2025-01-30_at_10.54.27_AM.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=323fa5b31d9905bde453aa0ad893d919" width="1584" height="664" data-path="images/docs/7acf7e51c3b6dd2ace8c4da6acd04942ca1a10086949e2f7ffd1c88328f1f78e-Screenshot_2025-01-30_at_10.54.27_AM.png" />
    </Frame>

    #### オプション3：動的コンテンツ

    [動的コンテンツ](./dynamic-content)を使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。

    #### トラブルシューティング

    * **英語が必要**：デフォルトとして`en`の行を含めます。
    * **正しいヘッダーを使用**：`language_code`、`title`、`subtitle`、`message`
    * **カンマ区切りの値**：適切なCSVフォーマットを確保します。
    * **サポートされていない言語**：UIまたはテンプレートにリストされていない場合、サポートされていません。次善のオプションを使用し、`support@onesignal.com`に連絡してください。

    <Info>
      ダッシュボードエディターは標準のHTMLフィールドを使用します。`%`などの特殊文字は、RTL言語で表示の問題を引き起こす可能性があります。このような文字の後に[RLMマーク](https://en.wikipedia.org/wiki/Right-to-left_mark)を追加して、フォーマットの問題を修正してください。
    </Info>

    ***

    ### APIからの送信

    `contents`および`headings`フィールドは複数の言語をサポートします：

    ```json theme={null}
      {
        "contents": {
          "en": "English content",
          "fr": "French content"
        },
        "headings": {
          "en": "English heading",
          "fr": "French heading"
        }
      }
    ```
  </Tab>

  <Tab title="メール">
    ### ダッシュボードからの送信

    **Messages > Email > New Message**または[テンプレート](./templates)から、以下から選択します：

    #### オプション1：セグメント

    1. 各言語のセグメントを作成します。
    2. 言語ごとにテンプレートを作成します。
    3. それぞれを対応するセグメントに送信します。

    #### オプション2：Liquid構文

    [Liquid構文](./using-liquid-syntax)と[プロパティまたはタグの置換](./message-personalization)を使用して、メッセージに条件文を作成し、ユーザーの言語に基づいて適切なコンテンツをレンダリングします。

    ```text Liquid theme={null}
    {% assign language = subscription.language %}
    {% if language == 'fr' %}
      Bonjour {{ name }}!
    {% elsif language == 'es' %}
      Hola {{ name }}!
    {% else %}
      Hi {{ name }}!
    {% endif %}
    ```

    <Frame caption="Liquid構文を使用した多言語メールテンプレートの例。">
      <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/220a329-Multi-Language_Graphic_4.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=3e02125c87dbdf72ca3708c289831394" width="1869" height="1853" data-path="images/docs/220a329-Multi-Language_Graphic_4.png" />
    </Frame>

    #### オプション3：動的コンテンツ

    [動的コンテンツ](./dynamic-content)を使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。

    ***

    ### APIからの送信

    [メッセージ作成API](/reference/create-message)を使用して、次のことができます：

    * ダッシュボードと同様に、言語セグメントまたはフィルターをターゲットにします。
    * `custom_data`、プロパティまたはタグの置換を使用して、Liquid構文でメッセージテンプレートを作成します。これらのオプションの詳細については、[メッセージのパーソナライゼーション](./message-personalization)を参照してください。

    `custom_data`一括パーソナライゼーションの例：

    ```liquid Template theme={null}
    {% assign eid = message.custom_data.users[subscription.external_id] %}
    Hi {{ eid.first_name }}, you have {{ eid.points }} points. Your level is {{ eid.level }}.
    ```

    ```json API Request theme={null}
    {
      "app_id": "YOUR_APP_ID",
      "template_id": "YOUR_TEMPLATE_ID",
      "include_aliases": {
        "external_id": ["user123", "user456"]
      },
      "custom_data": {
        "users": {
          "user123": { "first_name": "John", "points": "150", "level": "Gold" },
          "user456": { "first_name": "Sarah", "points": "200", "level": "Platinum" }
        }
      }
    }
    ```

    <Check>
      顧客が見るもの：

      * "Hi John, you have 150 points. Your level is Gold."
      * "Hi Sarah, you have 200 points. Your level is Platinum."
    </Check>
  </Tab>

  <Tab title="アプリ内メッセージ">
    ### ダッシュボード - セグメント

    サポートする必要がある各言語に言語固有のアプリ内メッセージを送信するには：

    1. 各言語のセグメントを作成します。
    2. 言語ごとにアプリ内メッセージを作成します。
    3. それぞれを対応するセグメントに送信します。

    ### タグの置換

    [Liquid構文](./using-liquid-syntax)と[タグの置換](./message-personalization)を使用して、メッセージに条件文を作成し、タグに基づいて適切なコンテンツをレンダリングします。

    <Warning>
      アプリ内メッセージでは、タグの置換のみがサポートされています。
    </Warning>

    ```Text Tags theme={null}
    language : german
    first_name : Jon
    ```

    ```Text Template theme={null}
    {% assign lang = language%}
      {% if lang == "english" %}
        Good day {{first_name}}!
      {%- elsif lang == 'german' -%}
        Guten Tag {{first_name}}!
      {%- elsif lang == 'spanish' -%}
        Buenos Dias {{first_name}}!
      {%- elsif lang == 'french' -%}
        Bonjour {{first_name}}!
      {% else %}
        Hello {{first_name}}!
    {% endif %}
    ```

    ```Text Result theme={null}
    Guten Tag Jon!
    ```
  </Tab>

  <Tab title="SMS">
    ### ダッシュボードからの送信

    **Messages > SMS > New Message**または[テンプレート](./templates)から、以下から選択します：

    #### オプション1：セグメント

    1. 各言語のセグメントを作成します。
    2. 言語ごとにテンプレートを作成します。
    3. それぞれを対応するセグメントに送信します。

    #### オプション2：動的コンテンツ

    [動的コンテンツ](./dynamic-content)を使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。

    ***

    ### APIからの送信

    `contents`および`headings`フィールドは複数の言語をサポートします：

    ```json theme={null}
      {
        "contents": {
          "en": "English content",
          "fr": "French content"
        },
        "headings": {
          "en": "English heading",
          "fr": "French heading"
        }
      }
    ```
  </Tab>
</Tabs>

***

## サポートされている言語

言語コードは、ISO 639-1コード2文字形式の`language`ユーザープロパティにマッピングされます。次の言語コードをサポートしています。

<Note>
  言語コードがポップアップおよびCSVテンプレートに含まれていない場合、この言語はサポートされていません。次善の言語を使用し、`support@onesignal.com`に製品リクエストを送信することをお勧めします
</Note>

| 言語        | 言語コード   |
| --------- | ------- |
| 英語        | en      |
| アラビア語     | ar      |
| アゼルバイジャン語 | az      |
| ボスニア語     | bs      |
| カタルーニャ語   | ca      |
| 中国語（簡体字）  | zh-Hans |
| 中国語（繁体字）  | zh-Hant |
| クロアチア語    | hr      |
| チェコ語      | cs      |
| デンマーク語    | da      |
| オランダ語     | nl      |
| エストニア語    | et      |
| フィンランド語   | fi      |
| フランス語     | fr      |
| グルジア語     | ka      |
| ブルガリア語    | bg      |
| ドイツ語      | de      |
| ギリシャ語     | el      |
| ヒンディー語    | hi      |
| ヘブライ語     | he      |
| ハンガリー語    | hu      |
| インドネシア語   | id      |
| イタリア語     | it      |
| 日本語       | ja      |
| 韓国語       | ko      |
| ラトビア語     | lv      |
| リトアニア語    | lt      |
| マレー語      | ms      |
| ノルウェー語    | nb      |
| ペルシャ語     | fa      |
| ポーランド語    | pl      |
| ポルトガル語    | pt      |
| パンジャブ語    | pa      |
| ルーマニア語    | ro      |
| ロシア語      | ru      |
| セルビア語     | sr      |
| スロバキア語    | sk      |
| スペイン語     | es      |
| スウェーデン語   | sv      |
| タイ語       | th      |
| トルコ語      | tr      |
| ウクライナ語    | uk      |
| ベトナム語     | vi      |

***
