Repository navigation
Quality
How Budget Translator protects translation quality in the cache and on the frontend.
Before text is sent to a provider:
- Glossary and Do not translate phrases are protected
- Emails,
http(s)links and common website hosts are masked - Numbers (issue numbers, versions, baud rates, units like
2,2uF) are masked and reattached if the provider drops them - WordPress shortcodes (e.g.
[display-posts …]) stay unchanged — attribute values like category slugs must not be translated
Placeholders use ASCII tokens (__BTL0__, …). Free APIs often corrupt Unicode brackets (⟦…⟧) into broken [[ / ]] fragments.
If Beschreibung is confirmed as Description, variants like Beschreibung: or (Beschreibung) reuse that translation, keep the surrounding punctuation (Description:, (Description)), and are stored as confirmed (or edited) — not left as auto. Only confirmed/edited cores are reused this way.
Provider responses are aligned to source edges: if the source has no trailing period, a machine result like Download . is stored as Download.
Provider output is cleaned (double spaces, spaces before punctuation). The + joiner is preserved.
Configured under Settings → Source auto-corrections. Applied when extracting/caching text for translation; does not rewrite the post in the editor.
Skipped / not translated:
- Text inside
code/pre/kbd/samp - Typical shell lines (
$ npm …,git …,C:\…) - Long opaque IDs (hyphenated hex-heavy tokens)
Short technical codes such as R1,R2, U1/U2, v2.1, or part numbers are not sent to the API. They are stored as confirmed passthrough (translated = source, provider=passthrough) so /en/ still resolves them.
Opening Bulk or a post review upgrades older garbled auto rows (e.g. MyMemory turning R1,R2 into R1:R2) the same way.
Budget Translator translates whatever is currently in the post fields (title, content, excerpt, Yoast SEO). It does not keep a separate “original” copy.
If text already looks like the target language (e.g. No module named 'serial' on a de→en site), BT skips the provider API and auto-confirms a passthrough row (status=confirmed, translation = source) so it does not sit in “Needs work”.
Opening Bulk upgrades older identical/already-target auto rows the same way. Restore the source wording in the editor if a post was overwritten by another tool.
Opening Bulk, One by one, or a By post detail auto-removes:
- Leftover invalid API messages
- Code / console / shortcode cache rows that should not have been translated
- Near-duplicate rows (ellipsis / case twins)
- Spurious English→English auto rows when source language is German
Manual purge buttons are no longer needed (or shown).
- Settings — provider and auto-corrections UI
- Bulk · By post · One by one — where cleanup runs on open
- FAQ