Обновление по воздуху (OTA) предлагает гибкий способ доставки обновлений перевода для мобильных и веб-приложений без необходимости нового релиза в App Store, Google Play или других платформах развертывания. Этот подход поддерживает непрерывную локализацию и гибкие рабочие процессы разработки, сокращая задержки и ручные процессы.
Функция OTA в Phrase Strings интегрируется с платформами iOS, Android, React Native, Flutter, i18next и Rails. Обновления текстовых меток мгновенно отправляются в мобильные приложения.
Необходимо создать новый релиз, чтобы обновленные настройки были применены. Весь контент, включенный в релиз, должен быть доступен в Phrase Strings, который передает переводы непосредственно в приложение. Если контент отсутствует, переводы не будут доставлены.
Для мобильных приложений OTA требует интеграции соответствующего Набора средств разработки программного обеспечения (SDK) в приложение для получения переводов из Phrase Strings во время выполнения.
При первом запуске приложения, реализующего 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")
-
Распределение Идентификатор (ID распределения)
-
Секрет окружения (для различения разработки и производства)
Домены, используемые SDK:
Европейский дата-центр
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
Американский дата-центр
-
ota.us.phrase.com
-
cdn.us.phrase.com
Фраза OTA SDK разработаны для обеспечения функциональности приложений, даже если API OTA недоступен. В таких случаях SDK возвращается к последним успешно загруженным переводам, хранящимся на устройстве, или к встроенным переводам, включенным в пакет приложения. Это предотвращает ошибки или отсутствие строк для конечных пользователей. Чтобы гарантировать надежный возврат, встроенные переводы должны быть актуализированы с каждым выпуском приложения.
Распределения — это настроенная конфигурация, которая определяет, как и где обновления OTA доставляются для конкретной платформы или проекта.
Целевые платформы определяются в рамках распределения:
-
iOS
-
Android
-
Флаттер
-
i18next
-
Rails
Несколько дистрибуций возможны, но в идеале должна быть одна дистрибуция на проект. Если используется дистрибуция для iOS и Android, заполнители для двух форматов автоматически конвертируются.
Резервные копии
Если резервные копии языка установлены в языковых настройках проекта, к которому подключена дистрибуция, строки из выбранного языка будут отображаться, если запрашиваемый язык существует, но ключ не переведен.
Если используется язык, специфичный для страны (например, en-GB), но он не является частью релиза, система может использовать стандартную версию (например, en) этого языка, если она существует в проекте. Если запрашиваемый язык вообще не найден, может быть предоставлен язык по умолчанию проекта.
Резервные копии не будут работать на связанных ключах.
Создать дистрибуцию
Чтобы создать дистрибуцию, выполните следующие шаги:
-
На странице в блоке нажмите Настроить или количество конфигураций, если они уже существуют.
Открывается страница и отображаются существующие конфигурации.
-
Нажмите Новая дистрибуция. Окно открывается.
-
На вкладке Общие укажите , с которым связан дистрибуции, необходимые и необходимые .
-
Для дистрибуций Android нажмите на вкладку Android, чтобы выбрать вариант формата, который включает любые переводы, включая HTML-теги в CDATA, если это необходимо.
-
После выбора проекта, с которым будет связана дистрибуция, вкладка Планирование становится доступной. Если необходимо, используйте эту вкладку для настройки запланированных обновлений OTA в дистрибуции.
-
-
На вкладке Резервные языки выберите настройки резервирования, специфичные для дистрибуции, по мере необходимости. Опции резервирования приоритизируются, как показано в списке.
-
При желании нажмите на вкладку Переводы, чтобы выбрать опцию использования последней проверенной версии переводов. Включите эту опцию только при работе с расширенным рабочим процессом проверки.
-
Нажмите Сохранить.
Детали дистрибуции отображаются с идентификаторами, необходимыми для SDK. Детали можно снова отобразить, нажав на дистрибуцию на странице .
Чтобы обновить переводы, создайте новый релиз в рамках дистрибуции. Текущее состояние проекта экспортируется и становится доступным для подключенных клиентов.
Чтобы создать релиз, выполните следующие шаги:
-
На странице Обновление по воздуху нажмите Добавить релиз рядом с необходимой дистрибуцией.
Открывается окно .
-
Укажите , необходимую , , и .
При необходимости введите теги, чтобы включить только ключи с конкретными тегами в релиз.
-
Нажмите Сохранить.
Релиз добавляется в список внизу страницы деталей дистрибуции.
Чтобы настроить повторяющиеся расписания для выпуска дистрибуции, выполните следующие шаги:
-
На странице нажмите на значок шестеренки
рядом с необходимой дистрибуцией.
Окно отображается.
-
Выберите вкладку Запланировать выпуск и нажмите .
Отображаются параметры планирования выпуска.
Примечание
Параметры планирования также доступны при создании нового распределения.
-
В выпадающем списке выберите частоту выпуска, выбрав один из доступных вариантов:
-
-
Выберите желаемые дни недели для запланированных выпусков.
-
-
Укажите время и соответствующий .
-
При необходимости выберите , и для запланированных выпусков.
-
Поле отображается только если ветвление включено в проекте. Выбор ветви обновляет список локалей и языков.
-
-
При желании укажите версии приложения в полях и .
Оставьте пустым, чтобы применить запланированный выпуск ко всем версиям приложения.
-
Нажмите Сохранить.
Распределение обновляется с информацией о планировании выпуска.
Отключение расписания останавливает автоматический выпуск распределения, но настроенные параметры сохраняются.
Интеграция соответствующего мобильного SDK или веб-библиотеки позволяет обновлять переводы одним щелчком мыши, а также предоставляет метрики для измерения использования. Отчеты мобильного SDK и веб-библиотеки дают ценную информацию о активных пользователях приложения и языках их приложений. Этот набор отчетов доступен для каждого распространения, и данные обновляются дважды в день.
Отчеты предоставляются по количеству активных пользователей, общим запросам, запросам по языкам, запросам по платформам и для языков устройств, которые не предоставлены.
Отчеты для каждого распространения доступны через иконку на странице .
Техническая документация для интеграции OTA SDK доступна в файле README каждого репозитория проекта: