Skip to main content
Ditto

Learn how to use Ditto app in Lokalise.

Ilya Krukowski avatar
Written by Ilya Krukowski
Updated over a month ago

Ditto is a powerful tool that helps teams manage and streamline product text from the design phase all the way through to production. By maintaining a single source of truth, Ditto ensures that everyone—from designers to developers—works with consistent and up-to-date copy, eliminating confusion and reducing the need for manual updates.

This integration with Lokalise allows you to easily sync and localize your product text, making it easier to handle translations alongside your product’s development.

Supported content

The Ditto integration supports Components only. In Ditto, Components are reusable text items that sync across projects, helping teams maintain consistency and standardize content.

Please note that Ditto projects are not supported.


Installation

Creating connection on Ditto

First, create a connection on Ditto. To achieve that, go to the Connections tab in Account Settings, find Lokalise, and click Open:

In the popup, click Add connection and copy the API key.

Adding app on Lokalise

Open your project on Lokalise (ensure you're using the Web and mobile project type), click Apps in the top menu, and find Ditto in the list. Click on it.

Then click Install, paste the API key obtained from Ditto, and click Authorize to finish the installation.


Importing content from Ditto to Lokalise

After installing the app on Lokalise, you'll see a list of available components from Ditto. Content synchronization should start automatically. To start it manually, click Refresh.

In the Ready for import view, select one or more items and click Import from Ditto.

You'll see the following dialog:

  • Choose the languages to include in the import operation.

  • If you want to update existing translation keys with any updates from Ditto since the last import, tick the Overwrite existing keys option. Updated keys will revert to the Unverified status.

  • If you're using Automations, import only the default language with the Overwrite existing keys option enabled. Alternatively, you can import all desired languages while keeping the Overwrite existing keys option disabled.

The import process happens in the background. Once completed, you'll receive a notification. Click View content to navigate to the Imported view.


Reimporting updated content from Ditto to Lokalise

To import updated content from Ditto components, click the Refresh button to see the latest update date. Then, select the items to reimport and click Reimport from Ditto.


Performing translations

Go to the project editor on Lokalise and perform translations as usual. Here’s an example where the appropriate tags have been linked to the imported keys:

The following tags are automatically added:

  • ditto — refers to the Ditto app itself.

  • Test group — the item's title imported from Ditto.

Key names are generated using group and component names separated by a dot (.) delimiter.

Important note on key tags

If you plan to export your translation keys back to Ditto, do not remove the ditto key tag automatically assigned during the import process. Removing this tag will prevent the corresponding key from being exported back to Ditto.


Exporting content from Lokalise to Ditto

Once translations have been reviewed, return to the Ditto app on Lokalise and switch to the Imported view.

Select one or more items and click Export to Ditto.

You'll see the following dialog:

Choose one or more languages and click Export to Ditto.

The export process will occur in the background, and you'll be notified once it's completed.


Known issues and technical limitations

Variant names

The variant name in Ditto must exactly match the language code used in Lokalise. If they don’t match, the export process will fail.

For example, here's the Arabic language on Lokalise:

Variant should also be named ar for proper integration.

When using the API, focus on the apiID instead of the name, as the apiID is fixed and cannot be changed through the Ditto UI, while the name can be modified.

Did this answer your question?