多言語メッセージ
ワークスペースにロケールを追加すると、1つのプッシュ、メール、バナー、アプリ内メッセージ、またはContent Blockで、異なる言語のユーザーをターゲットにできます。
前提条件
| 機能 | 必須のユーザー権限 |
|---|---|
| 多言語ロケール | 多言語ロケールを作成および管理するには、以下の権限が必要です。
|
| 機能 | 必要なユーザー権限 |
|---|---|
| メッセージタイプ | キャンペーンやキャンバスにロケールと翻訳を追加するには、以下の権限が必要です。
|
| 機能 | 必要なユーザー権限 |
|---|---|
| テンプレート | ロケールと翻訳を追加したいテンプレートタイプに応じて、以下の権限が必要です。
|
ロケールの使用
ステップ1:ロケールを設定する
メッセージに翻訳を追加する前に、まずサポートしたいロケールを作成する必要があります。ロケールは、メッセージングで利用可能な言語(およびオプションで地域)のバリアントを定義します。
ステップ2:翻訳するコンテンツをマークする
翻訳したいテキストをLiquid翻訳タグ{% translation your_id_here %}と{% endtranslation %}で囲み、タグIDを割り当てます。翻訳タグIDはメッセージ内で一意である必要があります。テキストを明確に説明するセマンティックなID名の使用を検討してください(例:{% translation header %})。
翻訳用にマークされたメッセージの例:{% translation greeting %}Hello!{% endtranslation %}

翻訳したいテキストをハイライトし、キーボードショートカットCmd + Alt + L(macOS)またはCtrl + Alt + L(Windows)を使用して翻訳タグで囲みます。
このショートカットは、メールおよびContent Blocksのドラッグ&ドロップエディターを除く、多言語メッセージングをサポートするすべてのチャネルで機能します。それらのエディターでは、パーソナライゼーションを追加ボタンを使用して翻訳タグを追加してください。
URLのローカライズ
コンテンツを翻訳する際、URLはリンク切れを防ぐために特別な処理が必要です。
標準(静的)URL
静的URLはエディターで手動で入力します(例:https://example.com)。以下も推奨します:
| 推奨事項 | 理由 |
|---|---|
プロトコル(https://)は翻訳タグの外に置きます。ドメインとパスのみを囲みます(例:example.com/en)。 |
翻訳者が特殊文字を誤って変更または削除し、リンク切れの原因となる可能性があります。 |
クエリパラメーター(例:?utm_source=promo)を翻訳タグ内に含めないでください。 |
翻訳者が特殊文字を誤って変更または削除し、リンク切れの原因となる可能性があります。 |
両方の推奨事項に従った標準URLの例:
1
<a href="https://{% translation id_1 %}example.shop.com{% endtranslation %}">Visit our store</a>
Liquidで生成されるURL
URLがLiquidで生成される場合(例:{% landing_page_url %})、以下を推奨します:
| 推奨事項 | 理由 |
|---|---|
| Liquidで生成されるURLは、ローカライズが必要な場合にのみ翻訳タグで囲みます。 | Liquid構文は正しくレンダリングするために慎重に保持する必要があります。 |
クエリパラメーター(例:?utm_source=promo)を翻訳タグ内に含めないでください。 |
翻訳者が特殊文字を誤って変更または削除し、リンク切れの原因となる可能性があります。 |
両方の推奨事項に従ったLiquid生成URLの例:
1
<a href="{% translation id_1 %}{% landing_page_url xyz %}{% endtranslation %}">View details</a>

HTML属性と構造
翻訳タグで囲むのは、人間が読むテキストのみにしてください。HTML属性(class、style、idなど)やその他の構造コードを囲むことは避けてください。HTML属性はレイアウト、スタイリング、機能を制御します。翻訳タグで囲むと、メッセージのローカライズ版でフォーマットやスタイルが崩れる可能性があります。
正しく囲まれたテキストの例:
1
2
3
<p class="headline" style="color: red;">
{% translation id_1 %}Welcome to our sale{% endtranslation %}
</p>
誤って囲まれたテキスト
このテキストは誤って囲まれています:
1
2
3
4
5
{% translation id_1 %}
<p class="headline" style="color: red;">
Welcome to our sale
</p>
{% endtranslation %}
ステップ3:メッセージにロケールを追加する
メッセージに翻訳タグを追加した後、エディターで言語を管理を選択し(メールおよびContent Blocksのドラッグ&ドロップエディターでは言語)、翻訳を追加したいロケールを少なくとも1つ選択します。

翻訳を含むContent Blocks
メッセージに既に翻訳が保存されているContent Blocksが含まれている場合、それらの翻訳を再アップロードする必要はありません。保存された翻訳は、Content Blocksがメッセージに追加されると自動的に適用されます。
言語を管理モーダルでは、保存された翻訳を持つContent Blocksが、サポートするロケールとともにリストに表示されます。これにより、新しい翻訳を追加する前に、メッセージのどの部分が既にローカライズされているかを確認できます。


各Content Blockに、メッセージに追加したすべてのロケールの翻訳が含まれていることを確認してください。Content Blockに追加したロケールの翻訳が欠けている場合、そのロケールのユーザーには元の言語で表示されます。
ステップ4:翻訳を追加する
ロケールを選択した後、以下のいずれかの方法でメッセージに翻訳を追加します:

テンプレートをダウンロードを選択して、選択した翻訳IDとロケールのマトリクスを含むCSVをダウンロードします。各ロケールの翻訳を入力します。完成したファイルをアップロードすると、翻訳がメッセージに適用されます。

英語以外の文字の表示問題を防ぐため、翻訳CSVにExcelを使用しないでください。

パートナー翻訳APIを使用して、キャンペーンやキャンバスの翻訳を管理・更新します。これは、ローカライゼーションに外部システムを使用している場合や、翻訳パートナーと直接接続したい場合に便利です。
キャンバスで翻訳エンドポイントを使用するには、以下のパラメーターを含めてください:
workflow_idstep_idmessage_variation_id

キャンバスの起動後に作成されたキャンバスステップで翻訳APIを使用する場合、APIに渡すmessage_variation_idは空またはブランクになります。
ステップ5:翻訳をプレビューする
メッセージをプレビューするには、ユーザーとしてプレビュードロップダウンから多言語ユーザーオプションを選択します。これにより、異なるロケール定義を切り替えて、メッセージのすべての翻訳をプレビューできます。

翻訳の管理
キャンバスステップやキャンペーンの複製と翻訳
キャンバスステップ、キャンペーン、またはバリアントを複製すると、翻訳も含まれます。ワークスペース間でコピーする場合も同様ですが、コピー先のワークスペースでロケールが定義されている必要があります。キャンバスやキャンペーンに変更を加える際は、翻訳を確認し、必要に応じて更新してください。
Content Blocksに翻訳を保存する
Content Blocksは、メッセージと同じ方法で多言語をサポートしています。Content Blocksを作成または編集する際に、翻訳用のコンテンツにタグを付け、ロケールを追加し、CSVまたは翻訳APIを使用して翻訳をアップロードできます。
保存された翻訳はContent Blockに関連付けられたままになります。ブロックがメッセージに追加されると、その翻訳も自動的に含まれます。
右から左に書く言語のメッセージ
右から左に書く言語(アラビア語など)の翻訳ファイルを入力する際は、適切にフォーマットされるように翻訳をspanで囲んでください:
1
{% translation your_id_here %}<span dir='rtl'>default text</span>{% endtranslation %}
メールのリンクトラッキング
メールキャンペーンでは、Brazeは各URLにトラッキング情報(クエリパラメーター)を追加してリンクを追跡します。この動作はリンクエイリアスとリンクテンプレートの両方をサポートしています。
URLが翻訳タグで囲まれている場合、Brazeはトラッキング情報を追加する場所を判断できないことがあります。これが正しく機能するようにするには、トラッキングを追加する場所を示す特殊文字をURLの末尾に含める必要があります。
URLでは、この動作を制御するために2つの特殊文字を使用します:
?はまだトラッキングが含まれていないURLにトラッキングを追加します。&はURLにすでに?が含まれている場合に追加のトラッキングを付加します。URLには?を1つだけ含めることができます。
| URL | ?を含む |
説明 | 例 |
|---|---|---|---|
| 標準URL | いいえ | URLにまだ?が含まれていない場合、閉じ翻訳タグの後に?を追加します。 |
<a href="https://{% translation id_1 %}example.com{% endtranslation %}?">Shop Now</a> |
| 標準URL | はい | URLにすでに?が含まれている場合、URLの末尾(閉じ翻訳タグの後)に&を使用します。 |
<a href="https://{% translation id_1 %}example.com{% endtranslation %}?ref=4&">Shop Now</a> |
| Liquid生成 | いいえ | 生成されたURLにまだ?が含まれていない場合、閉じ翻訳タグの後に?を使用します。 |
<a href="{% translation id_1 %}{{ product_url }}{% endtranslation %}?">Shop Now</a> |
| Liquid生成 | はい | 生成されたURLにすでに?が含まれている場合、閉じ翻訳タグの後に&を使用します。 |
<a href="{% translation id_1 %}{% landing_page_url xyz %}{% endtranslation %}&">Shop Now</a> |
言語設定とアクセシビリティ
WCAGのコンテキスト、チャネルとエディターの動作(ランディングページを含む)、およびメッセージレベルのアクセシビリティ設定については、アクセシビリティのアクセシビリティ言語から始めてください。
多言語メッセージを使用する場合は、ローカライズされた送信で適切な言語が宣言されるように、アクセシビリティ言語を各ロケールに合わせてください。
アクセシビリティ言語の設定
アクセシビリティ言語は2つのレベルで設定できます:
メッセージレベル
メッセージレベルでは、メッセージ設定のアクセシビリティセクションでアクセシビリティ言語を設定します。言語の選択、Liquidの使用、チャネルごとの制限については、アクセシビリティ言語を参照してください。
ロケールレベル
多言語メッセージの場合、ローカライゼーション設定で各ロケールのアクセシビリティ言語を設定します。アクセシビリティセクションで{{accessibility_language}}を使用すると、ドキュメントまたはカードの言語がそれらのロケール値にマッピングされます。
このトークンが新しいメッセージでデフォルトで表示されるかどうかは、チャネルとエディターによって異なります。たとえば、アプリ内メッセージやバナーは、ランディングページやドラッグ&ドロップメールとは異なる動作をします。詳細については、アクセシビリティ言語を参照してください。
よくある質問
翻訳タグの制限は何ですか?
翻訳タグを使用する場合、以下の制限が適用されます:
- 各メッセージには最大200個の翻訳タグを含めることができます。
- 各デフォルトテキスト(翻訳タグ間のコンテンツ)は最大2,000文字です。
- ロケールごとの翻訳は最大409,600バイト(約409.6 KB)です。
多言語メールテンプレートのダウンロード時にエラーが発生するのはなぜですか?
多言語メールテンプレートのダウンロード時にエラーが発生する場合、翻訳タグがBrazeのメール本文処理と競合するHTML属性やCSSスタイリングを囲んでいる可能性があります。
Brazeは、HTML本文とプレーンテキスト本文を同じメッセージの別々のコンポーネントとして扱います。翻訳タグにhref参照やCSSスタイリングが含まれていると、タグの競合が発生し、テンプレートが正しくダウンロードできなくなることがあります。
これを解決するには:
href参照やCSSスタイリングを翻訳タグから除外してください。- HTML属性と構造で説明されているように、人間が読むテキストコンテンツのみを翻訳タグで囲んでください。
- URLについては、URLのローカライズのガイダンスに従ってください。
ロケールの翻訳コピーを変更できますか?
はい。まずCSVで編集を行い、翻訳コピーを変更するためにファイルを再度アップロードしてください。
Brazeは翻訳を提供していますか?
いいえ。CSVをアップロードするか、翻訳APIを使用して、独自の翻訳を提供する必要があります。
翻訳タグをネストできますか?
いいえ。
HTMLメッセージ全体を翻訳タグで囲むことはできますか?
いいえ。ベストプラクティスとして、人間が読むテキストやローカライズが必要なコンテンツのみを囲むべきです。これにより、フォーマット、リンク、その他のテキスト以外の要素が壊れるのを防ぐことができます。
さらに、正確な翻訳を作成し、パフォーマンスやサイズの制限を回避するために、意味的に関連する小さなテキストの単位で囲むことを検討してください。
ロケールの翻訳コピーを変更できますか?
はい。CSVを使用している場合は、まずファイルで編集を行い、翻訳コピーを変更するために再度アップロードしてください。翻訳APIを使用している場合は、更新エンドポイントを使用して変更を行ってください。
Brazeはどのようなバリデーションや追加チェックを行いますか?
| シナリオ | Brazeでのバリデーション |
|---|---|
| メッセージに、異なるテキストにマッピングされた2つ以上の一致する翻訳IDが含まれている。 | この翻訳ファイルはダウンロードされません。 |
| 翻訳ファイルに1つ以上の翻訳タグIDが欠けている。 | この翻訳ファイルはアップロードされません。 |
| 翻訳ファイルにメッセージに存在しないロケールが含まれている。 | この翻訳ファイルはアップロードされません。 |
| 翻訳テンプレートをダウンロードする前に、翻訳タグをメッセージに追加する必要がある。 | この翻訳ファイルはダウンロードされません。 |
| アップロードされたファイルに含まれる翻訳タグがメッセージに存在しない。 | 余分な翻訳はメッセージに保存されません。 |
メッセージに1つ以上の壊れたLiquidタグが含まれている。開始タグには{% translation your_id_here %}を使用し、翻訳タグは{% endtranslation %}で閉じてください。 |
この翻訳ファイルはダウンロードされません。 |
| 翻訳ファイルにメッセージ内のテキストと一致しないデフォルトテキストが含まれている。 | 翻訳は追加されますが、元のメッセージテキストは更新されません。 |
| メッセージ内の1つ以上のロケールが設定で削除され、存在しなくなっている。 | すでに追加された翻訳はメッセージ内に引き続き存在します。メッセージから削除された場合、翻訳は失われます。 |
| 翻訳タグに完全なURLまたはLiquidで生成されたURLが含まれている。 | リンク切れやリンクトラッキングの問題が発生した場合に備えて、URLを含む翻訳タグが識別されます。 |
| 翻訳タグにクエリパラメーターが含まれている。 | リンク切れやリンクトラッキングの問題が発生した場合に備えて、クエリパラメーターを含む翻訳タグが識別されます。 |
| 翻訳タグにHTML属性または構造が含まれている。 | スタイルやフォーマットの問題が発生した場合に備えて、HTML属性または構造を含む翻訳タグが識別されます。 |