=== Replai Images – Bulk Alt Text & Title (SEO) ===
Contributors: replai
Tags: alt text, image seo, alt attribute, accessibility, media library
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.2
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Rule-based bulk alt text AND image title for your Media Library — from your SEO focus keyword or post title. Reversible, no AI, no cost.

== Description ==

**Replai Images** bulk-fills the **alt text _and_ the image title** of your whole Media Library from rules based on data your site already has — no AI, no per-image cost, and every run is **reversible**.

Most alt-text plugins either inject values only at render time or depend on paid AI. Replai Images takes a different approach:

* It writes **real values into the Media Library** (both `alt` and `title`), so they apply on every theme, builder, block and page — not only on rendered content.
* It can pull the text from your **SEO focus keyword** (Yoast SEO, Rank Math or SEOPress), aligning image metadata with the keyword you already optimise for.
* It keeps a **backup** and lets you **undo the last run** with one click, so bulk edits are never a one-way street.

You choose the source for each run, based on data WordPress already has:

* **Title of the post/page** the image belongs to.
* **SEO focus keyword** from Yoast SEO, Rank Math or SEOPress.
* **Cleaned file name** (removes dashes, size suffixes and extensions).
* **Site title**.

If the chosen source is empty for a given image, the cleaned file name is used as a fallback, so no image is left without alt text.

**Why it's different**

* **Persistent** — it writes real values into the Media Library (`alt` and `title`), so they apply on every theme, builder and page, not only on rendered content.
* **Safe and reversible** — it keeps a backup of the previous values and lets you revert the last run with one click.
* **No cost, no external AI** — pure rules, no per-image API calls.
* **Bulk with progress** — processes the whole library in batches with a live coverage meter (a ring showing how many images already have alt text).
* **Right from the Media Library** — an "Alt text" column shows which images are missing it, with a per-image **Generate** button (also available in each image's detail view), plus a **"Fill alt text & title (Replai)"** bulk action to do many at once.
* **Missing-only or overwrite** — decide whether to touch only empty values or replace existing ones.
* **Multilingual admin** — English, Spanish, Catalan, French, Italian, Portuguese and German, based on your site language.

Complete alt text improves accessibility for screen readers and helps your images rank in image search.

== Installation ==

1. Upload the **replai-image-alt** folder to `/wp-content/plugins/`, or install it from the WordPress plugin directory.
2. Activate the plugin.
3. Open the **Replai Images** menu, pick your rule, and press **Run now**.

== Frequently Asked Questions ==

= Does it change the Media Library or only the frontend? =
It writes the alt text (and optionally the title) directly into the Media Library, permanently. This is more robust than render-time injection because the values apply everywhere WordPress outputs the image.

= Can I undo the changes? =
Yes. If "keep a backup" is enabled (default), the plugin stores the previous values and you can revert the last run with the **Revert** button.

= Will it overwrite alt text I wrote by hand? =
Only if you choose "Overwrite". By default it fills **only images without alt text**, leaving your manual work untouched.

= Can I generate alt text for a single image, or just a few? =
Yes. In the Media Library list view, images missing alt text show a **Generate** button (also in each image's detail view), and you can select several images and use the **Fill alt text & title (Replai)** bulk action. All use your saved rules and can be reverted.

= Where does the alt text come from? =
From rules you choose: the post title, the SEO focus keyword (Yoast, Rank Math or SEOPress), a cleaned file name or the site title. There is no AI and no external service.

= Does it work with large libraries? =
Yes. The bulk process runs in batches with a progress bar, so it does not time out on big Media Libraries.

= Does it call any external service? =
No. Everything runs on your own site with local WordPress data.

== Screenshots ==

1. The settings screen: a coverage ring, the alt text and image title rules (source and when to apply), options, and the run action with a dynamic "Fill N pending" button.
2. Right in the Media Library list: an "Alt text" column flags images with missing alt, with a per-image "Generate" button and a badge marking the ones filled by the plugin.

== Changelog ==

= 1.0.2 =
* New: per-image "Generate" button in the Media Library list and in each image's detail view, and a "Fill alt text & title (Replai)" bulk action.
* Redesigned settings screen: full-width coverage with a ring meter, clearer rules, and the run action placed after the configuration with a dynamic "Fill N pending" button.
* The plugin description in the Plugins list now follows your site language.
* Tested and compatible with WordPress 7.1.

= 1.0.1 =
* New "Alt text" column in the Media Library list view, with a badge marking images filled by the plugin, plus a shortcut button.

= 1.0.0 =
* Initial release: bulk alt text and title for the Media Library from rules (post title, SEO focus keyword, cleaned file name, site title), missing-only or overwrite, persistent write with backup and revert, coverage meter, and a multilingual admin.

== Upgrade Notice ==

= 1.0.2 =
Compatible with WordPress 7.1.

= 1.0.1 =
Alt text column in the Media Library list view.

= 1.0.0 =
Initial release.
