2012-02-06 2 views
3

мне удалось локализовать моих клиентов сайт с испанского на французский:Как я могу локализовать имена полей в Contact Form 7

http://www.microcementoeuropeo.com

... используя комбинацию плагина 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-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 через admin, а не непосредственно в файл .php).

Я знаком с созданием файлов .po/.mo и знаю, как локализовать обычный текст с жестким кодом, но контактная форма 7 меня озадачила.

Любые предложения оценены.

ответ

1

Вам не нужно ничего из этого.Проверьте ссылку ниже специально secition «Создание контактной формы на разных языках»

contact form in your language

1

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

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

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

Спасибо за вашу помощь все же -

+1

Небольшое предложение заключается в использовании постоянной переменной ICL_LANGUAGE_CODE вместо get_bloginfo ('language'). ICL_LANGUAGE_CODE содержит короткий ключ текущего языка, управляемый самим WPML. Поэтому для английского языка он вернется «en». –

0

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

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

В качестве альтернативы, вы можете использовать CF7 PolyLang module, который позволяет управлять CF7 форм на разных языках с использованием плагина PolyLang (recommended by WP). PolyLang является альтернативой WPML,

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

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/12263523) – RAnders00

+0

Прошу прощения, но в этом случае вы также должны удалить первый ответ в этом вопросе, это тоже ссылка только без демонстрации. Однако я добавлю немного больше к моему ответу, так что мы не закончим здесь бесконечным циклом. – Aurovrata

Смежные вопросы