Skip to content

Content Delivery

Over-the-Air Content Delivery is a feature that allows you to instantly update sources and translations in your mobile, server, desktop, or web apps with a single click without preparing a new release.

How It Works

The following illustrations provide a visual representation of how source and translation content delivery works for different types of applications.

Over-the-Air Content Delivery Flow for Mobile Apps

Distribution Setup

Distribution is a CDN vault that mirrors your project’s translated content and is required for integration with mobile, server, desktop, and web apps.

To configure a distribution, follow these steps:

  1. Open your project and select Translations on the left sidebar.
  2. Click Over-The-Air Content Delivery to expand the respective section.
  3. Add a new distribution using the Add distribution button.
  4. In the appeared dialog, name your distribution. Over-the-Air Content Delivery
  5. Select one of the following export options:
    • Original file format – export translations in the original format of the selected files.
    • Target file bundles – export translations in the selected format regardless of the original format of the selected files.
  6. Select only the files, translations for which you want to be shown in your application.
  7. Click Next.
  8. Copy the distribution hash so that you can use it for integration.
  9. Create as many distributions as you need and select different files for each distribution. You’ll need to click Release next to the needed distribution each time you want to send new translations to the app. Alternatively, click Release all to send new translations to all apps at once. Over-the-Air Content Delivery

For Mobile Applications

To send the translated content to your mobile apps via content delivery, use the Crowdin SDKs.

For Web Applications

To send the translated content to your web apps via content delivery, use the Crowdin OTA JavaScript client.

Read more about the Crowdin OTA JavaScript client.

To manage the translated content delivery to your web apps manually, use the following instructions:

Form the URL to the translation file as follows:

Terminal window
https://distributions.crowdin.net/{distribution_hash}/content/{path_to_file}

{path_to_file} will be the same as for the regular translation build. If your files don’t have export patterns with the language code placeholders (e.g., %locale%, %two_letters_code%, etc.), the system will automatically add the Crowdin language code at the beginning of the path.

You can find the list of your project’s language codes in the meta-information of your distribution content:

Terminal window
https://distributions.crowdin.net/{distribution_hash}/manifest.json

Pricing

Pricing ComponentFree QuotaPrice
Request Count1M/month$3.00/1M
Data Transfer10GB/month$2.00/10GB

A request is considered any single query to a CDN (e.g., a request to a distribution manifest, a request to a distribution file, etc.).

Data transfer is the amount of data transferred over the network (including headers). The system delivers your language packages via CDN, containing all the existing translations.

If the distribution contains content divided into multiple files, a request to download each file is counted as a separate request. Additionally, the volume of files is also counted as a data transfer.

For example, if a distribution contains 20 files, each of which is 5MB, the download is counted as 20 requests and 100MB of data transfer.

To reduce requests to the CDN, you can put all the necessary content into one file (using Bundles), and when it is downloaded, the system counts one request instead of 20 separate ones. Additionally, caching configuration can be made on the app’s side.

In our statistics, we use data provided by AWS. If 1,000,001 (1 million and 1) requests are made in a month, the price for requests will be $6. If 10GB and 1 byte are transferred in a month, the price for data transfer will be $4. The combined total will be $10 per month for requests and data transfer.

Was this page helpful?