
AI Translation Suite: Translation Memory & TMX
Every approved translation is remembered: exact and near matches are answered from memory before a token is spent, with TMX in and out.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_translation_memory.
AI Translation Suite: Translation Memory & TMX
An add-on for BambooForge AI Translate (17.0). Every approved translation is remembered; exact and near matches are answered from memory before the engine is asked; TMX in and out; a counter of what was saved.
How the memory fills
Nothing to do. When a batch applies an item - after review, or straight away on an auto-approved batch - the pair source → value is written to AI Translate ▸ Translation Memory for that language pair, with where it came from (model, field, batch) and when. A later approval of the same source replaces the earlier one: the reviewer's newest decision is the memory. An item that was itself answered from memory and applied unchanged writes nothing new.
Pairs where the translation equals the source (OK → OK) are not stored: they would never help.
How a batch uses it
On the batch, Use translation memory (default on) and Near-match threshold (%) (default 90). When the batch is translated, before anything is sent to the engine and after the glossary:
an item whose source is already in memory for this language pair (compared ignoring case and extra spaces) is proposed from memory, note memory, Match % = 100, and is not sent;
otherwise the most similar remembered source is looked for; if it is at least threshold % similar (difflib ratio) the remembered translation is proposed with note memory, 96 % match - check and Match % in orange - the reviewer fixes three characters instead of reading a fresh sentence;
everything else goes to the engine as before.
The batch shows Answered from memory and Characters not sent. Set the threshold to 100 for exact matches only; the glossary always wins over the memory.
TMX
AI Translate ▸ Import TMX: pick the file and the language pair; every <tu> carrying both languages (by Odoo code de_DE or ISO de) is remembered with origin TMX import; duplicates update the existing entry. Translation Memory ▸ select rows ▸ Action ▸ Export TMX (or no selection = everything) downloads TMX 1.4 with xml:lang per segment.
Technical notes
Uses AI Translate 1.1.0's bf.translate.job._local_proposals(items, glossary) and bf.translate.item._after_applied() hooks; the engine code is untouched.
Exact lookup is an indexed equality on a normalised key; near-match is Python difflib over the pair's pool with a length pre-filter - fine for tens of thousands of entries, not a search engine.
Entries are per company; the unique key is (normalised source, from, to, company).
Community only. No Enterprise module, no external service.
Screens


