Email <input type="text""> Email <input type="text""> Email <input type="text"" />

連絡先フォーム7にフィールドラベルをローカライズする方法

私はクライアントサイトをスペイン語からフランス語にローカライズしました:

http://www.microcementoeuropeo.com

... WPMLプラグインとGettextフレームワークの組み合わせを使用します。私が翻訳に失敗した唯一の事は、コンタクトフォームのラベルitslefです:

Nombre
<input type="text" name="your-name" value="" class="wpcf7-text wpcf7-validates-as-required" size="40" />

Email
<input type="text" name="your-email" value="" class="wpcf7-text wpcf7-validates-as-email wpcf7-validates-as-required" size="40" />

Teléfono

...私が翻訳しようとしているテキストは "Nombre" - フランス語です。

私は他のハードコーディングされた領域で動作するgettextメソッドを試しました:

 

<?php _e('Nombre', theme_domain);?>

<?php __('Nombre', theme_domain);?>

...これは動作しません。

(私はこれらをadminを介してwordpressに追加し、.phpファイルには直接追加しません)。

私は.po/.moファイルの作成に精通しており、通常のハードコードされたテキストをローカライズする方法を知っていますが、連絡先フォーム7は私を困惑させます。

任意の提案が高く評価されました。

3

4 答え

JunkMyFunkの提案に感謝します。私はこれを実装しようとしましたが、いくつかの問題に直面しました。

私は結局次の方法を使って回避策を見つけました:

  1. Install WPML plugin.
  2. Create a contact form for each language in WP CF7
  3. Use the following conditional statement to show the correct contact form for each language.

    <?php if(get_bloginfo('language')=='es-ES') 
    { 
    echo do_shortcode('[contact-form 1 "Contact form 1"]'); 
    } else {   
    echo do_shortcode('[contact-form 2 "Contact_form_2"]');   
    } 
    ?>
    

あなたの助けてくれてありがとう -

1
追加された
少しの提案は、get_bloginfo( 'language')の代わりに定数変数ICL_LANGUAGE_CODEを使用することです。 ICL_LANGUAGE_CODEには、WPML自身が管理する現在の言語のショートキーが含まれています。だから英語は "en"を返します。
追加された 著者 Warre Buysse,

あなたはそれを必要としません。特別に以下のリンクを確認してください。「異なる言語の連絡先フォームを作成する」

あなたの言語でのお問い合わせフォーム

1
追加された

あなたの問題に対する解決策は、Contact Form 7テンプレート内でPHPを実行する能力にあると思います。これを行うには、自分のショートコードを書いてからCF7に追加します。

まず、ショートコードを設定して、翻訳機能をWPコンテンツエリアで利用できるようにします。何かのようなもの:

function e_text_shortcode( $atts ) {
    extract( shortcode_atts( array(
        'text' => 'something',
        'theme_domain' => 'something else',
    ), $atts ) );

    return _e($text, $theme_domain);
}
add_shortcode('e_text', 'e_text_shortcode');

(免責事項:私はこれをテストしていない!)

次に、このようなプラグインを使用できます。ショートカットをCF7テンプレート領域に追加することができます。このプラグインを使用すると、「キー」として使用するコードを定義する必要があります。

e_text key='e_text'

次に、CF7フォームテンプレートと電子メールテンプレートでe_textショートコードを使用できるようになります。

1
追加された

これが機能しないのは、v4.4.1の時点で、CF7プラグインがを含まないためです GlotPress ]をクリックすると、/a>を使用します。その結果、フォームを作成する言語ごとに1つずつ、ロケールを手動でインストールする必要があります。たとえば、ドイツ語のロケールde_DEのように、ダッシュボードのURLに locale 属性を追加することで、新しい言語でフォームを作成できます。

http:///wp-admin/admin.php?page=wpcf7-new&locale=de_DE

また、 CFL PolyLangモジュールを使用すると、CF7フォームをさまざまな言語で管理することができます。 PolyLang プラグイン( WPで推奨)。 PolyLangはWPMLの代替品ですが、

  1. Install the PolyLang plugin, and activate.
  2. In the dashboard Settings->Language section, add languages to your polylang settings. Each language you add, polylang will manage the content in each of these languages. Visitors to your site will be able to choose which language content they want to see, or automatically view their browser default language depending on the settings you choose.
  3. Next, install the CF7 module and activate it. It will lookup the languages you set up in the the polylang settings and download the correct CF7 locale. It will also enable the management of the forms in those languages.
0
追加された
このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参照のためのリンクを提供する方が良いでしょう。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - レビューから
追加された 著者 RAnders00,
申し訳ありませんが、その場合は、この質問の最初の回答も削除する必要があります。デモのないリンクにすぎません。しかし、私はここで無限ループに終わらないように、私の答えにもう少し追加します。
追加された 著者 Aurovrata,