Translation memory
The translation memory is the workspace’s record of everything it has already translated. It fills itself, it is shared by every project, and it is what makes the second product cheaper to localise than the first.
How entries get there
Section titled “How entries get there”Every time a translation is approved, the pair — source text, target text, language pair — is written to the memory. Nothing else is needed: no export, no import, no separate step for the translator.
You can also curate it by hand from Workspace → Translation memory:
- Add an entry for a phrase that was decided outside Ownlate.
- Search the memory by text.
- Delete an entry that is wrong, so it stops being suggested.
Each entry counts how often it has been reused, which is a decent proxy for how much it is worth keeping tidy.
How matching works
Section titled “How matching works”A match is scored from 0 to 100 as a similarity between the source text you are translating and the source text stored in the memory. The comparison is case-insensitive and based on edit distance, so a string that differs by a full stop scores high while a string that differs by a clause scores low.
- 100 — the source texts are identical.
- Below 100 — a fuzzy match. How far below is your judgement call; anything under roughly 70 is usually a different sentence that happens to share words.
In the editor, matches appear in the Translation memory tab of the assist panel, best first, with their score. One click puts the text into the field, where it is an ordinary draft you can edit.
Pre-translation
Section titled “Pre-translation”Rather than translating from empty, run Pre-translate on a target language. It walks every segment of the project that is untranslated and marked translatable, and tries your chosen sources in the order you list them, stopping at the first that produces something.
Two kinds of source can be combined:
| Source | Setting | What it does |
|---|---|---|
| Translation memory | Minimum score, 0–100 | Applies a memory match |
| Machine translation | Which integration, or the built-in engine | Asks a provider to translate the source text |
The status the result lands in depends on how much Ownlate trusts it:
- An exact memory match (100) is applied and approved — the workspace already signed off on this exact string once.
- A fuzzy memory match above your threshold is saved as a draft, so somebody has to look at it.
- A machine translation is submitted as needs_review, so it enters the ordinary review queue.
A typical setup lists the memory first with a threshold around 90, and machine translation second — reuse what you have paid for, machine-translate the rest.
Pre-translation runs in the background. Start it and close the tab; the progress bar on the project reflects it as it goes.
From the command line
Section titled “From the command line”The CLI runs the same thing for a language:
ownlate translate --lang de --score 80--score is the memory threshold. Without --lang it covers every target language of the project. See the CLI reference.
Over the API
Section titled “Over the API”| Operation | Where |
|---|---|
| Find matches for a text | GET /v1/workspaces/{workspaceId}/segments/translation-memory |
| Run pre-translation | POST /v1/workspaces/{workspaceId}/segments/pre-translate |
| List, add, delete entries | GraphQL tmEntries, addTmEntry, deleteTmEntry |
See the REST API for the full request shapes.