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 a week ago

Translation memory is available starting from the Growth plan, with advanced management features (like uploading, downloading, and managing TM files) accessible from the Advanced 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?

Translation memory (TM) helps you save time by reusing previously translated phrases. Whenever you or your collaborators add translations—through the text editor, uploads, or the API—Lokalise automatically stores them in a special translation memory.

For example, when a key is translated from English to French, the translation is saved to the TM. Later, if the same phrase needs to be translated again, Lokalise will suggest it inline, allowing you to reuse it instantly. Even if the phrase isn’t an exact match, Lokalise suggests similar phrases with a match percentage, helping you work faster.

By default, all projects within a team share the same TM, but contributors with the "Manage project settings" permission can create and assign multiple translation memories as needed.

Technical limitations

  • 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 Growth 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 Advanced 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 Advanced plan, while the TM search feature is accessible from the Growth 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.


How to build a Translation memory from legacy files

Lokalise Translation Memory supports TMX files only. TMX (Translation Memory eXchange) is the standard format used by translation tools to store and share translation memory.

Lokalise doesn’t provide a built-in converter from other formats, so legacy translations must be converted to TMX before importing them. If your translations live in older tools or files, the sections below describe common ways teams turn that data into a usable translation memory.

TL;DR:

  • Lokalise Translation Memory supports TMX only

  • Lokalise doesn’t convert legacy formats automatically

  • Export or convert your existing translations to TMX first

  • Clean the data before importing for best results

Step 1: Identify your source of truth

Start by answering one simple question: Where do your existing translations actually live today? No matter the source, the key requirement is always the same: source and target text must be clearly paired.

Most customers fall into one of these groups:

A) Another CAT tool

Examples: Trados, memoQ, Phrase, Smartcat, Wordfast.

If you’ve ever translated content using one of these tools, you likely already have a translation memory, even if you never exported it.

What to do:

  • Open the CAT tool

  • Locate Translation Memory / TM management

  • Export the TM as TMX

This is the fastest and cleanest path.

B) Localized files in a repository

Examples: JSON, YAML, PO, XML, RESX, .strings, strings.xml.

In this case, translations exist, but there is no TM yet, just files.

What to do:

  1. Pick a CAT tool or conversion tool that supports these file formats

  2. Import both source and translated files

  3. Let the tool align source → target text

  4. Export the result as TMX

This turns existing translations into a proper translation memory.

C) Spreadsheets (Excel or Google Sheets)

Very common for older or manual workflows.

What to do:

  1. Clean up the spreadsheet so it has a clear structure:

    • One source string per row

    • One target language per column

  2. Import the spreadsheet into a CAT tool or TM converter

  3. Export the aligned content as TMX

If the spreadsheet is messy, clean it first as conversion tools assume consistent structure.

D) Custom systems or databases

For CMSs, internal tools, or databases, the process is similar to spreadsheets.

What to do:

  • Export translations into a structured format (CSV, XLSX, or bilingual files)

  • Import that data into a CAT tool

  • Export TMX

E) Plain text glossaries or documents

Sometimes translations exist as plain text files, simple lists, or internal documentation, rather than structured localization files.

What to do:

  • Convert the text into a structured format first (for example, a spreadsheet)

  • Make sure the structure is clear:

    • One source segment per row

    • One target translation per row or column

  • Import the structured data into a CAT tool or TM converter

  • Export the aligned content as TMX

For larger or more technical datasets, teams often use a small script (for example, with Python or similar tools) to normalize the text before conversion.

F) PDFs or exported documents

Sometimes translations exist only in PDFs, such as exported documentation, manuals, or archived content.

What to do:

  • Extract text from the PDF using a PDF extraction or OCR tool (Adobe Acrobat Pro, Tesseract, etc.)

  • Review and clean the extracted content (fix line breaks, order, and encoding issues)

  • Convert the cleaned content into a structured format (for example, a spreadsheet)

  • Align source and target text so each segment has a clear match

  • Import the structured data into a CAT tool

  • Export the aligned content as TMX

PDFs almost always require manual cleanup before conversion. Taking the time to structure the content properly helps avoid broken segments and low-quality translation memory.

G) Script-based or programmatic conversion

Some teams store translations in custom formats or need to process large amounts of data. In these cases, writing a small script to prepare the data before conversion can be the most efficient option.

What to do:

  • Export translations from the original source (database, text files, logs, CSV, etc.)

  • Use a script (for example, with Python and pandas) to:

    • Normalize source and target text

    • Ensure one source segment maps to one translation

    • Remove duplicates or unwanted entries

  • Output the cleaned data in a structured format (such as CSV or XLSX)

  • Import the structured data into a CAT tool or TM converter

  • Export the aligned content as TMX

Script-based workflows offer the most flexibility, but they require careful validation.

Step 2: Validate your TMX before importing

Before uploading the TMX to Lokalise, it’s worth doing a quick sanity check.

Make sure:

  • Languages are correct (no mixed locales)

  • Segments aren’t duplicated excessively

  • Old or incorrect translations are removed

  • Placeholders and variables are consistent

A clean TM leads to better suggestions and higher trust from translators.

Step 3: Import the TMX into Lokalise

Once the TMX file is ready:

  1. Open Team settings > Translation memory

  2. Upload the TMX file

Why TMX is required

Legacy formats vary a lot, and automatic conversion often produces low-quality translation memory: broken segments, wrong language mapping, or noisy duplicates.

By requiring TMX, Lokalise ensures:

  • A consistent, industry-standard format

  • Predictable import behavior

  • Higher-quality TM suggestions in the editor


Frequently asked questions

What is the difference between Translation memory and Term base (Glossary)?

Translation memory (TM) and Glossary (sometimes called "term base") serve different but complementary purposes in localization.

  • Translation memory stores full segments that were already translated before. When the same or a similar sentence appears again, the TM can automatically suggest or apply the previous translation. This helps keep translations consistent and reduces time and cost by reusing existing work.

  • Glossary (Term base) stores individual terms, such as product names, technical terms, or brand-specific wording, along with their approved translations. It does not translate full sentences. Instead, it guides translators by enforcing or suggesting specific words inside a segment.

In short: Translation memory works at the sentence level and focuses on reuse, while Glossary works at the word or phrase level and focuses on terminology consistency.

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?