Skip to main content
Version: 3.x.x

Content Delivery (CDN)

Content Delivery will deploy your localization files to reliable and fast cloud storage so you can confidently use them in your application. This way, the updates in your localization files can be reflected without changes to your code or rebuilding the application.

Feature availability

In the Free plan, you can use only one content delivery configuration, and you cannot use custom storage.

Custom storages are available in the Translate plan and higher. Multiple content delivery configurations are available in the Optimise plan and higher. Upgrade your plan to use these features.

If you use the self-hosted version, you can connect to your own storage in server configuration. With Tolgee license you can use Hosted Content Delivery (same as on cloud).

Setting up the Content Delivery​

You can set up Content Delivery in the Developer settings section of the Tolgee platform.

  1. Go to Developer Settings
Developer Settings
  1. Click the + Content Delivery button

Give the configuration a name and choose the Languages and Format of the published files. Below them, you can choose what gets published (see Choose what gets published). These settings work the same way as on the export page.

When the Publish automatically option is enabled, your localization files will be published automatically after every change in your localization data. If you deselect the checkbox, you will have to publish your localization files manually.

Add content delivery dialog
  1. Use the Content Delivery link

Copy the link to your Content Delivery.

Content Delivery link

The easiest way to connect Content Delivery with Tolgee SDK is through BackendFetch plugin.

const tolgee = Tolgee()
...
.use(BackendFetch({ prefix: 'https://cdndev.tolg.ee/i18n/b53fb7fb98a57fd1f2ffc85ef5ee7b03' }))
...

This way, your localization files are stored outside your application, so you can update them independently from your release cycle.

info

Content delivery is made to be rapidly available all around the world, so we prioritize caching and using CDN over fast deployment. This means it can take up to 15 minutes (usually faster) for your changes to be published.

Read more about providing Tolgee SDK with static data.

Manual publishing of Localization Files​

If you opted out of automatic publishing, you can do so manually in the list of content deliveries by Publish button.

Manual publish

Choose what gets published​

Your app usually should not load every string in the project. Unfinished copy, strings for a feature that has not shipped yet, or strings that belong to another app can end up in front of users once the files are published. In the content delivery dialog, you can limit what gets published with the same filters you know from the export page. They are always visible in the dialog, below Languages and Format.

  • States selects which translation states are published. Unlike the export page, content delivery publishes only Translated and Reviewed translations by default, so untranslated strings never reach your app.
  • Namespaces selects which namespaces are published. It is only shown when namespaces are enabled for the project.
  • Message & placeholder format and format specific options such as Support arrays or Escape HTML are only shown for formats that support them.
  • Include keys with tags publishes only keys that have at least one of the listed tags.
  • Exclude keys with tags skips keys that have any of the listed tags.

Both tag fields offer the tags that already exist in the project and accept * as a wildcard. A tag used in one field is not offered in the other. Leave them empty to publish all keys.

For example, imagine your production app should only get strings that are part of a release, and never strings your team still marks as wip. Add release-* to Include keys with tags and wip to Exclude keys with tags. Every key you tag for a new release, such as release-2.5, is included the next time the files are published, without editing the configuration, while unfinished keys stay out of your app until the wip tag is removed.

Content delivery dialog with Translated and Reviewed states and tag filters release-* and wip
Branching

When branching is enabled, each content delivery configuration gains a Branch field and is pinned to a specific branch. See Content Delivery and Branches for details.

Storage file structure​

Your localization files are simply named by the language tags in the root folder of your storage link with the file extension (depending on your settings):

├── <your Content Delivery link>
│ ├── cs.json
│ └── en.json

If you use namespaces, it should look like this:

├── <your Content Delivery link>
│ └── common
│ ├── en.json
│ └── de.json

Using custom storage​

Feature availability

Custom delivery storages are available in advanced plans. Upgrade your plan to use this feature.

If you use the self-hosted version, you need to set up the license to use this feature.

You can also connect the content delivery to your custom storage.

  1. Open Content Storage settings
Content storage tab in developer settings
  1. Add new storage

Tolgee supports S3 buckets and Azure blob storage. Fill in the settings that you obtain from your provider.

You can also test if your configuration is valid with the Test button.

Create content storage dialog for an S3 bucket
  1. Select the storage in the Content Delivery

After you create custom storage, the Storage field will appear in Content Delivery settings, so you can select your storage over the default one.

Storage select in the content delivery dialog