Skip to main content
Translation memory

Learn how to make the most of translation memory and manage its entries effectively.

Ilya Krukowski avatar
Written by Ilya Krukowski
Updated over 4 months ago

Translation memory is available starting from the Essential plan, with advanced management features (like uploading, downloading, and managing TM files) accessible from the Pro plan and up.

Lokalise offers a powerful built-in translation memory that's shared across all team projects and members. Anything entered in the editor, upload, or set via the API by you or your team is automatically saved to the translation memory for future use.

Getting started

What is translation memory?

When working on projects, you might find yourself translating the same words and phrases repeatedly. Wouldn't it be easier if you could rely on previous translations? In Lokalise, every translation added by you or your collaborators—whether through the text editor, uploads, or the API—is automatically saved to a special translation memory (TM). For instance, once a translator completes translating a key from English to French, Lokalise automatically saves this translation to the TM.

Later, when you're translating the same phrase for the same language, Lokalise offers inline suggestions from the translation memory. This allows you to reuse the translation instantly, without retyping everything manually. It's a handy feature that can save you a lot of time. Even if the phrase isn't an exact match, the Lokalise engine searches for similar phrases and shows their match percentage.

By default, each project within a team shares the same translation memory, but this can be adjusted as needed. Admins have the flexibility to create and assign as many memory storages as necessary.

Technical limits

  • A single TM inline suggestion can contain up to 1,000 characters. Longer texts won’t be shown as suggestions.

  • TMX files larger than 100MB cannot be uploaded.

  • There’s no limit on the number of TMX files you can upload.

  • The number of translation memory entries per TM storage is unlimited.


Using translation memory

The translation memory feature is available starting from the Essential plan.

Inline suggestions

Inline suggestions are automatically pulled from the translation memory storage and shown in the editor. These suggestions appear when the source text matches the target by 50% or more.

Suggestions with a match percentage below 50% won’t be displayed.

For each suggestion, you’ll see:

  • Source language text (e.g., English): The differences between the current source text and the one from the translation memory are highlighted in green, while differences in the current source text are struck through in red.

  • Target language translation (e.g., French): The proposed translation based on the TM entry.

  • Translation memory storage name: The name of the TM storage from which the suggestion was fetched (e.g., Lokalise Translation Memory).

  • Entry details: Information about when the entry was added to the translation memory and who added it.

To the right, there’s a "trash bin" icon. Clicking this will delete a translation memory entry. Note that only team admins can perform this action, and it's available from the Pro plan and above.

You can control how many inline TM suggestions are displayed in the editor by going to your personal profile and adjusting the Translation memory setting under the General tab.

Populating TM entries in your translations during file uploads

When uploading translation files, you can enable the Pre-translate with 100% TM matches option. With this option turned on, Lokalise will fetch each base language value from the uploaded file and search for a matching entry in the translation memory. If a 100% match is found, the corresponding translation will be automatically populated for the given key, as long as that key doesn’t already have a translation.

Applying translation memory in bulk

To save time on manually translating similar strings, you can apply translation memory to multiple keys in bulk. To do this, select one or more translation keys in the editor and then choose Apply TM to from the bulk menu.

From there, adjust the match percentage, select the target language, and click Apply.

Keep in mind that the percentage you set is the minimum match, and Lokalise will always try to fetch the highest match available in the TM. For instance, if you set the percentage to 98%, Lokalise will first try to find a 100% match, then 99%, and finally, it will look for a 98% match.

Using translation memory in automations

You can automatically apply translation memory to updated strings by setting up a new automated rule. These rules are configured on a per-project basis. For more details on setting up automations, refer to the Automations article.


Translation memory management

All translation memory management features are available starting from the Pro plan, while the TM search feature is accessible from the Essential plan.

Translation memory management involves modifying or deleting TM entries, as well as creating, downloading, uploading, and managing TM storages (TMX files).

Translation memory widget

The translation memory widget lets you find, browse, and delete translation memory suggestions from your storages. It also supports concordance search.

To use the widget, switch to the Translation memory tab or press Ctrl+G, then enter your search term.

You can enable the following options:

  • Exact match (displayed as the "quotation marks" icon) — restricts the search results to 100% matches (off by default).

  • Case sensitive search (displayed as the "Aa" icon) — makes the search case sensitive (off by default).

  • Search in all target languages — by default, you’re searching in the base language. You can search all target languages of the project instead by checking this option.

TM entries that will appear in this widget are:

  • Only from the TMs selected in the settings of the current project.

  • Not restricted to any file uploaded to Lokalise but are language pair related.

Please note that the search will not be performed on the placeholder content to reduce noise in the results.

Click on the trash bin icon to delete a translation memory entry. Please note that only team admins (as well as billers and owners) can delete translation memory entries.

TM search on highlight

You can easily search any phrase in the translation memory by highlighting it. To do this:

  1. Start editing your translation as usual and highlight a word or phrase.

  2. Open the translation memory widget by pressing Ctrl+G or by using the corresponding icon in the top menu.

  3. The search box will be automatically populated for you!

This feature works for both source and target languages.

TMX files management

Team administrators can manage translation memory (.tmx) files in the team settings under the Translation memory tab. These files are the actual storages for your translation memory entries.

The following actions can be performed:

  • Upload a .tmx file into the TM.

  • Create a new TM file.

  • Download a TM as a .tmx file.

  • Delete or clear existing TM files.

After clicking the Download as TMX file button, you'll see the following dialog box:

Here, you can choose to download entries for all languages or select a specific language pair.

To upload a translation memory file, click Upload TMX file. Note that there is currently a 100 MB limit on TMX uploads. If your file is larger, please split it into separate files. To merge entries from a TMX file with an existing TM, name the TMX file exactly the same as the existing TM and upload it. The entries will be added to the TM with the same name.

Also, be aware that translation units in the downloaded TMX file include timestamps based on the TMX 1.4b standard. Ensure that you provide the tuv tag for both the source and target languages. If the tuv tag is missing for one of the languages, you’ll encounter an error when uploading the file.

Here’s an example of a valid TMX file:

<tu srclang="en">
<tuv xml:lang="en">
<seg>Created on GitHub</seg>
</tuv>

<tuv xml:lang="pl-pl" creationdate="20240122T110101Z">
<seg>Utworzony w GitHub</seg>
</tuv>
</tu>

Setting up TM in the project settings

Project administrators can select the specific translation memory (TM) to be used in a project. If the project requires more than one TM storage, they can adjust the Translation memory priority by dragging the corresponding boxes into the desired order. Additionally, team admins must select which TM will be populated with new translations from the project by adjusting the Translation memory target setting.

  • Translation memory priority — This setting allows you to choose which TM storages will be used to read values from. For example, if "Lokalise Translation Memory" is prioritized, values will be fetched from it first, followed by "Custom TM."

  • Translation memory target — Here, you select a TM storage to save new entries to. Alternatively, you can choose not to save anything for the current project. Please note that it’s not possible to save entries to multiple storages simultaneously.


Frequently asked questions

When will translation memory entries be created? What event triggers this?

Translation memory entries are created automatically whenever you create or modify translation texts in the editor, upload translations, or set them via the API.

What exactly each TM entry contains?

Each translation memory (TM) entry consists of a pair: Base language value - Target language translation. When you translate a base language value into a new language, a separate entry is created for that specific language pair.

It's important to be mindful of regional variations. For instance, the English (en) locale differs from English Canada (en_CA). As a result, if you translate "Hello" in English (en) to German, the corresponding TM suggestion won’t appear when translating "Hello" in English (Canada) (en_CA) to German.

What if I modify an existing translation? What will happen to the translation memory entry?

Suppose you have a project with a base language set to English and a target language set to Latvian. You have a key welcome with the base value set to "Hello," and you provide the Latvian translation "Sveiki." This English-to-Latvian translation pair will be stored in the TM.

If you later modify the welcome key and change the Latvian translation to "Labdien," the existing TM entry will be updated. The old entry "Hello → Sveiki" will be removed and replaced with "Hello → Labdien."

The rules are simple:

  • A new entry is created when the base value hasn’t been previously added to the memory (i.e., you’re translating a new string).

  • An existing entry is updated if the base language string is already present in the TM, but a new translation for the same language is provided. This update only occurs if the changes happen within the same project.

  • A new entry is created if the base value from project A is already present in the TM, but a new translation for the same language is provided in project B. This happens because the changes are made in different projects.

What happens to the translation memory entry if the key, which was initially used to add a new TM entry, has been removed?

If you remove a key, the translation memory will be unaffected. All entries will remain intact.

Will the translation memory entry be updated if the corresponding string is marked as reviewed or verified?

No. Entries are only updated when translations are created or edited.

Can I assign reviewed or verified statuses to the translation memory entries?

No, these statuses can only be assigned to the translations themselves.

Does translation memory support plural keys?

No, plurals are not supported.

How can I download my translation memory? Who can do it?

Customers on the Pro plan and above can download translation memory contents as TMX files, edit them offline, and then upload them back to Lokalise. Only team users with admin permissions or higher can perform this action. Please refer to the TMX files management section to learn more.

Is there a dedicated API endpoint to manage translation memories or fetch TM suggestions?

Currently, Lokalise does not provide specific API endpoints for managing translation memories or fetching TM suggestions.

Did this answer your question?