Автор: Stasyuk Eugene 114 Метки: , 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');

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

Cloudabove hosting: как очистить кеш на сервере программно.

Cloudabove hosting: как очистить кеш на сервере программно.

Cloudabove hosting: как очистить кеш на сервере программно.

Cloudabove имеет возможность ускорить сайт путем кеширования на сервере. По умолчанию этот кеш очищается каждые 15 минут. Это довольно весомо ускоряет сайт, но при этом влияет на отображение контента. Например, в моем случае опубликованный пользователем отзыв на товар появлялся только спустя 15 минут. Очистить кеш довольно просто. В основе этого лежит GET запрос на https://scout.cloudabove.com/api/cache/purge. […]

Простой звездный рейтинг stars

Простой звездный рейтинг

Простой звездный рейтинг

В этой статье я покажу как сделать визуальную часть звездного рейтинга. А именно: как можно стилизовать как правильно сделать hover как правильно сохранить заливку звезды после клика Готовый вариант: Разметка В качестве разметки у нас есть блок контейнер с классом .rate внутри которого я разместил 5 ссылок. В качестве звезды я использовал шрифт. Но скорее […]