Manage Translation Memories
Translation memory management in Tolgee lets your organization keep one or more shared memories (collections of translations your team has already done) and reuse them across every project that needs to follow the same wording. Instead of every translator translating the same phrase from scratch, your team translates it once and Tolgee surfaces it everywhere the same source text appears again.
Without shared memories, the same phrases keep getting re-translated across projects: a login screen string in one product, a button label in another, an error message in a third, all written by different people, each making slightly different choices. The result is inconsistent wording and wasted translator time.
This page covers managing translation memories: creating them, browsing entries, filling them, sharing them with projects, editing them, and deleting them. For how memories produce suggestions and auto-translate at runtime, see Translation Memory.
Every project gets its own project-only memory regardless of plan. Creating and managing shared memories needs the Translation Memory feature on your plan.
Translation memory types and structure
A translation memory is a collection of entries. Each entry pairs a base text (the source-language string) with one or more translations into other languages.
There are two kinds of translation memories.
A project-only memory is created automatically for every project. It always reflects the project's own translations: every translation saved in the project becomes a match in the memory, with no extra setup. You can also import TMX into it and add entries by hand on top of that.
A shared memory lives at the organization level. Multiple projects can read from and write to it, so a translation done once becomes available everywhere it's assigned. Its content comes from three sources, in any combination: manual entries, TMX imports, and translations saved in projects that have write access.
In the memory list, each row shows a Shared or Project only chip so you can tell them apart at a glance.
| Type | Reflects project translations | Manual + TMX entries | Multi-project |
|---|---|---|---|
Shared | Only when a project writes to it | Yes | Yes |
Project only | Always | Yes | No (one project) |
The translation memories list
The list of translation memories lives in organization settings.
- Open
Organization settings. - Select
Translation memoriesin the side menu.
The list page has a toolbar with a search field to find a memory by name, a filter to narrow the list by type (Shared or Project only), and a + Translation memory button to create a new one.
Every organization member can see the list. Creating, renaming, or deleting a memory (and managing entries inside one) requires the maintainer or owner role. See Permissions reference for the full table.

How do I create a translation memory?
Create a shared memory when you want a single source of approved translations that several projects should reuse. Project-only memories don't need to be created; every project has one automatically.
- On the translation memories list, click
+ Translation memory. - Enter a
Namethat describes its scope (for example,Marketing copyoriOS app). - Pick a
Base language. Every project assigned to this memory must use the same base language. - Set a
Default penalty(0–100%). The penalty is subtracted from match scores when suggestions from this memory show in the editor. See Penalty for details. - Optionally toggle
Only accept reviewed translationsto gate writes (see Control which translations enter the memory). - Optionally add the projects this memory should cover, with read or write access and a per-project penalty.
- Click
Create.

The base language is locked once any project is assigned. If you need to change it later, disconnect every project first.
Creating a shared memory requires the maintainer or owner role.
Browse entries inside a memory
Click a memory's row in the list to open its entries view. The view shows every stored translation, grouped by source text.
The toolbar above the entries lets you:
- Open settings with the gear icon
- Search by source or target text in the search field.
- Switch layouts:
- One row per entry: compact grid that shows every language in a single row.
- Stack languages vertically: one row per language, useful when entries have many translations.
- Filter by language with the language picker.
- Import TMX with the cloud-upload icon (see Import from file).
- Export TMX with the file-export icon.
- Add an entry with the
+ Entrybutton (see Add manually).
How do I fill a translation memory?
You have three ways to populate a memory.

Sync from projects
Available on shared memories only.
When a project has write access to a shared translation memory, every translation saved in that project is automatically added to the memory as a new entry, indexed by its base text (the source-language string). Any other project assigned to the same memory with read access will then see those entries as suggestions while translating. If the base text is an exact match, Auto-translate from memory can apply the saved translation.
No extra setup is required. Once you assign a project to a shared memory with write access, new entries are added automatically as translators save their work.
To set up assignments, open the memory's settings and add a project with Write enabled. See more in Assign projects.
Import from file
Importing TMX is the fastest way to seed a memory with translations you already have.
- Open the memory you want to import into.
- Click the cloud-upload icon in the toolbar.
- Drop a
.tmxfile into the upload area, or click to browse. - If the memory already has entries, choose how to handle conflicts:
Keep existing entries: new entries are added, previously imported entries are kept unchangedOverride existing entries: new entries are added, previously imported entries are replaced with the new translations
- Click
Import.
Only TMX 1.4b files are supported. Once the import finishes, a summary shows how many entries were created, updated, or skipped.

On import, Tolgee uses the memory's configured base language as the source language regardless of the TMX srclang attribute. Any <tu> element that does not contain a <tuv> in the memory's base language is skipped.