WordPressでのGravity Formsの翻訳方法 – フィールド、通知、確認、条件付きロジック
WordPressサイト上のGravity Formsフォームのすべての部分を、訪問者が話すあらゆる言語に翻訳する方法を学びます。このガイドでは、フィールドラベル、価格フィールド、ドロップダウンのオプション、フィールドごとの検証メッセージ、確認、ルーティングを伴う通知、条件付きロジック、および送信データを受け取る統合アドオンについて説明します。WPMLとGFMLアドオンを使用したGravity Formsのワークフローを順を追って解説します。
はじめに
以下のプラグインをインストールして有効化します。
- Gravity Forms
- WPMLおよびWPML 文字列翻訳
- GFML – Gravity Forms Multilingual(このページで解説するアドオン)
サイトの翻訳元言語で、Gravity Formsを使用してフォームを作成します。翻訳にフォームを送信する前に、必要なすべてのフィールド(価格フィールド、ページ分割構造、条件付きロジック、通知、確認)を追加してください。フォームは後からいつでも変更し、差分を再翻訳することができます。
「すべてを自動翻訳する」による自動処理
サイトですべてを自動翻訳するが有効になっている場合、フォームを手動で翻訳に送信する必要はありません。WPMLは他のコンテンツと同様に、新規および更新されたフォームを検出し、バックグラウンドで翻訳します。以下のページ挿入の手順は引き続き適用されますが、フォームを翻訳に送信する手順は自動化されます。このページの残りの部分では、一部を翻訳する:翻訳するものを選択を使用しているサイト(または自動キューより先に翻訳したいフォーム)向けの手動での手順を説明します。
翻訳へのフォームの送信
- WPML > 翻訳 > ダッシュボードを開きます。
- Gravity Formsセクションを展開します。
- 翻訳するフォームにチェックを入れます。
- 翻訳方法として、PTC(推奨)、翻訳者、または自分で翻訳を選択します。
- 翻訳をクリックします。
フォーム、そのフィールド、オプション、通知、確認、およびフィールドごとの検証メッセージはすべて、同じ翻訳ジョブに入ります。翻訳者には、高度な翻訳エディタでラベル付きの行として表示されます。
翻訳済みページへのフォームの挿入
Gravity Formsは通常、Gravity Formsブロックまたは[gravityform id="X" title="false"]ショートコードを使用して、ページや投稿の内部に配置されます。多言語での挿入方法はクライアントが最も驚く部分であるため、以下のルールを覚えておいてください。
ページのすべての言語バージョンで同じブロックまたはショートコードを使用します。言語ごとに個別のフォームを作成しないでください。
手順は以下の通りです。
- 翻訳元言語でフォームを1度作成します。
- フォームを翻訳に送信します(またはすべてを自動翻訳するに自動検出させます)。
- Gravity Formsブロックまたは
[gravityform]ショートコードを使用して、翻訳元言語のページにフォームを挿入します。 - 他のページを翻訳するのと同じ方法で、WPML > 翻訳 > ダッシュボードからページを翻訳します。フォームの埋め込みは翻訳されたページでも保持されます。
- 訪問者が翻訳されたページにアクセスすると、GFMLは自動的に訪問者の言語でフォームを表示します。フォームIDとショートコードは同じままで、コンテンツのみが翻訳されます。
言語ごとに異なるフォームIDは必要ありません。言語ごとにショートコードを交換する必要もありません。翻訳は翻訳元のフォームにリンクされており、グループラグインがページの言語に基づいて、レンダリング時に適切な言語バージョンを解決します。
例外 – 言語ごとに全く異なるフォームを使用したい場合。一部のサイトでは、言語ごとに構造的に異なるフォーム(単なるテキストの違いではなく、異なるフィールドや異なるロジック)が必要になります。その場合は、個別のGravity Forms(言語ごとに1つ)を作成し、その翻訳用のWordPressエディタを使用して、対応する言語バージョンのページにそれぞれのショートコードを挿入します。言語間でショートコードが異なるのは、この状況のみです。
ページビルダーの注意点
ページがDivi、Elementor、またはその他のページビルダーで構築されており、独自のテキストモジュールでショートコードをラップしている場合、ショートコードが翻訳時に正常に保持されないことがあります。翻訳されたページに翻訳元言語のフォームが表示される場合は、ページビルダーで翻訳されたページを開き、そこでフォームのブロックまたはショートコードを再挿入してください。ネイティブのWordPressブロックエディタやクラシックエディタでは、この問題は発生しません。
価格や商品フィールドと連動したフィールドラベルとオプションの翻訳
すべてのフィールドラベル、プレースホルダー、ドロップダウンのオプション、ラジオボタンの選択肢、チェックボックスのラベル、およびHTMLフィールドのコンテンツが翻訳ジョブに表示されます。Gravity Forms特有の価格フィールド(商品、数量、合計、配送)についても、ラベルは翻訳されますが(例:“Quantity”が“Quantité”になります)、背後にある数値処理はそのまま維持されます。リストフィールド、デジタル署名、およびファイルのアップロードも同じ方法で翻訳されます。マルチチョイスおよび画像チョイス(Gravity Forms 2.9のフィールドタイプ)は、GFML 1.8.3以降で翻訳可能です。
ページ分割されたフォームと会話型フォーム
ページ分割されたフォームの場合、すべてのページ見出しと改ページタイトルが翻訳ジョブに含まれます。ページをまたいで分岐する条件付きロジックも、翻訳後も維持されます。選択肢の値は言語間で一致したままになるため、表示/非表示のルールは同じデータに対して引き続き機能します。会話型フォーム(1問ずつ回答するモード)では、すべてのプロンプトと遷移が翻訳されます。公開する前に、1つの言語バージョンを選択して会話のフローを一通り確認し、各ステップが自然に読めることを確認してください。
フィールドごとの検証メッセージ
Gravity Formsの各フィールドには、フィールドの高度な設定タブに独自の検証メッセージ設定(検証に失敗したときに表示されるテキスト)があります。それぞれが高度な翻訳エディタの行として表示されます。
翻訳ジョブにフィールドごとの検証メッセージが表示されない場合、そのフィールドはフィールドごとの上書きではなく、Gravity Formsのデフォルトメッセージ(Forms > Settings > Form Settingsで設定)を使用している可能性があります。カスタムのフィールドごとのメッセージを設定してフォームを再度翻訳に送信するか、WPML 文字列翻訳を使用してグローバルなデフォルトメッセージを翻訳してください。
確認 – テキスト、リダイレクト、およびページ
Gravity Formsは3つの確認タイプをサポートしており、3つすべてが多言語で機能します。
- テキストの確認はインラインで翻訳されます。Gravity Formsで翻訳元言語の確認を編集し、フォームを再度翻訳に送信すると、各言語の翻訳済みテキストが表示されます。
- ページの確認はWordPressのページを指します。WPMLの通常のページ翻訳ワークフローを通じてそのページを翻訳します。訪問者には、コンテキストに一致する言語バージョンが表示されます。
- リダイレクトの確認は、送信後に訪問者をURLに送信します。URL自体も言語ごとに翻訳可能です。高度な翻訳エディタで言語ごとに異なるサンキューURLを設定してください。
通知と通知ルーティング
すべてのGravity Formsの通知は言語ごとに翻訳されます。これには、送信先メールアドレス、送信者名、件名、本文のテンプレート、およびマージタグが含まれます。通知の本文ではGravity Formsのマージタグ({Name}、{Email}、{All Fields})が使用され、これらは翻訳後も正しく解決されます。通知ルーティングのルールは、フィールドの値に基づいて異なる送信を異なる受信者に送信します。背後にある選択肢の値は言語間で一致したままになるため、これらは翻訳後も維持されます。
翻訳後、各言語でテスト送信を行い、通知が訪問者の言語で届き、マージタグが正しく置換されていることを確認してください。
翻訳された選択肢の値に対する条件付きロジック
テキストベースの選択肢(ラジオボタン、チェックボックス、ドロップダウン)に対する条件付きロジックは、GFMLが翻訳元と翻訳されたラベル間の値のマップを維持するため、翻訳後も引き続き機能します。訪問者にはフランス語で“Pas encore”と表示されますが、背後にある値は“Not yet”のままであり、条件ルールは引き続き“Not yet”に対して機能します。
条件付きロジックが機能しなくなる原因の1つは、翻訳後にフォームを再度翻訳に送信せずに、翻訳元言語の選択肢ラベルを変更することです。これによりマッピングが古くなります。これを修正するには、フォームを再度送信します。GFMLが値のマップを更新します。
統合アドオン – Mailchimp、ActiveCampaign、HubSpot、Zapier、Slack、Webhooks
サードパーティのサービス(Mailchimp、ActiveCampaign、HubSpot、Zapier、Slack、Webhooksなど)に送信データをプッシュするGravity Formsアドオンは、翻訳された訪問者の入力を受け取ります。フランス語の訪問者の名前とメッセージは、フランス語で送信先に届きます。マッピングされたリストのラベル、パイプラインのステージ、およびチャンネル名も、フォームレベルの文字列として存在する場合は翻訳されます。
統合でラベルではなくフィールドの値を使用している場合(例:ドロップダウンの値をMailchimpのリストにマッピングする場合)、値は言語間で正規のまま維持されるため、マッピングが壊れることはありません。
よくある落とし穴
- 通知メールで選択肢のラベルが翻訳されない。翻訳元言語のラベルを変更した後、フォームを再度翻訳に送信してください。問題が解決しない場合は、GFMLが最新であることを確認してください。これは古いバージョンで頻発していた問題であり、フォーラムのスレッドで追跡されています。
- 翻訳されたページでフォームブロックのスタイルがおかしくなる。既知のスタイルのリグレッションです。エラッタページを参照してください。回避策:修正が保留されている間は、フォームブロックではなく、標準の
[gravityform]ショートコードの埋め込みを使用してください。 - 明らかに翻訳するものがあるのに、フォームに“There is nothing to translate”(翻訳するものがありません)と表示される。通常はダッシュボードのキャッシュの問題です。ページを更新するか、フォームを埋め込んでいる投稿からフォームを再度翻訳に送信してください。
- 翻訳されたフォームで条件付きロジックが機能しなくなる。翻訳後に翻訳元言語で選択肢のラベルが編集されました。値のマップを更新するために、フォームを再度翻訳に送信してください。
執筆者: Amir · 最終更新日: 2026年7月2日
執筆者:Amir · 最終更新日:2026年7月2日