Как я могу локализовать метки полей в контактной форме 7 - PullRequest
4 голосов
/ 06 февраля 2012

Мне удалось локализовать сайт моих клиентов с испанского на французский:

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 ]

2 голосов
/ 28 ноября 2013

Тебе это не нужно.Проверьте ссылку ниже специально раздел "Создание контактной формы на разных языках"

контактная форма на вашем языке

1 голос
/ 04 апреля 2012

Спасибо за предложение JunkMyFunk.Я попытался реализовать это, но столкнулся с некоторыми проблемами.

В конце концов я нашел обходной путь, используя следующий метод:

  1. Установка WPML-плагин.
  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"]');   
    } 
    ?>
    

Спасибо за помощь все равно -

1 голос
/ 06 февраля 2012

Я думаю, что решение вашей проблемы заключается в возможности запустить PHP в шаблоне Contact Form 7. Вы можете сделать это, написав свой собственный короткий код, а затем добавив его в 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'

Тогда вы сможете использовать короткий код e_text в шаблоне формы CF7 и шаблонах электронной почты.

0 голосов
/ 06 мая 2016

Причина, по которой это не работает, заключается в том, что начиная с версии 4.4.1 плагин CF7 больше не включает язык локали, они поддерживаются в переводе worpdress GlotPress . В результате вам нужно установить локали вручную, по одному для каждого языка, для которого вы хотите создать формы. Затем вы можете создать форму на новом языке, добавив атрибут locale в URL своей панели, например, для немецкого языка de_DE,

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

Кроме того, вы можете использовать модуль CF7 PolyLang , который позволяет управлять формами CF7 на разных языках с помощью плагина PolyLang (, рекомендованный WP ). PolyLang является альтернативой WPML,

  1. Установите плагин PolyLang и активируйте.
  2. В разделе «Настройки панели инструментов-> Язык» добавьте языки к своим настройкам многоязычия. Каждый язык, который вы добавляете, polylang будет управлять контентом на каждом из этих языков. Посетители вашего сайта смогут выбирать язык для просмотра или автоматически просматривать язык браузера по умолчанию в зависимости от выбранных вами настроек.
  3. Далее установите модуль CF7 и активируйте его. Он найдет языки, которые вы установили в настройках polylang, и загрузит правильную локаль CF7. Это также позволит управлять формами на этих языках.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...