Contact Form 7: перевод и проверка форм
Для каких версий: Baza Helper 1.1 и новее с Contact Form 7. Для перевода форм нужен Polylang, WPML или другой многоязычный плагин.
Инструмент Contact Form 7 в Baza Helper переводит формы и помогает с их повседневным обслуживанием: загружает скрипты только там, где есть форма, защищает от спама без стороннего сервиса, добавляет языковые теги для писем, сохраняет сведения о неотправленных письмах и проверяет каждую форму.
Инструмент появляется только при активном Contact Form 7. Для перевода используются языки Polylang или WPML. Пустые ячейки можно заполнить через любую службу перевода, настроенную в инструменте Translate.
Шаг 1: Создайте форму на основном языке
Откройте Contact > Contact Forms и отредактируйте форму как обычно. Специальная разметка не нужна. Baza Helper самостоятельно находит:
- текст между тегами формы и подписи полей;
- подсказки внутри полей и текст кнопки отправки;
- варианты выпадающих списков, переключателей и флажков: в записи
Label|valueпереводится только подпись; - текст согласия в
[acceptance]вместе со ссылкой; - все сообщения формы, а также тему и текст письма посетителю.
<label class="field-name">[text* your-name placeholder "Name"]</label>
<label class="field-email">[email* your-email placeholder "Email"]</label>
<label class="field-text">[textarea* your-text x3 placeholder "Message"]</label>
[acceptance acceptance-privacy]I agree to the <a href="/privacy-policy/">privacy policy</a> and consent to the processing of my personal data.[/acceptance]
[submit "Send"]Значения текстовых полей по умолчанию, параметры class и id, а также письмо владельцу сайта остаются без изменений. Письмо владельцу сайта сохраняет язык сайта.
Шаг 2: Откройте инструмент
Перейдите в Baza Helper > Contact Form 7. В карточке Translated forms находится таблица: каждый текст формы занимает отдельную строку, каждый язык сайта — отдельный столбец. Убедитесь, что включены Translate the forms и Find the texts without braces.
Шаг 3: Заполните переводы
- Нажмите Translate the empty cells, чтобы получить варианты от инструмента Translate, или введите переводы самостоятельно.
- Если раньше вы использовали строки Polylang, нажмите Import from Polylang strings, чтобы импортировать их.
- Проверьте ячейки и нажмите Save. Кнопки выше заполняют только пустые ячейки и не перезаписывают введённый вами текст.
Перевод может содержать HTML. Например, в тексте согласия можно указать отдельную ссылку для каждого языка: /de/datenschutz/ для немецкого.
Совет: одинаковый текст из нескольких форм переводится один раз. Во всех формах записывайте ссылку в тексте согласия одинаково, например /privacy-policy/. Иначе для каждого варианта появится отдельная строка.
Шаг 4: Проверьте результат
Откройте страницу с формой на каждом языке. Посетитель видит форму на языке страницы; при отправке этот язык сохраняется. Если перевод текста отсутствует, показывается исходный текст на основном языке. Сама форма в редакторе не изменяется.
Шаг 5: Переведите текст, который не находит автоматический поиск
Если текст находится в области, которую поиск пропускает, например в письме владельцу сайта, заключите его в фигурные скобки: {Message from the site}. Он будет переведён и показан без скобок. Чтобы использовать только такой способ разметки, выключите Find the texts without braces.
Ключом перевода служит точный исходный текст. Если вы измените текст в форме, перевод потребуется заполнить заново: в таблице появится пустая ячейка.
Скорость загрузки и разметка
В карточке Speed and tidiness можно:
- загружать скрипты Contact Form 7, reCAPTCHA и Turnstile только на страницах с формой;
- отключить загрузку стилей Contact Form 7, если оформление форм уже задаёт тема;
- отключить автоматические абзацы и переносы строк, чтобы форма выводилась точно по вашей разметке. После включения проверьте её внешний вид.
Защита от спама без стороннего сервиса
В карточке Spam включите Block spam without a service. Скрытое от посетителей поле и проверка минимального времени между показом и отправкой формы помогают выявлять ботов. Укажите минимальное время заполнения в секундах. Пока кеш страницы не очищен, посетители могут получать старую копию формы; такая форма не проверяется.
Почта
- Почтовые теги. Добавьте
[_language]или[_language_name]в тему или текст письма, чтобы видеть язык отправленной формы. - Неотправленные письма. Инструмент хранит сведения о последних 30 письмах, которые не удалось отправить: форму, время и причину ошибки. Данные посетителей по-прежнему сохраняются в записях отправленных форм.
Проверка форм
Последняя карточка проверяет каждую форму и показывает, что можно исправить:
- не указан получатель письма — ошибка;
- отправитель использует другой домен или в качестве отправителя указан адрес посетителя — предупреждение;
- отсутствует Reply-To, флажок согласия или защита от спама;
- для части языков сайта отсутствуют переводы;
- страницы, на которых размещена форма, со ссылками на их редактирование.
Если замечаний нет, рядом с формой показывается Nothing to improve.
