=== WP Translate Master ===
Contributors: adrianalcala
Tags: translate, multilingual, translation, hreflang, deepl
Requires at least: 6.1
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 2.3.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Translate your WordPress site visually: click any text on your own page, let AI translate it and publish every language on its own URL.

== Description ==

WP Translate Master turns your site into a multilingual one without leaving the front end. You open your own page in the language you want, click the text you need to change, and edit it while looking at the real design — so a translation never breaks a button or a heading.

**Visual editor on the front end.** Headings, buttons, menus, image captions: click and translate. The side panel suggests the machine translation and you adjust it.

**Automatic batch translation.** Send the whole site to translation in the background. The queue runs in batches, resumes where it stopped and never translates the same string twice.

**Four translation engines.** Gemini, DeepL, Google Translate and Yandex are built in. You use your own API key, so you pay the provider directly, and you can switch engines without losing anything already translated.

**Multilingual SEO that is actually complete.** Each language gets its own URL prefix, reciprocal hreflang tags, a correct canonical and a sitemap per language. SEO titles and descriptions are translated too.

**Language switcher.** Dropdown, list, flags or inline, available as a shortcode, a theme widget, a menu item and an Elementor widget.

**Translation memory.** Every translated string is stored in your own database. If the same sentence appears in two hundred product pages, the API is called once.

**Works with what you already have.** Any theme, Elementor and Elementor Pro, WooCommerce products and emails, custom fields 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 WP Translate → Languages and add the languages you want to publish.
4. Go to WP Translate → Settings, choose a translation engine and paste your own API key.
5. Open any page of your site and use the toolbar link to start translating.

== Frequently Asked Questions ==

= Do I need an API key? =

Yes, your own. The plugin connects to Gemini, DeepL, Google Translate or Yandex with the key you provide, so the translation cost is billed to you directly by the provider without any intermediary. Gemini and DeepL both offer a free tier that is enough to get started.

= Will Google index the translated versions? =

Yes. Every language is published under its own URL prefix, with reciprocal hreflang tags, a self referencing canonical and a sitemap per language.

= 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 and no extra JavaScript because the page is translated.

= 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 products, categories, attributes, cart and checkout texts and order emails.

= 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. Batch translation running in the background for several languages.
3. String manager with filters by status and by origin.
4. Language switcher in its three styles.

== Changelog ==

= 2.3.1 =
* Coding standards: escaping fixes in the language switcher widgets.

= 2.3.0 =
* Free and full versions now share one build: the plan decides what is available.
* Free version: one extra language, Google Translate, batches of 10 strings and 500 automatic strings per month.
* Batch translation, full-site scan, translate-on-save, translated SEO metadata, per-language sitemap and email translation require a license.
* Limits are shown in the interface before a button is pressed, not as an error afterwards.

= 2.2.0 =
* Coding standards pass: output escaping, prepared statements and request sanitising across the plugin.
* Request handling centralised in a single set of helpers.
* Sitemap transient cleanup now uses a prepared statement.
* Minimum WordPress version raised to 6.1.

= 2.1.0 =
* Gemini translation engine.
* Translation memory to avoid paying twice for the same string.

= 2.0.0 =
* Front end visual editor.
* URL prefix per language with hreflang and sitemap.

== Upgrade Notice ==

= 2.2.0 =
Requires WordPress 6.1 or later. No database changes.
