Dotaga Translate — WordPress SEO Translation Plugin.
A translation plugin that turns a monolingual WordPress site into a multilingual one, with SEO-friendly URLs and full translation management.
Problem
Most translation solutions for WordPress force a tradeoff: either fast but shallow instant translation, or heavy enterprise tools that are expensive, rigid, and difficult for smaller site owners to operate. Site owners also struggle with multilingual SEO, translated URL structures, incomplete translation states, and keeping translated pages updated as the original content changes.
Approach
Product framing first. Started from the real operational needs of multilingual websites rather than just "adding translation" — thinking early about SEO, URL policies, update workflows, and failure cases, not only text conversion.
Dual-mode translation design. Designed the plugin around two distinct usage models: instant translation for low-friction access, and dedicated translation mode for indexable multilingual pages with stronger long-term control.
Backend workflow architecture. Built the translation pipeline around repositories, settings services, background jobs, translation files, and retry-aware queue processing to keep the system maintainable as features expanded.
Admin UX iteration. Implemented a setup wizard, settings pages, language management, translation detail screens, and frontend controls to make a fairly technical product usable by non-technical site owners.
Edge-case driven refinement. A lot of the work went into the details: translated URL generation, fallback behavior, incomplete translation thresholds, sitemap discovery, widget behavior, and keeping internal links and page routing coherent across languages.
Challenge — Balancing usability with configuration depth: solved by separating the setup flow from deeper settings while keeping the model consistent underneath.
Challenge — Multilingual routing and SEO correctness: the harder part beyond generating translated URLs was handling canonical behavior, fallback rules, default-language hiding, sitemap consistency, and invalid URL structures without breaking navigation.
Challenge — Reliable background translation processing: translation jobs can fail for external reasons such as provider instability, so the plugin has queue locking, retries, status tracking, and cleanup logic to stay observable and recoverable.
Challenge — Keeping translated content in sync over time: added update flows, extraction methods, dictionary usage, and configurable auto-update behavior so translated pages can evolve with the source content.
In hindsight: built as a real product, not just a text-replacement tool — with routing, SEO, content lifecycle, and admin usability treated as first-class concerns.