WPML

Перед началом работы

Установите и активируйте следующие плагины:

  • Contact Form 7.
  • WPML и WPML Перевод строк.
  • WPML Multilingual for CF7 (дополнение, о котором идет речь на этой странице).

Создайте форму в Contact Form 7 на исходном языке Вашего сайта (каждый тег формы, шаблоны писем Mail и Mail (2), каждую запись на вкладке «Сообщения» и любые дополнительные настройки) перед отправкой формы на перевод. Вы сможете отредактировать форму позже и отправить ее на перевод повторно, если что-то изменится.

Режим «Переводить все автоматически» сделает это за Вас

Если на Вашем сайте включен режим Переводить все автоматически, Вам не нужно отправлять форму на перевод вручную. WPML находит новые и обновленные формы вместе с остальным контентом и переводит их в фоновом режиме. Описанный ниже шаг вставки на страницу по-прежнему актуален, но шаг отправки формы на перевод выполняется автоматически. В остальной части этой страницы описывается ручной процесс для сайтов, использующих режим Переводить выборочно: Вы выбираете, что переводить (или для форм, которые Вы хотите перевести вне автоматической очереди).

Отправка формы на перевод

  1. Перейдите в WPML > Переводы > Панель управления.
  2. Разверните раздел Контактные формы.
  3. Отметьте форму, которую хотите перевести.
  4. Выберите метод перевода: PTC (рекомендуется), Ваш переводчик или Переводить самому.
  5. Нажмите Перевести.

Шаблон формы, письма Mail и Mail (2), а также вкладка «Сообщения» попадают в одно задание на перевод. Переводчики видят их как подписанные строки в Расширенном редакторе переводов.

Вставка формы на переведенные страницы

Contact Form 7 размещается на странице или в записи с помощью шорткода [contact-form-7], который обычно генерируется на экране админ-панели Контакты в виде [contact-form-7 id="123" title="My Form"]. Правило вставки для мультиязычных сайтов:

Используйте один и тот же шорткод во всех языковых версиях страницы. Не создавайте отдельную форму для каждого языка.

Рабочий процесс:

  1. Создайте форму один раз на исходном языке.
  2. Отправьте форму на перевод (или позвольте режиму Переводить все автоматически сделать это).
  3. Вставьте шорткод в страницу на исходном языке.
  4. Переведите страницу через WPML > Переводы > Панель управления так же, как Вы переводите любую другую страницу. Шорткод сохранится на переведенной странице.
  5. Когда посетитель открывает переведенную страницу, WPML Multilingual for CF7 автоматически показывает форму на языке посетителя — тот же шорткод, переведенный контент.

Вам не нужен отдельный ID формы для каждого языка. Перевод связан с исходной формой; связующий плагин определяет нужную языковую версию во время рендеринга на основе языка страницы.

Шорткоды на основе ID и на основе заголовка работают одинаково хорошо. [contact-form-7 id="123" title="Contact form 1"] работает на мультиязычных сайтах сразу после установки. [contact-form-7 title="Contact form 1"] (только заголовок, без ID) также определяет правильный язык. Определение только по заголовку появилось в версии 1.1.0 (июнь 2021 года). Оба варианта безопасны.

Исключение — когда Вам действительно нужны разные формы для разных языков. Если Вам нужны структурно разные формы для каждого языка (разные теги форм, разные шаблоны писем, разный контент на вкладке «Сообщения»), создайте отдельные формы в Contact Form 7 и вставьте шорткод каждой из них в соответствующую языковую версию страницы с помощью редактора WordPress для этого перевода. Это единственная ситуация, когда шорткоды отличаются в зависимости от языка.

Особенность конструкторов страниц

Если Ваша страница создана в Divi, Elementor или другом конструкторе страниц, текстовый модуль которого оборачивает шорткод, при переводе шорткод не всегда переносится корректно. Если на переведенной странице отображается форма на исходном языке, откройте переведенную страницу в конструкторе страниц и вставьте шорткод [contact-form-7] туда заново. В стандартном редакторе блоков WordPress и классическом редакторе такой проблемы нет.

Метки тегов форм и видимые посетителям строки

Весь видимый посетителям контент тегов форм переводится: метки (текст за пределами тега в скобках), метки кнопок (значение в [submit "Send"]), плейсхолдеры, заданные через параметр placeholder, а также значения параметров внутри тегов [checkbox], [radio] и [select].

Тип и имя тега формы не переводятся. Это идентификаторы. Значения тега формы (варианты, видимые посетителю) переводятся. Пример:

[select your-country "China" "India" "San Marino"]

Во французском переводе "China" становится "Chine", тогда как your-country (имя тега формы) и select (тип) остаются неизменными. Подстановка тегов писем по-прежнему работает, поскольку перевод сохраняет позицию каждого значения.

Значения, разделенные вертикальной чертой — переводите метку, сохраняйте значение неизменным

Синтаксис с вертикальной чертой позволяет отделить видимую посетителю метку от значения, отправляемого в письме:

[select your-country
  "Chinese|CN"
  "Indian|IN"
  "Sammarinese|SM"]

При переводе этой формы переводятся только метки (Chinese, Indian, Sammarinese). Значения (CN, IN, SM) остаются каноническими. Французский посетитель видит Chinois, Indien, Saint-Marinais; тело письма и любой внутренний обработчик по-прежнему получают CN, IN, SM. Используйте синтаксис с вертикальной чертой везде, где необходимо, чтобы отправленное значение оставалось стабильным на всех языках: для сопоставлений в CRM, артикулов (SKU) платежей, географических кодов.

Теги принятия условий (Acceptance) и викторин (Quiz)

Чекбокс Acceptance содержит текст согласия и обычно одну или несколько встроенных ссылок на страницы политики конфиденциальности и условий использования. Переведите текст как одну строку в задании на перевод; что касается целевых ссылок, отредактируйте переведенную строку так, чтобы она указывала на страницы конфиденциальности и условий для каждого конкретного языка.

В тегах Quiz переводятся как вопрос, так и ответ. Используйте синтаксис с вертикальной чертой для ответов викторины, чтобы логика принятия правильного ответа оставалась предсказуемой на всех языках:

[quiz captcha
  "1+1=?|2"
  "2+3=?|5"]

Вкладка «Сообщения»

Вкладка Сообщения в Contact Form 7 содержит ~16 редактируемых строк валидации — тех, которые посетители видят при отправке и при ошибках. Все они переводятся в одном задании:

  • Спасибо за Ваше сообщение. Оно успешно отправлено.
  • Одно или несколько полей содержат ошибку. Пожалуйста, проверьте и попробуйте еще раз.
  • При попытке отправки Вашего сообщения произошла ошибка. Пожалуйста, попробуйте позже.
  • Это поле обязательно для заполнения.
  • Неверный адрес электронной почты.
  • Неверный номер телефона.
  • Неверный URL-адрес.
  • Число меньше минимально допустимого.
  • Число больше максимально допустимого.
  • Неверный формат даты.
  • Файл слишком большой.
  • Формат файла не поддерживается.
  • Необходимо отметить чекбокс принятия условий.
  • Ответ на викторину неверен.
  • (плюс остальные сообщения по умолчанию, поставляемые с CF7).

Если на Вашей вкладке «Сообщения» используются теги писем для подстановки введенных данных (Спасибо, [your-name], Ваше сообщение отправлено!), тег письма по-прежнему будет корректно обрабатываться после перевода.

Письма Mail и Mail (2)

Два шаблона исходящих писем Contact Form 7 — Mail (уведомление администратору) и Mail (2) (необязательный ответ или автоответчик посетителю) — переводятся независимо друг от друга. Кому, От кого, Тема, Дополнительные заголовки, Тело письма и описания Прикрепленных файлов — все это находится в задании на перевод. Теги писем внутри переведенного текста ([your-name], [your-message], [your-email]) обрабатываются корректно.

Для Mail (2) перевод важнее всего именно в теле автоответчика, которое видит посетитель. Это сообщение, которое попадает в почтовый ящик посетителя. Отправьте тестовое сообщение с переведенной страницы и убедитесь, что автоответчик приходит на языке посетителя.

Интеграции для отправки данных

У Contact Form 7 есть небольшой, но важный набор интеграций. Каждая из них сохраняет язык посетителя при настроенном переводе:

  • Flamingo. Дополнение от автора Contact Form 7 для управления отправленными данными. Отправленные данные попадают в раздел Контакты > Входящие сообщения с сохраненным переведенным заголовком и телом сообщения.
  • Constant Contact. Официальная интеграция CF7 для email-маркетинга. Введенные посетителем данные поступают в Ваши списки Constant Contact на языке посетителя.
  • Stripe. Поля тега формы [stripe] в Contact Form 7 и текст сообщения о квитанции появляются в задании на перевод.
  • Akismet. Сообщения защиты от спама переводятся через WPML Перевод строк (а не в задании на перевод формы).
  • reCAPTCHA. Видимое посетителю сообщение об ошибке переводится через WPML Перевод строк.

Распространенные ошибки

  • Условия принятия со встроенной ссылкой указывают на страницу конфиденциальности не на том языке. Отредактируйте перевод условий принятия в Расширенном редакторе переводов и задайте целевые ссылки для каждого языка.
  • Несовпадение хэша шорткода в CF7 6.0+. Проблема решена в WPML Multilingual for CF7 1.3.2 (ноябрь 2024 года). Обновите плагин, если столкнетесь с этим.
  • Переводы вкладки «Сообщения» не отображаются. Убедитесь, что WPML Перевод строк активен, и что форма была повторно отправлена на перевод после редактирования вкладки «Сообщения».
  • Теги писем внутри переводов обрабатываются как пустые строки. Убедитесь, что имя тега формы в теге письма (например, [your-name]) совпадает с тегом формы в самой форме. Перевод никогда не нарушает обработку тегов писем, но переименование тега формы после перевода ее нарушит.

Автор: Amir · Последнее обновление: 2 июля 2026 года

Автор: Amir · Последнее обновление: 2 июля 2026