Как провести интернационализацию темы или плагина?
Май 16th, 2012 Archi
Интернационализация темы обычно не вызывает особых проблем.
Для начала необходимо добавить к своей теме textdomain и установить определенную директорию для дополнительных языков. Это делается с помощью простого сниппета, размещенного в файле functions.php:
В четвертой строке вы можете увидеть mytheme. Это и будет выступать вашим textdomain — вам понадобится задать вместо него название вашей темы. Если название темы слишком длинное, вы можете заменить его чем-то более коротким. Убедитесь в том, что оно является уникальным. Если вы используете дочернюю тему, то вам понадобится заменить load_theme_textdomain на load_child_theme_textdomain.
Если бы вы решились когда-либо в будущем локализовать свою WordPress тему, вам понадобилось бы просто добавить .mo файлы в языковую директорию.
После установки textdomain идет фактическая интернационализация строк в вашей теме. Первое – это отображение переведенного текста. Давайте взглянем на тему Sunny Blue Sky, которая является одной из последних тем, добавленных в каталог WordPress. Через SVN мы можем взглянуть на файлы этой темы. Первый же файл 404.php демонстрирует распространенную ошибку:
01
<h1 class="content-title">Error 404 - Not Found</h1>
02
03
<p>Apologies, but the page you requested could not be found.</p>
Правильный способ записи этих строк:
01
<h1 class="content-title"><?php _e('Error 404 - Not Found', 'sunny-blue-sky'); ?></h1>
02
03
<p><?php _e('Apologies, but the page you requested could not be found.', 'sunny-blue-sky'); ?></p>
Не так трудно исправить, не правда ли?
Следующим шагом идет обработка переведенного текста. Чтобы показать это на примере, я возьму строки из файла functions.php:
Чтобы не вдаваться в детали написания строк – по данному вопросу в сети очень много информации – я просто приведу несколько примеров, как можно это осуществить.
printf( __('Your city is %1$s, and your zip code is %2$s.', 'mytheme- textdomain'), $city, $zipcode);
В кодексе WordPress содержится прекрасное .
Как только вы полностью проведете интернационализацию своей темы, вам останется просто добавить .pot или .po файл, чтобы переводчики смогли сделать свою работу по созданию .mo файлов, содержащих в себе готовую трансляцию. Вы можете добавить .po файл в языковую директорию.
С помощью инструмента POEdit можно быстро создать .pot, .po и .mo файлы для интернационализированной темы или плагина.