お客様の言語でメールを送信してください
ミュンヘンのお客様には、英語で注文確認メールが届くべきではありませんし、それを防ぐために3つのレイアウトや3つのワークフローが必要になるべきではありません。1つのメールレイアウトで、販売しているすべての言語に対応できます。「Shopify Flow」ステップでお客様の言語が指定されると、アプリはそれに応じたバージョンを送信します。それ以外のお客様には、それぞれの主要言語でのレイアウトが送信されます。
このガイドでは、単一言語のレイアウトから、お客様の言語に合わせたメールの作成に至るまでの手順を解説し、未知の言語、地域ごとのバリエーション、事後の編集、テスト、トラブルシューティングなど、あらゆる特殊なケースにおける対応についても網羅しています。
仕組みについて
- レイアウトには、1つのメイン言語があります。それは、そのレイアウト自体、つまり現在お持ちのバージョンです。
- そこに翻訳を追加します。ドイツ語、フランス語など、レイアウトごとに最大30件まで追加可能です。それぞれに独自の件名、プレビューテキスト、およびコンテンツが設定されています。
- Shopify Flow では、**「トランザクションメールを送信」**アクションに「**言語」**フィールドがあります。これをお客様の言語(例:
{{order.customerLocale}})に設定してください。 - メールが送信されると、アプリは該当する翻訳を選択します。該当する翻訳がない場合は、メインの言語で送信されます。言語を理由にメールがブロックされることは決してありません。
1つのレイアウト、1つのワークフロー、あらゆる言語に対応しています。
手順 1:言語を追加する
- **「メールレイアウト」**にあるレイアウトを開いてください。
- ページ上部の「**言語を追加」**をクリックしてください。
- 「言語」の下から追加したい言語を選択し、「**言語を追加」**をクリックしてください。
新しい言語は、保存済みのレイアウトのコピーとして開始され、すぐにエディタで開かれます。件名、プレビューテキスト、本文を翻訳し、「保存」をクリックしてください。
AIプロバイダーを連携させると、コピーする代わりに「**AIで翻訳」**を選択できます。すべてのテキストが翻訳されますが、{{ variables.order_name }}などのLiquidタグ、リンク、デザインはそのまま維持されます。ご確認の上、保存するまでは何も送信されません。詳細は AIを使ってレイアウトを作成、編集、翻訳しましょう をご覧ください。

言語が生まれる前から作られていたレイアウト
この機能が導入される前に作成されたレイアウトには、まだメイン言語が設定されていません。当システムでは、そのレイアウトがどの言語で記述されているかを確認したことはなく、推測することもありません。そのようなレイアウトに初めて言語を追加する際、ダイアログには「このレイアウトのメイン言語」という追加の質問が表示されます。
- 何も事前選択されていません。本日のレイアウトの言語をお選びください。ドイツ語のレイアウトの場合は、ドイツ語を選択してください。
- 言語を選択するまでは、「**追加する言語」**と「**言語を追加」**ボタンは非アクティブのままとなります。
- レイアウトごとに1回、確認が求められます。今後作成するレイアウトについては、作成ページで言語を選択していただきます。
これを正しく設定することは重要です。翻訳対象の言語がないお客様にはメイン言語が割り当てられ、翻訳はその言語に基づいて照合されます。

ステップ2:同じエディタで翻訳する
翻訳は、皆様がすでにお馴染みのエディタで開かれます。ビルダーレイアウトの場合はビジュアルビルダーが、それ以外の場合はリッチテキストまたはHTMLエディタが使用されます。言語を切り替えても画面は変わりません。表示される内容のみが変更されます。
- 言語ピッカーで切り替えるには:ビジュアルビルダーのキャンバス上部のバー、またはリッチテキスト/HTMLレイアウトの「**メールコンテンツ」**カードの上部にあるピッカーをご利用ください。
- (layout) と記された項目が、メインの言語となります。


言語ごとの添付ファイル
ドイツ語の請求書(PDF)やフランス語の契約条件書など、添付ファイルは言語によって異なる場合があります。
ビジュアルレイアウトについて。添付ファイルはデザイン内の「添付ファイルブロック」として扱われ、各言語ごとに独自のデザインが用意されています。新しい言語は既存のデザインのコピーとして作成されるため、同じ添付ファイルブロックが引き継がれます。ドイツ語版でファイルを差し替えると、ドイツ語のメールのみにそのファイルが適用されます。
**リッチテキスト/HTMLレイアウト。**翻訳ページの「添付ファイル」カードには、まず「この言語の添付ファイル」という選択肢が表示されます:
| 選択 | 送信される内容 |
|---|---|
| メインの言語と同じです | メイン言語の添付ファイルです。そちらで変更してください。これはすべての言語におけるデフォルト設定です。 |
| この言語用のさまざまな添付ファイル | この言語で送信されたメールにのみ、これらのファイルが添付されています。 |
この言語の添付ファイル設定を変更するには、メイン言語のリストから操作を開始します。したがって、PDFを1つ置き換えるだけで設定が1つ変更されます。その言語のファイルをすべて削除すると、その言語のメールは添付ファイルなしで送信されますが、メイン言語の添付ファイルはそのまま維持されます。「**メイン言語と同じ」**に戻すと、その言語の設定は再びメイン言語に準拠するようになります。
「メイン言語」として設定すると、どの言語でも以前とまったく同じ内容が送信されるため、翻訳を優先しても、誰の添付ファイルも変更されることはありません。
サイズ制限および「添付/リンク」モードについては、メイン言語の場合と同様です。詳細は 添付ファイルと画像 をご覧ください。
言語ごとのマーケティング用フッター
マーケティング用レイアウトは、配信停止の文言と会社の詳細情報で締めくくられます。 翻訳には独自の文言を設定できます。翻訳ページの「マーケティングフッターカード」では、**「レイアウトと同じ」または「この言語用のカスタムテキスト」**を選択できます。フィールドが空の場合、レイアウトのテキストが自動的に適用されます。フッターの仕組みや、言語ごとのサイト全体共通テキストの保存場所については、マーケティングメールと配信停止 をご参照ください。
ステップ3:Shopify Flowに送信する言語を指定します
「トランザクションメールを送信」アクションで、「言語」を、お客様の言語を格納しているShopify Flow変数に設定してください:
| トリガー | 言語 |
|---|---|
| 注文が作成されました、注文の支払いが完了しました | {{order.customerLocale}} |
| お客様が作成しました | {{customer.locale}} |
| フルフィルメントが作成されました | {{fulfillment.order.customerLocale}} |
1つのマーケットのみを対象とするワークフローの場合は、「de」などの固定コードを入力してください。
このフィールドは任意です。以前に作成したワークフローは、変更なく引き続き動作します。「言語」が指定されていない場合、これまでと全く同じように、メインの言語が送信されます。

お客様にはどのバージョンが提供されるのでしょうか
このアプリは、以下の順序で最適なマッチングを探します:
- 正確な表現です。
fr-CAには、fr-caの翻訳が送信されます。 - 基本言語です。
de-CHおよびde-ATには、deの翻訳を送信してください。ドイツ語の翻訳1つで、ドイツ、オーストリア、スイスの3カ国をカバーします。 - 地域ごとのバリエーションです。
ptには、pt-brへの翻訳を送ってください。 - **それ以外の場合は、メインの言語となります。**レイアウトそのものが送信されます。
大文字・小文字や区切り文字は関係ありません。「de-DE」、「de-de」、「de_DE」はすべて同じものです。
もしその言語が存在しなかったらどうなりますか?
問題が発生することはありません。以下の場合、メールはメインの言語で送信されます:
- そのお客様の言語には翻訳がありません(日本のお客様ですが、ドイツ語とフランス語に翻訳してしまいました)、
- 「言語」フィールドが空であるか、そのお客様に対して「Shopify Flow変数」に値が設定されていない場合、
- その価値は、言語などではありません。
「Language」フィールドが原因で送信が拒否されたり、失敗したりすることは決してありません。唯一のチェックが行われるのは、ワークフローを構築している際です。例えば、「english」のように言語コードではない固定値を入力した場合、「Shopify Flow」では、「de」、「fr」、または「pt-BR」のようなコードを使用するようヒントが表示されます。フロー変数は常に通過します。
すべての言語に共通のレイアウトを1つ
場合によっては、全文の翻訳が必要以上に多くなることがあります。たとえば、ある一文を除いて、メールの内容は全員同じであるといった場合です。そのような場合、どのレイアウトでも{{ language }}が利用可能です。
{{ language }} これは、Shopify Flowステップが送信した言語で、小文字で表記されます(de、fr、de-at)。ステップが言語を送信しない場合は、レイアウトのメイン言語となります。これは、件名、プレビューテキスト、本文において、ビジュアルビルダーおよびリッチテキスト/HTMLレイアウトで機能するほか、翻訳内でも適用されます。
{% if language == "de" %}
<p>Retouren aus Deutschland gehen an unser Lager in Hamburg.</p>
{% else %}
<p>International returns are refunded within 10 working days.</p>
{% endif %}
ビジュアルビルダーでは、これをHTML/コードブロックに入力してください。リッチテキスト/HTMLレイアウトでは、bodyをHTMLに切り替えてください。
Shopify 多くの場合、de-AT や en-GB のように、言語とともに地域情報が含まれます。{{ language }} では地域情報が保持されます(de-at)ので、「ドイツ語ならどれでも」という意味の場合は、最初の2文字のみを比較してください:
{% assign lang = language | slice: 0, 2 %}
{% if lang == "de" %}Hallo{% elsif lang == "fr" %}Bonjour{% else %}Hello{% endif %}
{{ language }} これは、そのステップで求められた内容であり、見つかった翻訳ではありません。日本語のお客様の場合、メイン言語が送信されていたにもかかわらず「ja」と表示されるため、翻訳が一切ないレイアウトであっても、これに対応することができます。エディタ内の「システム変数」カードには、現在の値が一覧表示されており、クリックするだけでその値をコピーできます。 まだメイン言語が設定されていないレイアウトでは、Shopify Flowステップから言語が送信されるまで、このフィールドは空のままとなります。

本番運用前にテストを行ってください
- レイアウトに翻訳が設定されると、「テストメールを送信」に言語選択機能が追加されます。各言語のメールを1通ずつ、ご自身宛てに送信してください。
- このテストでは、本番データではなく、テスト変数が使用されます。実際のワークフローの実行が最終的な確認となります。詳細は、メール設定の確認 をご覧ください。
- チェーン全体をテストするには、翻訳先の言語を話すお客様の注文に対してワークフローを実行してください。
送信された内容をご確認ください
履歴には、すべてのメールの言語が記録されます。イベントを開くと、「**イベントの詳細」にある「言語」欄に、送信された翻訳、またはレイアウトの「メイン言語」が表示されます。「再送信」を選択すると、**同じ言語のメールが再度送信されます。

メインの言語を変更する
お店は英語でスタートしましたが、現在はお客様のほとんどがドイツ人ですか?ドイツ語の翻訳を開き、**「メイン言語として設定」**をクリックしてください。ドイツ語がレイアウト本体となり、英語は翻訳として扱われるようになります。つまり、両者の役割が入れ替わりますが、データが失われることはありません。それ以降、対応する翻訳がないお客様や、言語が指定されていないメールには、ドイツ語が表示されます。この設定は、バージョン履歴から元に戻すことができます。

言語を削除する
翻訳を開き、**「削除」**をクリックしてからその名前(例:「ドイツ語を削除」)をクリックしてください。その言語を設定しているお客様には、次のメール以降、メイン言語で配信されます。翻訳はレイアウトのバージョン履歴に残り、復元することができます。詳しくは、レイアウトのバージョン履歴 をご覧ください。
もし何かが予想通りでない場合は
あるお客様が、ご自身の言語ではなくメイン言語のメールを受け取ってしまいました。「履歴」でメールを開き、「言語」をご確認ください。「レイアウトのメイン言語」とは、一致する翻訳がないことを意味します。つまり、Shopify Flowの「言語」フィールドが空であるか、そのお客様に対する変数の値がないか、あるいはその言語の翻訳が登録されていないかのいずれかです。 まずステップを確認してください。ステップ3の表には、トリガーごとに適切な変数が記載されています。
**「言語を追加」がグレー表示になっています。**このレイアウトにはまだメイン言語が設定されていません。まず、ダイアログの上部にある「このレイアウトのメイン言語を選択」を選択してください。
**必要な言語がリストにありません。**このリストには、最も一般的な言語が掲載されています。有効な言語コードであれば、APIを通じて追加することができます。
**レイアウトを変更しましたが、ドイツ語版のメールにはまだ以前のテキストが表示されています。**翻訳はコピーです。ドイツ語版でも変更を行ってください。
**添付ファイルを変更しましたが、ある言語では依然として古いファイルが送信されてしまいます。**リッチテキスト/HTMLレイアウトにおいて、その言語は「この言語には別の添付ファイル」に設定されているため、独自のリストが保持されています。翻訳を開いてそこでファイルを変更するか、または「メイン言語と同じ」に切り替えてください。 ビジュアルレイアウトの場合は、その言語の「添付ファイル」ブロック内のファイルを置き換えてください。
**Shopify Flowのアクションに「言語」フィールドが表示されません。このステップは今回のアップデート以前に追加されたもので、Shopify Flowでは、ステップ作成時に設定されたフィールドが維持されます。「トランザクションメールを送信」ステップを一度削除し、再度追加してみてください。そうすると、「言語」フィールドが「送信者名」と「変数(JSON)」**の間に表示されるようになります。
APIを通じて
翻訳の読み書きには、GET および PUT /api/v1/email-templates/:id/translations/:locale を使用できます。翻訳をメイン言語に設定するには、POST /api/v1/email-templates/:id/translations/:locale/promote を使用します。また、MCPツールには、list_template_translations、set_template_translation、promote_template_translation があります。リッチテキスト/HTMLレイアウトの場合、翻訳の attachments フィールドは独自のリストとなり、メイン言語の場合は null となります。marketingTexts には、その言語のマーケティングレイアウトのフッターテキストが格納されます。 有効な言語コードであればどれでも使用でき、1つのレイアウトにつき最大30言語まで設定可能です。詳細は、REST API リファレンス および AIアシスタント(MCP)を接続する をご覧ください。
関連情報
- メールのレイアウトを作成する - レイアウト、ビジュアルビルダー、およびリッチテキスト/HTML。
- AIを使ってレイアウトを作成、編集、翻訳しましょう - ご自身のAIプロバイダーを使用して、レイアウトを翻訳してください。
- ヘッダーとフッターのプリセット - 各言語のプリセットのテキスト。
- 添付ファイルと画像 - ファイル、制限、および「添付/リンク」モード。
- マーケティングメールと配信停止 - 言語ごとの配信停止リンクおよびフッターのテキスト。
- 変数と液体 - 変数、条件、およびフィルター。
- レイアウトのバージョン履歴 - すべての言語のすべてのセーブデータ(復元機能付き)。
- 沿革とトラブルシューティング - 何が送られたのか、そしてその理由は何なのか。

