Обновление по воздуху (OTA) предлагают гибкий способ Сдать обновления переводов для мобильных и веб-приложений без необходимости выпуска новой версии в App Store, Google Play или на других платформах развертывания. Этот подход поддерживает непрерывную локализацию и гибкие рабочие процессы разработки за счет сокращения задержек и ручных процессов.
Функция обновление по воздуху (OTA) в Phrase Strings интегрируется с платформами iOS, Android, React Native, Flutter, i18next и Rails. Обновления для текстовых меток мгновенно отправляются в мобильные приложения.
Необходимо создать новый выпуск, чтобы применились обновленные настройки. Весь контент, включенный в выпуск, должен быть доступен в Phrase Strings, которая передает переводы непосредственно в приложение. Если контент отсутствует, переводы не будут Сданы.
Для мобильных приложений обновление по воздуху (OTA) требует интеграции соответствующего Software Development Kit (SDK) в приложение для получения переводов из Phrase Strings во время выполнения.
Рекомендации
Подробную информацию о распространении, выпуске и интерфейсе приложений API (справочный файл) можно найти в Developer Hub.
При первом запуске приложения, использующего SDK для iOS, Android, React Native или Flutter, на устройстве создается уникальный случайный идентификатор устройства. Этот идентификатор отслеживает активных пользователей за определенный период времени. Он не используется для каких-либо иных форм или средств отслеживания и не содержит никакой информации о пользователе или устройстве.
Количество запросов обновление по воздуху (OTA) и объем ежемесячных активных пользователей (MAU) ограничены в зависимости от выбранного тарифного плана.
MAU — это количество уникальных устройств, с которых запрашиваются переводы. Каждому устройству присваивается случайный Идентификатор. MAU рассчитывается на основе количества уникальных Идентификаторов, назначенных за последние 30 дней. Каждое взаимодействие с серверами Phrase считается запросом.
Данные, отправляемые с запросами обновление по воздуху (OTA)
SDK взаимодействует с услугой обновление по воздуху (OTA), чтобы проверять наличие обновлений, и включает в каждый заказ следующие сведения:
-
Идентификатор устройства (например, "F3AFCB10-80A2-84CB-94C0-27F5EF58876D". Уникален для этого приложения и поэтому не позволяет отслеживать конкретное устройство.)
-
Версия приложения (напр. "1.2.0")
-
Последнее обновление файла перевода (например, "1542187679")
-
Версия SDK (например, "1.0.0")
-
Языковой стандарт (например, "de-DE")
-
Формат файла (например, "Strings")
-
Клиент (например, "ios")
-
Дистрибутив Идентификатор (Идентификатор дистрибутива)
-
Секрет окружения (для различения разработки и продакшена)
Домены, используемые SDK:
ЦОД в ЕС
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
ЦОД в США
-
ota.us.phrase.com
-
cdn.us.phrase.com
SDK Phrase для обновления по воздуху (OTA) разработаны таким образом, чтобы приложения оставались функциональными, даже если интерфейс приложений API для обновления по воздуху (OTA) недоступен. В таких случаях SDK переключается на последние успешно полученные переводы, сохраненные на устройстве, или на встроенные переводы, включенные в пакет приложения. Это предотвращает ошибки или отсутствие Strings для конечных пользователей. Для обеспечения надежного резервного копирования встроенные переводы должны обновляться с каждым выпуском приложения.
Дистрибутивы — это настроенная конфигурация, которая определяет, как и куда доставляются обновления по воздуху (OTA) для конкретной платформы или проекта.
Целевые платформы определяются в рамках дистрибутива:
-
iOS
-
Android
-
Флаттер
-
i18next
-
Rails
Возможно создание нескольких дистрибутивов, но в идеале на один проект должен приходиться один дистрибутив. При использовании одного дистрибутива для iOS и Android заполнители для двух форматов преобразуются автоматически.
Разрешения
Управление дистрибутивами и релизами обновление по воздуху (OTA) ограничено назначением на проект. Пользователи управляют ими только в тех проектах, к которым они назначены.
Роли ответственный, администратор, менеджер проекта, разработчик и дизайнер по умолчанию имеют полный доступ к дистрибутивам и релизам обновление по воздуху (OTA). Роль переводчик не имеет доступ.
Ответственные и администраторы имеют доступ ко всем проектам.
Пользователям необходимо разрешение на уровне учетной записи для управления дистрибутивами перед созданием одного из них. Новый дистрибутив привязывается только к проектам, к которым пользователь может получить доступ.
Для более детального контроля клиенты Enterprise могут связаться с командой поддержки по поводу создания Пользовательской роли.
Резервные языки
Если в настройках языка проекта, к которому подключен дистрибутив, установлены резервные языки, то Strings из выбранного языка будут отображаться, если запрошенный язык существует, но ключ не переведен.
Если используется специфичный для страны язык (например, en-GB), но он не является частью релиза, система может использовать стандартную версию (например, en) этого языка, если она существует в проекте. Если запрошенный язык не найден вовсе, вместо него может быть использован языковой стандарт проекта по умолчанию.
Резервные языки не будут работать для связанных ключей.
Создать дистрибутив
Чтобы создать дистрибутив, выполните следующие действия:
-
В поле на странице нажмите Настроить или число конфигураций, если некоторые из них уже существуют.
Откроется страница , на которой отображаются существующие конфигурации.
-
Нажмите Новый дистрибутив. Откроется окно .
-
На вкладка Общие укажите , с каким связан дистрибутив, требуемые и требуемые .
-
Для дистрибутивов Android перейдите на вкладка Android, чтобы Выбрать формат, который при необходимости заключает любой перевод, включая HTML-теги, в CDATA.
-
После выбора проект, который нужно связать с дистрибутивом, станет доступна вкладка Планирование. При необходимости используйте эта вкладка, чтобы настроить запланированные релизы обновление по воздуху (OTA) в дистрибутиве.
-
-
На вкладка Резервные языки Выбрать специфические для дистрибутива настройки резервных языков по мере необходимости. Опции резервных языков имеют приоритет в том порядке, в котором они отображаются в список.
-
При необходимости перейдите на вкладку Переводы, чтобы выбрать опцию использования последней проверенной версии переводов. Включите эту опцию только при работе с расширенным рабочим процессом проверки.
-
Нажмите «Сохранить».
Сведения о дистрибутиве отображаются вместе с идентификаторами, необходимыми для SDK. Сведения можно просмотреть снова, выбрав дистрибутив на странице .
Чтобы обновить переводы, Создать новый релиз в рамках дистрибутива. Текущее состояние проект экспортируется и становится доступным для подключенных клиентов.
Чтобы Создать релиз, выполните следующие действия:
-
На странице обновление по воздуху нажмите добавить релиз рядом с нужным дистрибутивом.
Откроется окно .
-
Укажите , требуемую , , и .
Языковые стандарты, которые еще не добавлены в список языков дистрибутива, отображаются как невыбранные и недоступные для выбора. Добавьте необходимые языки в дистрибутив, чтобы сделать их доступными для выбора в будущих выпусках.
Если при создании выпуска вручную не выбраны никакие языковые стандарты, все языковые стандарты, настроенные в дистрибутиве, включаются в выпуск по умолчанию.
При необходимости введите теги, чтобы включить в выпуск только ключи с определенными тегами. Добавление фильтра тегов к выпуску включает только ключи, содержащие этот тег. Ключи без этого тега полностью исключаются из выпуска, и подключенное приложение для этих ключей использует статические файлы перевода, локально включенные в его кодовую базу. Фильтрация по тегам работает независимо от ветвления: если ветвление включено, выберите ветвь и соответствующий тег(и); если ветвление не включено, выберите только соответствующий тег(и).
-
Нажмите Сохранить.
Выпуск добавляется в список в нижней части страницы сведений о дистрибутиве.
Чтобы настроить повторяющееся расписание для выпуска дистрибутива, выполните следующие действия:
-
На странице нажмите на значок шестеренки
рядом с нужным дистрибутивом.
Отобразится окно .
-
Выберите вкладку Запланировать выпуск и нажмите .
Отобразятся параметры планирования выпуска.
Примечание
Параметры планирования также доступны при создании нового дистрибутива.
-
В раскрывающемся списке выберите частоту выпуска, выбрав один из доступных вариантов:
-
-
Выберите нужные дни недели для запланированных выпусков.
-
-
Укажите время и соответствующий .
-
При необходимости выберите , и для запланированных выпусков.
-
Поле отображается только в том случае, если в проекте включено ветвление. Выбор ветви обновляет список локалей и языков.
-
-
При необходимости укажите версии приложения в полях и .
Оставьте поле пустым, чтобы применить запланированный выпуск ко всем версиям приложения.
-
Нажмите «Сохранить».
Дистрибуция обновляется информацией о планировании выпуска.
Отключение расписания останавливает автоматический выпуск дистрибуции, но настроенные настройки сохраняются.
Примечание
В пользовательском интерфейсе Strings нет возможности приостановить или временно отключить обновление по воздуху (OTA). Чтобы запретить приложению получать переводы, удалите Идентификатор дистрибуции из конфигурации обновления по воздуху (OTA) приложения; восстановите Идентификатор, чтобы возобновить обновление по воздуху (OTA). В крайнем случае удалите дистрибуцию и создайте новую.
Интеграция соответствующего мобильного SDK или веб-библиотеки позволяет обновлять переводы одним нажатием, а также предоставляет метрики для измерения использования. Отчеты мобильного SDK и веб-библиотеки дают ценную информацию об активных пользователях приложения и используемых ими языках. Этот набор отчетов доступен для каждой дистрибуции, данные обновляются дважды в день.
Отчеты предоставляются по количеству активных пользователей, общим запросам, запросам по языкам, запросам по платформам и по непредоставленным языкам устройств.
Отчеты для каждой дистрибуции доступны через значок на странице .
Количество активных пользователей, отображаемое в этих отчетах, отражает скользящее 30-дневное окно, основанное на текущей дате, а не на фиксированном календарном или расчетном периоде.
Техническая документация по интеграции SDK для обновления по воздуху (OTA) доступна в файле README каждого хранилища проекта: