Главная/WordPress Fullstack/Блупринты/Кастомные темы/Полная интернационализация (i18n) кастомной темы и интеграция с Polylang / WPML
К карточкам раздела «Кастомные темы»
Кастомные темы(ТЗ 27 из 54)
ТЗ: Полная интернационализация (i18n) кастомной темы и интеграция с Polylang / WPML
Кастомные темы5 шагов • +25 XP

ТЗ: Полная интернационализация (i18n) кастомной темы и интеграция с Polylang / WPML

Архитектура многоязычного сайта: правильная интернационализация строковых литералов, компиляция .pot файлов через WP-CLI, кастомный селектор языков и поддержка арабского/иврита (RTL-верстка).

~9 ч работыУровень: JuniorPHP 8.3load_theme_textdomain()WP-CLI (wp i18n make-pot)Polylang API (pll_the_languages)gettext functions (__, _e, _n, _x)rtl.css & CSS Logical Properties
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~9 рабочих часов
Фриланс вилка~$405 – $675 (€360 – €630)
Оценка веб-студии~$855 – $1,440 (€810 – €1350)

ТЗ заказчика (исходный бриф):

«Компания выходит на международный рынок (английский, испанский, немецкий и арабский языки). Кастомная тема должна быть на 100% готова к мультиязычности: все тексты шаблонов переводимы через Polylang/WPML, создан стильный селектор языков, а для арабского языка сайт должен автоматически перестраиваться в режим справа-налево (RTL).»
Ключевые требования:
  • •Все строковые литералы в PHP и JS вынесены в функции gettext с доменом темы
  • •Автоматическая компиляция .pot каталога переводов через WP-CLI
  • •Кастомный селектор языков в шапке темы (флаги, краткие коды языков EN / DE / RU)
  • •Совместимость с Polylang и WPML без фатальных ошибок при их отключении
  • •Полная поддержка RTL (Right-to-Left) для арабского языка через файл rtl.css
Ограничения проекта:
  • •Запрет на использование переменных внутри первого аргумента функций __() и _e()
  • •Текстовый домен (textdomain) должен строго совпадать с именем папки темы
  • •Код должен работать даже если плагин мультиязычности деактивирован
Критерии приёмки (KPI):
  • 0 непереведенных строк при сканировании темы в Poedit или Loco Translate
  • 0 ошибок валидации WP Theme Check по секции i18n
  • Корректное зеркальное отображение макета в режиме RTL (стрелки, отступы)

Конфигурация блупринта под условия проекта

Выберите архитектуру и стек — шаги роадмапа, структура файлов и примеры кода переключатся автоматически:

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 5

Инициализация textdomain через load_theme_textdomain()

~20 минЛегкий

Практическое руководство:

В functions.php на хуке after_setup_theme вызовите load_theme_textdomain("my-custom-theme", get_template_directory() . "/languages"). Создайте папку languages в корне темы.

План и контрольные точки реализации:
1Добавить Text Domain в заголовок style.css
2Вызвать load_theme_textdomain на хуке after_setup_theme
3Создать директорию languages/ в корне темы
Важные технические нюансы и подводные камни:

Имя текстового домена должно строго совпадать со слагом темы в style.css (Text Domain: my-custom-theme).

Ожидаемый артефакт этапа:

Инициализированная система локализации темы.

2
Этап 2 из 5

Рефакторинг шаблонов с функциями gettext (__, _e, _n, _x)

~50 минСредний
3
Этап 3 из 5

Генерация .pot каталога переводов через WP-CLI

~25 минЛегкий
4
Этап 4 из 5

Разработка кастомного переключателя языков в шапке темы

~35 минСредний
5
Этап 5 из 5

Поддержка RTL (Right-to-Left) и создание rtl.css

~30 минЛегкий

Типичные грабли на этом ТЗ

2 антипаттерна

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция