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.