多言語メッセージ
ワークスペースにロケールを追加すると、1つのプッシュ、メール、バナー、アプリ内メッセージ、またはContent Blockで、異なる言語のユーザーをターゲットにできます。
前提条件
多言語メッセージの設定と使用方法の概要については、以下の動画をご覧ください。
| 機能 | 必須のユーザー権限 |
|---|---|
| 多言語ロケール | 多言語ロケールを作成および管理するには、以下の権限が必要です。 詳細な権限:
|
| 機能 | 必要なユーザー権限 |
|---|---|
| メッセージ タイプ | CampaignsおよびCanvasesにロケールと翻訳を追加するには、以下の権限が必要です。 詳細な権限:
|
| 機能 | 必要なユーザー権限 |
|---|---|
| テンプレート | ロケールと翻訳を追加するテンプレートタイプに応じて、以下の権限が必要です。 詳細な権限:
|
ロケールの使用
ステップ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 Blockがメッセージに追加されると自動的に適用されます。
言語を管理モーダルでは、翻訳が保存されたContent Blocksが、サポートするロケールとともにリストに表示されます。これにより、新しい翻訳を追加する前に、メッセージのどの部分がすでにローカライズされているかを確認できます。

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

テンプレートをダウンロードを選択して、選択した翻訳IDとロケールのマトリクスを含むCSVをダウンロードします。各ロケールの翻訳を入力してください。完成したファイルをアップロードすると、翻訳がメッセージに適用されます。
英語以外の文字の表示問題を防ぐため、翻訳CSVにExcelを使用しないでください。

パートナー翻訳APIを使用して、CampaignsおよびCanvasesの翻訳を管理・更新します。これは、外部システムでローカライゼーションを行っている場合や、翻訳パートナーと直接接続したい場合に便利です。
Canvasesで翻訳エンドポイントを使用するには、以下のパラメーターを含めてください。
workflow_idstep_idmessage_variation_id
Canvas起動後に作成されたキャンバスステップで翻訳APIを使用する場合、APIに渡すmessage_variation_idは空またはブランクになります。
ステップ5: 翻訳をプレビューする
メッセージをプレビューするには、ユーザーとしてプレビュードロップダウンから多言語ユーザーオプションを選択します。これにより、異なるロケール定義を切り替えて、メッセージのすべての翻訳をプレビューできます。

翻訳の管理
Canvasステップまたはキャンペーンの複製と翻訳
Canvasステップ、Campaign、またはバリアントを複製すると、翻訳も含まれます。これはワークスペース間のコピーでも同様で、コピー先のワークスペースにロケールが定義されている場合に適用されます。CanvasまたはCampaignに変更を加える際は、翻訳を確認し、必要に応じて更新してください。
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> |
言語設定とアクセシビリティ
HTMLベースのチャネル(メール、アプリ内メッセージ、バナー、ランディングページ、Content Cards)では、Brazeはレンダリングされたメッセージにアクセシビリティ言語(lang)属性を追加します。この属性は、スクリーンリーダーなどの支援技術がテキストを正しく解釈し、発音するのに役立ちます。
この属性がない場合、スクリーンリーダーはコンテンツがユーザーがセットアップ時にデバイスに設定したデフォルト言語であると想定します。メッセージが異なる言語の場合、スクリーンリーダーがすべてを正しく発音できない可能性があります。
アクセシビリティ言語の設定
アクセシビリティ言語は2つのレベルで設定できます。
メッセージレベル
メッセージ設定で、アクセシビリティセクションに移動し、ドロップダウンから言語を選択するか、Liquidを使用してアクセシビリティ言語を動的に設定します。これはメッセージ内のすべてのコンテンツに適用されます。
ロケールレベル
多言語メッセージの場合、ローカライゼーション設定で各ロケールにアクセシビリティ言語を設定します。新しいメッセージが作成されると、アクセシビリティセクションでデフォルトで {{accessibility_language}} が選択されます。これにより、アクセシビリティ言語がロケール設定にマッピングされます。
標準
アクセシビリティ言語はHTML lang属性にマッピングされます。これはWCAG 2.1 レベルA要件(達成基準3.1.1)です。多言語コンテンツの場合、HTML内でlang属性を直接使用して、個々のコンテンツブロックに言語を設定することもできます。
よくある質問
翻訳タグの制限は何ですか?
翻訳タグを使用する場合、以下の制限が適用されます。
- 各メッセージには最大200個の翻訳タグを使用できます。
- 各デフォルトテキスト(翻訳タグ間のコンテンツ)は最大2,000文字です。
- ロケールごとの翻訳は最大409,600バイト(約409.6 KB)です。
ロケールの1つで翻訳済みコピーを変更できますか?
はい。まずCSVで編集を行い、ファイルを再度アップロードして翻訳済みコピーを変更します。
Brazeは翻訳を提供しますか?
いいえ。CSVのアップロードまたは翻訳APIを使用して、ご自身で翻訳を提供する必要があります。
翻訳タグをネストできますか?
いいえ。
HTMLメッセージ全体を翻訳タグで囲むことはできますか?
いいえ。ベストプラクティスとして、人間が読むテキストまたはローカライズが必要なコンテンツのみを囲むべきです。これにより、フォーマット、リンク、その他の非テキスト要素の破損を防ぐことができます。
また、正確な翻訳を作成し、パフォーマンスやサイズの制限を回避するために、意味的に関連する小さなテキスト単位で囲むことを検討してください。
ロケールの1つで翻訳済みコピーを変更できますか?
はい。CSVを使用している場合は、まずファイルで編集を行い、再度アップロードして翻訳済みコピーを変更します。翻訳APIを使用している場合は、更新エンドポイントを使用して変更を行います。
Brazeはどのような検証や追加チェックを行いますか?
| シナリオ | Brazeでの検証 |
|---|---|
| メッセージに、異なるテキストにマッピングされた2つ以上の一致する翻訳IDが含まれている。 | この翻訳ファイルはダウンロードされません。 |
| 翻訳ファイルに1つ以上の翻訳タグIDが欠けている。 | この翻訳ファイルはアップロードされません。 |
| 翻訳ファイルにメッセージに存在しないロケールが含まれている。 | この翻訳ファイルはアップロードされません。 |
| 翻訳テンプレートをダウンロードする前に、メッセージに翻訳タグを追加する必要がある。 | この翻訳ファイルはダウンロードされません。 |
| アップロードしたファイルに含まれる翻訳タグがメッセージに存在しない。 | 余分な翻訳はメッセージに保存されません。 |
メッセージに1つ以上の壊れたLiquidタグが含まれている。開始タグには{% translation your_id_here %}を使用し、翻訳タグは{% endtranslation %}で閉じてください。 |
この翻訳ファイルはダウンロードされません。 |
| 翻訳ファイルにメッセージ内のテキストと一致しないデフォルトテキストが含まれている。 | 翻訳は追加されますが、元のメッセージテキストは更新されません。 |
| メッセージ内の1つ以上のロケールが設定で削除され、存在しなくなった。 | すでに追加された翻訳はメッセージ内に引き続き存在します。メッセージから削除すると、翻訳は失われます。 |
| 翻訳タグに完全なURLまたはLiquid生成URLが含まれている。 | リンク切れやリンクトラッキングの問題が発生する可能性があるため、URLを含む翻訳タグが識別されます。 |
| 翻訳タグにクエリパラメーターが含まれている。 | リンク切れやリンクトラッキングの問題が発生する可能性があるため、クエリパラメーターを含む翻訳タグが識別されます。 |
| 翻訳タグにHTML属性または構造が含まれている。 | スタイルやフォーマットの問題が発生する可能性があるため、HTML属性または構造を含む翻訳タグが識別されます。 |