Новости        18.03.2024   

Как редактировать mo файл. Po и mo файлы, небольшой хэлп в помощь. Чтобы изменить ассоциации файлов

1 расширения(ы) и 0 псевдоним(ы) в нашей базе данных

Ниже вы можете найти ответы на следующие вопросы:

  • Что такое .mo файл?
  • Какая программа может создать .mo файл?
  • Где можно найти описание .mo формат?
  • Что может конвертировать .mo файлы в другой формат?
  • Какие MIME-тип связан с .mo расширение?

GNU Gettext Machine Object File

MO file is a GNU Gettext Machine Object File. GNU gettext is the GNU internationalization and localization (i18n) library. It is commonly used for writing multilingual programs. MO (Machine Object) files are compiled, machine-readable PO (Portable Object) files.

Название программы: -

MIME-тип: application/octet-stream

Магия байт (HEX): -

Магия строки (ASCII): -

Расширения, связанные с:

Другие типы файлов могут также использовать .mo расширение файла. Если у вас есть полезная информация о .mo расширение, !

Возможно ли, что расширение файла с ошибками?

Мы нашли следующие похожие расширения в нашей базе:

.mo Расширение файла часто дается неправильно!

Согласно поисках на нашем сайте, эти опечатки были наиболее распространенными в прошлом году:

ho (1) , mp (1) , mk (1) , lo (1) , jo (1) , om (1) , ml (1) , mi (1) , ko (1)

Не удается открыть.mo файл?

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

Не удалось открыть этот файл:

файла: Например.mo

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать, чтобы открыть его. Окна могут выходить в интернет, чтобы искать его автоматически, или вы можете вручную выбрать из списка программ, установленных на вашем компьютере.

Чтобы изменить ассоциации файлов:

  • Щелкните правой кнопкой мыши файл с расширением чье сотрудничество вы хотите изменить, а затем нажмите Открыть с .
  • В Открыть с помощью диалоговое окно, выберите программу ти котором вы хотите, чтобы открыть файл, или нажмите Обзор , чтобы найти программу, которую вы хотите.
  • Выберите Всегда использовать выбранную программу , чтобы открыть такой файл флажок.

Поддерживаемые операционные системы

Windows Server 2003/2008/2012/2016, Windows 7, Windows 8 , Windows 10 , Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X , iOS, Android

Большинство тем для WordPress написаны на английском языке, и хотя некоторые из них имеют перевод на русский и другие языки, большинство всё же остаются исключительно на английском. В этой статье мы расскажем вам о том, как переводить темы для WordPress на русский язык с помощью программы Poedit.

Не переводите исходный код темы

Первым делом стоит отметить, что перевод английских строк на русский язык внутри исходных.php файлов темы — является неправильным подходом к переводу тем. Эту ошибку совершают большинство начинающих разработчиков и пользователей WordPress.

Для локализации WordPress использует технологию GNU gettext, которая говорит о том, что исходный код программы должен быть написан на английском языке. Это позволяет переводить продукт с английского языка на любой другой язык, а сам перевод распространять в специальном формате, отдельным от исходного кода.

Такой подход позволяет переводить темы для WordPress, не изменяя исходный код самих тем. При этом, после выхода обновления к той или иной теме, ваш перевод не потеряется.

Готова ли тема к переводу

К сожалению не все существующие темы для WordPress можно перевести «правильным» путём. Это зависит от того, подготовил ли разработчик свою тему к переводу. Вопрос подготовки темы к переводу заслуживает отдельной стати.

Найти тему, готовую к переводу, достаточно легко. В официальной директории тем на WordPress.org есть для этого специальная метка translation-ready , которая означает, что разработчик подготовил тему к переводу, и вы можете перевести её на русский язык, не заходя в исходный код программы. Просмотреть все темы в директории с меткой translation-ready можно , на сегодняшний день их порядка 500.

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

Файлы.po и.mo

После того как вы скачали тему для перевода, найдите в ней директорию languages. В ней содержатся файлы перевода темы на различные языки, а так же шаблон для перевода на любой другой язык. Название файла соответствует названию локали конкретного языка. Для русского языка, это ru_RU.

Файлы перевода имеют расширение.po и.mo. Файлы.po содержат переведённые строки в текстовом формате. С этими файлами работает переводчик темы. Файлы.mo это те же строки, но в скомпилированом варианте. С этими файлами работает ядро WordPress для отображения перевода.

После редактирования перевода в файле.po, его нужно скомпилировать в файл.mo, чтобы изменения вступили в силу. Программа Poedit делает это автоматически.

Перевод темы с помощью Poedit

После запуска программы для создания нового перевода следует Создать каталог из POT-файла через пункт меню Файл. Выберите файл.pot (или.po) из директории languages в вашей теме. Poedit попросит вас заполнить небольшую форму о переводе, после чего предложит вам сохранить ваш новый каталог. Сохраняйте его в той же директории languages с названием локали, например ru_RU.po.

Для редактирования существующего перевода, достаточно открыть соответствующий файл.po.

Работать с программой Poedit достаточно легко — исходный текст слева, перевод справа. Для редактирования перевода щёлкните на соответствующую строку и введите новый перевод. При сохранении, Poedit автоматически скомпилирует ваш перевод и создаст соответсвующий файл.mo.

Установить перевод

После того как вы будете довольны вашим переводом, не забудьте его сохранить. Затем вы можете загрузить вашу тему с переводом на ваш сайт и активировать её, как любую другую тему WordPress. Если тема уже установлена на вашем сайте, то достаточно загрузить в её директорию languages новые файлы переода ru_RU.po и ru_RU.mo, например через FTP.

Если WordPress установлен на русском языке, то вы сразу же увидите изменения. Если же WordPress настроен на английский язык, то следует изменить локаль в файле wp-config.php. Найдите в этом файле строку определяющая константу WPLANG и измените её:

Define("WPLANG", "ru_RU");

После этого, тема на вашем сайте будет отображаться на русском языке. Но не останавливайтесь на этом!

Внесите свой вклад

Если вы перевели тему для WordPress на русский язык, вы можете связаться с автором этой темы и отправить ему ваши файлы перевода.po и.mo. Автор может включить новый перевод при выпуске следующего обновления к своей теме, и другие пользователи WordPress смогут наслаждаться темой на русском языке.

Перевод тем, плагинов и самого ядра — является одним из многочисленных способов внести свой вклад в развитие проекта WordPress.

Если у вас есть вопросы по переводу тем для WordPress, задавайте их в комментариях. Мы с радостью ответим. По любым другим вопросам вы можете .

В таблице ниже предоставляет полезную информацию о расширение файла.mo. Он отвечает на вопросы такие, как:

  • Что такое файл.mo ?
  • Какое программное обеспечение мне нужно открыть файл.mo ?
  • Как файл.mo быть открыты, отредактированы или напечатано?
  • Как конвертировать.mo файлов в другой формат?

Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

1 расширений и 0 псевдонимы, найденных в базе данных

✅ GNU Gettext Machine Object File

Описание (на английском языке):
MO file is a GNU Gettext Machine Object File. GNU gettext is the GNU internationalization and localization (i18n) library. It is commonly used for writing multilingual programs. MO (Machine Object) files are compiled, machine-readable PO (Portable Object) files.

MIME-тип: application/octet-stream

Другие типы файлов могут также использовать расширение файла .mo .

🚫 Расширение файла.mo часто дается неправильно!

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

ho , mk , jo , mp , lo , om , ml , mi , ko

Это возможно, что расширение имени файла указано неправильно?

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

🔴 Не удается открыть файл.mo?

Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:

Windows не удается открыть этот файл:

Пример.mo

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия...

Если вы не знаете как настроить сопоставления файлов .mo , проверьте .

🔴 Можно ли изменить расширение файлов?

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .mo , !

🔴 Оцените нашу страницу MO

Пожалуйста, помогите нам, оценив нашу страницу MO в 5-звездочной рейтинговой системе ниже. (1 звезда плохая, 5 звезд отличная)

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

Спойлер


Сегодня пришлось поковыряться в недрах WordPress. Т.к. я сторонник правильной правки кода (т.е. согласно стандарту разработчиков), то перевод темы решил делать неизвестным для меня способом, а именно редактированием *.po и *.mo файлов. В сети много талмутов о том, как совершать перевод тем и плагинов WordPress на другие языки, но сегодня речь конкретно о *.po и *.mo, а вернее о том, как правильно использовать freeware программу для редактирования и создания переводов Poedit и сэкономить 30 минут времени, которые потратил я, чтобы решить вопрос с Poedit и заставить ее работать «как надо».

В папке перевода темы или самого WordPress (например language, lang, translate etc.) каждый язык представлен двумя файликами *.po и *.mo, например us_US.po и us-US.mo
Если *.po файлик представляет собой вполне обычный текстовый документ, доступный для редактирования даже блокнотом (хотя это и не очень удобно), то с *.mo вы ничего особо не сделаете, т.к. этот файлик компилируется в виде специального кода и не доступен для редактирования текстовыми средствами.
Для создания и редактирования языков интерфейса WordPress через *.po и *.mo в сети существует классная тула - Poedit . Она разработана что приятно практически для всех известных настольных ОС Unix, Linux, Windows, MacOS. Поклонникам командной строчки известно и другая тула, но я не очень-то помню ее название. Наша же Poedit выглядит так:

Простой и незамысловатый интерфейс, где слева представлен базовый перевод на английском языке, а справа наш перевод на любой (хоть на подонский, хоть на коми). Незаполненные поля будут выводить английский вариант, что предотвращает баги и прочие ошибки.
Так в чем же проблема потраченных 30 минут борьбы с Poedit?
Как оказалось отредактировать просто *.po файл мало, нужно еще скомпилировать *.mo, но вот его Poedit упорно не хотел создавать. Я качал разные версии, выбирал каталоги, но все не помогало. При этом многие пользователи (какой-то видимо особой версии) не испытывали ровно никакой проблемы.
Без компилированного файла *.mo WordPress не применял исправления перевода, которые я внес.
Решение проблемы
Как всегда просто, когда знаешь где. Идем в Файл ->Установки и видим там сразу вкладку Редактор . Ставим там галочку, от которой капитан Очевидность будет в шоке. При сохранении автоматически компилировать файл.mo

Если честно я не очень понял, почему эта галочка не активна по умолчанию?! Вуаля, теперь после редактирования вы получите оба требуемых для создания своего перевода файла. О том, что с ними делать можно прочитать в сети, не буду повторяться

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

Что переводить?

Прежде чем переходить к переводу, давайте определимся что нам нужно перевести, потому что это влияет на то, как нужно переводить.

Перевод темы/плагина из каталога WordPress

Для такого перевода нужно использовать сайт translate.wordpress.org . Что нужно сделать:

  1. Авторизоваться.
  2. Выбрать нужный язык перевода
  3. Найти плагин/тему которую нужно перевести.
  4. И прям на сайте переводить.
  5. После того, как ваш перевод будет проверен, в админке вашего сайта на WordPress вы уведите обновления перевода для плагина/темы.

  6. Обновляем. Перевод сделан!

Заметка: Не все плагины из каталога поддерживают перевод через translate.wordpress.org. В таких случаях переводить нужно как обычно (читайте следующий пункт).

Перевод темы/плагина НЕ из каталога WordPress

В этом случае, нужно:

Перевод своей темы/плагина

Как это делается и работает описано ниже в «Этап 1» и «Этап 2».

Если вы планируете размещать ваш плагин/тему в каталоге WordPress. То настоятельно рекомендуется делать перевод через translate.wordpress.org. Подробнее об этом (англ.) (подробности в этой статье не описаны).

Как работает перевод в WordPress (теория)

Начать надо с самого главного: файлов перевода: .mo .po .pot . PHP работает только с.mo файлом, .po и.pot - они для людей и программ перевода.

В WordPress для перевода используется только файл.mo . Во время генерации страницы этот файл подключается - из него создается PHP объект с переводами строк и помещается в память. Далее, при использовании функций перевода в коде, из этого объекта берется перевод запрашиваемой строки. Вот так просто это работает.

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

Важно понимать , что при подключении.mo файла ему задается идентификатор (параметр $domain) и такой идентификатор (домен) указывается для функций перевода строк. Домен связывает файл.mo с функциями перевода. Т.е. при переводе, в функции мы указываем из какого MO файла нужно получить перевод указанной строки. Пример:

// подключаем MO файл перевода и указываем ему ID - mydomain: load_theme_textdomain("mydomain", get_template_directory() . "/languages"); // переводим - опять указываем ID - mydomain: _e("Comment:", "mydomain");

Этап 1: Создадим свой плагин и переведем его

Если у вас уже есть готовая тема/плагин и её простой нужно перевести, переходите сразу к переводу (этап 2).

Чтобы процесс перевода был понятен, давайте создадим очень просто плагин и переведем его на русский язык. Назовем плагин my-translation-demo . У нас должна получиться такая структура плагина:

  1. В папке плагинов WordPress создадим папку my-translation-demo: /plugins/my-translation-demo .
  2. В этой папке создадим папку lang: /my-translation-demo/lang .
  3. Создадим файл my-translation-demo.php: /my-translation-demo/my-translation-demo.php .
  4. Добавим следующий код в созданный php файл:

E() -

Ex() -

X() -

N(1) -

N(3) -

N(10) -

Nx(1) -

Nx(3) -

Nx(10) -

esc_attr__() -

esc_attr_e() -

esc_html__() -

esc_html_e() -

Плагин готов! Зайдем в админку, активируем плагин, перейдем на страницу плагина.

В плагине используются все функции перевода, которые есть в WordPress. А также подключается еще не существующий.mo файл перевода myl10n-ru_RU.mo . После создания.mo файла плагин будет переведен (его мы создадим ниже).

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

* Text Domain: myl10n * Domain Path: /lang

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

// строки для перевода заголовков плагина, чтобы они попали в.po файл. __("Demo WordPress translation"); __("Test plugin for learning how to create translations in WordPress");

Также WordPress использует параметр Text Domain: чтобы искать файл перевода в . Там файл должен называться ДОМЕН-ПЕРЕВОДА_ЛОКАЛЬ.mo .

Этап 2: Перевод. Создание.mo .po файлов

Чтобы создать MO файл, нам нужно иметь готовый PO файл, поэтому вся задача сводиться к созданию PO файла.

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

Создать PO файл можно через Poedit, но мы создадим его нестандартно - так гораздо проще:


Перевод готов и работает. Если теперь зайти на страницу плагина, то все строки будут переведены:

Почему удобно создавать.po файл вручную, а не через программу Poedit?

Потому что так быстрее: в этом случае не надо указывать никаких настроек, можно просто скопировать код (из пункта 2) в.po файл, закинуть этот файл в Poedit, нажать «Извлечь из исходного кода», затем «ОК» и переводить. (настройки можно изменить в самом po файле, программа для этого не нужна).

А чтобы создать файл через Poedit нужно:

  1. Открыть Poedit.
  2. Выбрать: Файл > Создать... .
  3. В появившемся окне выбрать язык на который переводим.
  4. Окно просто пропадет, а мы сидим тупим "а что дальше то делать?".
  5. А дальше, нужно нажать на кнопку Сохранить , в появившемся проводнике найти папку темы зайти в папку lang , вписать название файла myl10n-ru_RU.po и нажать ОК.
  6. Окно опять пропадает, а мы дальше тупим "что теперь делать?".
  7. А теперь, нужно нажать кнопку: Извлечь из исходного кода . Откроется окно где нужно выставить настройки для PO файла. Все то что написано в коде для PO файла выше: название проекта, команда проекта, кодировки, папки где собирать строки перевода, ключевые слова для поиска строк перевода. В общем, тут надо будет повозиться и не ошибиться.

    После того как настройки выставлены жмем «ОК».

  8. Далее ждем пока, строки перевода собираются из файлов проекта и мы попадаем в окно перевода строк (скрин выше). Переводим строки, жмем Сохранить .
  9. Перевод и MO файл созданы!

Обновление перевода (при изменении кода)

Тут все предельно просто:

  1. Открываем Poedit .
  2. Закидываем в него любой PO файл из проекта и жмем «Обновить из кода» (кнопка на панели).
  3. Переводим новые строки и жмем «Сохранить» (кнопка на панели).
  4. Перевод обновлен! Можно закрыть Poedit.

Создание POT файла

Pot файл - это шаблон перевода. Это прям копия.po файла, только когда не переведена ни одна строка. Т.е. все строки перевода получены из файлов проекта, но еще ничего не переведено.

Из вышесказанного следует, чтобы создать POT файл нужно пройти всю процедуру по созданию.po файла, и под конец ничего не переводить, а зайти в Файл > Сохранить как и сохранить файл с расширением.pot .

Создать POT файл можно еще проще. Взять.po файл и поменять ему расширение на.pot . Это грубый метод, но такой файл с переведенными строками, тоже можно использовать как шаблон для создания перевода на любой язык (по крайней мере так работает Poedit).

Зачем нужен.pot файл?
Для того, чтобы был какой-то один файл, в котором всегда актуальные строки перевода. Чтобы использовать его как основу для создания перевода на очередной язык.

Например, если PO и MO файлы перевода размещаются в глобальную папку переводов, то мы не можем закинуть PO файл в программу и нажать «Обновить из кода», потому в PO файле скорее всего путь до файлов плагина будет неправильный (или его там вообще не будет) и строки перевода обновиться не смогут. В этом случае используется POT файл, который всегда должен лежать в папке плагина и при изменении кода в нем нужно обновлять строки перевода, так мы получим всегда актуальный шаблон строк перевода.

Если PO файл лежит в папке плагина, то POT файл не нужен, перевод можно создать из PO файла.

Подключение.mo файла перевода

Как подключить MO файл в плагине, уже есть в коде плагина выше. А тут я сделаю акцент на функциях WordPress для подключения этого файла. Функции:

load_plugin_textdomain($domain, false, $plugin_rel_path) Подключает MO файл из плагина. Обертка для load_textdomain() . Сначала ищет MO файл в общей папке переводов плагинов: /wp-content/language/plugins . Файл должен называться ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo . load_muplugin_textdomain($domain, $plugin_rel_path) Подключает MO файл из MU плагина . Обертка для load_textdomain() . Сначала ищет MO файл в общей папке переводов плагинов: /wp-content/language/plugins . Файл должен называться ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo . load_theme_textdomain($domain, $path) Подключает MO файл из темы. Обертка для load_textdomain() . Сначала ищет MO файл в общей папке переводов тем: /wp-content/language/themes . Файл должен называться ЛОКАЛЬ.mo (когда файл внутри темы) и ПАПКА_ТЕМЫ-ЛОКАЛ.mo (когда файл в общей папке). load_textdomain($domain, $mofile) Подключает MO файл из любого места (нужно указать полный путь до MO файла, вместе с названием файла).

Рассмотрим примеры подключения MO файлов.

Подразумевается, что код подключения будет расположен в основном файле плагина/темы или в файле, который находится в корневой директории плагина/темы. Если это не так, то __FILE__ нужно заменить на соответствующий путь.

// файл перевода плагина. // файл должен называться: ДОМЕН-ЛОКАЛЬ.mo, например: myl10n-ru_RU.mo add_action("plugins_loaded", function(){ load_plugin_textdomain("my-plugin", false, dirname(plugin_basename(__FILE__)) . "/languages")); }); // файл перевода MU плагина. // файл должен называться: ДОМЕН-ЛОКАЛЬ.mo, например: myl10n-ru_RU.mo load_muplugin_textdomain("my-plugin", dirname(plugin_basename(__FILE__)) . "/languages")); // файл перевода темы. // файл должен иметь название текущей локали, например: ru_RU.mo add_action("after_setup_theme", function(){ load_theme_textdomain("my_theme", get_template_directory() . "/languages"); }); // любой файл перевода // Подключаем файл.mo (название файла: ru_RU.mo или другое, зависит от локали) add_action("plugins_loaded", function(){ $mo_file_path = dirname(__FILE__) . "/lang/". get_locale() . ".mo"; load_textdomain("mytranslate", $mo_file_path); }

Не обязательно подключать функции на хуки, но в примерах я все же сделал как рекомендуется.

Заметка: если файл перевода размещается в , то эти функции можно не использовать. WordPress автоматически подключает файлы переводов из глобальной папки, опираясь на параметр Text Domain: в заголовке плагина.

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

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

__($text, $domain) Переводит указанный текст и возвращает его для обработки. _e($text, $domain) Переводит указанный текст и выводит его на экран. _x($text, $context, $domain) Переводит указанный текст с учетом указанного контекста и возвращает его для обработки. _ex($text, $context, $domain) Переводит указанный текст с учетом указанного контекста и выводит его на экран. _n($single, $plural, $number, $domain) Получает строку перевода единственного или множественного числа, ту которая соответствует указанному числу (1 комментарий, 2 комментария). _nx($single, $plural, $number, $context, $domain) Получает строку перевода единственного или множественного числа с учетом указанного контекста. _n_noop($singular, $plural, $domain) Функция пустышка. Аналог _n() . Используется когда нужно определить строки перевода для множественных числе, но использовать их где-то позднее в коде. Результат который возвразает функцию нужно обрабатывать функцией translate_nooped_plural() . Результат этой функции, например, удобно использовать в параметрах, когда мы заранее не знаем какое будет число и нужно сделать перевод позднее. _nx_noop($singular, $plural, $context, $domain) Тоже что _n_noop(), только с контекстом. esc_attr__($text, $domain) Перевод для значений атрибутов HTML тегов. Сокращение для esc_attr(__()) . esc_attr_e($text, $domain) Тоже что esc_attr__() , только сразу выводит результат на экран. esc_html__($text, $domain) Перевод текста в котором могут быть HTML теги. Сокращение для esc_html(__()) . esc_html_e($text, $domain) Тоже что esc_html__() , только сразу выводит результат на экран.

Ошибки при использовании функций перевода

#1 Нельзя использовать переменные/константы в параметрах функций перевода

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

// Да _e("Hello World!", "mydomain"); // Нет _e($string, "mydomain"); _e("Hello World!", $domain); _e("Hello World!", DOMAIN);

#2 Не используйте HTML в строках перевода (если это возможно)

Например, если указать

в строке перевода и переводчик ошибется, то HTML разметка может «сломаться». Или если указать ссылку , переводчик на её место может поставить свою, или просто неправильно её написать. Или любой HTML тег можно не закрыть и мы поймаем очень неприятный баг верстки.

В 90% случаев HTML теги можно и нужно выносить за пределы строки перевода, рассмотрим несколько примеров:

// Да echo "

". __("Hello World!", "mydomain") ."

"; // Нет _e("

Hello World!

", "mydomain"); // Да echo str_replace("
", "", __("See my portfolio", "mydomain")); // Нет _e("See my portfolio", "mydomain");

#3 Не делите фразу на отдельные слова

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

// Да echo sprintf(__("I am %d today", "mydomain"), $years); // Нет echo __("I am ", "mydomain") . $years . __(" today", "mydomain");

#4 Не оставляйте пробелы в конце/начале строки (если это возможно)

При переводе пробелы на концах часто не заметны и их можно пропустить, в итоге после перевода будет «залипуха». Поэтому, лучше выносить пробелы в код.

// Да _e("Book name:", "mydomain") ." ". $book_name; // Да _e("Book name:", "mydomain") ." $book_name"; // Нет _e("Book name: ", "mydomain") . $book_name; В заключении

Термины связанные с переводом

Некоторые термины, которые нужно знать. Это самые основные (сокращением этих терминов в WordPress названы некоторые функции и хуки):

    Интернационализация (internationalization - i18n) - это весь комплекс функций и классов в ядре позволяющий переводить WordPress и его дополнения на разные языки.

    Локализация (localization - l10n) - это сам процесс перевода на разные языки.

  • Локаль (locale) - это связка языка и диалекта в регионе. Обычно под локалью понимается просто язык, допустим, русский. Но английский например может быть English (U.S.) или English (UK) - язык один, локали разные... Локаль определяется как КОД_ЯЗЫКА_КОД_СТРАНЫ (ru_RU) или код языка в стандарте ISO 639-3 (rus).
, только тут иерархия файлов перевода...

Общая папка переводов для:

  • плагинов /wp-content/languages/plugins/ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo .
  • тем /wp-content/languages/plugins/ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo .

В такие общие папки, например, загружается и обновляется перевод плагина, который находится в каталоге плагинов WordPress. Вы наверное видели переведенные плагины, в которых нет файлов перевода (это как раз эта тема). Как я писал в начале статьи плагины из каталога можно переводить через сайт translate.wordpress.org .

Заметка: если файл перевода есть в глобальной папке, то в плагине его подключать через функции load_(plugin/theme)_textdomain() не обязательно! WordPress автоматически его подключит, опираясь на параметр Text Domain: в заголовке плагина.

Плагин для перевода

Loco Translate - отличный плагин для создания перевода (.mo файла). Этот плагин полностью заменяет программу Poedit. Он позволяет создавать переводы для чего угодно тем, плагинов или отдельных MU плагинов. Плагин можно активировать, перевести что нужно и деактивировать чтобы не «мешался».