=== LATW Multilingual ===
Contributors: szymon0zawadzki
Tags: multilingual, translation, language switcher, hreflang, seo
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight multilingual WordPress with an overlay architecture: language switcher, clean language URLs, hreflang SEO, unlimited languages.

== Description ==

https://youtu.be/dr4l7tAGOkE

LATW Multilingual makes a WordPress site available in more than one language. It provides a language switcher, clean language URLs (`/en/`, `/de/`), multilingual SEO tags, and manual translation of your content, media and interface strings. You can add as many languages as you need, and no API key or license key is required.

= How it works =

Most multilingual plugins duplicate every post for every language, LATW stores a translation as an **overlay** rather than as a separate post: the original post is kept as it is, and the translated values are swapped in when a visitor opens the language URL. One post therefore stays one post in the database, whatever the number of languages.

= What you get =

* **No limits** - the multilingual engine and manual translation, with no language limit and no API key.
* **One plugin** - switcher, routing, SEO, sitemap and translation are all included.
* **SEO tags** - `hreflang`, `x-default`, self-canonical, `<html lang>` and sitemap annotations.
* **Works with Gutenberg, page builders, Yoast SEO and Rank Math.**
* **Standalone** - it is **not** a WPML/Polylang add-on; install it on its own.

= Features =

* **Language switcher** - Gutenberg block, widget, `[latwm]` shortcode, and `latwm_switcher()` PHP function.
* **Switcher styles** - dropdown, inline or select; flags optional.
* **Language in the URL** - native WordPress routing with clean prefixes (`/en/`, `/de/`); your default language keeps its clean URLs with no prefix.
* **Unlimited languages** - add as many as you like (URL prefix + WordPress locale + label + flag).
* **Full multilingual SEO** - `hreflang` + `x-default`, canonical URLs, `<html lang>`, and multilingual sitemap annotations.
* **Manual content translation** - translate posts and pages right inside the native Gutenberg editor. The original is never touched; the translation lives as an overlay under the language prefix.
* **Page-builder translation** - translate builder-made pages through a dedicated shadow editor.
* **Theme & plugin translation** - a built-in editor for interface strings (`.po`/`.mo`), with "Sync from template" to pull in new strings after an update.
* **Media translation** - title, alt text, caption and description per language.
* **Localized internal links** - links inside your content point to the correct language on the front-end automatically.

= Pro edition =

The free edition covers the switcher, routing, SEO and **manual** translation. A separate **Pro** edition adds automatic AI translation, which uses your own OpenAI key (usage is billed to you by OpenAI):

* Automatic AI translation of posts, pages and custom content.
* Bulk translation of the whole site, processed in a background queue.
* Auto-translate on publish/update.
* AI translation of theme and plugin strings (`.po`).
* Glossary and translation memory for consistent terminology.
* Cost estimation before running a batch.

AI and manual translation can be mixed: AI produces a first pass, which you can then edit by hand.

Learn more and get Pro: https://llm-automatic-translation.top/latw-multilingual/

== Installation ==

1. Upload the plugin to `/wp-content/plugins/`, or install it from **Plugins → Add New**.
2. Activate the plugin through the **Plugins** screen.
3. Go to **LATW Multilingual → Settings** and add your languages.
4. Add the language switcher via the block, the widget, the `[latwm]` shortcode, or `latwm_switcher()` in your theme.
5. Make sure **Settings → Permalinks** uses a pretty structure (anything other than "Plain").

Start translating from the post editor and from **LATW Multilingual → Translations**.

== Frequently Asked Questions ==

= Is the free version usable on its own? =
Yes. The free edition is fully functional: switcher, `/en/` URLs, the SEO tags and manual translation of content, media and theme/plugin strings - with unlimited languages and no API key.

= Does it duplicate my posts for each language? =
No. Instead of creating a separate post per language, the original post is kept and the translation is stored as an overlay that is swapped in when the language URL is requested.

= Will it slow my site down? =
No. Because there is one post per URL and no heavy duplication, a site that scores 100 in Google PageSpeed before LATW still scores 100 after - in every language.

= Do I need an API key? =
Not for the free version - manual translation requires no key. AI translation is a Pro feature and uses **your own** OpenAI key, so usage is billed directly to you.

= Is this a WPML or Polylang add-on? =
No. LATW Multilingual is a standalone plugin. It is not a replacement or add-on for WPML or Polylang - install it on its own.

= Does it work with page builders and SEO plugins? =
Yes. It supports Gutenberg and page builders for content, and works alongside SEO plugins such as Yoast SEO and Rank Math.

= What does Pro add? =
Automatic AI translation: one-click bulk translation of the whole site, auto-translate on publish/update, AI translation of theme/plugin strings, a glossary and translation memory, a background queue and cost estimation.

== Developer features ==

* `latwm_current_lang()` - prefix of the current language (`''` = default).
* `latwm_current_locale()` - WordPress locale of the current language.
* `latwm_get_languages()` - array of languages (including the default).
* `latwm_get_url( $lang, $url = null )` - path URL in the given language.
* `latwm_switcher( $args )` - echo/return the switcher markup.

Filters: `latwm_languages`, `latwm_detected_lang`, `latwm_switcher_args`, `latwm_url`, `latwm_flag_url`. Action: `latwm_language_switched`.

== Requirements ==

* WordPress 6.0+, PHP 8.0+.
* Pretty permalinks (any structure other than "Plain").
* Single-site.

== Screenshots ==

1. Main translations page
2. Translation history page
3. Settings - add unlimited languages with prefix, locale, label and flag.

== Changelog ==

= 1.0.0 =
* First public release.
