Поддержка Темы и шаблоны Добавление перевода темы в дочернюю тему

  • Перевел файл easywp.pot, в дочерней теме создал папку languages. Туда скопировал easywp.pot, ru_RU.mo, ru_RU.po. Перевод не появился. Поместил в родительскую тему. но тоже нет моего перевода. И вообще там уже есть какой-то перевод, но откуда он взялся? В файле easywp.pot его нет. Как будто он где-то в базе на сервере

    • Тема изменена 2 года, 2 месяца назад пользователем jurvrn.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • У этой темы есть стопроцентный русский перевод, поэтому он загружается автоматически с сайта переводов

    Перевод мне не нравится и раньше его не было. Как убрать этот перевод и поставить свой в дочернюю тему?

    Как убрать этот перевод и поставить свой в дочернюю тему?

    Для Вас самое простое — поставить https://wordpress.org/plugins/loco-translate/ и создать новый перевод в каталоге плагина. Потом заменить созданные файлы Вашими, с соблюдением их именования (так, как их назовёт плагин)

    Иначе — нужно менять текстовый домен (это НЕ домен сайта).

    Не люблю простые вещи делать через плагин. Как еще можно? Может напрямую pot править? Но куда этот файл поместить? Как поменять текстовый домен?

    Как еще можно?

    Написать функцию для переопределения положения лангпака. 🙂
    https://developer.wordpress.org/reference/functions/load_child_theme_textdomain/

    Может напрямую pot править?

    pot вообще не причём.

    Как поменять текстовый домен?

    Взять и поменять во всех строках всех php-файлов.

    Взять и поменять во всех строках всех php-файлов.

    как выглядит эта строка? может просто её удалить эту строку?
    Может можно подменить путь к серверу на папку сайта?

    • Ответ изменён 2 года, 2 месяца назад пользователем jurvrn.
    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, wpcute.ru

    Перевод мне не нравится

    Вы всегда можете предложить более удачный перевод строк на https://translate.wordpress.org/projects/wp-themes/easywp/ru/default .

    как выглядит эта строка? может просто её удалить эту строку?

    Стоит иметь в виду, что изменения в родительской теме перетрутся при следующем её обновлении.

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

    Но, по мне, это не выглядит проще, чем Loco Translate, который Вам выше уже посоветовал SeVlad.

    Но, по мне, это не выглядит проще, чем Loco Translate

    не хочу зависеть от плагина
    перевод предложил, но мне не дает ничего менять по существу.
    Свой вариант перевода в *.mo у меня уже есть.
    куда мне нужно разместить этот код? и вообще правильно ли это?

    function my_plugin_load_plugin_textdomain() {
        load_plugin_textdomain( 'easywp-child-1', FALSE, basename( dirname( __FILE__ ) ) . '/ru_RU/' );
    }
    add_action( 'plugins_loaded', 'easywp-child-1-ru_RU' );

    не хочу зависеть от плагина

    Вы будете «зависеть» от плагина. От своего или от указанного или другого.
    Или же переделать тему (тогда и дочка не нужна) и потерять возможность обновления.

    куда мне нужно разместить этот код?

    Сделать свой плагин или в файл функций темы (что тоже можно считать «плагином»)

    просто добавил свои easywp-ru_RU.mo и easywp-ru_RU.po в wp-content/languages/themes/ — мой перевод теперь

    просто добавил свои easywp-ru_RU.mo и easywp-ru_RU.po в wp-content/languages/themes/ — мой перевод теперь

    до первого обновления оф. перевода

    до первого обновления оф. перевода

    как решить? только плагин Loco Translate?
    Сам по себе текст функции правильный?

    function my_plugin_load_plugin_textdomain() {
        load_plugin_textdomain( 'easywp-child', FALSE, basename( dirname( __FILE__ ) ) . '/ru_RU/' );
    }
    add_action( 'plugins_loaded', 'easywp-child-ru_RU' );

    как решить? только плагин Loco Translate?

    нет, например еще https://ru.wordpress.org/plugins/say-what/

    Сам по себе текст функции правильный?

    я крайне отрицательно отношусь к насилованию function.php, поскольку это тот же плагин, только без обновлений и действуют только на одну тему.

    плагин посмотрел, работает пока активный.
    мне и надо только на одну тему — чтобы прописать так текстовый домен, чтобы подгружался всегда мой файл перевода для неё

    • Ответ изменён 2 года, 2 месяца назад пользователем jurvrn.
Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Добавление перевода темы в дочернюю тему» закрыта для новых ответов.