Вопрос или проблема
У меня проблема с файлом .mo
.
У меня есть полностью функционирующая локализованная кастомная тема, которая сейчас работает на четырех языках: нидерландском, английском, французском и испанском. Есть одна проблема: английская локализация не работает. Остальные языки работают нормально.
Плагин перевода — это polylang. Плагин для создания файлов .po
и .mo
— CodeStyling Localization.
Файлы .po
и .mo
находятся в папке /language/
внутри моей темы.
Тема локализована и работает отлично на нидерландском (язык по умолчанию), французском и испанском. Однако когда я нахожусь в английской версии сайта, стандартные нидерландские слова появляются на локализованных строках.
Я пытался удалить английские файлы .mo
и .po
и пересоздать их заново, но это не помогло. Проблема не в файлах en_US.po
или en_US.mo
. Я просто скопировал их с сервера сайта и попробовал на другой установке WP. Все работало отлично.
У меня закончились идеи. У кого-нибудь есть предложения? Есть ли способ протестировать вызов английского файла .mo
и получить обратную связь от PHP? Любые идеи приветствуются.
Мои предложения:
- Проверьте язык настроек WordPress, он должен быть нидерландским.
- Отключите плагин и просто загрузите файлы
.mo
в/languages/
. - Вам нужно проверить вашу тему! Возможно, проблема в переопределении языка по умолчанию! Или …
По умолчанию WordPress на английском (en_US
), и все тексты также на этом языке. Я считаю, что перевод для этой локализации не выполнен. Вы можете изменить свою английскую локализацию на en_GB
, но я бы посоветовал сделать привычкой использовать английские (en_US
) тексты в ваших темах/плагинах по умолчанию. Таким образом, они всегда будут синхронизированы с ядром WP и другими плагинами. Все остальные языки можно делать с помощью файлов перевода.
Также, просто полезный совет, проверьте Loco Translate: https://nl.wordpress.org/plugins/loco-translate/
Ответ или решение
Проблема с неработающим файлом .mo
в вашей локализованной теме WordPress, особенно в английской версии, может иметь несколько причин. Мы рассмотрим важные моменты, которые необходимо проверить, а также предложим возможные решения.
1. Проверка общей конфигурации WordPress
- Настройки языка WordPress: Убедитесь, что в админ-панели WordPress выбран правильный язык для сайта. Перейдите в
Настройки
->Общие
и проверьте, выставлен ли там английский язык (например,English (United States)
). Если язык сайта установлен на нидерландский, то это может вызвать проблемы с выбором нужного языкового файла.
2. Расположение и имена файлов
- Структура папок и имена файлов: Проверьте, правильно ли размещены ваши файлы
.po
и.mo
. Они должны находиться в папке вашей темы, традиционно в/language/
. Убедитесь, что файлы называются корректно: English (en_US.mo и en_US.po). Также имейте в виду, что местоположение файлов может различаться в зависимости от настроек вашей темы.
3. Политика работы плагина Polylang
- Проверьте совместимость с Polylang: Полилинг может работать по-разному в зависимости от того, какая локализация выбрана в настройках. Попробуйте временно отключить плагин Polylang и проверьте, начнет ли английская локализация работать. Если это сработает, возможно, вам нужно будет настроить Polylang для правильного отображения английских языковых файлов.
4. Ручная проверка загрузки файла .mo
-
Тестирование загрузки файла
.mo
: Для проверки того, загружается ли файл.mo
, вы можете использовать следующий код в файлеfunctions.php
вашей темы:add_action('after_setup_theme', 'check_translation'); function check_translation() { load_theme_textdomain('your-text-domain', get_template_directory() . '/language/'); _ex('Hello', 'textdomain', 'theme-text-domain'); }
Замените
your-text-domain
на фактический домен вашего текста и запустите сайт на английском. Если вы видите требуемый текст, это значит, что файл загружается корректно.
5. Версия PHP и совместимость
- Проверьте версию PHP: Убедитесь, что ваша версия PHP совместима с установленными плагинами и темами. Иногда устаревшие версии PHP могут вызывать конфликты с текущими стандартами кодирования.
6. Рекомендации по переводу
- Рекомендованное решение: Если вышеизложенные рекомендации не привели к решению проблемы, рассмотрите возможность использования плагина Loco Translate. Этот плагин упрощает управление переводами и предоставляет более четкие инструменты для работы с файлами
.po
и.mo
.
Заключение
Понимание проблемы с локализацией может быть непростым, особенно когда разные языковые версии работают по-разному. Мы рекомендуем пошагово проверять каждый аспект, начиная с базовых настроек языка в WordPress и заканчивая правильной конфигурацией плагинов. Если вам не удается найти решение самостоятельно, рассмотрите возможность получения помощи от сообщества WordPress или профессионального разработчика, чтобы устранить проблему с английской локализацией вашей темы.