Lingua Visual
Visual translation plugin for WordPress — unlimited languages, visual mode, XLIFF, media translation.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/vanf-lab/lingua-visual/archive/refs/heads/main.zipVisual multilingual translation with UNLIMITED languages, free. Click any frontend text and translate it on the spot. Per-language URLs (/en/page/) that persist while browsing and play nice with caching.
Description
Lingua Visual lets you translate your site directly on the frontend: enable visual mode from the admin bar ("Translate this page"), click any text block, type the translation, done. No language limit, no paid APIs, no subscriptions.
- Unlimited languages: add as many as you want (code, name and emoji flag).
- Per-language URLs: each language lives at its own URL (
/en/my-page/); the default language has no prefix. The translation persists while browsing and each language is a separate page-cache entry (compatible with WP Rocket and similar). - Own dictionary: strings and translations are stored in dedicated tables (
wp_lingua_strings,wp_lingua_translations). - Multilingual SEO: per-language
hreflang+x-defaultin the<head>and canonical matching the active language. - Backward compatible:
?lang=and thelingua_langcookie keep working and redirect (302) to the prefixed URL. - Language switcher:
[lingua_switcher]shortcode + widget, with per-language URLs. - Import/export the dictionary as CSV.
- Hook for optional automation: filter
lgv_auto_translateto suggest translations with your own API.
Installation
- Upload the
lingua-visualfolder towp-content/plugins/. - Activate the plugin from Plugins.
- Go to Lingua Visual → Languages and add your languages.
- In Lingua Visual → URLs verify that language prefixes are enabled.
- On the frontend, from the admin bar, choose "Translate this page" and start clicking texts.
Frequently Asked Questions
Do pretty URLs like /en/page work?
Yes, since 0.2.0. Each non-default language lives at its prefixed URL (/en/my-page/); the default language has no prefix. Internal links are rewritten automatically and ?lang= / the cookie redirect to the prefixed URL.
Does it work with page caches like WP Rocket?
Yes, that's the point of the 0.2.0 design: since each language is a different URL, the cache stores one translated version per language without going through PHP.
Does it break the page's JavaScript?
`