wp i18n

Предоставляет инструменты интернационализации для проектов на WordPress.

Список команд Описание
wp i18n make-pot Создает файл POT для проекта WordPress.
wp i18n make-json Извлекает все JavaScript строки из переведенного PO файла и создает из них JSON файлы (отдельный для каждого JS файла). C WP-CLI 2.1.0.
wp i18n make-mo Создает MO файлы из PO файлов. C версии WP-CLI 2.5.
wp i18n update-po Обновляет PO файлы из файла POT.
wp i18n make-php Создает PHP файлы из PO файлов.

Примеры

# Create a POT file for the WordPress plugin/theme in the current directory
$ wp i18n make-pot . languages/my-plugin.pot

Исходный код команд


wp i18n make-pot

Создает файл POT для проекта WordPress.

Сканирует PHP и JavaScript файлы на наличие строк для перевода, а также стили тем и файлы плагинов, если исходный каталог распознается как плагин или тема.

Использование

wp i18n make-pot {source} [{destination}] [--slug={slug}] [--domain={domain}] [--ignore-domain] [--merge[={paths}]] [--subtract={paths}] [--subtract-and-merge] [--include={paths}] [--exclude={paths}] [--headers={headers}] [--location] [--skip-js] [--skip-php] [--skip-blade] [--skip-block-json] [--skip-theme-json] [--skip-audit] [--file-comment={file-comment}] [--package-name={name}]

Можно указать Глобальные параметры и следующие:

{source}
Директория для сканирования на предмет извлечения строк.
[{destination}]
Имя результирующего файла POT.
[--slug={slug}]
Слаг плагина или темы. По умолчанию используется базовое имя исходного каталога.
[--domain={domain}]
Текстовый домен, который следует искать в исходном коде, если не используется опция --ignore-domain. По умолчанию используется заголовок "Text Domain" плагина или темы. Если ничего не предоставлено, используется слаг проекта.
[--ignore-domain]
Полностью игнорировать текстовый домен и извлекать строки с любым текстовым доменом.
[--merge[={paths}]]
Список POT файлов, разделенных запятыми, содержимое которых должно быть объединено с извлеченными строками. Если оставить пустым, по умолчанию используется целевой файл POT. Заголовки файлов POT будут проигнорированы.
[--subtract={paths}]
Список POT файлов, разделенных запятыми, содержимое которых должно действовать как своего рода черный список для извлечения строк. Любая строка, найденная в этом черном списке, не будет извлечена. Это может быть полезно, когда вы хотите создать несколько файлов POT из одного и того же исходного каталога с немного другим содержимым и без дублирующихся строк между ними.
[--subtract-and-merge]
Должны ли ссылки на исходный код и комментарии из сгенерированного файла POT быть добавлены в файл POT, используемый для вычитания. Внимание: это изменяет файлы, переданные в --subtract!
[--include={paths}]
Список файлов и путей, разделенных запятыми, которые должны быть использованы для извлечения строк. Если указано, только эти файлы и папки будут учитываться для извлечения строк. Например, --include="src,my-file.php проигнорирует все, кроме my-file.php и файлов в каталоге src. Можно использовать простые шаблоны glob, т.е. --include=foo-*.php включает любой PHP файл с префиксом foo-. Ведущие и конечные слэши игнорируются, т.е. /my/directory/ то же самое, что my/directory.
[--exclude={paths}]
Список файлов и путей, разделенных запятыми, которые должны быть пропущены для извлечения строк. Например, --exclude=".github,myfile.php проигнорирует любые строки, найденные в myfile.php или папке .github. Можно использовать простые шаблоны glob, т.е. --exclude=foo-*.php исключает любой PHP файл с префиксом foo-. Ведущие и конечные слэши игнорируются, т.е. /my/directory/ то же самое, что my/directory. Следующие файлы и папки всегда исключаются: node_modules, .git, .svn, .CVS, .hg, vendor, *.min.js.
[--headers={headers}]
Массив в формате JSON пользовательских заголовков, которые будут добавлены в файл POT. По умолчанию - пустой массив.
[--location]
Должны ли быть записаны строки #: filename:line. По умолчанию - true, используйте --no-location, чтобы пропустить удаление. Обратите внимание, что отключение этой опции затрудняет понимание контекста каждого сообщения для технически подкованных переводчиков.
[--skip-js]
Пропустить извлечение строк JavaScript. Полезно, когда это делается на другом этапе сборки, например, через Babel.
[--skip-php]
Пропустить извлечение строк PHP.
[--skip-blade]
Пропустить извлечение строк Blade-PHP.
[--skip-block-json]
Пропустить извлечение строк из файлов block.json.
[--skip-theme-json]
Пропустить извлечение строк из файлов theme.json.
[--skip-audit]
Пропустить аудит строк, где пытается найти возможные ошибки в строках для перевода. Полезно при запуске в автоматизированной среде.
[--file-comment={file-comment}]

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

Copyright (C) 2018 Example Plugin Author
This file is distributed under the same license as the Example Plugin package.

Если плагин или тема указывают лицензию в своем основном файле плагина или таблице стилей, комментарий выглядит так:

Copyright (C) 2018 Example Plugin Author
This file is distributed under the GPLv2.
[--package-name={name}]
Имя, которое будет использоваться для имени пакета в заголовке Project-Id-Version результирующего файла POT. Переопределяет имя плагина или темы, если применимо.

Примеры

# Create a POT file for the WordPress plugin/theme in the current directory
$ wp i18n make-pot . languages/my-plugin.pot
# Create a POT file for the continents and cities list in WordPress core.
$ wp i18n make-pot . continents-and-cities.pot --include="wp-admin/includes/continents-cities.php" --ignore-domain
wp i18n make-pot theme/ theme/languages/textdomain.pot --domain=textdomain

wp i18n make-json

Извлекает все JavaScript строки из переведенного PO файла и создает из них JSON файлы (отдельный для каждого JS файла). C WP-CLI 2.1.0.

Подробнее о переводах для JavaScript файлов читайте здесь.

Использование

wp i18n make-json {source} [{destination}] [--purge] [--update-mo-files] [--pretty-print] [--use-map={paths_or_maps}]

Можно указать Глобальные параметры и следующие:

{source}
Путь к существующему PO файлу или к папке с несколькими PO файлами.
[{destination}]
Путь к папке куда нужно выложить сконвертированный JSON файл. По умолчанию текущая папка, указанная в параметре {source}.
[--purge]
Нужно ли удалить строки из исходного PO файла. Укажите --no-purge, чтобы не очищать PO файл.
По умолчанию: true (PO файл очищается).
[--update-mo-files]
Должны ли также обновляться MO файлы после обновления PO файлов. Имеет эффект только в сочетании с --purge.
[--pretty-print]
Развернуть JSON код в созданном файле, чтобы его можно было удобно читать.
[--use-map={paths_or_maps}]
Должны ли использоваться файл сопоставления для строк, как значение JSON, массив для указания нескольких. Каждый элемент может быть либо строкой (путь к файлу), либо объектом (сопоставление).

Примеры

# Create JSON files for all PO files in the languages directory
$ wp i18n make-json languages
# Create JSON files for my-plugin-de_DE.po and leave the PO file untouched.
$ wp i18n make-json my-plugin-de_DE.po /tmp --no-purge
# Create JSON files with mapping
$ wp i18n make-json languages --use-map=build/map.json
# Create JSON files with multiple mappings
$ wp i18n make-json languages '--use-map=["build/map.json","build/map2.json"]'
# Create JSON files with object mapping
$ wp i18n make-json languages '--use-map={"source/index.js":"build/index.js"}'
Пример

Допустим, в папке плагина my-plugin у вас есть три исходных файла: my-plugin.php, js/my-script.js и js/my-block.js. Вы используете WP-CLI для извлечения строк и создания каталога переводов (POT) следующим образом:

wp i18n make-pot my-plugin my-plugin/languages/my-plugin.pot

Теперь вы можете перевести плагин как обычно и создать необходимые файлы PO и MO. Допустим, мы добавим немецкий перевод в my-plugin/languages/my-plugin-de_DE.po. После этого вы можете просто запустить

wp i18n make-json my-plugin/languages

Для создания файлов перевода JavaScript. Результат будет выглядеть следующим образом:

  • Новый файл my-plugin/languages/my-plugin-de_DE-537607a1a008da40abcd98432295d39e.json с переводами для my-script.js.
  • Новый файл my-plugin/languages/my-plugin-de_DE-dad939d0db25804f91959baeec56ea8a.json с переводами для my-block.js.
  • Файл my-plugin/languages/my-plugin-de_DE.po теперь не содержит переводов для JS, в нем остались только нужные для сервера переводы. Если нужно оставить строки перевода в po файле, то добавьте флаг --no-purge:
    wp i18n make-json my-plugin/languages --no-purge

wp i18n make-mo

Создает MO файлы из PO файлов. C версии WP-CLI 2.5.

Использование

wp i18n make-mo {source} [{destination}]

Можно указать Глобальные параметры и следующие:

{source}
Путь к существующему PO файлу или папке, в которой лежат несколько PO файлов.
[{destination}]
Путь к папке, куда будут созданы MO файлы.
По умолчанию: исходный каталог.

Примеры

Создадим отдельный .mo файл из существующего .po файла:

$ wp i18n make-mo ./wp-content/languages/slug.po
Success: Created 1 file.

Создадим несколько .mo файлов из .po файлов в папке languages:

$ wp i18n make-mo ./wp-content/languages/
Success: Created 5 files.

wp i18n update-po

Обновляет PO файлы из файла POT.

Это работает аналогично команде msgmerge.

Опции

Вы можете указать глобальные опции и следующие:

Использование

wp i18n update-po {source} [{destination}]
{source}
Путь к существующему POT файлу, который будет использоваться для обновления
[{destination}]
PO файл для обновления или директория, содержащая несколько PO файлов. По умолчанию все PO файлы в исходной директории.

wp i18n make-php

Создает PHP файлы из PO файлов.

Опции

Вы можете указать глобальные опции и следующие:

{source}
Путь к существующему PO файлу или директории, содержащей несколько PO файлов.
[{destination}]
Путь к директории назначения для результирующих PHP файлов. По умолчанию используется исходная директория.

Использование

wp i18n make-php {source} [{destination}]

Примеры

# Create PHP files for all PO files in the current directory.
$ wp i18n make-php .
Success: Created 3 files.
# Create a PHP file from a single PO file in a specific directory.
$ wp i18n make-php example-plugin-de_DE.po languages
Success: Created 1 file.