このガイドでは、OneSignalでユーザーの言語を設定し、プッシュ通知、メール、アプリ内メッセージで優先言語でメッセージを送信する方法について説明します。
ユーザーの言語を設定する
OneSignalは、WebまたはモバイルSDKを使用してユーザーが最初に作成されたときに、デバイスの言語からlanguageプロパティを自動的に設定します。
ISO 639-1 2文字の言語コードを使用して、ユーザーの言語を手動で設定または更新することもできます:
- SDKの
setLanguageメソッド。
- ユーザーを作成またはユーザーを更新 APIの
languageフィールド。
- CSVインポーターの
language列。
異なる言語でメッセージを送信する
以下のタブを使用して、メッセージングチャネル別のローカライゼーションオプションを表示します。
ダッシュボードからの送信
Messages > Push > New Messageまたはテンプレートから、Add Languagesをクリックします。以下から選択します:オプション1:チェックボックス
サポートする言語を選択します。選択されていない言語はAny/Englishにフォールバックされます。オプション2:言語コンテンツのインポート
提供されたテンプレートを使用して、各言語でメッセージをフォーマットします。コンテンツを「Add Languages」フィールドにコピーして貼り付けます。コンテンツをプレビューして再確認し、コンテンツを挿入すると、指定されたコンテンツが入力された新しいタブがエディターに表示されます。オプション3:動的コンテンツ
動的コンテンツを使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。トラブルシューティング
- 英語が必要:デフォルトとして
enの行を含めます。
- 正しいヘッダーを使用:
language_code、title、subtitle、message
- カンマ区切りの値:適切なCSVフォーマットを確保します。
- サポートされていない言語:UIまたはテンプレートにリストされていない場合、サポートされていません。次善のオプションを使用し、
support@onesignal.comに連絡してください。
ダッシュボードエディターは標準のHTMLフィールドを使用します。%などの特殊文字は、RTL言語で表示の問題を引き起こす可能性があります。このような文字の後にRLMマークを追加して、フォーマットの問題を修正してください。
APIからの送信
contentsおよびheadingsフィールドは複数の言語をサポートします: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
ダッシュボードからの送信
Messages > Email > New Messageまたはテンプレートから、以下から選択します:オプション1:セグメント
- 各言語のセグメントを作成します。
- 言語ごとにテンプレートを作成します。
- それぞれを対応するセグメントに送信します。
オプション2:Liquid構文
Liquid構文とプロパティまたはタグの置換を使用して、メッセージに条件文を作成し、ユーザーの言語に基づいて適切なコンテンツをレンダリングします。{% assign language = subscription.language %}
{% if language == 'fr' %}
Bonjour {{ name }}!
{% elsif language == 'es' %}
Hola {{ name }}!
{% else %}
Hi {{ name }}!
{% endif %}
オプション3:動的コンテンツ
動的コンテンツを使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。
APIからの送信
メッセージ作成APIを使用して、次のことができます:
- ダッシュボードと同様に、言語セグメントまたはフィルターをターゲットにします。
custom_data、プロパティまたはタグの置換を使用して、Liquid構文でメッセージテンプレートを作成します。これらのオプションの詳細については、メッセージのパーソナライゼーションを参照してください。
custom_data一括パーソナライゼーションの例:{% assign eid = message.custom_data.users[subscription.external_id] %}
Hi {{ eid.first_name }}, you have {{ eid.points }} points. Your level is {{ eid.level }}.
{
"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" }
}
}
}
顧客が見るもの:
- “Hi John, you have 150 points. Your level is Gold.”
- “Hi Sarah, you have 200 points. Your level is Platinum.”
ダッシュボード - セグメント
サポートする必要がある各言語に言語固有のアプリ内メッセージを送信するには:
- 各言語のセグメントを作成します。
- 言語ごとにアプリ内メッセージを作成します。
- それぞれを対応するセグメントに送信します。
タグの置換
Liquid構文とタグの置換を使用して、メッセージに条件文を作成し、タグに基づいて適切なコンテンツをレンダリングします。アプリ内メッセージでは、タグの置換のみがサポートされています。
language : german
first_name : Jon
{% 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 %}
ダッシュボードからの送信
Messages > SMS > New Messageまたはテンプレートから、以下から選択します:オプション1:セグメント
- 各言語のセグメントを作成します。
- 言語ごとにテンプレートを作成します。
- それぞれを対応するセグメントに送信します。
オプション2:動的コンテンツ
動的コンテンツを使用します。これには、サポートする言語を含むCSVファイルを作成してアップロードすることが含まれます。
APIからの送信
contentsおよびheadingsフィールドは複数の言語をサポートします: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
サポートされている言語
言語コードは、ISO 639-1コード2文字形式のlanguageユーザープロパティにマッピングされます。次の言語コードをサポートしています。
言語コードがポップアップおよびCSVテンプレートに含まれていない場合、この言語はサポートされていません。次善の言語を使用し、support@onesignal.comに製品リクエストを送信することをお勧めします
| 言語 | 言語コード |
| 英語 | 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 |