Contact Form 7 はバージョン 2.0 から WPML との連携による多言語化をサポートするようになりました。このページではその手順について説明します。

まず準備すること

  • WPML をインストール、有効化する
  • Contact Form 7 v2.0 以降をインストール、有効化する

順番は逆でも構いません。

続いて Contact Form 7 のフォーム管理メニューを開いて以下の手順でフォームの編集を行います。

多言語化の手順

WPML で多言語化できる Contact Form 7 の要素には、

  1. フォーム構成タグの中で値として指定される文字列
  2. フォーム構成タグの外に置かれる文字列
  3. 応答メッセージの文字列

の3種類があり、それぞれ異なる手順が必要になります。

フォーム構成タグの中で値として指定される文字列を多言語化する

フォーム構成タグの中で値として指定される文字列を多言語化するには、そのタグに icl オプションを追加します。

たとえば、次のようなタグがあるとします。(このタグは国名を選択するドロップダウンメニューに置き換わります)

[select your-country "China" "India" "San Marino"]

これを多言語化する、つまり、”China”、”India”、”San Marino” という選択値をビジターの言語に翻訳するには、これらの値の前に icl を挿入します。

[select your-country icl "China" "India" "San Marino"]

これだけでも機能しますが、次のように icl の後に翻訳対象の名前をつけておくと後で WPML の管理インタフェイスから管理しやすくなります。

[select your-country icl:country-names "China" "India" "San Marino"]

フォーム構成タグの外に置かれる文字列を多言語化する

タグの外部の文字列を多言語化するには、その文字列を [icl] タグで囲みます。

たとえば先ほどの国名選択のドロップダウンメニューのラベルとなるテキストが次のように用意されているとします。

Select Your Country

これを、次のように [icl][/icl] で挟みます。

[icl]Select Your Country[/icl]

ここでも先ほどと同様に、後の管理のために翻訳対象の名前を次のような形式でつけておきましょう。

[icl select-country-label]Select Your Country[/icl]

ここまでをまとめると次のようになっているはずです。

フォームの多言語化
フォームの多言語化

応答メッセージの文字列

応答メッセージ文字列の多言語化は先ほど見たものと同じ [icl] タグで行います。

メールが正常に送信されたことを示す次のメッセージを多言語化してみましょう。

Your message was sent successfully. Thanks.

これも [icl] タグで囲んで、翻訳対象の名前をつけると次のようになります。

[icl success-response]Your message was sent successfully. Thanks.[/icl]

メッセージの多言語化
メッセージの多言語化

上記の手順で多言語化の指定を行ったら、そのフォームを保存します。これで Contact Form 7 側で行う作業は完了です。WPML 側での翻訳が完了し次第、多言語化されたコンタクトフォームが表示されるようになるでしょう。