CLI

Создать файл конфигурации CLI (Strings)

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Предварительные требования

  • Токен доступа API с областью чтение запись

  • Идентификатор проекта Strings, показанный на вкладке API в настройках проекта

  • Базовые знания YAML, включая отступы

  • Права на чтение и запись Git, если репозиторий будет выполнять фраза push или фраза pull в CI

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

  1. Введите в командной строке фраза init, чтобы создать файл .phrase.yml.

    Мастер настройки начинается в CLI.

  2. Предоставьте:

    • Токен доступа

      Вставьте или нажмите Enter, чтобы использовать $PHRASE_ACCESS_TOKEN

    • Идентификатор проекта Strings (например, abcdef1234567890abcdef1234567890)

    • Формат файла локали (например, json, rails_yaml, ios_strings)

    • Локальный путь

      Шаблон или точный путь к файлам локали в кодовой базе проекта (например, config/locales/*.json)

Базовый файл .phrase.yml создается в текущем каталоге.

Совет

Укажите флаги, чтобы полностью пропустить мастер, например фраза init --access_token=$PHRASE_ACCESS_TOKEN --project_id=... --file_format=ios_strings --path='ios/*.strings'.

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

  • Текущий рабочий каталог (pwd), в котором вызывается клиент CLI.

  • Главный каталог текущего пользователя ($HOME в Unix, $HomePath в Windows).

  • Путь, указанный в переменной среды PHRASEAPP_CONFIG.

  • Путь к файлу конфигурации через пометку --config (например, /some/path/to/phrase.yml).

Обзор параметров CLI

Образец файла конфигурации.

Глобальные настройки 

Ключ

Тип

Обязательный

Описание

phrase.access_token 

строка

Да

Личный токен доступа.

phrase.project_id 

строка

Да

Общий идентификатор проекта, отображаемый в настройках проекта Strings.

phrase.file_format 

строка

Да

Формат файла по умолчанию языкового стандарта (расширение API).

phrase.locale_mapping

объект

Нет

Сопоставляет идентификаторы языковых стандартов Phrase с пользовательскими именами для использования в путях файлов с заполнителем <locale_name>. Это полезно для платформ с нестандартными соглашениями об именовании, такими как Android.

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

Push: Sources

Ключ

Тип

Обязательный

Описание

push.sources[].file 

путь

Да

Относительный путь к файлу(ам), которые нужно отправить, например, ./path/to/file/<locale_code>.json. Supports <locale_name>, <locale_code>, <tags>.

push.sources[].project_id 

строка

Переопределите глобальный project_id для этого конкретного источника файла. Полезно при отправке файлов в несколько проектов Phrase из одного конфигурационного файла. 

Push: Parameters

Параметр

Тип

По умолчанию

Описание

file_format 

строка

заголовок

Переопределите формат файла для этого источника.

locale_id 

строка

Имя языкового стандарта (например, en-US) или публичный идентификатор языкового стандарта.

tags 

строка

Теги, разделенные запятыми, для новых ключей.

update_translations 

булевский

false 

Обновить существующие переводы с содержимым файла.

update_translation_keys 

булевский

true 

Передайте false сюда, чтобы предотвратить создание новых ключей и обновление существующих ключей.

update_descriptions 

булевский

false 

Обновите описания ключей; пустые описания перезаписывают существующие.

skip_upload_tags 

булевский

false 

Теги загрузки не создаются.

пропустить_проверку 

булевский

false 

Обновленные переводы не являются непроверенными.

file_encoding 

строка

Кодировка файла: UTF-8, UTF-16, UTF-16BE, UTF-16LE или ISO-8859-1.

locale_mapping 

объект

(Только Excel/CSV) Сопоставьте коды локалей с именами столбцов, например, {"en": "C", "de": "D"} для разбора переводов. Это отличается от верхнего уровня locale_mapping, используемого для путей к файлам.

автоперевод 

булевский

false 

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

mark_reviewed 

булевский

false 

Отметьте импортированные переводы как проверенные (расширенный рабочий процесс проверки должен быть включен).

Отправить: Параметры формата

Все доступные параметры формата поддерживаются в конфигурации CLI. Смотрите Пример конфигурационного файла для примеров.

Вытянуть: Цели

Ключ

Тип

Обязательный

Описание

вытянуть.цели[].файл 

путь

Да

Относительный путь для вытянутых файлов языкового стандарта, например, ./Radio.de/<код_языка>.lproj/Localizable.strings.

pull.targets[].project_id 

строка

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

Вытянуть: Параметры

Параметр

Тип

По умолчанию

Описание

file_format 

строка

Должно быть строки.

locale_id 

строка

Имя языкового стандарта (например, en-US) или публичный идентификатор языкового стандарта.

tags 

строка

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

include_empty_translations 

булевский

false 

Включить ключи без переводов.

exclude_empty_zero_forms 

булевский

false 

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

include_translated_keys 

булевский

true 

Включить ключи, которые уже имеют переводы.

keep_notranslate_tags 

булевский

false 

Сохранить [NOTRANSLATE] теги в результате.

кодировка 

строка

Кодировка файла: UTF-8, UTF-16, UTF-16BE, UTF-16LE или ISO-8859-1.

include_unverified_translations 

булевский

true 

Если false, исключить непроверенные переводы.

use_last_reviewed_version 

булевский

false 

Если true, используйте последнюю проверенную версию (требуется продвинутый рабочий процесс проверки).

fallback_locale_id 

строка

Резервный языковой стандарт для использования при отсутствии переводов.

Вытянуть: Параметры формата

Все доступные параметры формата поддерживаются в конфигурации CLI. Смотрите Пример конфигурационного файла для примеров.

Несколько конфигураций

В монорепозиториях разместите один файл конфигурации в каждом пакете и запускайте CLI из соответствующей подпапки, или укажите задания CI на разные файлы конфигурации с помощью опции --config.

Интеграция с Git

GitLab:

  • Файл конфигурации .phrase.yml должен присутствовать в хранилище. Файл определяет, какие файлы импортировать (извлечение) или экспортировать (отправка) из хранилища.

  • Для хранилища необходим доступ для чтения и записи.

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

  • Используйте GitLab 9.5 или более поздние версии для обеспечения совместимости интерфейса приложений API.

GitHub:

  • Файл конфигурации .phrase.yml должен присутствовать в хранилище. Файл определяет, какие файлы импортировать (извлечение) или экспортировать (отправка) из хранилища.

  • Для хранилища необходим доступ для чтения и записи.

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

  • Токен доступа GitHub для области хранилища (public_repo, если есть синхронизация с общедоступным хранилищем).

  • Если в GitHub включен единый вход в систему (SSO), его также необходимо активировать для токена доступа.

  • Невозможно защитить ветвь phrase_translations.

  • Убедитесь, что настройки хранилища не требуют подписанных фиксаций.

BitBucket:

  • Файл конфигурации .phrase.yml должен присутствовать в хранилище. Файл определяет, какие файлы импортировать (извлечение) или экспортировать (отправка) из хранилища.

  • Для хранилища необходим доступ для чтения и записи.

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

Была ли эта статья полезной?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.