Wordpress 如何定位联系人表单7中的字段标签
我已成功将我的客户网站从西班牙语本地化为法语: …使用WPML插件和Gettext框架的组合。我唯一没有成功翻译的是联系表itslef上的标签:Wordpress 如何定位联系人表单7中的字段标签,wordpress,localization,contact-form-7,Wordpress,Localization,Contact Form 7,我已成功将我的客户网站从西班牙语本地化为法语: …使用WPML插件和Gettext框架的组合。我唯一没有成功翻译的是联系表itslef上的标签: <p>Nombre<br /> <span class="wpcf7-form-control-wrap your-name"><input type="text" name="your-name" value="" class="wpcf7-text wpcf7-validates-as-requir
<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
电子邮件
Teléfono
…所以我要翻译的文本是“Nombre”-法语
我尝试过适用于其他硬编码区域的gettext方法:
<p><?php _e('Nombre', theme_domain);?><br />
<p><?php __('Nombre', theme_domain);?><br />
…但这不起作用
(我通过admin将这些内容添加到wordpress中,而不是直接添加到.php文件中)
我熟悉创建.po/.mo文件,知道如何本地化普通硬编码文本,但联系表单7让我感到困惑
非常感谢您的建议。我认为您的问题的解决方案在于能够在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');
e_text key='e_text'
(免责声明:我还没有测试过!)
然后,您可以使用,这样您就可以将短代码添加到CF7模板区域。使用此插件,您必须定义要用作“键”的代码,例如:
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');
e_text key='e_text'
然后,您应该能够在CF7表单模板和电子邮件模板中使用e_text shortcode。谢谢您的建议JunkMyFunk。我试图实现这一点,但遇到了一些问题 我最终使用以下方法找到了一个解决方法:
<?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"]');
}
?>
你不需要这些。查看下面的链接,特别是“创建不同语言的联系人表单”部分
这不起作用的原因是,从v4.4.1开始,CF7插件不再使用locale,而是将其保存在WorpAddress翻译中。因此,您需要手动安装区域设置,每个语言对应一个要为其创建表单的语言。然后,您可以通过在仪表板url中添加locale
属性,以新语言创建表单,例如德语locale de_de
http:///wp-admin/admin.php?page=wpcf7-新建(&locale=de_de)
或者,您可以使用,它允许您使用插件()管理不同语言的CF7表单。PolyLang是WPML的替代品
安装PolyLang插件并激活
在仪表板设置->语言部分,将语言添加到多段语言设置中。对于您添加的每种语言,polylang都将以每种语言管理内容。您网站的访问者可以选择要查看的语言内容,或根据您选择的设置自动查看浏览器默认语言李>
接下来,安装并激活CF7模块。它将查找您在polylang设置中设置的语言,并下载正确的CF7语言环境。它还将使管理这些语文的表格成为可能
虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-我很抱歉,但在这种情况下,你也应该删除这个问题的第一个答案,它也只是一个链接,没有演示。不过,我将在我的答案中再添加一点,这样我们就不会在这里陷入无限循环。有一点建议是使用常量变量ICL_LANGUAGE_代码,而不是get_bloginfo('LANGUAGE')。ICL_语言_代码包含当前语言的快捷键,由WPML自己管理。因此,对于英语,它将返回“en”。