Автор: Stasyuk Eugene 124 Метки: , 02.05.2022

Работая над созданием темы на WordPress мы довольно часто сталкиваемся с такими надписями как «загрузить еще, автор, метки» и т.д. Например как в моем блоге:

Пример записей

Хорошо когда сайт на одном языке. Тогда с ними то особо делать ничего и не нужно. Но что делать когда сайт мультиязычный.

Если заказчику в перспективе нет необходимости в будущем менять их названия, тогда и смысла выводить для редактирования в админку их тоже нет.

На просторах интернета довольно много информации в которой фигурирует использование программы Poedit. Но есть куда более изящный способ. Для этого нам пригодится плагин Loco Translate. Данное дополнение крайне полезное в использовании — благодаря ему можно переводить не только записи тем, но и плагинов. Но конкретно сегодня поговорим про перевод темы.

За подсказку в данном вопросе отдельное спасибо Александру Мотцу. Он как раз таки и навел меня на этот способ.

Здесь я не буду сильно вдаваться в теорию. Сосредоточимся конкретно на процессе.

Этапы:

  1. В файлах с темой нужные нам записи помещаем в одну из этих функций _e(), __(); Разница между этими функциями лишь в том, что _e() сразу выводит текст на странице, а __() только его получает (поэтому для выода текста перевода нужно использовать echo).
    _e('Author', 'my-site');
    echo __('Author', 'my-site');

    Функции имеют два аргумента: Первый — текст, который будем переводить (обязательный). Второй: ID перевода. Область определения перевода, обозначается названием, которое затем станет идентификатором в PHP (необязательный).
    Функции

  2. Загружаем к себе на сайт плагин Loco Translate
  3. В админ-панеле в левом меню находим пункт Loco Translate, наводим на него мышкой и кликаем на пункт Темы.В меню
  4. Мы оказались на странице где выведены все загруженные темы которые нам доступны для использования на сайте. Выбираем нашу текущую тему. В данном случает это тема под названием «My»Темы
  5. Прежде чем переходить к следующему этапу, рекомендую в папке с темой создать директорию с названием languages. Здесь мы будем хранить все файлы которые связаны с переводом нашей темы.languages
  6. После пункта 4, если вы создаете тему с нуля, то скорее всего на открывшейся странице вас встретит вот такое сообщение — Не найдено переводов для «name». Поэтому следующим шагом кликаем на надпись выше «Создать шаблон».
    Нет-шаблона Таким образом плагин сканирует нашу тему и все надписи которые мы объявили в теме с использованием функций в пункте 1 выведет в файл в .pot формате — это будет шаблон для переводов без самого перевода.
  7. Далее мы создаем непосредственно перевод записей. Кликаем на надпись «Новый язык».Новый язык
  8. В данном окне настраиваем язык на который будем переводить и место куда будем сохранять файл перевода (В моем случае мы переводим тему на украинский язык и сохраняем файл в папку languages). Настройки языкаЗакончив с этим кликаем внизу на кнопку «Начать перевод». Результатом данного шага у нас будут два файла перевода в формате .po и .mo.
  9. Далее мы находим надписи которые мы будем переводить. В области со списком надписей находим нужную и кликаем по ней. У нас будут доступны два поля внизу: первое это то, как отображается надпись в теме, второе — то как эта надпись должна будет отображаться в переводе. Собственно во втором поле и вводим нужный нам перевод и сохраняем изменения. Все остальные надписи мы переводим таким же способом.
    перевод
  10. Последний штрих — это загрузить файл перевода темы (.mo). Делаем мы это с помощью функции load_theme_textdomain() которая будет использоваться в хуке after_setup_theme. Данный код помещаем в файл темы functions.php:
    function my_theme_setup()
    {
    load_theme_textdomain('my-site', get_template_directory() . '/languages');
    }
    add_action('after_setup_theme', 'my_theme_setup');

Другие статьи

ACF поля в текстовом редакторе Gutenberg

ACF поля в текстовом редакторе Gutenberg

ACF поля в текстовом редакторе Gutenberg

Gutenberg — уже довольно долго используется в WordPress в качестве основного текстового редактора. Я, наверное, как и большинство разработчиков не особо горел желанием его использовать. Тем более, что в качестве альтернативы можно было загрузить плагин Classic Editor и дальше пользоваться старым редактором. Но, по мере использования Gutenberg, я увидел большое количество его преимуществ и таким […]

Якорные ссылки и фиксированный header

Якорные ссылки и фиксированный header

Якорные ссылки и фиксированный header

В последнее время я уже давно не встречал сайты, которые не имеют фиксированный header. Такой подход уже стал обычной практикой. Как минимум очень удобно когда навигация по сайту всегда находится под рукой. Но есть один момент, который может доставить дискомфорт при таком подходе — это якорные ссылки. Обычно при клике на такую ссылку, секция с […]