CLI

Using the CLI (Strings)

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

Инструмент Phrase Strings CLI дает возможность навигации по интерфейсу приложений API для быстрого управления проектами и переводами из командной строки вместо запросов на включение изменений.

Если вы используете центр хранения и обработки данных США, перейдите на сервер с помощью phrase init --host https://api.us.app.phrase.com/v2. Если конфигурация уже сгенерирована, добавьте следующий код:

phrase:
  host: https://api.us.app.phrase.com/v2

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

Управляйте тем, как клиент перемещает и извлекает файлы, используя файл конфигурации .phrase.yml.

  1. Инициализируйте проект.

    Инициализируйте проект, запустив phrase init. Определяйте предпочтительный формат файлов языковых стандартов, исходники и многое другое:

    $ phrase init
  2. Загрузите файлы языковых стандартов.

    Используйте подкоманду push, чтобы загрузить файлы языковых стандартов:

    $ phrase push
  3. Скачайте файлы языковых стандартов.

    Используйте подкоманду pull, чтобы скачать последние файлы языковых стандартов обратно в проект:

    $ phrase pull
  4. Больше команд.

    Чтобы увидеть список всех доступных подкоманд, запустите Phrase без указания подкоманды. Чтобы увидеть все поддерживаемые параметры конкретной подкоманды, используйте пометку --help:

    $ phrase locales list --help

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

Правила экранирования и использование кавычек

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

Если используется оболочка Windows, заключите всю строку JSON в двойные кавычки """ и экранируйте двойные кавычки в JSON, используя символ обратной косой черты \. Например:

phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123

Доступ и аутентификация

Доступ к конечным точкам API

Клиент может быть использован, чтобы получить доступ ко всем конечным точкам интерфейса приложений API. Например, для списка всех проектов:

$ phrase projects list --access_token ACCESS_TOKEN

Аутентификация с использованием учетных данных Phrase

Укажите имя пользователя, пометив его --username, и будет запрошен пароль:

$ phrase projects list --username user@example.com
Password: ********

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

$ phrase projects list --username user@example.com --tfa
Password: ********
TFA: ********

Аутентификация с использованием токена доступа

Используйте пометку --access_token, чтобы указать свой токен доступа:

$ phrase projects list --access_token ACCESS_TOKEN

или используйте переменную среды PHRASE_ACCESS_TOKEN для хранения токена:

export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"

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

$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD

Токен также может быть предоставлен в интерактивном режиме с пометкой --tfa:

$ phrase projects list --access_token ACCESS_TOKEN --tfa
TFA: ********

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

При хранении файла .phrase.yml в хранилище кода рекомендуется сначала удалить токен и использовать альтернативные методы, такие как передача токена через среду или пометить командной строкой. Хранение секретных токенов непосредственно в хранилище может быть вопросом безопасности.

Push и pull

Используйте команды push и pull, чтобы загрузить и скачать файлы языковых стандартов. Вместо аргументов командной строки push и pull полагается на конфигурацию, хранящуюся в файле конфигурации .phrase.yml в корневой папке проекта.

Если в push установлен параметр Update_translations, push перезаписывает переводы. Pull всегда перезаписывает переводы в локальном файле.

Пример конфигурации для загрузки и скачивания файлов языковых стандартов типичного приложения Rails:

phrase:
  access_token: "ACCESS_TOKEN"
  project_id: "PROJECT_ID"
  file_format: "yml"
  push:
    sources:
      - file: "./config/locales/<locale_name>.yml"
  pull:
    targets:
      - file: "./config/locales/<locale_name>.yml"

Используйте команду push, чтобы загрузить файлы языковых стандартов в проект, обозначенный project_ id как файл de.yml и en.yml в папке настройки/ языковых стандартов. Если появятся новые ключи, они будут добавлены в файл локализации:

$ phrase push
Uploading config/locales/de.yml
Uploaded config/locales/de.yml successfully.
Uploading config/locales/en.yml
Uploaded config/locales/en.yml successfully.

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

$ phrase pull
Downloaded de to config/locales/de.yml
Downloaded en to config/locales/en.yml

Поддержка лимита ставок

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

Загрузить очистку

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

$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>

Параметры формата

Несколько форматов, например CSV, поддерживают дополнительные параметры формата во время загрузки. Получите доступ к этим параметрам, указав --format_options:

phrase uploads create \
--project_id PROJECT_ID \
--file ./en.csv \
--file_format csv \
--locale_mapping ‘{“en”:3, “de”:2}’ \
--format_options ‘{“key_index”:1}’ \
--access token YOUR_ACCESS_TOKEN

Использовать префикс ключа перевода

Префикс ключа перевода предотвращает столкновения ключей в разных проектах или файлах и улучшает прослеживаемость ключей перевода. Интерфейс CLI поддерживает обработку префикса ключа как для pull, так и для push операций.

  • Параметры push:

    • translation_key_prefix: Указанный префикс предваряется отправкой ключей перевода.

      • Используйте заполнитель <file_path> для автоматической установки translation_key_prefix для текущего пути файла. Путь имеет максимальную длину 255 символов.

  • Параметры pull:

    • translation_key_prefix: Этот параметр позволяет вычитать префикс из имен ключей перевода во время операции pull.

      • Используйте заполнитель <file_path> для автоматической установки translation_key_prefix для текущего пути файла. Путь имеет максимальную длину 255 символов.

    • filter_by_prefix: Булев вариант, который фильтрует ключи перевода на основе префикса перед их извлечением.

Пример конфигурации файла Frase.yml:

phrase:
  access_token: access_token
  file_format: yml
  push:
    sources:
      -
        файл: путь/к/ваш/файл.yml
        project_id: project_id
        params:
          locale_id: en
          translation_key_prefix: prefix_
  pull:
    targets:
      -
        файл: путь/к/ваш/файл.yml
        project_id: project_id
        params:
          translation_key_prefix: prefix_
          filter_by_prefix: true

Пример команд закручивания:

curl "https://api.phrase.com/v2/projects/:project_id/uploads?translation_key_prefix=prefix_" \
  -u USERNAME_OR_ACCESS_TOKEN \
  -X POST \
  -F file=@/path/to/my/file.format \
  -F file_format=формат \
  -F locale_id=locale_id
закрутите "https: //api.phrase.com/v2/projects/:project_id/locales/:Идентификатор/download?file_format=file_format&translation_key_prefix=prefix_&filter_by_prefix=true" \
  -u USERNAME_OR_ACCESS_TOKEN

Прокси

Если используется прокси-сервер, задайте настройки прокси, используя переменную среды HTTPS_PROXY:

export HTTPS_PROXY=https://user:password@host:port

Сложное использование

Несколько файлов локализации для одного проекта

Используйте в проекте один файл на каждый языковой стандарт. Если инструменты или рамки вынуждают использовать несколько файлов, см. раздел «Поддержка файловых структур», чтобы узнать, как настроить проект.

Несколько проектов для одного проекта локализации

При работе над крупным проектом локализации распределите переводы по нескольким проектам. Настройка CLI для работы с несколькими файлами локализации для одного проекта локализации.

Параметры формата

Некоторые форматы файлов позволяют задавать параметры формата для усиления контроля над синтаксисом файлов. Укажите параметры формата в файле конфигурации .phrase.yml:

phrase:
  pull:
    targets:
    - file: file.xml
      params:
        format_options:
          convert_placeholder: true

  push:
    sources:
    - file: file.csv
      params:
        format_options:
          column_separator: ";"

Конфигурация для проектов на базе Android

Android не использует стандартные коды языка ISO в качестве шаблона файла. Укажите требуемый шаблон в .phrase.yml.

Укажите точно каждый языковой стандарт в файле .phrase.yml. Этот пример показывает конфигурацию .phrase.yml с английским языком по умолчанию, немецким языковым стандартом и немецким языковым стандартом для австрийского немецкого языка:

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: xml
  pull:
    targets:
    - file: ./app/src/main/res/values/strings.xml
      params:
        file_format: xml
        # Unique locale id for English
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de/strings.xml
      params:
        file_format: xml
        # Unique locale id for German
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de-rAU/strings.xml
      params:
        file_format: xml
        # Unique locale id for Austrian
        locale_id: LOCALE_ID
  push:
    sources:
    - file: ./app/src/main/res/values/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de-rAU/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID
Была ли эта статья полезной?

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.