Працюючи над створенням теми на WordPress, ми досить часто стикаємося з такими написами як “завантажити ще, автор, мітки” і т.д. Наприклад, як у моєму блозі:
Добре, коли сайт однією мовою. Тоді з ними робити нічого і не потрібно. Але що робити, коли сайт мультимовний.
Якщо замовнику в переспективі немає потреби у майбутньому змінювати їх назви, тоді й сенсу виводити для редагування в адмінку їх також немає.
На просторах інтернету досить багато інформації, в якій фігурує використання програми Poedit. Але є набагато витонченіший спосіб. Для цього нам знадобиться плагін Loco Translate. Дане доповнення дуже корисне у використанні – завдяки йому можна перекладати не тільки записи тем, але й плагінів. Але сьогодні поговоримо про переклад теми.
За підказку в цьому питанні окреме дякую Олександру Мотцу. Він саме й навів мене цим способом.
Тут я не сильно вдаватимуся в теорію. Зосередимося безпосередньо на процесі.
Етапи:
- У файлах з темою необхідні нам записи поміщаємо в одну з цих функцій _e(), __(); Різниця між цими функціями лише в тому, що _e() відразу виводить текст на сторінці, а __() тільки його отримує (тому для виводу тексту перекладу потрібно використовувати echo).
_e('Author', 'my-site'); echo __('Author', 'my-site');
Функції мають два аргументи: Перший – текст який перекладатимемо (обов’язковий). Другий: ID перекладу. Область визначення перекладу, позначається назвою, яка потім стане ідентифікатором PHP (необов’язковий).
- Завантажуємо до себе на сайт плагін Loco Translate
- В адмін-панелі в лівому меню знаходимо пункт Loco Translate, наводимо на нього мишкою та клацаємо на пункт Теми.
- Ми опинилися на сторінці, де виведені всі завантажені теми, які нам доступні для використання на сайті. Вибираємо поточну тему. У цьому випадку це тема під назвою “My”
- Перш ніж переходити до наступного етапу, рекомендую в папці з темою створити директорію під назвою languages. Тут ми будемо зберігати всі файли, які пов’язані з перекладом нашої теми.
- Після пункту 4, якщо ви створюєте тему з нуля, то швидше за все на сторінці вас зустріне ось таке повідомлення – Не знайдено перекладів для “name”. Тому наступним кроком клацаємо на напис вище “Створити шаблон”.
Таким чином плагін просканує нашу тему і всі написи, які ми оголосили в темі з використанням функцій у пункті 1, виведе у файл у .pot форматі – це буде шаблон для перекладів без самого перекладу. - Далі ми створюємо безпосередньо переклад записів. Клацаємо на напис “Нова мова”.
- У цьому вікні налаштовуємо мову на яку перекладатимемо і місце куди зберігатимемо файл перекладу (У моєму випадку ми перекладаємо тему на українську мову і зберігаємо файл у папку languages).Закінчивши з цим, клацаємо внизу на кнопку “Почати переклад”. Результатом цього кроку у нас будуть два файли перекладу у форматі .po та .mo.
- Далі ми знаходимо написи, які ми будемо перекладати. В області зі списком написів знаходимо потрібну та клацаємо по ній. У нас будуть доступні два поля внизу: перше це те, як відображається напис у темі, друге – те, як цей напис повинен буде відображатися в перекладі. Власне, у другому полі і вводимо потрібний нам переклад і зберігаємо зміни. Всі інші написи ми перекладаємо таким самим способом.
- Останній штрих – це завантажити файл перекладу теми (.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');