=== Incode Translate Master ===
Contributors: adrianincode
Tags: translate, bilingual, translation, hreflang, localization
Requires at least: 6.1
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 2.7.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Translate your WordPress site into a second language visually: click any text on your own page, translate it in context and publish it on its own URL. No account, no key, no trial.

== Description ==

**Incode Translate Master makes your site bilingual from the front end — no account, no license key, no sign-up.** Install it, pick your translation language, and start translating your real pages by clicking on the text you want to change, while you look at the actual design. A translation never breaks a button or a heading again.

A built-in **keyless engine translates out of the box**, so you can go from a single-language site to a published second language in minutes. Prefer your own provider? Plug in a DeepL, Google or Gemini key whenever you like and you pay the provider directly.

= ✨ Why you'll like it =

* 🖱️ **Translate what you see.** Click text on your own page and translate it in context — headings, buttons, menus, image captions.
* 🔑 **Works with zero setup.** A free keyless engine translates immediately. No API key, no credit card, no account.
* 🚀 **Not a trial.** Everything described here is fully functional and never expires. Nothing is disabled waiting for a payment.
* 🔎 **SEO-ready.** Translations publish on their own URL prefix with reciprocal hreflang tags and a self-referencing canonical, so Google indexes them.
* ⚡ **Fast.** Translations live in your database and are served as plain HTML — no API call while a visitor loads the page.

= 🧩 Everything it does =

* 🖊️ **Visual front-end editor.** Open your page, click any string, and edit the machine translation in the side panel while seeing the real layout.
* 📦 **Batch translation.** Send all pending strings with one click. The queue runs in batches, resumes where it stopped and never translates the same string twice.
* 🔬 **Full-site scan.** Extract every translatable string from your posts and pages at once and manage them from one screen.
* 💾 **Auto-translate on save.** New and changed texts of a post can be translated automatically in the background when you save, so the translation never lags behind the original.
* 🏷️ **SEO title translation.** With Yoast SEO installed, each page's meta title is translated so your translated pages show a title in their own language on search results.
* 🌐 **Translation engines.** Free keyless engine, or bring your own key for Google Translate, DeepL or Gemini. Switch engines any time without losing what's already translated.
* 🔀 **Language switcher.** Dropdown, list, flags or inline — as a shortcode, a theme widget, a menu item or an Elementor widget.
* 🧠 **Translation memory.** Every translated string is stored in your own database. If the same sentence appears in two hundred pages, the engine is called once.
* 🧱 **Works with your stack.** Any theme, Elementor and Elementor Pro, WooCommerce product and page text, and the usual caching plugins.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install the ZIP from **Plugins → Add New → Upload Plugin**.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **Incode Translate Master → Languages** and choose your translation language.
4. Open any page of your site and use the toolbar link to start translating, or run a scan and translate in batch from **Incode Translate Master → Strings**.

== Frequently Asked Questions ==

= Is this plugin a trial version? =

No. Everything described here works with no key, no account and no expiry date. Nothing is time-limited or disabled waiting for a payment.

= Do I need an API key? =

No. A built-in keyless engine translates with no configuration. If you prefer, you can add your own key for Google Translate, DeepL or Gemini in Settings, so the translation cost is billed to you directly by the provider.

= What languages does my site end up with? =

Two: the original language your content is written in, plus the translation language you choose. The translation is published under its own URL prefix, and you can change the translation language whenever you want from the Languages screen.

= Will Google index the translated versions? =

Yes. The translated version is published under its own URL prefix, with reciprocal hreflang tags and a self-referencing canonical.

= Does it slow the site down? =

No. Translations are stored in your database and served as regular HTML. There is no API call while a visitor loads the page.

= Does it work with Elementor and WooCommerce? =

Yes. Elementor designs are read from their own JSON so no string is missed, including Elementor Pro widgets. For WooCommerce it covers product and page texts.

= What happens to my translations if I remove the plugin? =

They are yours. You can export them before uninstalling, and the uninstall routine asks whether to keep or delete the plugin tables.

== Screenshots ==

1. Visual editor: click any text on your own page and translate it in context.
2. Language manager: choose your translation language and see your setup at a glance.
3. String manager with filters by status and by origin, and batch translation.
4. Language switcher in its different styles (dropdown, list, flags, inline).

== External services ==

This plugin can send your content to third-party machine-translation services to translate it. A request is made only when you actively translate a string, run a batch translation or save a post with auto-translate enabled, and it contains the text to translate plus the target language code. No translation service is contacted while simply viewing already-translated pages.

You choose the engine in Settings → Translation provider. Depending on your choice, the plugin connects to:

* **Free engine (default, no API key).** Uses Google's public translation endpoint and, as a fallback, MyMemory. Sends the text to translate and the target language.
  * Google Translate — Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy
  * MyMemory (Translated s.r.l.) — Terms: https://mymemory.translated.net/terms-and-conditions — Privacy: https://translated.com/confidentiality
* **Google Cloud Translation API** (optional, your own API key) — Terms: https://cloud.google.com/terms — Privacy: https://policies.google.com/privacy
* **DeepL API** (optional, your own API key) — Terms: https://www.deepl.com/pro-license — Privacy: https://www.deepl.com/privacy
* **Google Gemini API** (optional, your own API key) — Terms: https://ai.google.dev/gemini-api/terms — Privacy: https://policies.google.com/privacy

Only the engine you select is contacted. If you never trigger a translation, no external service receives any data.

== Changelog ==

= 2.7.6 =
* Clearer bilingual model: the site has its original language plus one translation language, and changing it is now an explicit, documented action in the Languages screen.
* The memory limit is only raised while processing a confirmed large page or a heavy scan task, never globally.
* Hardened output escaping in the language switcher (wp_kses allowlist) and CSS color sanitization.

= 2.7.5 =
* The plugin is now called "Incode Translate Master".

= 2.6.0 =
* ✨ **New:** Auto-translate on save — new and changed texts of a post are translated automatically in the background when you save it.
* 🏷️ **New:** Yoast SEO integration — the meta title of each page is translated.
* 🌐 **Improved:** Translation engines — built-in keyless engine, or your own Google Translate, DeepL or Gemini API key, switchable any time.
* 🧭 **Improved:** Simpler language management.

= 2.5.0 =
* 🧙 **New:** Setup wizard on activation — pick your source language, choose the free engine (or your own key) and run the first scan, all in guided steps.

= 2.4.0 =
* 🎉 **First release:** front-end visual editor, full-site scan, batch translation, keyless free engine, translation memory, language switcher, and Elementor / WooCommerce support.

== Upgrade Notice ==

= 2.6.0 =
Adds auto-translate on save and Yoast SEO title translation. Recommended for everyone.
