Перевод плагина не отображается.

Вопрос или проблема

Я хотел бы изменить переводимый текст плагина, который я использую, Buddypress Group Email Subscription. Текст следующий: No Email (users will read this group on the web - good for any group - the default), и я хочу изменить его на No Email (users will read this group on the web - good for any group), поскольку это не совсем по умолчанию. Вот что я сделал до сих пор:

  • скопировал файл .pot в bp-ass-en_US.po (так как все другие файлы переводов для плагина представлены в форме bp-ass-xx_XX.po).
  • отредактировал соответствующие строки, чтобы они выглядели так:

    #: bp-activity-subscription-functions.php:1087
    msgid ""
    "No Email (users will read this group on the web - good for any group - the "
    "default)"
    msgstr ""
    "No Email (users will read this group on the web - good for any group)"

  • скомпилировал файл .po в файл .mo (msgfmt -o bp-ass-en_US.mo bp-ass-en_US.po), и поместил их оба, bp-ass-en_US.mo и bp-ass-en_US.po, в /wp-content/languages.

  • Также попытался разместить эти файлы в /wp-content/languages/buddypress-group-email-subscription и /wp-content/languages/bp-ass.

Но перевод не применился. Я все еще вижу старый текст. Я не могу понять, что я делаю неправильно. Я проверил файл .po, чтобы убедиться, что нет подобной строки в другом месте, которую я должен отредактировать вместо этой, но она только одна.

Для справки, вот вызывающая проблемы строка в коде плагина:

<?php _e( 'No Email (users will read this group on the web - good for any group - the default)', 'bp-ass' ) ?></label>

Вы делаете все правильно. Либо плагин неверно включает свою папку языков и текстовый домен, либо ваш регион неправилен.

Примечание: следующий абзац устарел (написан 4-5 лет назад), поэтому вместо Codestyling Localization, который рекомендовали раньше, используйте Loco Translate, так как он больше не поддерживается и может представлять угрозу безопасности вашего сайта!

Вы можете установить плагин Codestyling Localization, чтобы проверить, локализуется ли плагин как следует, и если он не выдает никаких предупреждений, попробуйте задать регион сайта в меню Настройки -> Язык.

Обновление: Без плагинов вы можете добавить файл в plugindir/languages/ как textdomain-xx_XX.mo, и если вы хотите, чтобы он оставался переведенным после обновления плагина, добавьте его в wp-content/languages/plugins/ с тем же именем файла(ов). wp-content/languages/themes/ – это директория для po и mo файлов тем.

Переводы плагинов и тем не будут загружаться, если они находятся в wp-content/languages/!

Ответ или решение

Чтобы решить проблему с отображением перевода плагина Buddypress Group Email Subscription, необходимо учесть несколько ключевых моментов, которые могут мешать корректной работе перевода.

Фон

Вы хотите изменить текст:
"No Email (users will read this group on the web – good for any group – the default)"
на "No Email (users will read this group on the web – good for any group)".

Вы провели ряд манипуляций, включая создание файла перевода bp-ass-en_US.po, его компиляцию в файл .mo и размещение файлов в нескольких возможных каталогах. Однако, изменения не отображаются на сайте.

Решение

Следующие шаги помогут сделать так, чтобы перевод заработал:

  1. Проверка правильности текстового домена: Убедитесь, что текстовый домен, указанный в строке перевода плагина (_e( 'No Email ...', 'bp-ass' )), совпадает с тем, который вы используете в файле .po, а именно bp-ass.

  2. Проверка расположения файлов перевода:

    • Файл должен называться bp-ass-en_US.mo и располагаться в директории /wp-content/languages/plugins/ для корректной работы перевода плагина.
    • Убедитесь, что в корневом каталоге вашего плагина также нет .mo файлов, которые могут иметь приоритет перед расположенными в languages/plugins.
  3. Проверка настроек локали: Убедитесь, что язык вашего сайта настроен на en_US. Это можно сделать через панель настроек WordPress: Настройки -> Общие -> Язык сайта.

  4. Избегайте кеширования: Если ваш сайт использует систему кеширования, попробуйте очистить кеш. Иногда изменения переводов не отображаются из-за кеширования страниц.

  5. Используйте плагин для управления переводами: Установка плагина Loco Translate может облегчить процесс управления переводами. Он позволяет редактировать языковые файлы непосредственно через интерфейс WordPress и может выявлять ошибки в настройках локализации.

  6. Проверка конфигурации плагина Buddypress Group Email Subscription: Если вышеприведенные шаги не помогают, проблема может быть в том, как плагин загружает свои текстовые домены. В таком случае, стоит проверить документацию плагина или обратиться за поддержкой к разработчикам.

Проблемы с переводами требуют внимательного подхода, так как ошибка может быть не только в конфигурации WordPress, но и в самом плагине. Я рекомендую пройтись по всем упомянутым аспектам и проверить каждый из них. Если проблема останется нерешенной, возможно, потребуется углубленное изучение кода плагина для выявления ошибок в его работе с переводами.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...