Blending is LingoBlend's core idea: paste any text in your language, and a chosen percentage of its words come back in the language you're learning, woven into sentences you already understand — the diglot weave method with an AI doing the weaving. For two years, one AI call did everything: it read your text, decided which words to translate, translated them, and wrote the whole passage back out. That worked — but it bundled three very different jobs into one, and each job deserved a better specialist.
The problem with letting one AI pass do everything#
When a single model output carries the entire blended text, three things quietly compete:
Selection is a policy question, not a language question. Which words should be blended depends on things the AI can't know from the text alone — which words you've already mastered, which are due for review, how evenly the blend should spread across the page. A language model guesses; a deterministic algorithm can simply be told.
Re-emitting the whole text invites whole-text mistakes. If the model writes out every word of your document, every word is an opportunity for error — a dropped sentence, a duplicated phrase, a translation glued to the wrong spot. Our old pipeline carried ten repair stages that existed mostly to fix damage this architecture made possible.
Judgment gets diluted. The model's real linguistic skill — knowing that "gave up" is one unit of meaning, that "I would love" must become me encantaría with the pronoun restructured — was spent alongside bookkeeping work it should never have owned.
The new division of labor#
Blend Engine v2 splits the job along its natural seam:
| Job | Old engine | New engine |
|---|---|---|
| Choosing which words to blend | AI, in the same pass | Deterministic selector (frequency data, spacing rules, your mastery — see the vocabulary graph) |
| Translating in context | AI | AI — with the full text as context, unchanged |
| Handling idioms & fixed expressions | Implicit, inconsistent | Explicit contract: expand to the whole expression or skip |
| Assembling the final text | AI re-writes everything | Deterministic code splices translations into your original text |
| Catching errors | Ten repair stages after the fact | Verified word-by-word against the source before display |
The selector chooses candidate words with rules we can state exactly: prefer genuinely useful mid-frequency vocabulary, spread selections evenly through every part of the text, never pick the same word twice in one passage, and — with personalization — skip what you've already mastered. The AI then receives your full text plus that candidate list, and returns only the translations.
The veto: why a smaller job made the AI smarter#
Here's the counterintuitive part. Giving the AI a narrower job made its output better, because we could finally give it explicit linguistic rights:
- Expand: if a candidate sits inside an idiom, phrasal verb, or fixed expression, translate the whole expression — "kicked" inside "kicked the bucket" comes back as the full idiom, and tapping it in the reader saves the idiom's dictionary form, which is what's actually worth learning.
- Absorb: if the natural translation swallows neighboring words, take them too. "Write to me" becomes Escríbeme as one unit — never Escríbeme with a stranded "to me" behind it.
- Skip: if a word doesn't translate cleanly in context — a name, wordplay, a word whose isolated translation would mislead — leave it alone. An untranslated word costs nothing; a wrong translation teaches you something false.
In the benchmark that mattered most to us — 93 trap sentences containing idioms, phrasal verbs, and separable verbs across all 17 source languages — the new engine expanded 65 of them into correct whole-expression translations, against 21 for the old engine. Cross-language pairs produced some of the best results: French posé un lapin rendered into German as sitzen gelassen (stood up), where the old engine offered Kaninchen — a literal rabbit.
Verified before you see it#
Because the final text is now assembled by code rather than written by a model, we can prove properties the old engine could only hope for: every character of your original text survives, translations land exactly where their source words were, repetition loops and echo "translations" are rejected, and constructions that would double-mark grammar (like an English pronoun stranded next to a Spanish clitic) are caught deterministically. If any check fails for a word, that word simply stays untranslated — the failure mode is invisible instead of embarrassing.
One more benefit fell out for free: speed. Since the AI no longer generates your entire document — only the translated words — blends complete in roughly half the time, with the slowest cases improving the most. The blend you used to wait ~6 seconds for now arrives in ~3.
Everything else you know is unchanged: tap any blended word for its grammar context and save the base form or the exact form you met, re-blend any text at a new percentage, and read in the same paginated reader.