Compare commits

..
12 changed files with 70 additions and 68 deletions

View file

@ -1,26 +1,5 @@
== Changelog == == Changelog ==
= 1.2.3 =
_Release date: 2026-08-24_
**Changed**
* Manager (by ROBOTSTXT) detection now checks the ecosystem presence constant `ROBOTSTXT_MANAGER_NOTICED` (defined by Manager 1.6.2+) instead of scanning the installed plugin list on every call. On sites running older Manager versions the detection falls back to the previous plugin-list scan.
**Compatibility**
* WordPress: 7.0 - 7.1
* PHP: 5.6 - 8.5
* WP-CLI: 2.12 or newer
**Tests**
* PHP Coding Standards: WordPress-Core, WordPress-Docs, WordPress-Extra
* PHPCompatibility: 5.6 - 8.5
* PHPStan: level 9 (incl. wp-compat @ Requires at least 7.0)
* PHPUnit: all tests passing (single-site), including both Manager-detection paths (constant defined / not defined)
= 1.2.2 = = 1.2.2 =
_Release date: 2026-08-17_ _Release date: 2026-08-17_

View file

@ -66,19 +66,11 @@ if ( ! class_exists( 'AI_Translator_Manager_Notice' ) ) {
/** /**
* Returns whether Manager (by ROBOTSTXT) is installed and active. * Returns whether Manager (by ROBOTSTXT) is installed and active.
* *
* Uses the ecosystem presence constant (Manager 1.6.2+) and falls back
* to a plugin-list scan for older Manager versions.
*
* @since 1.2.2 * @since 1.2.2
* @since 1.2.3 Added the ROBOTSTXT_MANAGER_NOTICED presence-constant check.
* *
* @return bool True when Manager is present and activated. * @return bool True when Manager is present and activated.
*/ */
public function is_manager_active() { public function is_manager_active() {
if ( defined( 'ROBOTSTXT_MANAGER_NOTICED' ) && ROBOTSTXT_MANAGER_NOTICED ) {
return true;
}
if ( ! function_exists( 'get_plugins' ) ) { if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php'; require_once ABSPATH . 'wp-admin/includes/plugin.php';
} }

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.3\n" "Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.2\n"
"Report-Msgid-Bugs-To: https://www.robotstxt.software/plugins/robotstxt-ai-" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-ai-"
"translator/\n" "translator\n"
"POT-Creation-Date: 2026-08-24T11:03:38+00:00\n" "POT-Creation-Date: 2026-08-17T16:27:30+00:00\n"
"PO-Revision-Date: 2026-08-24 11:17+0000\n" "PO-Revision-Date: 2026-05-23 10:30+0000\n"
"Last-Translator: ROBOTSTXT <hello@robotstxt.es>\n" "Last-Translator: ROBOTSTXT <hello@robotstxt.es>\n"
"Language-Team: Catalan\n" "Language-Team: Catalan\n"
"Language: ca\n" "Language: ca\n"
@ -496,8 +496,8 @@ msgstr ""
"Tens canvis sense desar. Desa l'entrada abans de traduir perquè s'utilitzi " "Tens canvis sense desar. Desa l'entrada abans de traduir perquè s'utilitzi "
"la versió més recent." "la versió més recent."
#: includes/class-ai-translator-manager-notice.php:162 #: includes/class-ai-translator-manager-notice.php:154
#: includes/class-ai-translator-manager-notice.php:185 #: includes/class-ai-translator-manager-notice.php:177
msgid "" msgid ""
"To get updates for the ROBOTSTXT plugins, the plugin below must be installed " "To get updates for the ROBOTSTXT plugins, the plugin below must be installed "
"and active:" "and active:"
@ -505,12 +505,12 @@ msgstr ""
"Per rebre actualitzacions dels plugins de ROBOTSTXT, el plugin següent ha " "Per rebre actualitzacions dels plugins de ROBOTSTXT, el plugin següent ha "
"d'estar instal·lat i actiu:" "d'estar instal·lat i actiu:"
#: includes/class-ai-translator-manager-notice.php:164 #: includes/class-ai-translator-manager-notice.php:156
#: includes/class-ai-translator-manager-notice.php:187 #: includes/class-ai-translator-manager-notice.php:179
msgid "Manager (by ROBOTSTXT)" msgid "Manager (by ROBOTSTXT)"
msgstr "Manager (by ROBOTSTXT)" msgstr "Manager (by ROBOTSTXT)"
#: includes/class-ai-translator-manager-notice.php:166 #: includes/class-ai-translator-manager-notice.php:158
msgid "Dismiss this notice" msgid "Dismiss this notice"
msgstr "Descartar aquest avís" msgstr "Descartar aquest avís"

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.3\n" "Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.2\n"
"Report-Msgid-Bugs-To: https://www.robotstxt.software/plugins/robotstxt-ai-" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-ai-"
"translator/\n" "translator\n"
"POT-Creation-Date: 2026-08-24T11:03:38+00:00\n" "POT-Creation-Date: 2026-08-17T16:27:30+00:00\n"
"PO-Revision-Date: 2026-08-24 11:17+0000\n" "PO-Revision-Date: 2026-05-23 10:30+0000\n"
"Last-Translator: ROBOTSTXT <hello@robotstxt.es>\n" "Last-Translator: ROBOTSTXT <hello@robotstxt.es>\n"
"Language-Team: Spanish (Spain)\n" "Language-Team: Spanish (Spain)\n"
"Language: es_ES\n" "Language: es_ES\n"
@ -498,8 +498,8 @@ msgstr ""
"Tienes cambios sin guardar. Guarda la entrada antes de traducir para que se " "Tienes cambios sin guardar. Guarda la entrada antes de traducir para que se "
"use la versión más reciente." "use la versión más reciente."
#: includes/class-ai-translator-manager-notice.php:162 #: includes/class-ai-translator-manager-notice.php:154
#: includes/class-ai-translator-manager-notice.php:185 #: includes/class-ai-translator-manager-notice.php:177
msgid "" msgid ""
"To get updates for the ROBOTSTXT plugins, the plugin below must be installed " "To get updates for the ROBOTSTXT plugins, the plugin below must be installed "
"and active:" "and active:"
@ -507,12 +507,12 @@ msgstr ""
"Para recibir actualizaciones de los plugins de ROBOTSTXT, el plugin " "Para recibir actualizaciones de los plugins de ROBOTSTXT, el plugin "
"siguiente debe estar instalado y activo:" "siguiente debe estar instalado y activo:"
#: includes/class-ai-translator-manager-notice.php:164 #: includes/class-ai-translator-manager-notice.php:156
#: includes/class-ai-translator-manager-notice.php:187 #: includes/class-ai-translator-manager-notice.php:179
msgid "Manager (by ROBOTSTXT)" msgid "Manager (by ROBOTSTXT)"
msgstr "Manager (by ROBOTSTXT)" msgstr "Manager (by ROBOTSTXT)"
#: includes/class-ai-translator-manager-notice.php:166 #: includes/class-ai-translator-manager-notice.php:158
msgid "Dismiss this notice" msgid "Dismiss this notice"
msgstr "Descartar este aviso" msgstr "Descartar este aviso"

View file

@ -2,14 +2,14 @@
# This file is distributed under the GPL-3.0-or-later. # This file is distributed under the GPL-3.0-or-later.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.3\n" "Project-Id-Version: AI Translator (by ROBOTSTXT) 1.2.2\n"
"Report-Msgid-Bugs-To: https://www.robotstxt.software/plugins/robotstxt-ai-translator/\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-ai-translator\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2026-08-24T11:03:38+00:00\n" "POT-Creation-Date: 2026-08-17T16:27:30+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.12.0\n" "X-Generator: WP-CLI 2.12.0\n"
"X-Domain: robotstxt-ai-translator\n" "X-Domain: robotstxt-ai-translator\n"
@ -405,17 +405,17 @@ msgstr ""
msgid "You have unsaved changes. Save the post before translating to ensure the latest content is used." msgid "You have unsaved changes. Save the post before translating to ensure the latest content is used."
msgstr "" msgstr ""
#: includes/class-ai-translator-manager-notice.php:162 #: includes/class-ai-translator-manager-notice.php:154
#: includes/class-ai-translator-manager-notice.php:185 #: includes/class-ai-translator-manager-notice.php:177
msgid "To get updates for the ROBOTSTXT plugins, the plugin below must be installed and active:" msgid "To get updates for the ROBOTSTXT plugins, the plugin below must be installed and active:"
msgstr "" msgstr ""
#: includes/class-ai-translator-manager-notice.php:164 #: includes/class-ai-translator-manager-notice.php:156
#: includes/class-ai-translator-manager-notice.php:187 #: includes/class-ai-translator-manager-notice.php:179
msgid "Manager (by ROBOTSTXT)" msgid "Manager (by ROBOTSTXT)"
msgstr "" msgstr ""
#: includes/class-ai-translator-manager-notice.php:166 #: includes/class-ai-translator-manager-notice.php:158
msgid "Dismiss this notice" msgid "Dismiss this notice"
msgstr "" msgstr ""

View file

@ -4,7 +4,7 @@ Tags: ai, translation, multilingual, multisite, editor
Requires at least: 7.0 Requires at least: 7.0
Tested up to: 7.1 Tested up to: 7.1
Requires PHP: 5.6 Requires PHP: 5.6
Stable tag: 1.2.3 Stable tag: 1.2.2
License: GPL-3.0-or-later License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.txt License URI: https://www.gnu.org/licenses/gpl-3.0.txt
@ -142,14 +142,10 @@ The plugin reads the post title and content from the database, not from the edit
Only the 3 last versions. The full changelog will be at changelog.txt Only the 3 last versions. The full changelog will be at changelog.txt
= 1.2.3 =
* Manager (by ROBOTSTXT) detection now uses the ecosystem presence constant `ROBOTSTXT_MANAGER_NOTICED` (Manager 1.6.2+) instead of scanning the plugin list, falling back to the plugin-list scan for older Manager versions.
= 1.2.2 = = 1.2.2 =
* Added a dismissible admin notice on the Plugins list screens recommending Manager (by ROBOTSTXT) when it is not installed and active, plus a persistent warning on the plugin settings pages. Updates for the ROBOTSTXT plugins are delivered through Manager. * Added a dismissible admin notice on the Plugins list screens recommending Manager (by ROBOTSTXT) when it is not installed and active, plus a persistent warning on the plugin settings pages. Updates for the ROBOTSTXT plugins are delivered through Manager.
* Removed the bundled JSON updater (`class-robotstxt-updater.php` and `update.json`). Plugin updates are now handled by Manager. * Removed the bundled JSON updater (`class-robotstxt-updater.php` and `update.json`). Plugin updates are now handled by Manager (by ROBOTSTXT).
* Changed the Plugin URI and Update URI to `https://www.robotstxt.software/plugins/robotstxt-ai-translator/`. * Changed the Plugin URI and Update URI to `https://www.robotstxt.software/plugins/robotstxt-ai-translator/`.
* Lowered the minimum PHP version from 7.4 to 5.6 (verified with PHPCompatibility 5.6-8.5). WordPress 7.0+ remains the minimum WordPress version because the plugin uses the native WordPress AI client. * Lowered the minimum PHP version from 7.4 to 5.6 (verified with PHPCompatibility 5.6-8.5). WordPress 7.0+ remains the minimum WordPress version because the plugin uses the native WordPress AI client.
@ -157,9 +153,17 @@ Only the 3 last versions. The full changelog will be at changelog.txt
* Confirmed compatibility with WordPress 7.1. No functional changes. * Confirmed compatibility with WordPress 7.1. No functional changes.
= 1.2.0 =
* Added configurable "Request timeout" setting (default 60 s, minimum 30 s, maximum 300 s) in site and network admin pages.
* Added parallel chunked content translation: long posts are split at Gutenberg block or paragraph boundaries and all chunks are sent to the AI concurrently, eliminating timeout errors on lengthy content.
* Added real-time progress indicator on the Translate button: "Translating… (2/5)" as each chunk resolves.
* Added new REST endpoint `POST /wp-json/ai-translator/v1/translate-text` for raw-text translation; used internally by the chunked content path.
* Changed: content translation now reads from the current editor state (unsaved changes included); title and excerpt continue to read from the saved post.
= Previous versions = = Previous versions =
If you want to see the full changelog, visit the [changelog](https://www.robotstxt.software/plugins/robotstxt-ai-translator/) page. If you want to see the full changelog, visit the [changelog.txt](https://www.robotstxt.software/plugins/robotstxt-ai-translator/changelog.txt) file.
== Compliance == == Compliance ==

View file

@ -4,7 +4,7 @@
* Plugin URI: https://www.robotstxt.software/plugins/robotstxt-ai-translator/ * Plugin URI: https://www.robotstxt.software/plugins/robotstxt-ai-translator/
* Update URI: https://www.robotstxt.software/plugins/robotstxt-ai-translator/ * Update URI: https://www.robotstxt.software/plugins/robotstxt-ai-translator/
* Description: Translate post titles and content from the editor using the native WordPress AI client (available in WP 7.0+). Multisite-ready with global or per-site configuration. * Description: Translate post titles and content from the editor using the native WordPress AI client (available in WP 7.0+). Multisite-ready with global or per-site configuration.
* Version: 1.2.3 * Version: 1.2.2
* Author: ROBOTSTXT * Author: ROBOTSTXT
* Author URI: https://www.robotstxt.software/ * Author URI: https://www.robotstxt.software/
* License: GPL-3.0-or-later * License: GPL-3.0-or-later
@ -25,7 +25,7 @@ if ( ! defined( 'ABSPATH' ) ) {
/** /**
* Plugin version. * Plugin version.
*/ */
define( 'AI_TRANSLATOR_VERSION', '1.2.3' ); define( 'AI_TRANSLATOR_VERSION', '1.2.2' );
/** /**
* Main plugin file path. * Main plugin file path.

27
update.json Normal file
View file

@ -0,0 +1,27 @@
{
"name": "AI Translator (by ROBOTSTXT)",
"slug": "robotstxt-ai-translator",
"version": "1.2.2",
"download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-ai-translator/releases/download/1.2.2/robotstxt-ai-translator-1.2.2.zip",
"requires": "7.0",
"requires_php": "7.4",
"tested": "7.1",
"last_updated": "2026-08-07",
"author": "ROBOTSTXT",
"author_profile": "https://www.robotstxt.es/",
"homepage": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-ai-translator",
"description": "Translate post titles and content from the WordPress editor using the native WordPress AI client (available in WP 7.0+). Multisite-ready with global or per-site configuration.",
"changelog": "",
"sections": {
"description": "Translate post titles and content from the WordPress editor using the native WordPress AI client (available in WP 7.0+). Multisite-ready with global or per-site configuration.",
"changelog": ""
},
"banners": {
"low": "",
"high": ""
},
"icons": {
"1x": "",
"2x": ""
}
}