如何在联系表单7中本地化字段标签

时间:2012-02-06 16:46:41

标签: wordpress localization contact-form-7

我设法将我的客户网站本地化为西班牙语到法语:

http://www.microcementoeuropeo.com

...使用WPML插件和Gettext框架的组合。我唯一没有成功翻译的是联系表格上的标签:

<p>Nombre<br />
<span class="wpcf7-form-control-wrap your-name"><input type="text" name="your-name" value=""    class="wpcf7-text wpcf7-validates-as-required" size="40" /></span> </p>
<p>Email<br />
<span class="wpcf7-form-control-wrap your-email"><input type="text" name="your-email" value="" class="wpcf7-text wpcf7-validates-as-email wpcf7-validates-as-required" size="40" /></span> </p>
<p>Teléfono<br />

...所以我试图翻译的文字将是“Nombre” - 法语。

我尝试过适用于其他硬编码区域的gettext方法:

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

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

......但这不起作用。

(我通过管理员将这些添加到wordpress中,而不是直接添加到.php文件中。)

我熟悉创建.po / .mo文件并知道如何本地化正常的硬编码文本 - 但联系表格7让我感到困惑。

任何建议表示赞赏。

4 个答案:

答案 0 :(得分:2)

你不需要任何这些。请查看以下链接,特别是“使用其他语言创建联系表单”

部分

contact form in your language

答案 1 :(得分:1)

我认为您的问题的解决方案在于能够在Contact Form 7模板中运行PHP。您可以通过编写自己的短代码然后将其添加到CF7中来完成此操作。

首先,设置shortcode,以便在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');

(免责声明:我没有测试过这个!)

然后您可以使用plugin like this one,以便可以将短代码添加到CF7模板区域。使用此插件,您必须定义要用作“键”的代码,例如:

e_text key='e_text'

然后您应该能够在CF7表单模板和电子邮件模板中使用e_text短代码。

答案 2 :(得分:1)

感谢JunkMyFunk的建议。我试图实现这个,但遇到了一些问题。

我最终使用以下方法找到了解决方法:

  1. 安装WPML plugin.
  2. 为WP CF7中的每种语言创建联系表单
  3. 使用以下条件语句显示每种语言的正确联系表单。

    <?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"]');   
    } 
    ?>
    
  4. 感谢您的帮助 -

答案 3 :(得分:0)

这不起作用的原因是因为从v4.4.1开始CF7插件再次执行not include language语言环境,这些都是在worpdress翻译GlotPress中维护的。因此,您需要手动安装区域设置,为您要为其创建表单的每种语言都安装一个区域设置。然后,您可以在信息中心网址中添加locale属性,以新语言创建表单,例如德语区域设置de_DE,

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

或者,您可以使用CF7 PolyLang module,它允许您使用PolyLang插件(recommended by WP)管理不同语言的CF7表单。 PolyLang是WPML的替代品,

  1. 安装PolyLang插件,然后激活。
  2. 在信息中心的设置 - &gt;语言部分,为您的polylang设置添加语言。您添加的每种语言,polylang将管理每种语言的内容。您网站的访问者可以选择要查看的语言内容,也可以根据您选择的设置自动查看其浏览器默认语言。
  3. 接下来,安装CF7模块并将其激活。它将查找您在polylang设置中设置的语言并下载正确的CF7语言环境。它还可以用这些语言管理表格。