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.