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

Статус
В этой теме нельзя размещать новые ответы.

ponoroshca

Копии любых сайтов
Нарушитель
Регистрация
9 Дек 2012
Сообщения
183
Реакции
240
Локализация — это сам процесс перевода.

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

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

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


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

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

Contact-Form-7-Localization-Pot-file.png

Обратите внимание, 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
  • Жмете Извлечь из исходного кода, откроется диалог со свойствами. На первой вкладке задаете название проекта и язык.
  • На второй вкладке, добавляете и исключаете папки из перевода относительно базового пути.
Poedit-Extract-from-source-code-Settings.png
  • На третьей вкладке Ключевые слова исходных файлов вписываете функции WordPress. Вот Для просмотра ссылки Войди или Зарегистрируйся. Не обязательно записывать все, но программа вытащит только если найдет совпадения.
Poedit-Extract-from-source-code-Settings-keywords.png
  • откроется сгенерированный POT файл и теперь из него можно создавать нужные языки переводов.
Если вы вдруг закрыли свойства извлечения, открыть диалог можно заново из меню Каталог -> Свойства.... Если вы сгенерировали POT файл, но забыли указать ключевую функцию или каталог, внесите изменения в Свойства и нажмите кнопку Обновить на панели инструментов.

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


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

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

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

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

Loco-Translate-Localize-Plugin-WP-Digg-This.png


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

Loco-Translate-Localize-Plugin-WP-Digg-This-New-Language.png

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


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

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

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

Kleindberg

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

Это всё. Не забывайте присылать сделанные локализации разработчикам, чтобы они включали их в свои темы и плагины.
 

Dizer7

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

leonardinio

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

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

tntmarket

Создатель
Регистрация
18 Ноя 2014
Сообщения
50
Реакции
68
программа после редактирования отлично подходит для перевода
 

Alexeina66

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

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

H8idiots

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

sonicwest

Создатель
Регистрация
13 Июн 2012
Сообщения
6
Реакции
0
я для своих нужд делал перевод в програме по Poedit, в ЛОКО были проблемы
 

yakimaxim

Писатель
Регистрация
21 Май 2018
Сообщения
3
Реакции
0
Сейчас для этого есть плигин Loco Translate
 

misha8585

Писатель
Регистрация
23 Дек 2015
Сообщения
9
Реакции
0
Я перевожу в Loco Translate не только плагины, но и темы тоже.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху