Как сделать свой перевод wordpress

WordPress – это действительно всемирная CMS, которая пользуется огромной популярностью среди вебмастеров практически каждой страны. Это система, которая с каждым годом улучшается и модернизируется. А в последнее время локализации движка уделяется все большее внимание, ввиду его популярности, и не только среди англоязычных пользователей. Ведь, согласно статистическим данным, уже в 2014 году количество установленных не англоязычных дистрибутивов WordPress превысило количество англоязычных (впервые за все время!).
В этом уроке мы, на практике, рассмотрим как перевести ВордПресс (и саму CMS, и тему для нее), чтобы лучше понимать, как эта вся магия работает. Хотя готовых локализаций (языковых пакетов) для WordPress хоть отбавляй, не лишним будет знать, как самому изменить/улучшить перевод для своего собственного сайта!

Итак, приступим!
1 метод (простой): скачать готовый перевод для нужного вам языка (здесь есть перечень всех доступных переводов и степень их полноты). Скачиваете, копируете файлы локализаций в папку /wp-content/languages/, прописываете в корневом файле wp-config.php строчку

define ('WPLANG', 'код языка');

и наслаждаетесь готовым переводом.

 

2 метод (сложнее): быть готовым и уметь самому переводить CMS ВордПресс и темы для нее.
Но сначала немного теории.

WordPress использует для перевода библиотеку интернационализации gettext GNU.
В gettext для обозначения переводимых строк используются их английские оригиналы и значение перевода на нужный язык.
Библиотека gettext хранит переводы в файлах с расширениями.mo (Machine Object – бинарный файл для чтения программой),.po (Portable Object – файл перевода в человеко-читаемом виде) и.pot (PO template — как сделать свой перевод wordpress заготовка файла.po для перевода на новый язык).

 

В статье «Как перевести Мадженто на русский» мы затронули этот вопрос. По схожему принципу работает и ВордПресс: система сканирует сайт и, основываясь на наборы файлов.po и.mo, заменяет определенные слова и фразы в контенте переведенным текстом, который выводит на экран.
Просканируем и мы сайт, откроем например, файл header.php в шаблоне twentyfourteen (который содержится в последних версиях ВордПресс) через текстовый редактор и, посреди разного кода, найдем вот такую строчку:

<?php _e('Search', 'twentyfourteen');?>

 

Разберемся, что же в ней интересного.

Строка содержит функцию php, которая выводит возвращенный перевод текста.
Функция _e записывается в виде

<?php _e($text, $domain)?>

где $text — переменная, содержащая оригинальный текст для перевода, а $domain — переменная для домена, из которого будет получен перевод текста. Если перевода нет, или домен не загружен, то возвращается оригинальный текст. Переменные заключаются в кавычки.

В нашем случае оригинальный текст для перевода — Search, а домен для перевода — twentyfourteen (т.е. системное название шаблона).

Исходя из этих данных, система будет искать значение для перевода в шаблоне (теме) TwentyFourteen, обращая внимание на папку languages. А в этой папке движок будет искать файлы.pot,.po и.mo. Если WordPress найдет такие файлы (а некоторые темы и не содержат их), в них она будет искать строку со значением Search, чтобы перевести на нужный нам язык (указанный в корневом файле wp-config.php строчкой

define ('WPLANG', 'ru_RU')

– для русского).

 

Если система не увидит перевод этого значения, то она его так и выведет пользователю на экран (т.е. Search). А если увидит – выведет перевод текста (любой, какой мы напишем: хоть «Поиск», хоть «Поищи-ка», какой захотите)!

 

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

Внимание! Не переводите напрямую исходный код движка или темы!

Файлы переводов хранятся в папках languages:

  • /wp-content/languages/ — для перевода всего движка
  • /wp-content/languages/plugins/ — для перевода некоторых плагинов
  • /wp-content/themes/ВАША_ТЕМА/languages/ — для перевода определенной темы

 

Как правило переводы движка практически полные, поэтому мы сосредоточимся на переводе тем (шаблонов). Хотя принцип один и тот же.

Для работы с файлами переводов удобнее использовать програмку Poedit (скачать можно тут). Она бесплатна и проста.

После того, как вы установили Poedit, можете открывать у себя на компьютере языковые файлы.pot: Файл > Создать из POT файла. Затем выбираете файл.pot в папке languages темы, которую хотите перевести.

poedit

Работать с программой несложно — исходный текст слева, а ваш перевод – справа. Чтобы отредактировать перевод, нажмите на соответствующую строку и внизу введите свое значение. После этого нужно сохранить .po-файл с кодом языка (например ru_RU.po — для русского). Обычно Poedit автоматически создает и нужный файл.mo.
После сохранения остается только загрузить созданные файлы через FTP в нужную папку на сайте.

 

Что еще нужно знать?

 

Функции для перевода

Чтобы система знала, что значение нужно переводить, оно должно быть заключено в соответствующие функции. Их громадное количество, но рассмотрим только основные.

__('Какой-то текст') _e('Какой-то текст') _n('Какой-то текст') _x('Какой-то текст')

 

Первые две функции __() и _e() являются наиболее основными формами перевода. Функция двойного подчеркивания вернет наш текст, а _e() будет выводить текст, используя echo. Обе функции будут искать в локальном каталоге перевода (в файлах.mo и.po) значения для перевода. Если найдут — выведут переведенный текст, в противном случае выведут только оригинальное значение.

Метод _n() используется в случаях множественности. Он будет полезен, например, для вывода количества сообщений, комментариев и в других случаях, когда значение изменяется динамически (например, «1 комментарий», «2 комментария» и т.д.).

Более сложная функция _x() и _ex() используется для различения слов с аналогичными значениями, но в зависимости от контекста. В этом случае используется следующий код

<?php _ex($text, $context, $domain)?>

, где $context – дополнительная информационная переменная для переводчика.

 

 

Что делать, если в вашей теме нет файла.pot?

Его можно создать самому. Для этой цели подойдет и рассмотренная програмка Poedit.

  • Откройте программу и перейдите Файл > Создать
  • Укажите язык перевода
  • Заполните вкладки в меню Каталог > Свойства: Свойства перевода (название проекта, кодировка и др.), Папки с исходными файлами (путь к папке с вашей темой на ВордПресс), Ключевые слова исходных файлов (перечень ключевых слов – рассмотренные ранее функции для перевода).
  • Сохраните файл в формате.pot
  • Нажмите кнопку «Обновить» вверху, либо Каталог > Обновить из исходного кода. Программа просканирует всю вашу тему и выведет строки, которые доступные для перевода.
  • Переведите текст, а затем сохраните.

 

2-й способ: установить плагин Codestyling Localization и переводить тему через консоль сайта. Либо создать плагином .pot-файл, скачать его, а затем уже переводить через программу Poedit (кому как удобнее).

 

 

Как подключить файл перевода к теме?

Если в вашей теме нет файлов перевода, тогда их нужно сначала создать (предыдущий вопрос), а затем подключить.
Файлы перевода подключаются через файл functions.php в вашей теме. Для этого откройте его и добавьте следующий код:

add_action('after_setup_theme', 'dev_load_theme_textdomain'); function dev_load_theme_textdomain() { load_theme_textdomain('НАЗВАНИЕ_ВАШЕЙ_ТЕМЫ', get_template_directory(). '/languages'); }

 

В данном примере мы подключаем файлы переводов по адресу:
/wp-content/themes/НАЗВАНИЕ_ВАШЕЙ_ТЕМЫ/languages/

Когда это может понадобиться? Например, если вы хотите переводить через консоль с помощью плагина Codestyling Localization, а он не определяет вашу тему. После подключения он «увидит» вашу тему и вы сможете заняться полноценным переводом.

 

 

Есть еще способы перевода?

Можно переводить с помощью текстового редактора Notepad++. Если вы откроете редактором файл.po, то увидите нечто подобное:

#: wp-includes/link-template.php:2297 #@ default msgid "&laquo;Older Comments" msgstr "&larr;Предыдущие комментарии"

 

  • 1-я строка указывает на файл, в котором найдена функция и в какой строке.
  • 2-я строка указывает область действия перевода (т.е. весь сайт)
  • 3-я строка: оригинальное значение, заключенное в кавычки
  • 4-я строка: перевод оригинального значения, заключенный в кавычки.

Исходя из этого, вы можете и таким образом переводить тему (сайт) – вручную добавляя/изменяя строки.

 

 

Что делать, если в теме код не поддерживает перевод?

Оптимизировать его для перевода. Например, строку

<div class="readmore"><span>read more</span></div>

можно оформить так:

<div class="readmore"><span><?php _e('read more', 'домен-локализации');?></span></div>

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

 

 

Надеюсь, что вам данный урок принес пользу!
Если у вас есть дополнительные комментарии или вопросы, не стесняйтесь делиться ими в комментариях к данной статье.

 

И в дополнение к посту посмотрите видео-урок:

 

(Photo credit: EMMEALCUBO/Foter/CC BY-SA)

 

В этом видео-уроке рассмотрим процесс перевода Вордпрес (и саму CMS, и тему для нее), чтобы понимать, как это работает, как изменить/улучшить перевод для своего сайта.

 


Источник: https://sebweo.com/ru/kak-na-praktike-perevodit-wordpress/


Закрыть ... [X]

Перевод темы Wordpress на русский (русификация шаблона) Если на коже лица появилась корочка сухая

Как сделать свой перевод wordpress Перевод Wordpress на русский язык, инструкция перевода
Как сделать свой перевод wordpress Перевод темы WordPress на русский (редактор Poedit)
Как сделать свой перевод wordpress Как сделать перевод в WordPress: два способа
Как сделать свой перевод wordpress Как на практике переводить WordPress SebWeo
Как сделать свой перевод wordpress Перевод плагинов в WordPress O
Как сделать свой перевод wordpress Русский WordPress
Как сделать свой перевод wordpress #kazkajewelry #kazkajewelry_quot; #цитаты #женщины
Афоризмы о женщинах и мужчинах (Альмира) / Проза. ру ДМБ: цитаты из фильма fo: цитаты и афоризмы Джинсовая Жилетка Своими Руками (50 фото) Выкройки 2017 Загружаем данные в Oracle / Хабрахабр Как правильно подобрать колер для окраски стен в квартире Листогибочный станок своими руками Строительный Маски для волос детей Маска для волос из яйца Обустройство места для мангала на даче своими руками: фото идеи Работа продавцом одежды в Минске - вакансии продавца одежды в Минске