Skip to content

Quality

sfambach edited this page Aug 1, 2026 · 2 revisions

Quality

How Budget Translator protects translation quality in the cache and on the frontend.

Term / link / number / shortcode guards

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.

Punctuation and confirmed cores

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.

Source auto-corrections

Configured under Settings → Source auto-corrections. Applied when extracting/caching text for translation; does not rewrite the post in the editor.

Code and console prompts

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.

Auto-confirm (already target language)

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.

Cleanup on review open

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).

Related

Clone this wiki locally