wordpress 如何本地化联系表格7中的字段标签

eqzww0vc  于 2023-06-05  发布在  WordPress
关注(0)|答案(4)|浏览(740)

我已经成功地本地化我的客户网站从西班牙语到法语:
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 />

……但这不起作用。
(我通过admin将这些添加到WordPress中,而不是直接添加到.php文件中)。
我对创建.po / .mo文件很熟悉,也知道如何本地化普通的硬编码文本--但是contactform 7让我感到困惑。
任何建议赞赏。

rpppsulh

rpppsulh1#

你不需要这些。检查下面的链接,特别是部分“创建不同语言的联系表格”
contact form in your language

of1yzvn4

of1yzvn42#

我认为你的问题的解决方案在于在Contact Form 7模板中运行PHP的能力。您可以通过编写自己的短代码并将其添加到CF 7中来实现这一点。
首先,设置一个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,以便将简码添加到CF 7模板区域。使用此插件,您必须定义要用作“密钥”的代码,例如:

e_text key='e_text'

然后,您应该能够在CF 7表单模板和电子邮件模板中使用e_text简码。

uz75evzq

uz75evzq3#

谢谢你的建议JunkMyFunk。我试图实现这一点,但遇到了一些问题。
我最终找到了一个使用以下方法的解决方案:
1.安装WPML plugin.
1.在WP CF 7中为每种语言创建联系表单
1.使用以下条件语句显示每种语言的正确联系表单。

<?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"]');   
} 
?>

还是谢谢你的帮助-

unhi4e5o

unhi4e5o4#

这不起作用的原因是因为从v4.4.1开始,CF 7插件不再使用not include language环境,而是在worpdress翻译GlotPress中维护这些语言环境。因此,您需要手动安装区域设置,每种语言都需要一个区域设置。然后,您可以通过在 Jmeter 板url中添加locale属性来创建新语言的表单,例如,对于德语区域设置de_DE,
http://<your-domain>/wp-admin/admin.php?page=wpcf7-new&locale=de_DE
或者,您可以使用CF7 PolyLang module,它允许您使用PolyLang插件(WP推荐)以不同的语言管理CF 7表单。PolyLang是WPML的一种替代方案,
1.安装PolyLang插件并激活。
1.在 Jmeter 板设置->语言部分,将语言添加到您的polylang设置中。您添加的每种语言,polylang将管理这些语言中的每一种的内容。您网站的访问者将能够选择他们想要查看的语言内容,或者根据您选择的设置自动查看其浏览器默认语言。
1.接下来,安装CF 7模块并激活它。它将查找您在polylang设置中设置的语言,并下载正确的CF 7语言环境。它还将能够管理这些语文的表格。

相关问题