Duolangue — Lightweight Bilingual Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Most sites are not translated into ten languages — they are translated into two. Duolangue is built for that exact case: one site, two languages, no bloat. No custom database tables, no settings maze, no machine-translation upsell baked into checkout.
Duolangue gives you a fully working bilingual site for pages, posts and custom post types:
- Directory-based routing — your default language at the root, the second language under its own directory (e.g.
/fr/). A?lang=parameter mode is available as a fallback. - Translated URL bases — translate the URL base of posts and custom post types (e.g.
/projects//fr/projets/). - Manual translation linking — link any page, post or custom post type entry to its translation from the editor (the “Duolangue — Language” panel in Gutenberg, or a metabox in the classic editor), or unlink at any time. Nothing is ever deleted.
- Language switcher — a
[duolangue_switcher]shortcode plusduolangue_language_switcher()/duolangue_other_lang_url()template functions for themes, page builders and code blocks. - Automatic hreflang — correct alternate + x-default tags on every page, out of the box.
- Menus follow the visitor’s language — menu items pointing at a linked page or post are swapped to its translation automatically, and a language link can be appended to the menus you choose.
- ACF-aware — Post Object, Page Link and Relationship pickers only list content in the language being edited.
- Native admin integration — a Language column, per-language tabs and bulk “assign language” actions on every list screen.
- Admin language toggle — switch the admin between your two site languages (global setting plus an optional per-user toggle). The plugin’s own strings are translated through translate.wordpress.org.
- Page-builder friendly — builder template post types (Oxygen, Bricks, Breakdance, Elementor, Divi, Beaver Builder) are left untouched.
Every switcher link points to the linked translation of the current page when it exists and is published; otherwise it falls back to the home page of the target language.
What Duolangue deliberately does NOT do
- No third language: Duolangue is designed around a language pair, where every page has exactly one counterpart in the other language (the same in Duolangue Pro).
- No custom SQL tables — everything lives in post meta and a single option.
- No automatic / machine translation — you (or your translator) write the words.
- No subdomain or multisite-based language setup.
Duolangue Pro
A separate commercial edition, Duolangue Pro, adds one-click duplication into the other language, taxonomy term translation and whole-menu translation. Everything described above is in this free plugin, with no limits. Learn more at duolangue.com.
External services
This plugin includes the Freemius SDK, which on activation shows an optional opt-in screen.
- What is sent, and when: only if you click “Allow & Continue” on that screen, Freemius receives your site URL, WordPress, PHP and plugin versions, the site language, your admin name and email address, and later plugin activation/deactivation/uninstall events. If you skip the opt-in, nothing is sent.
- Why: to understand usage, send optional product updates by email and, if you ever purchase a Pro license, manage that account.
- Declining the opt-in does not limit any feature of this plugin.
- Freemius Terms of Service and Privacy Policy.
Screenshots
Settings: pick your two languages, their WordPress locales and how URLs are structured.
Every list screen gets language tabs, a language column and the translation status of each item.
In the block editor, set the page language and link the page to its translation.
Translate the URL base of each post type, including custom post types.
