WordPressでContact Form 7を翻訳する方法 – フォームタグ、メッセージ、メールテンプレート
WordPressサイトのContact Form 7フォームのすべての部分を、訪問者が話すあらゆる言語に翻訳する方法を説明します。このガイドでは、すべてのフォームタグ、メッセージタブ全体、両方のメールテンプレート、承諾確認テキスト、クイズタグ、パイプで区切られた選択可能な値、およびContact Form 7が連携する送信時の統合機能について網羅しています。WPMLおよびWPML Multilingual for CF7アドオンを使用したContact Form 7のワークフローを段階的に説明します。
始める前に
以下のプラグインをインストールして有効化します。
- Contact Form 7
- WPMLおよびWPML 文字列翻訳
- WPML Multilingual for CF7(このページで解説するアドオン)
フォームを翻訳に送信する前に、サイトの翻訳元言語でContact Form 7のフォーム(すべてのフォームタグ、メールおよびメール (2) テンプレート、メッセージタブのすべての項目、およびその他の設定)を作成します。後で変更があった場合は、フォームを編集して再度翻訳に送信できます。
すべてを自動翻訳する機能による自動処理
サイトですべてを自動翻訳するがオンになっている場合、手動でフォームを翻訳に送信する必要はありません。WPMLは他のコンテンツと同様に、新規および更新されたフォームを検出し、バックグラウンドで翻訳します。以下のページ挿入の手順は引き続き適用されますが、フォームの翻訳への送信手順は自動化されます。このページの残りの部分では、一部を翻訳する:翻訳するものを選択を使用しているサイト(または自動キューの前に翻訳したいフォーム)向けの手動の手順を説明します。
フォームの翻訳への送信
- WPML → 翻訳 → ダッシュボードを開きます。
- Contact Formsセクションを展開します。
- 翻訳するフォームにチェックを入れます。
- 翻訳方法を選択します。PTC(推奨)、担当の翻訳者、または自分で翻訳のいずれかを指定します。
- 翻訳をクリックします。
フォームテンプレート、メールおよびメール (2)、メッセージタブはすべて同じ翻訳ジョブに含まれます。翻訳者には、高度な翻訳エディタでラベル付きの行として表示されます。
翻訳済みページへのフォームの挿入
Contact Form 7は[contact-form-7]ショートコードを使用してページや投稿内に配置されます。これは通常、お問い合わせ管理画面で[contact-form-7 id="123" title="My Form"]として生成されます。多言語での挿入ルールは以下の通りです。
ページのすべての言語バージョンで同じショートコードを使用します。言語ごとに別々のフォームを作成しないでください。
フローは以下の通りです。
- 翻訳元言語でフォームを1回作成します。
- フォームを翻訳に送信します(またはすべてを自動翻訳するに自動検出させます)。
- 翻訳元言語のページにショートコードを挿入します。
- 他のページを翻訳するのと同じように、WPML → 翻訳 → ダッシュボードからページを翻訳します。ショートコードは翻訳されたページでも保持されます。
- 訪問者が翻訳されたページを開くと、WPML Multilingual for CF7が自動的に訪問者の言語でフォームを表示します。同じショートコードで、翻訳されたコンテンツが表示されます。
言語ごとに異なるフォームIDを用意する必要はありません。翻訳は元のフォームにリンクされており、連携プラグインがページの言語に応じてレンダリング時に適切な言語バージョンを解決します。
IDベースとタイトルベースのショートコードはどちらも機能します。[contact-form-7 id="123" title="Contact form 1"]は追加の設定なしで多言語で機能します。[contact-form-7 title="Contact form 1"](IDなし、タイトルのみ)も適切な言語に解決されます。タイトルのみの解決はバージョン1.1.0(2021年6月)で導入されました。どちらの形式も安全に使用できます。
例外 – 言語ごとに異なるフォームが本当に必要な場合。言語ごとに構造的に異なるフォーム(異なるフォームタグ、異なるメールテンプレート、異なるメッセージタブのコンテンツ)が必要な場合は、別々のContact Form 7フォームを作成し、対応する言語バージョンのページに、その翻訳用のWordPressエディタでそれぞれのショートコードを挿入します。言語間でショートコードが異なるのはこの状況のみです。
ページビルダーでの注意点
ページがDivi、Elementor、またはその他のページビルダーで作成されており、そのテキストモジュールがショートコードをラップしている場合、翻訳時にショートコードが正しく保持されないことがあります。翻訳されたページに翻訳元言語のフォームが表示される場合は、ページビルダーで翻訳されたページを開き、そこに[contact-form-7]ショートコードを再挿入してください。WordPress標準のブロックエディタやクラシックエディタでは、この問題は発生しません。
フォームタグのラベルと訪問者向け文字列
各フォームタグの訪問者向けコンテンツは翻訳されます。これには、ラベル(括弧で囲まれたタグの外側にあるテキスト)、ボタンのラベル([submit "Send"]内の値)、placeholderオプションで設定されたプレースホルダー、および[checkbox]、[radio]、[select]タグ内のオプション値が含まれます。
フォームタグのタイプと名前は翻訳されません。これらは識別子です。フォームタグの値(訪問者向けの選択肢)は翻訳されます。例:
[select your-country "China" "India" "San Marino"]
フランス語の翻訳では、"China"は"Chine"になりますが、your-country(フォームタグ名)とselect(タイプ)は同一のままです。翻訳によって各値の位置が保持されるため、メールタグの置換は引き続き機能します。
パイプで区切られた値 – ラベルの翻訳と値の固定
パイプ構文を使用すると、訪問者向けのラベルをメールで送信される値から切り離すことができます。
[select your-country
"Chinese|CN"
"Indian|IN"
"Sammarinese|SM"]
このフォームを翻訳する際、ラベル(Chinese、Indian、Sammarinese)のみが翻訳されます。値(CN、IN、SM)は正規の値のまま変わりません。フランス語の訪問者にはChinois、Indien、Saint-Marinaisと表示されますが、メール本文やバックエンドのハンドラーは引き続きCN、IN、SMを受信します。CRMのマッピング、支払いのSKU、地理コードなど、送信される値を言語間で安定させる必要がある場合は、パイプ構文を使用してください。
承諾確認タグとクイズタグ
承諾確認(Acceptance)チェックボックスには同意テキストが含まれており、通常はプライバシーや利用規約ページへの1つ以上の埋め込みリンクが含まれています。このテキストは翻訳ジョブの1つの行として翻訳します。リンク先については、翻訳された行を編集して、言語ごとのプライバシーや利用規約ページを指すようにします。
クイズタグは質問と回答の両方を翻訳します。正解の判定ロジックが言語間で予測どおりに動くよう、クイズの回答にはパイプ構文を使用してください。
[quiz captcha
"1+1=?|2"
"2+3=?|5"]
メッセージタブ
Contact Form 7のメッセージタブには、送信時やエラー時に訪問者に表示される約16個の編集可能な検証文字列が含まれています。これらはすべて同じジョブで翻訳されます。
- Thank you for your message. It has been sent.(ありがとうございます。メッセージは送信されました。)
- One or more fields have an error. Please check and try again.(入力内容に問題があります。確認して再度お試しください。)
- There was an error trying to send your message. Please try again later.(メッセージの送信中にエラーが発生しました。後でもう一度お試しください。)
- This field is required.(必須項目に入力してください。)
- This e-mail address is invalid.(入力されたメールアドレスに間違いがあります。)
- The telephone number is invalid.(入力された電話番号に間違いがあります。)
- The URL is invalid.(入力されたURLに間違いがあります。)
- The number is smaller than the minimum allowed.(最小値より小さい数値です。)
- The number is larger than the maximum allowed.(最大値より大きい数値です。)
- The date format is incorrect.(日付の形式が正しくありません。)
- The file is too big.(ファイルサイズが大きすぎます。)
- The file is not supported.(このファイル形式は許可されていません。)
- The Acceptance checkbox is required.(承諾のチェックボックスは必須です。)
- The answer to the quiz is incorrect.(クイズの答えが正しくありません。)
- (およびCF7に同梱されている残りのデフォルトメッセージ)
メッセージタブで入力内容を補間するためにメールタグを使用している場合(Thanks [your-name], your message has been sent!)、翻訳後もメールタグは正しく解決されます。
メールおよびメール (2)
Contact Form 7の2つの送信メールテンプレートであるメール(管理者への通知)とメール (2)(訪問者への任意の返信または自動応答)は、個別に翻訳されます。送信先、送信元、題名、追加ヘッダー、メッセージ本文、およびファイル添付の説明はすべて翻訳ジョブに含まれます。翻訳された本文内のメールタグ([your-name]、[your-message]、[your-email])は正しく解決されます。
メール (2) については、訪問者向けの自動応答の本文が翻訳において最も重要です。これが訪問者の受信トレイに届くメッセージになります。翻訳されたページからテスト送信を行い、自動応答が訪問者の言語で届くことを確認してください。
送信時の統合機能
Contact Form 7には、数は少ないものの重要な統合機能が備わっています。翻訳が設定されている場合、それぞれが訪問者の言語を保持します。
- Flamingo: Contact Form 7の作成者による送信管理アドオンです。送信内容は、翻訳された件名と本文がそのまま保持された状態でお問い合わせ → 受信メッセージに届きます。
- Constant Contact: CF7の公式メールマーケティング統合機能です。訪問者の入力内容は、訪問者の言語でConstant Contactのリストに送信されます。
- Stripe: Contact Form 7の
[stripe]フォームタグフィールドと領収書メッセージのテキストは、どちらも翻訳ジョブに表示されます。 - Akismet: スパム対策メッセージは(フォームの翻訳ジョブではなく)WPML 文字列翻訳を通じて翻訳されます。
- reCAPTCHA: 訪問者向けのエラーメッセージはWPML 文字列翻訳を通じて翻訳されます。
よくある落とし穴
- 埋め込みリンク付きの承諾確認が間違った言語のプライバシーページを指している。高度な翻訳エディタで承諾確認の翻訳を編集し、言語ごとのリンク先を設定してください。
- CF7 6.0以降でのショートコードのハッシュの不一致。WPML Multilingual for CF7 1.3.2(2024年11月)で解決されました。この問題が発生した場合はアップグレードしてください。
- メッセージタブの翻訳が表示されない。WPML 文字列翻訳が有効になっていること、およびメッセージタブを編集した後にフォームが再度翻訳に送信されたことを確認してください。
- 翻訳内のメールタグが空の文字列に解決される。メールタグ内のフォームタグ名(例:
[your-name])がフォーム内のフォームタグと一致しているか確認してください。翻訳によってメールタグの解決が壊れることはありませんが、翻訳後にフォームタグの名前を変更すると壊れます。
執筆者: Amir · 最終更新日: 2026年7月2日
執筆者:Amir · 最終更新日:2026年7月2日