Stop Retranslating Duplicate Strings: How Weblate's Translation Memory Works Across Components
A practical look at Weblate's Translation Memory reuse for cross-component string suggestions—how exact and fuzzy matches surface, when to trust them, and how to verify the pipeline.
10 Nov 2025, 12:45 UTC

Your web app and mobile client both ship a button labeled Save. In Weblate, those strings live in separate components because they come from different repositories. Without reuse, translators type the same target string twice—or worse, the two versions drift apart. Weblate’s Translation Memory (TM) closes that gap: when a source string has been translated before, Weblate surfaces the previous translation as a suggestion.
The practical takeaway: rely on TM for exact matches across components to eliminate duplicate work, but treat fuzzy matches as drafts that still require human review.
How Translation Memory reuse works in Weblate
Translation Memory is a searchable database of previously translated source-target string pairs. When a translator opens a string in the Weblate editor, the platform queries the TM for identical or similar source strings. If it finds an exact match, Weblate can auto-fill the target field. If it finds a near match—say, Save file versus Save document—it displays a fuzzy match with a similarity percentage.
Weblate persists TM data per repository and integrates it with version control, yet the matching engine can return identical source strings from other projects. Across maintained Weblate releases, the underlying PostgreSQL schema and JSON storage format have remained stable, so existing TM data continues to work without migration.
Each component can enable translation memory suggestions independently. The fuzzy-matching behavior is governed by a configurable similarity threshold: strings below the threshold are ignored, while strings above it appear in the Suggestions panel with a match score.
Worked example: inspecting suggestions in the interface
Suppose you maintain a project with two components: web-ui and mobile-app. Both contain the source string Settings. A translator has already localized Settings in web-ui. When another translator opens the same string in mobile-app, Weblate queries the TM and displays the previous translation in the Suggestions panel.
| Match type | Source condition | Typical behavior | Review needed? |
|---|---|---|---|
| Exact | Identical source string | Target auto-filled from TM | Low |
| Fuzzy | Similar source string above threshold | Shown with similarity percentage | High |
To verify the pipeline, open a translated string in the Weblate interface and inspect the Suggestions panel. You should see match percentages and source reference links pointing back to the original component. If the panel is empty for a string you know was translated elsewhere, confirm that translation memory suggestions are enabled for the target component.
Trade-offs: fuzzy matches and scale
The main risk with TM reuse is context loss. A fuzzy match may look correct by string similarity alone, yet the original translation could have relied on disambiguating context that is not present in the new component. For example, the English word Open can be a verb or an adjective; a TM entry translated in one context may be wrong in another. Fuzzy matches below very high similarity thresholds should be reviewed manually rather than accepted blindly.
Scale introduces a second limitation. Large TM datasets can increase suggestion lookup latency. Performance depends on database indexing and the overall size of your Weblate deployment. If the translation interface feels sluggish after importing a substantial external TM, investigate database health and indexing before assuming the feature is broken.
Practical verification and next steps
To confirm TM reuse is working in your instance:
- Enable translation memory suggestions for the component in question.
- Translate a string that has an exact match elsewhere and confirm the auto-filled target matches the stored entry.
- Open a translated string and check the Suggestions panel for match percentages and source reference links.
- If you need to audit the data outside Weblate, export translation memory via the REST API and compare the output with a standalone translation memory application.
Treat TM as a productivity tool, not an autopilot. Exact matches across components are usually safe to accept. Fuzzy matches are starting points. If your project accumulates a very large TM, monitor editor responsiveness and plan database maintenance accordingly.