[Инфо] Как перевести плагин Wordpress на русский язык

Тема в разделе "Wordpress", создана пользователем ponoroshca, 6 июн 2018.

Информация :
Все пользователи Nulled-а обязаны ознакомиться с основными правилами форума!
Правила: Правила форума
Правила раздела: ОБЩИЕ СВЕДЕНИЯ | Правила раздела | Правила оформления [​IMG]
Полезное: Раскодирование шаблонов | Шорткоды | Поиск плагинов | [​IMG] Складчины
Плюшки: functions.PHP - часть 1 | часть 2
Разделы WP: Шаблоны | CodeCanyon
Статус темы:
Закрыта.
Модераторы: ponoroshca
  1. ponoroshca

    ponoroshca Копии любых сайтов

    Moderator
    Регистр.:
    9 дек 2012
    Сообщения:
    165
    Симпатии:
    211
    Локализация — это сам процесс перевода.

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

    Затем сообщество или отдельные переводчики вытаскивают автоматизированно из кода строки для перевода, и переводят их в специальных программах, — Poedit одна из наиболее распространенных.

    Во многих темах и плагинах вам не придется вытаскивать строки из кода. Готовый файл для перевода (.pot) часто уже лежит в папке /languages. Вам остается его только загрузить в программу и перевести.


    ПРИМЕР ЛОКАЛИЗАЦИИ ПЛАГИНА
    Для примера возьмем плагин Contact Form 7.

    Шаблон для перевода находится в папке wp-content/plugins/contact-form-7/languages

    [​IMG]

    Обратите внимание, Contact form 7 популярный плагин, и в нём уже есть русский перевод.

    РАБОТА В ПРОГРАММЕ POEDIT

    Скачиваем и устанавливаем её. Запускаем Файл -> Создать из POT файла.... Выбираем язык перевода (ru_RU). Переводим. Жмем Файл -> Сохранить как..., программа автоматически создаст два файла .po и .mo. Переносим в каталог wp-content/languages/plugins/ с названием my-plugin-ru_RU.mo.

    НЕ МОГУ НАЙТИ POT ФАЙЛ

    Папка wp-content/plugins/my-plugin/languages не является обязательным месторасположением переводов.

    Например, файлы перевода плагина Autoptimize находятся в каталоге wp-content/plugins/autoptimize/localization

    Другие плагины, например Akismet, загружают готовые файлы перевода в директорию wp-content/languages, исходя из языковых настроек WordPress.

    Для популярных плагинов практически всегда есть готовый POT файл и готовые скомпилированные файлы переводов на разные языки.


    ЕСТЬ .PO, НО НЕТ .POT ФАЙЛА

    Просто переименуйте .po в .pot, и из него создавайте нужный вам языковой перевод.

    НЕТ НИ .PO, НИ .POT

    Если вы вообще не можете найти никаких следов локализации, значит вам надо сгенерировать шаблон из исходного кода, если плагин или тема были правильно интернационализированы разработчиком.

    Сгенерировать POT файл вы можете с помощью той же программы Poedit.

    • Запускаете программу. Файл -> Создать.... Выбор языка, жмете Отменить
    • Нажимаете Файл -> Сохранить как.... Сохраняете в папку плагина с расширением .pot
    • Жмете Извлечь из исходного кода, откроется диалог со свойствами. На первой вкладке задаете название проекта и язык.
    • На второй вкладке, добавляете и исключаете папки из перевода относительно базового пути.
    [​IMG]
    • На третьей вкладке Ключевые слова исходных файлов вписываете функции WordPress. Вот весь список. Не обязательно записывать все, но программа вытащит только если найдет совпадения.
    [​IMG]
    • откроется сгенерированный POT файл и теперь из него можно создавать нужные языки переводов.
    Если вы вдруг закрыли свойства извлечения, открыть диалог можно заново из меню Каталог -> Свойства.... Если вы сгенерировали POT файл, но забыли указать ключевую функцию или каталог, внесите изменения в Свойства и нажмите кнопку Обновить на панели инструментов.

    Процесс не сложный. Но что если вы хотите изменить всего лишь строчку или две? Вы можете воспользоваться плагином для локализации.


    ЛОКАЛИЗАЦИЯ С ПОМОЩЬЮ ПЛАГИНА
    Мы будем использовать Loco Translate, потому что он наиболее популярный и активно развивается, т.е совместим с последними версиями WordPress.

    После установки и активации заходим в меню Loco Translate. Интерфейс на английском, но сообщает нам что в следующих версиях разработчики добавят файлы переводов.

    На странице отображены включенная тема и работающие плагины. Если вы хотите увидеть все, жмете See all plugins. Появится список.

    Допустим, я хочу создать файл перевода для плагина WP Digg This. Шаблон и переводы в нём отсутствуют.

    [​IMG]


    Нажимаю сначала Create template, затем New Language. Loco Translate сообщает, что нашел 5 строк для перевода. Выбираем язык и жмем Start translating.

    [​IMG]

    Появится окно со списком строк для перевода. После сохранения файлы .po и .mo автоматически генерируются.


    ЛОКАЛИЗАЦИЯ ШАБЛОНА WORDPRESS
    Процесс аналогичный переводу плагинов.

    Вы можете использовать программу Poedit или плагин Loco Translate, что вам больше нравится.

    Вы больше не будете себе отказывать во всём многообразии тем только потому что отсутствует файл перевода. Теперь вы можете самостоятельно локализовать нужный вам плагин или шаблон.
     
    Alexeina66, zek24, Gogasan и ещё 1-му нравится это.
  2. Kleindberg

    Kleindberg Создатель

    Регистр.:
    8 май 2012
    Сообщения:
    12
    Симпатии:
    13
    В особо сложных случаях, когда строка не переводится есть два решения:
    1. Проверить, чтобы всюду был указан один load_theme_textdomain. Пример из жизни: не переводилась одна строка в теме. Оказалось, что она принадлежала другому текстовому домену. Всюду были строки типа __( 'Primary Menu', 'mytheme' ), а нужная строка имела вид __( 'Primary Menu', 'txtdomain' ) из-за чего не распознавалась переводчиками.
    2. Порой разработчики забывают делать строки переводимыми и вписывают текст прямо в код. В таком случае поможет программа Folder Find Text: правый клик по папке с темой или плагином и с помощью поиска ищем нужную строку в коде и оборачиваем ее в __( 'Строка', 'домен' ). Домен ищем в коде:
    load_theme_textdomain( 'домен', get_template_directory() . '/languages' );​

    Это всё. Не забывайте присылать сделанные локализации разработчикам, чтобы они включали их в свои темы и плагины.
     
    zek24, leontwo, Region25 и ещё 1-му нравится это.
  3. Dizer7

    Dizer7 Писатель

    Регистр.:
    23 янв 2013
    Сообщения:
    6
    Симпатии:
    0
    Если в шаблоне или плагине встречается несколько текстовых доменов, то их можно прописать в функциях подключения файлов локализации. А сами функции подключения локализации можно вставить в файл functions.php или вставить с помощью mu-plugins.
     
  4. leonardinio

    leonardinio Создатель

    Регистр.:
    24 мар 2012
    Сообщения:
    20
    Симпатии:
    5
    Подскажите пожалуйста, есть-ли какой либо скрипт для автоматического или полуавтоматического перевода например плагином Loco Translate ?

    Приведу пример, в престе есть модуль перевода похожий на ЛОКО, на форуме нуллед написали браузерный скрипт, который раскрывал все ветки переводов, затем вы в хроме включали функцию перевода всей страницы, а затем скрип самостоятельно перетаскивал текст из одного столбца в другой (из исходника переведенного гуглом в пустой столбец перевода).
     
  5. tntmarket

    tntmarket Создатель

    Регистр.:
    18 ноя 2014
    Сообщения:
    35
    Симпатии:
    59
    программа после редактирования отлично подходит для перевода
     
  6. Alexeina66

    Alexeina66

    Регистр.:
    26 авг 2013
    Сообщения:
    387
    Симпатии:
    402
    Была задача добавить 1 строку перевода в po файл.
    Например, была такая строка
    Код:
    esc_html__( 'MyLogin', 'mytheme' );
    Открываем нужный PO файл например notepad++ и добавляем туда следующее:

    Код:
    #: template-parts/header/components/authentication.php:38
    msgid "MyLogin"
    msgstr "Войти"
    1 строка месторасположение переменной перевода, 2 строка английская версия и 3 строка перевод.
    Далее сохраняемся. Открываем PO файл программой poedit, проверям наличием строки и сохраняемся еще раз, так как должен обновиться еще файл и MO.
    Готово!
     
    leoner нравится это.
  7. H8idiots

    H8idiots Создатель

    Регистр.:
    14 окт 2018
    Сообщения:
    18
    Симпатии:
    1
    для плагина, который должен "облегчать жизнь" - локо слишком замороченный!(
    куча настроек, без которых он отказывается рабоатть, настройка прав доступа, куча полей с вариативными настройками, с каждым из которых не справиться банальным выбором чекбокса, все нужно читать и вникать.
    а на деле - если хоть немного знать англ язык - самое обычное расширение для перевода у хрома Vimbox вполне отлично справляется.
    ЗЫ. у меня языки вообще не выбираются и темплиты в локо не сохраняются, вот одна из ошибок, что выдает:
    "Ошибка: Failed to read 2519296 bytes at [4864]"
     
  8. sonicwest

    sonicwest Создатель

    Регистр.:
    13 июн 2012
    Сообщения:
    2
    Симпатии:
    0
    я для своих нужд делал перевод в програме по Poedit, в ЛОКО были проблемы
     
  9. yakimaxim

    yakimaxim Писатель Нарушитель

    Регистр.:
    21 май 2018
    Сообщения:
    3
    Симпатии:
    0
    Сейчас для этого есть плигин Loco Translate
     
  10. misha8585

    misha8585 Создатель

    Регистр.:
    23 дек 2015
    Сообщения:
    10
    Симпатии:
    0
    Я перевожу в Loco Translate не только плагины, но и темы тоже.
     
Статус темы:
Закрыта.