Title: Sawir Live Translate
Author: Ricardo Sawir
Published: <strong>2 Luglio 2026</strong>
Last modified: 21 Agosto 2026

---

Ricerca i plugin

![](https://s.w.org/plugins/geopattern-icon/sawir-live-translate.svg)

# Sawir Live Translate

 Di [Ricardo Sawir](https://profiles.wordpress.org/sawirricardo/)

[Scarica](https://downloads.wordpress.org/plugin/sawir-live-translate.1.1.0.zip)

 * [Dettagli](https://it.wordpress.org/plugins/sawir-live-translate/#description)
 * [Recensioni](https://it.wordpress.org/plugins/sawir-live-translate/#reviews)
 *  [Installazione](https://it.wordpress.org/plugins/sawir-live-translate/#installation)
 * [Sviluppo](https://it.wordpress.org/plugins/sawir-live-translate/#developers)

 [Supporto](https://wordpress.org/support/plugin/sawir-live-translate/)

## Descrizione

Open any page on your site, click “Translate this page” in the admin bar, choose
a
 target language, and either auto-translate every visible string (via a free machine-
translation service) or edit translations by hand while seeing the page update live.

Saved translations are rendered server-side into the HTML response (SEO-friendly:

no flash of untranslated text, and hreflang alternates in the head), and visitors
switch languages via a link-based switcher (bottom-right).

Developed by Ricardo Sawir for Sawir Studio LLC.

 * Website: https://sawirstudio.com
 * X: https://x.com/RicardoSawir
 * GitHub: https://github.com/sawirricardo
 * Email: ricardo@sawirstudio.com

URLs use a language path prefix, e.g. /es/about for Spanish, /about for the source

language (which stays canonical, un-prefixed). Language is resolved in this order:/
es/ path  ?lang=es  saved cookie  browser Accept-Language  source. Root and prefix-
less URLs auto-detect the visitor’s browser language without redirecting (a Vary
header is sent so shared caches behave).

 1. Settings  Live Translate: set your source language and tick the languages to offer.
 2. Visit a front-end page and click “🌐 Translate this page” in the admin bar.
 3. Pick a language, hit “Auto-translate empty” (or edit strings), then “Save”.
 4. Visitors use the switcher (bottom-right); each language has its own /xx/ URL.

Note: language path prefixes assume a root-domain install and no top-level page

whose slug is a two-letter language code.

#### More free plugins from Sawir Studio

 * [Sawir Insights](https://wordpress.org/plugins/sawir-insights/) — Heatmaps, session
   recordings, surveys, funnels, and form analytics. Everything stays on your server.
 * [Sawir Media Folders](https://wordpress.org/plugins/sawir-media-folders/) — Fast,
   unlimited folders for the WordPress media library with drag & drop.
 * [Sawir Min Max Quantities for WooCommerce](https://wordpress.org/plugins/sawir-min-max-quantities-for-woocommerce/)—
   Set minimum and maximum purchase quantity rules for WooCommerce products, product
   categories, and the whole order.
 * [Sawir Product Image Zoom for WooCommerce](https://wordpress.org/plugins/sawir-product-image-zoom-for-woocommerce/)—
   Adds a product image lightbox with navigation and click-to-zoom to WooCommerce
   product galleries.
 * [Sawir Pulse – Live Sales & Social Proof for WooCommerce](https://wordpress.org/plugins/sawir-pulse/)—
   Live social proof from real activity: recent orders, live viewers, and reviews
   as corner notifications. No fake notifications, ever.
 * [Sawir Referral – Refer a Friend for WooCommerce](https://wordpress.org/plugins/sawir-referral/)—
   Give-and-get referral program for WooCommerce. Friends get a discount, advocates
   earn a reward coupon — shared by code or link, WhatsApp-first.
 * [Sawir Renew – Recurring Billing for WooCommerce](https://wordpress.org/plugins/sawir-renew/)—
   Complete subscriptions for WooCommerce — recurring billing, trials, sign-up fees,
   pause/skip, plan switching, dunning, smart retries. All free.
 * [Sawir Restock Notifier for WooCommerce](https://wordpress.org/plugins/sawir-restock-notifier-for-woocommerce/)—
   Let customers request an email notification when an out-of-stock WooCommerce 
   product is back in stock.
 * [Sawir Role Capabilities Manager](https://wordpress.org/plugins/sawir-role-capabilities-manager/)—
   Create custom user roles and manage capabilities for new and existing WordPress
   roles.
 * [Sawir Variation Gallery Tools for WooCommerce](https://wordpress.org/plugins/sawir-variation-gallery-tools-woocommerce/)—
   Manage variation-specific gallery images in WooCommerce. Works with Sawir Product
   Image Zoom for WooCommerce.

### External services

This plugin’s optional “Auto-translate” feature (admin-only, triggered manually

by clicking an Auto-translate/Translate button) sends the source text strings and
the chosen language pair to the MyMemory translation API (https://mymemory.translated.
net/) to fetch machine translations. The request is made from the administrator’s
browser only when they click the button; no visitor data is ever sent, and nothing
is sent automatically.

 * Service terms: https://mymemory.translated.net/doc/en/tos.php
 * Privacy policy: https://mymemory.translated.net/doc/en/privacy.php

Developers can swap the provider — see “Custom translation provider” below.

### Native WordPress localization (dates, core/theme strings)

On a translated request the plugin switches WordPress’s locale to the target
 language,
so dates (month/day names) and any _installed_ core, theme, and plugin translations
render natively — the string map only covers the rest.

For this to have visible effect the language pack must be installed. The easiest

way is Settings  General  Site Language: pick and save the language once (which 
downloads its pack), then switch back to your source language. Languages without
an installed pack still work for content translation; only native dates/strings 
are skipped. Map codes to custom WP locales with the ‘sawir_lt_wp_locale’ filter.

### Scan site for strings

Settings  Live Translate  “Scan site now” crawls your published pages, posts,
 and
public archives to discover every translatable string up front (batched, with a 
progress indicator). Discovered strings then appear in the “Edit all site strings”
section right below, where you can pick a language and translate, auto- translate,
or bulk-import the whole site at once instead of page by page. Note: machine translation
is still rate-limited by the free service, so for large sites use Bulk edit to export
and translate elsewhere.

### Multisite

Multisite-aware. Each subsite has its own settings and its own translations table,

configured independently. Tables are created on network activation, when a new subsite
is created, and lazily on first admin visit; uninstall cleans every site on the 
network.

### Custom switcher

Turn off “Built-in switcher” in settings and render your own anywhere in your
 theme
using sawir_lt_switcher_links(), which returns the language links for the current
page:

    ```
    <?php if ( function_exists( 'sawir_lt_switcher_links' ) ) : ?>
      <ul class="my-lang-switcher">
      <?php foreach ( sawir_lt_switcher_links() as $l ) : ?>
        <li>
          <a href="<?php echo esc_url( $l['url'] ); ?>"<?php echo $l['active'] ? ' aria-current="true"' : ''; ?>>
            <?php echo esc_html( $l['name'] ); ?>
          </a>
        </li>
      <?php endforeach; ?>
      </ul>
    <?php endif; ?>
    ```

Each item is [‘code’,’name’,’url’,’active’,’is_source’] (code is ” for the
 source
language). sawir_lt_current_lang() returns the active language code.

### Custom translation provider

Auto-translate uses the free MyMemory API by default. To use your own provider
 (
DeepL, Google, a local model, …), reassign window.SawirLT.translate from a script
enqueued after the ‘sawir-lt-walk’ handle. Signature: it receives the source text
and the two language codes, and returns a Promise resolving to the translated string.
Every auto-translate path (in-page editor and admin bulk translate) routes through
it.

    ```
    add_action( 'admin_enqueue_scripts', 'myprefix_lt_provider' );
    add_action( 'wp_enqueue_scripts', 'myprefix_lt_provider' );
    function myprefix_lt_provider() {
        if ( wp_script_is( 'sawir-lt-walk', 'registered' ) ) {
            wp_enqueue_script( 'myprefix-lt-provider',
                plugins_url( 'provider.js', __FILE__ ),
                array( 'sawir-lt-walk' ), '1.0.0', true );
        }
    }
    ```

provider.js:

    ```
    window.SawirLT.translate = function ( text, source, target ) {
        return fetch( 'https://example.com/translate', {
            method: 'POST',
            body: JSON.stringify( { text: text, from: source, to: target } )
        } ).then( function ( r ) { return r.json(); } )
          .then( function ( j ) { return j.translation; } );
    };<h3>Translations</h3>
    ```

The plugin’s own admin/UI text is translation-ready (text domain
 “sawir-live-translate”).
A .pot template ships in /languages — drop your .po/.mo there or under wp-content/
languages/plugins/. (The in-page editor’s JavaScript labels are not yet localized.)

## Installazione

 1. Install and activate the plugin, then go to Settings  Live Translate.
 2. Set your **Source language** — the language your site is written in.
 3. Tick every **Target language** you want to offer visitors, adjust the
     switcher
    style if you like, and click Save.

Optional: for translated dates and built-in theme text to switch too, install
 the
language pack once via Settings  General  Site Language (pick the language, save,
then switch back). Content translation works without it.

#### Translate a page

 1. While logged in, visit any page on the front end and click
     **🌐 Translate this
    page** in the admin bar.
 2. In the panel, pick the target language.
 3. Click **Auto-translate empty** — every visible string is machine-translated
     and
    the page updates live. You can also type or fix any translation by hand; click 
    a source string in the panel to highlight it on the page.
 4. **Click Save.** Everything before saving is only a preview in your own
     browser.
    Wait for the status line to say “saved N translations ✓”.
 5. Verify under Settings  Live Translate  Saved translations: your language
     should
    be listed with a string count. If it isn’t, nothing was saved — go back and Save
    again.

#### Translate the whole site at once

 1. Settings  Live Translate  “Scan site now” crawls your published pages and
     collects
    every translatable string.
 2. In “Edit all site strings” below it, pick a language, click Load strings,
     then
    Auto-translate empty (or Bulk edit), and Save.

Auto-translate uses a free service with a daily limit. If it stops with a
 “limit
reached” message your progress is kept — Save, and continue later. Or use Bulk edit
to copy all strings as JSON, translate them anywhere (a paid service, AI, a human
translator), paste back, Apply, and Save.

## FAQ

### How does it compare to alternatives?

Multilingual frameworks like WPML, Polylang, and TranslatePress treat translated
content as first-class site structure, with per-language editing workflows, translation
services, and deep page-builder and WooCommerce integration. Sawir Live Translate
is deliberately lighter: open a page, translate what’s visible (automatically or
by hand), and serve it from a language-prefixed URL with hreflang tags. If you are
building a fully multilingual site with translated menus, products, and editorial
workflows, use one of the frameworks. If you want existing pages readable in another
language this afternoon, that is what this plugin does.

### I switch languages but nothing changes

Almost always this means no translations are saved for that language yet.
 Check
Settings  Live Translate  Saved translations — if the language isn’t listed (or 
shows 0 strings), open the page editor again, auto-translate, and click Save. The
live preview in the editor is not saved until you do.

### Some strings stay untranslated

The in-page editor only sees strings on the page you opened. Text that lives
 on
other pages needs those pages translated too — or run the site-wide scan. Strings
injected by sliders/scripts after page load may need a manual entry via “Edit all
site strings”.

### I edited my content and its translation disappeared

Translations are matched to the exact original text. If you rewrite a
 sentence,
translate the new version once and save.

### Does it work with caching plugins?

LiteSpeed Cache is supported out of the box (pages are varied per language
 cookie).
For other page caches, exclude or vary on the sawir_lt_lang cookie, and purge the
cache after saving translations.

### Can I hide the floating switcher and use my own?

Yes — untick “Show the built-in language switcher” in settings and render
 your 
own with sawir_lt_switcher_links(); see “Custom switcher” below.

## Recensioni

Non ci sono recensioni per questo plugin.

## Contributi e sviluppo

“Sawir Live Translate” è un software open source. Le persone che hanno contribuito
allo sviluppo di questo plugin sono indicate di seguito.

Collaboratori

 *   [ Ricardo Sawir ](https://profiles.wordpress.org/sawirricardo/)

[Traduci “Sawir Live Translate” nella tua lingua.](https://translate.wordpress.org/projects/wp-plugins/sawir-live-translate)

### Ti interessa lo sviluppo?

[Esplora il codice](https://plugins.trac.wordpress.org/browser/sawir-live-translate/)
segui il [repository SVN](https://plugins.svn.wordpress.org/sawir-live-translate/),
segui il [log delle modifiche](https://plugins.trac.wordpress.org/log/sawir-live-translate/)
tramite [RSS](https://plugins.trac.wordpress.org/log/sawir-live-translate/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * Fix: language switching could get stuck on one language behind LiteSpeed Cache—
   cached pages are now varied per language cookie (X-LiteSpeed-Vary header + litespeed_vary_cookies
   filter).

#### 1.0.1

 * Add links to other Sawir Studio plugins.

#### 1.0.0

 * Initial release.

## Meta

 *  Versione **1.1.0**
 *  Ultimo aggiornamento **2 mesi fa**
 *  Installazioni attive **Meno di 10**
 *  Versione WordPress ** 5.8 o superiore **
 *  Testato fino alla versione **7.1.3**
 *  Versione PHP ** 7.4 o superiore **
 *  Lingua
 * [English (US)](https://wordpress.org/plugins/sawir-live-translate/)
 * Tag
 * [localization](https://it.wordpress.org/plugins/tags/localization/)[multilingual](https://it.wordpress.org/plugins/tags/multilingual/)
   [translation](https://it.wordpress.org/plugins/tags/translation/)
 *  [Visualizzazione avanzata](https://it.wordpress.org/plugins/sawir-live-translate/advanced/)

## Valutazioni

Non sono state ancora inviate recensioni.

[La tua recensione](https://wordpress.org/support/plugin/sawir-live-translate/reviews/#new-post)

[Vedi tutte le recensioni](https://wordpress.org/support/plugin/sawir-live-translate/reviews/)

## Collaboratori

 *   [ Ricardo Sawir ](https://profiles.wordpress.org/sawirricardo/)

## Supporto

Hai qualcosa da dire? Ti serve aiuto?

 [Chiedi nel forum di supporto](https://wordpress.org/support/plugin/sawir-live-translate/)