Translation Management

    Over the Air (Strings)

    Content is machine translated from English by Phrase Language AI.

    Over-the-Air (OTA) updates offer a flexible way to deliver translation updates to mobile and web applications without requiring a new release on the App Store, Google Play, or other deployment platforms. This approach supports continuous localization and agile development workflows by reducing delays and manual processes.

    The OTA feature in Phrase Strings integrates with iOS, Android, React Native, Flutter, i18next, and Rails platforms. Updates for text labels are instantly pushed to mobile apps.

    OTA User Device Diagram

    A new release must be created in order for the updated settings to be applied. All content included in a release must be available in Phrase Strings, which streams translations directly to the application. If the content is not present, translations will not be delivered.

    For mobile applications, OTA requires integrating the relevantSoftware Development Kit (SDK) into the application to retrieve translations from Phrase Strings at runtime.

    When starting an application implementing the iOS, Android, React Native or Flutter SDK for the first time on a device, a unique and random device identifier is generated. This identifier tracks active users over a given period of time. It is not used for any other form or means of tracking and does not contain any user or device information.

    The onlylimit regarding OTA is the amount of Monthly Active Users (MAU), depending on selected pricing plan.

    MAU is the number of unique devices from which translations are requested. Each device is assigned a random ID. MAU is calculated based on the number of unique IDs assigned in the last 30 days. Every interaction with Phrase servers is considered a request.

    Data Sent with OTA Requests

    The SDK communicates with the OTA service in order to check for updates and includes the following details with each request:

    • Device identifier (e.g. "F3AFCB10-80A2-84CB-94C0-27F5EF58876D". Unique for this app and therefore does not allow tracking a specific device.)

    • App version (e.g. "1.2.0")

    • Last update of the translation file (e.g. "1542187679")

    • SDK version (e.g. "1.0.0")

    • Locale (e.g. "de-DE")

    • File format (e.g. "strings")

    • Client (e.g. "ios")

    • Distribution ID (ID of the distribution)

    • Environment secret (to distinguish between development from production)

    OTA Distributions

    Distributions are a configured setup that defines how and where OTA updates are delivered for a specific platform or project.

    Target platforms are defined within the distribution:

    • iOS

    • Android

    • Flutter

    • i18next

    • Rails

    Multiple distributions are possible, but ideally there is one distribution per project. If using a distribution for iOS and Android, placeholders for the two formats are automatically converted.

    Fallbacks

    If language fallbacks are set in the language settings of the project the distribution is connected to, strings from the selected language will be displayed if the requested language exists, but the key is not translated.

    If a country-specific language (e.g.en-GB) is used, but is not part of the release, the system can fall back on a standard version (e.g.en) of that language if it exists in the project. If the language requested is not found at all, the default locale of the project can be served instead.

    Fallbacks will not work onlinked keys.

    Create a distribution

    To create a distribution, follow these steps:

    1. From theOver the air (OTA) box on theIntegrations page, clickConfigure or the number of configurations if some already exist.

      TheOver the air page opens and displays existing configurations.

    2. ClickNew distribution. TheAdd distribution windows opens.

    3. In theGeneral tab, provide aName, whichProject the distribution is associated with, requiredLanguages, and requiredPlatforms.

      • For Android distributions, click on theAndroid tab to select the format option that encloses any translation including HTML tags in CDATA, if required.

      • After selecting the project to associate with the distribution, theScheduling tab becomes available. If required, use this tab toset up OTA scheduled releases in the distribution.

    4. In theFallback languages tab, select distribution specific fallback settings as required. Fallback options are prioritized as displayed in the list.

    5. Optionally, click on theTranslations tab to select the option to use the latest reviewed version of translations. Enable this option only when working with the advanced review workflow.

    6. ClickSave.

      Distribution details are displayed with IDs required by the SDKs. Details can be displayed again by clicking the distribution from theOver the air page.

    OTA Releases

    To update translations, create a new release within the distribution. The current state of the project is exported and made available to connected clients.

    To create a release, follow these steps:

    1. From the Over the air page, clickAdd release beside the required distribution.

      TheNew release window opens.

    2. Provide aDescription, requiredPlatform,Branch,Locales andApp versions.

      If necessary, enter tags to include only keys with specific tags in the release.

    3. ClickSave.

      The release is added to the list on the bottom of the distribution details page.

    Schedule OTA releases

    To set up recurring schedules for releasing the distribution, follow these steps:

    1. From theOver the air page, click on the cog wheelModify icon beside the required distribution.

      TheEdit distribution window is displayed.

    2. Select theSchedule release tab and clickEnable scheduling.

      Release scheduling options are displayed.

      Note

      Scheduling options are also available uponcreation of a new distribution.

    3. From theCreate releases every dropdown, choose the release frequency by selecting one of the available options:

      • Day

      • Week

        Select the desired weekdays for the scheduled releases.

    4. Provide a time and relevantTime zone.

    5. If necessary, selectBranch,Tags andLanguages for the scheduled releases.

      • TheBranch field is displayed only if branching is enabled in the project. Selecting a branch updates the list of locales and languages.

    6. Optionally, specify the application versions in theMin version andMax version fields.

      Leave blank to apply the schedule release to all versions of the app.

    7. ClickSave.

      The distribution is updated with release scheduling information.

    Disabling the schedule stops the automatic release of the distribution, but the configured settings are saved.

    Note

    Due to continuous improvements, the user interface may not be exactly the same as presented in the video.

    OTA Mobile SDK and Web Library Reports

    Integrating the appropriate mobile SDK or Web library allows updating of translations with a single click, but also provides metrics to measure usage. The mobile SDK and Web library reports give valuable insight into active app users and their app languages. This set of reports is available for each distribution, and the data is refreshed twice a day.

    Reports are provided for number of active users, overall requests, requests per language, requests per platform and for device languages not provided.

    Reports for each distribution are accessed via theOpen Reports icon on theOver the air page.

    OTA SDK Integration

    Technical documentation for integrating the OTA SDKs is available in the README file of each project repository:

    Was this article helpful?

    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.