Проблемы локализации тем WordPress | Плагины для WordPress
Столкнулась я с одной проблемой при настройке своего блога, пытаясь перевести понравившуюся тему на русский язык. Точнее, перевести-то я её перевела (к счастью, дизайнер темы встроил такую возможность), но перевод не работал, и мне очень помогла найденная в Интернете статья. Спасибо автору! Вот выдержка главного из неё.
Все файлы локализации лежат в отдельной папке темы с именами: /languages, /lang, /local с расширениями — PO и MO.
Обычно файлы имеют имя, которое соответствует краткому формату языка. Русская локализация — ru_RU, английская — en_EN (Британия) или us_US (США), немецкая — de_DE и так далее.
Также в этой папке довольно часто может лежать файл с расширением .POT. Этот файл — программный, с помощью которого можно запустить процесс локализации на любой язык.
Иногда бывает так:
- Есть папка с файлами локализации или фалом POT
- Вы делаете перевод на русский (с помощью плагина или специального редактора Poedit)
- Сохраняете файл с расширением PO
- Создаете автоматически файл с расширением MO
- Все файлы лежат в папке локализации
- Но! Перевод не работает!
Почему?
Какая именно функция WordPress включает локализацию? Вот эта:
load_theme_textdomain ( 'theme-name', get_template_directory () . '/languages' );И что важно: эта функция в любой теме WordPress всегда должна включена в файле functions.php.
Итак варианты, когда может не работать локализация:Вариант 1 — автор темы или плагина мог забыть создать папку для хранения языковых файлов. Проверьте и если такой папки нет (как имя папки в функции) — создайте эту папку.
Вариант 2 — автор сделал иначе: папку создал, но путь к папке не прописал в функции, или — папка /lang, а в функции — имя папки, например /languages.
Вариант 3 — автор прописал функцию подключения локализации не в файле functions.php, а в другом.
Вариант 4 — автор просто забыл добавить функцию подключения локализации.
Источник: Проблемы локализации тем WordPress | Плагины для WordPress
От себя добавлю Вариант 5 — иногда уже существующие файлы темы названы так theme-name-en_CA.mo (так было у меня), что является неверным. Согласно документации на сайте WordPress, файлы обязаны называться только по названию локали. Когда я переименовала в ru_RU.mo, всё заработало. Возможно, в других темах это было учтено в functions.php, но если это первый перевод, то для автоматического его подхватывания самим движком WordPress надо делать вот так.
Свежие комментарии