Вопрос или проблема
Я хотел бы изменить переводимый текст плагина, который я использую, 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
и размещение файлов в нескольких возможных каталогах. Однако, изменения не отображаются на сайте.
Решение
Следующие шаги помогут сделать так, чтобы перевод заработал:
-
Проверка правильности текстового домена: Убедитесь, что текстовый домен, указанный в строке перевода плагина (
_e( 'No Email ...', 'bp-ass' )
), совпадает с тем, который вы используете в файле.po
, а именноbp-ass
. -
Проверка расположения файлов перевода:
- Файл должен называться
bp-ass-en_US.mo
и располагаться в директории/wp-content/languages/plugins/
для корректной работы перевода плагина. - Убедитесь, что в корневом каталоге вашего плагина также нет
.mo
файлов, которые могут иметь приоритет перед расположенными вlanguages/plugins
.
- Файл должен называться
-
Проверка настроек локали: Убедитесь, что язык вашего сайта настроен на
en_US
. Это можно сделать через панель настроек WordPress: Настройки -> Общие -> Язык сайта. -
Избегайте кеширования: Если ваш сайт использует систему кеширования, попробуйте очистить кеш. Иногда изменения переводов не отображаются из-за кеширования страниц.
-
Используйте плагин для управления переводами: Установка плагина Loco Translate может облегчить процесс управления переводами. Он позволяет редактировать языковые файлы непосредственно через интерфейс WordPress и может выявлять ошибки в настройках локализации.
-
Проверка конфигурации плагина Buddypress Group Email Subscription: Если вышеприведенные шаги не помогают, проблема может быть в том, как плагин загружает свои текстовые домены. В таком случае, стоит проверить документацию плагина или обратиться за поддержкой к разработчикам.
Проблемы с переводами требуют внимательного подхода, так как ошибка может быть не только в конфигурации WordPress, но и в самом плагине. Я рекомендую пройтись по всем упомянутым аспектам и проверить каждый из них. Если проблема останется нерешенной, возможно, потребуется углубленное изучение кода плагина для выявления ошибок в его работе с переводами.
Заключение
Следуя вышеуказанным шагам, вы увеличите шансы на успешное применение перевода. Важно наладить работу с текстовыми доменами и правильно размещать файлы перевода, что является основой корректного отображения локализованных строк.