+
+
diff --git a/includes/Network/ToolsPage.php b/includes/Network/ToolsPage.php
index 35df232..e552613 100644
--- a/includes/Network/ToolsPage.php
+++ b/includes/Network/ToolsPage.php
@@ -398,9 +398,16 @@ class ToolsPage {
if ( is_array( $cached ) ) {
$typed = array();
foreach ( $cached as $k => $v ) {
- if ( is_int( $k ) && is_array( $v ) ) {
- $typed[ $k ] = $v;
+ if ( ! is_int( $k ) || ! is_array( $v ) ) {
+ continue;
}
+ $row = array();
+ foreach ( $v as $row_key => $row_value ) {
+ if ( is_string( $row_key ) ) {
+ $row[ $row_key ] = $row_value;
+ }
+ }
+ $typed[ $k ] = $row;
}
return $typed;
}
diff --git a/languages/robotstxt-mediaaudit-ca.mo b/languages/robotstxt-mediaaudit-ca.mo
index c0a06f2..f65fa45 100644
Binary files a/languages/robotstxt-mediaaudit-ca.mo and b/languages/robotstxt-mediaaudit-ca.mo differ
diff --git a/languages/robotstxt-mediaaudit-ca.po b/languages/robotstxt-mediaaudit-ca.po
index 33504f8..7de3946 100644
--- a/languages/robotstxt-mediaaudit-ca.po
+++ b/languages/robotstxt-mediaaudit-ca.po
@@ -3,13 +3,13 @@
msgid ""
msgstr ""
"Project-Id-Version: Media Audit (by ROBOTSTXT) 1.7.0\n"
-"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-"
-"mediaaudit\n"
-"POT-Creation-Date: 2026-05-11T07:13:58+00:00\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-mediaaudit\n"
+"POT-Creation-Date: 2026-08-17T18:13:19+00:00\n"
"PO-Revision-Date: 2026-05-01 07:41+0000\n"
"Last-Translator: Javier Casares
\n"
"Language-Team: Catalan \n"
"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,243 +23,249 @@ msgstr "Auditoria de mitjans (by ROBOTSTXT)"
#. Plugin URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit"
-msgstr ""
+msgid "https://www.robotstxt.software/plugins/robotstxt-mediaaudit/"
+msgstr "https://www.robotstxt.software/plugins/robotstxt-mediaaudit/"
#. Description of the plugin
#: robotstxt-mediaaudit.php
-msgid ""
-"Internal media library usage auditing and external reverse image search to "
-"detect potential copyright issues."
-msgstr ""
-"Auditoria de l'ús de la biblioteca de fitxers multimèdia interna i cerca "
-"inversa d'imatges externa per detectar possibles problemes de drets d'autor."
+msgid "Internal media library usage auditing and external reverse image search to detect potential copyright issues."
+msgstr "Auditoria de l'ús de la biblioteca de fitxers multimèdia interna i cerca inversa d'imatges externa per detectar possibles problemes de drets d'autor."
#. Author of the plugin
#: robotstxt-mediaaudit.php
msgid "ROBOTSTXT"
-msgstr ""
+msgstr "ROBOTSTXT"
#. Author URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://www.robotstxt.es/"
-msgstr ""
+msgid "https://www.robotstxt.software/"
+msgstr "https://www.robotstxt.software/"
-#: includes/Admin/AlertsPage.php:210
+#: includes/Admin/AlertsPage.php:211 includes/Admin/AlertsPage.php:494
+#: includes/Admin/ManagerNotice.php:133
+msgid "Dismiss"
+msgstr "Descartar"
+
+#: includes/Admin/AlertsPage.php:212 includes/Admin/AlertsPage.php:517
+msgid "Cancel"
+msgstr "Cancel·lar"
+
+#: includes/Admin/AlertsPage.php:231
msgid "You do not have permission to perform this action."
msgstr "No teniu permís per accedir a aquesta pàgina."
-#: includes/Admin/AlertsPage.php:263 includes/Admin/AttachmentDetailPage.php:40
-#: includes/Admin/AuditPage.php:136 includes/Admin/Settings.php:898
-#: includes/Admin/ToolsPage.php:253
+#: includes/Admin/AlertsPage.php:284 includes/Admin/AttachmentDetailPage.php:44
+#: includes/Admin/AuditPage.php:140 includes/Admin/Settings.php:956
+#: includes/Admin/ToolsPage.php:257 includes/Network/AlertsPage.php:32
+#: includes/Network/AuditPage.php:31 includes/Network/Settings.php:188
+#: includes/Network/ToolsPage.php:149 includes/Network/ToolsPage.php:176
msgid "You do not have permission to access this page."
msgstr "No teniu permís per accedir a aquesta pàgina."
-#: includes/Admin/AlertsPage.php:280 includes/Core/Plugin.php:141
-#: includes/Core/Plugin.php:142
+#: includes/Admin/AlertsPage.php:301 includes/Core/Plugin.php:161
+#: includes/Core/Plugin.php:162 includes/Network/Plugin.php:104
+#: includes/Network/ToolsPage.php:207
msgid "Alerts"
msgstr "Alertes"
#. translators: %d: count of active alerts
-#: includes/Admin/AlertsPage.php:292
+#: includes/Admin/AlertsPage.php:313
#, php-format
msgid "Active Alerts (%d)"
msgstr "Alertes actives (%d)"
#. translators: %d: count of dismissed alerts
-#: includes/Admin/AlertsPage.php:304
+#: includes/Admin/AlertsPage.php:325
#, php-format
msgid "Dismissed Alerts (%d)"
msgstr "Alertes descartades (%d)"
-#: includes/Admin/AlertsPage.php:376
+#: includes/Admin/AlertsPage.php:397
msgid "Alert dismissed successfully."
msgstr "Alerta descartada correctament."
-#: includes/Admin/AlertsPage.php:377
+#: includes/Admin/AlertsPage.php:398
msgid "Alert reactivated successfully."
msgstr "Alerta reactivada correctament."
-#: includes/Admin/AlertsPage.php:378
+#: includes/Admin/AlertsPage.php:399
msgid "An error occurred. Please try again."
msgstr "S'ha produït un error. Si us plau, torna-ho a intentar."
-#: includes/Admin/AlertsPage.php:382 includes/Admin/ToolsPage.php:376
+#: includes/Admin/AlertsPage.php:403 includes/Admin/ToolsPage.php:380
msgid "Operation completed."
msgstr "Operació completada."
-#: includes/Admin/AlertsPage.php:402
+#: includes/Admin/AlertsPage.php:423
msgid "No active alerts found."
msgstr "No s'han trobat alertes actives."
-#: includes/Admin/AlertsPage.php:409 includes/Admin/AlertsPage.php:541
-#: includes/Admin/MediaListTable.php:55
+#: includes/Admin/AlertsPage.php:430 includes/Admin/AlertsPage.php:562
+#: includes/Admin/MediaListTable.php:59
msgid "Thumbnail"
msgstr "Miniatura"
-#: includes/Admin/AlertsPage.php:410 includes/Admin/AlertsPage.php:542
-#: includes/Admin/AttachmentDetailPage.php:87 includes/Admin/AuditPage.php:554
-#: includes/Admin/MediaListTable.php:56 includes/Privacy/DataExporter.php:261
+#: includes/Admin/AlertsPage.php:431 includes/Admin/AlertsPage.php:563
+#: includes/Admin/AttachmentDetailPage.php:91 includes/Admin/AuditPage.php:558
+#: includes/Admin/MediaListTable.php:60
+#: includes/Network/NetworkListTable.php:67
+#: includes/Privacy/DataExporter.php:265
msgid "Filename"
msgstr "Nom de fitxer"
-#: includes/Admin/AlertsPage.php:411 includes/Admin/AlertsPage.php:543
-#: includes/Admin/AttachmentDetailPage.php:372 includes/Admin/AuditPage.php:566
+#: includes/Admin/AlertsPage.php:432 includes/Admin/AlertsPage.php:564
+#: includes/Admin/AttachmentDetailPage.php:376 includes/Admin/AuditPage.php:570
msgid "Alert Domains"
msgstr "Dominis d'alerta"
-#: includes/Admin/AlertsPage.php:412
+#: includes/Admin/AlertsPage.php:433
msgid "Usage"
msgstr "Usos"
-#: includes/Admin/AlertsPage.php:413 includes/Admin/AlertsPage.php:547
+#: includes/Admin/AlertsPage.php:434 includes/Admin/AlertsPage.php:568
msgid "Actions"
msgstr "Accions"
-#: includes/Admin/AlertsPage.php:447 includes/Admin/AlertsPage.php:587
-#: includes/Admin/MediaListTable.php:172
+#: includes/Admin/AlertsPage.php:468 includes/Admin/AlertsPage.php:608
+#: includes/Admin/MediaListTable.php:176
msgid "Edit"
msgstr "Edita"
-#: includes/Admin/AlertsPage.php:449 includes/Admin/AlertsPage.php:589
-#: includes/Admin/MediaListTable.php:182
+#: includes/Admin/AlertsPage.php:470 includes/Admin/AlertsPage.php:610
+#: includes/Admin/MediaListTable.php:186
msgid "Full Report"
msgstr "Informe complet"
-#: includes/Admin/AlertsPage.php:459 includes/Admin/AuditPage.php:382
-#: includes/Admin/AuditPage.php:489 includes/Admin/MediaListTable.php:315
-#: includes/Admin/MediaListTable.php:452
+#: includes/Admin/AlertsPage.php:480 includes/Admin/AuditPage.php:386
+#: includes/Admin/AuditPage.php:493 includes/Admin/MediaListTable.php:319
+#: includes/Admin/MediaListTable.php:456
+#: includes/Network/NetworkListTable.php:69
+#: includes/Network/NetworkListTable.php:195
msgid "Alert"
msgstr "Alerta"
-#: includes/Admin/AlertsPage.php:473
-msgid "Dismiss"
-msgstr "Descartar"
-
-#: includes/Admin/AlertsPage.php:485
+#: includes/Admin/AlertsPage.php:506
msgid "Notes (optional):"
msgstr "Notes (opcional):"
-#: includes/Admin/AlertsPage.php:495
+#: includes/Admin/AlertsPage.php:516
msgid "Confirm Dismiss"
msgstr "Confirmar descart"
-#: includes/Admin/AlertsPage.php:496
-msgid "Cancel"
-msgstr "Cancel·lar"
-
-#: includes/Admin/AlertsPage.php:534
+#: includes/Admin/AlertsPage.php:555
msgid "No dismissed alerts."
msgstr "No hi ha alertes descartades."
-#: includes/Admin/AlertsPage.php:544
+#: includes/Admin/AlertsPage.php:565
msgid "Notes"
msgstr "Notes"
-#: includes/Admin/AlertsPage.php:545
+#: includes/Admin/AlertsPage.php:566
msgid "Dismissed By"
msgstr "Descartada per"
-#: includes/Admin/AlertsPage.php:546
+#: includes/Admin/AlertsPage.php:567
msgid "Dismissed At"
msgstr "Descartada el"
-#: includes/Admin/AlertsPage.php:599 includes/Admin/AuditPage.php:569
-#: includes/Admin/MediaListTable.php:302
+#: includes/Admin/AlertsPage.php:620 includes/Admin/AuditPage.php:573
+#: includes/Admin/MediaListTable.php:306
+#: includes/Network/NetworkListTable.php:192
msgid "Dismissed"
msgstr "Descartada"
-#: includes/Admin/AlertsPage.php:616
+#: includes/Admin/AlertsPage.php:637
msgid "Reactivate"
msgstr "Reactivar"
-#: includes/Admin/AttachmentDetailPage.php:51
-#: includes/Admin/AttachmentDetailPage.php:56 includes/Admin/AuditPage.php:181
+#: includes/Admin/AttachmentDetailPage.php:55
+#: includes/Admin/AttachmentDetailPage.php:60 includes/Admin/AuditPage.php:185
msgid "Invalid attachment ID."
msgstr "Identificador de fitxer adjunt no vàlid."
-#: includes/Admin/AttachmentDetailPage.php:64
+#: includes/Admin/AttachmentDetailPage.php:68
msgid "← Media Audit"
msgstr "← Auditoria de mitjans"
-#: includes/Admin/AttachmentDetailPage.php:69
+#: includes/Admin/AttachmentDetailPage.php:73
msgid "File Information"
msgstr "Informació del fitxer"
-#: includes/Admin/AttachmentDetailPage.php:81
-#: includes/Admin/MediaListTable.php:57
+#: includes/Admin/AttachmentDetailPage.php:85
+#: includes/Admin/MediaListTable.php:61
msgid "ID"
msgstr "ID"
-#: includes/Admin/AttachmentDetailPage.php:94 includes/Admin/AuditPage.php:555
-#: includes/Privacy/DataExporter.php:265
+#: includes/Admin/AttachmentDetailPage.php:98 includes/Admin/AuditPage.php:559
+#: includes/Privacy/DataExporter.php:269
msgid "File URL"
msgstr "URL del fitxer"
-#: includes/Admin/AttachmentDetailPage.php:102 includes/Admin/AuditPage.php:556
+#: includes/Admin/AttachmentDetailPage.php:106 includes/Admin/AuditPage.php:560
msgid "MIME Type"
msgstr "Tipus MIME"
-#: includes/Admin/AttachmentDetailPage.php:112
+#: includes/Admin/AttachmentDetailPage.php:116
msgid "File size"
msgstr "Mida del fitxer"
-#: includes/Admin/AttachmentDetailPage.php:118
+#: includes/Admin/AttachmentDetailPage.php:122
msgid "Internal scan date"
msgstr "Data de l'exploració interna"
-#: includes/Admin/AttachmentDetailPage.php:124 includes/Admin/AuditPage.php:559
-#: includes/Admin/MediaListTable.php:60
+#: includes/Admin/AttachmentDetailPage.php:128 includes/Admin/AuditPage.php:563
+#: includes/Admin/MediaListTable.php:64
+#: includes/Network/NetworkListTable.php:68
msgid "External Status"
msgstr "Estat extern"
-#: includes/Admin/AttachmentDetailPage.php:139 includes/Admin/AuditPage.php:245
+#: includes/Admin/AttachmentDetailPage.php:143 includes/Admin/AuditPage.php:249
msgid "Internal Usage"
msgstr "Ús intern"
-#: includes/Admin/AttachmentDetailPage.php:144 includes/Admin/AuditPage.php:189
+#: includes/Admin/AttachmentDetailPage.php:148 includes/Admin/AuditPage.php:193
msgid "Featured Image"
msgstr "Imatge destacada"
-#: includes/Admin/AttachmentDetailPage.php:145 includes/Admin/AuditPage.php:190
+#: includes/Admin/AttachmentDetailPage.php:149 includes/Admin/AuditPage.php:194
msgid "Post Content"
msgstr "Contingut de l'entrada"
-#: includes/Admin/AttachmentDetailPage.php:146 includes/Admin/AuditPage.php:191
+#: includes/Admin/AttachmentDetailPage.php:150 includes/Admin/AuditPage.php:195
msgid "Custom Field"
msgstr "Camp personalitzat"
-#: includes/Admin/AttachmentDetailPage.php:150
+#: includes/Admin/AttachmentDetailPage.php:154
msgid "Not used in any post."
msgstr "Aquest fitxer no s'utilitza en cap entrada."
-#: includes/Admin/AttachmentDetailPage.php:154 includes/Admin/AuditPage.php:199
+#: includes/Admin/AttachmentDetailPage.php:158 includes/Admin/AuditPage.php:203
msgid "Post"
msgstr "Entrada"
-#: includes/Admin/AttachmentDetailPage.php:155 includes/Admin/AuditPage.php:200
+#: includes/Admin/AttachmentDetailPage.php:159 includes/Admin/AuditPage.php:204
msgid "Type"
msgstr "Tipus"
-#: includes/Admin/AttachmentDetailPage.php:156 includes/Admin/AuditPage.php:201
+#: includes/Admin/AttachmentDetailPage.php:160 includes/Admin/AuditPage.php:205
msgid "Context"
msgstr "Context"
-#: includes/Admin/AttachmentDetailPage.php:157 includes/Admin/AuditPage.php:202
-#: includes/Admin/AuditPage.php:374
+#: includes/Admin/AttachmentDetailPage.php:161 includes/Admin/AuditPage.php:206
+#: includes/Admin/AuditPage.php:378
msgid "Status"
msgstr "Estat"
-#: includes/Admin/AttachmentDetailPage.php:198 includes/Admin/AuditPage.php:294
+#: includes/Admin/AttachmentDetailPage.php:202 includes/Admin/AuditPage.php:298
msgid "External Scan Results"
msgstr "Resultats de l'exploració externa"
-#: includes/Admin/AttachmentDetailPage.php:260
+#: includes/Admin/AttachmentDetailPage.php:264
msgid "No external scan data available."
msgstr "No hi ha dades d'exploració externa disponibles."
#. translators: %d: number of external matches
-#: includes/Admin/AttachmentDetailPage.php:313 includes/Admin/AuditPage.php:324
+#: includes/Admin/AttachmentDetailPage.php:317 includes/Admin/AuditPage.php:328
#, php-format
msgid "%d match"
msgid_plural "%d matches"
@@ -267,1085 +273,1184 @@ msgstr[0] "%d coincidència"
msgstr[1] "%d coincidències"
#. translators: %s: scan date string
-#: includes/Admin/AttachmentDetailPage.php:321
+#: includes/Admin/AttachmentDetailPage.php:325
#, php-format
msgid "scanned %s"
msgstr "explorat el %s"
-#: includes/Admin/AttachmentDetailPage.php:373
-msgid ""
-"These domains are associated with copyright-protected content and may "
-"indicate a copyright risk."
-msgstr ""
-"Aquests dominis estan associats a contingut protegit per drets d'autor i "
-"poden indicar un risc de copyright."
+#: includes/Admin/AttachmentDetailPage.php:377
+msgid "These domains are associated with copyright-protected content and may indicate a copyright risk."
+msgstr "Aquests dominis estan associats a contingut protegit per drets d'autor i poden indicar un risc de copyright."
-#: includes/Admin/AttachmentDetailPage.php:376
-#: includes/Admin/AttachmentDetailPage.php:392
-#: includes/Admin/AttachmentDetailPage.php:408 includes/Admin/AuditPage.php:372
+#: includes/Admin/AttachmentDetailPage.php:380
+#: includes/Admin/AttachmentDetailPage.php:396
+#: includes/Admin/AttachmentDetailPage.php:412 includes/Admin/AuditPage.php:376
msgid "Domain"
msgstr "Domini"
-#: includes/Admin/AttachmentDetailPage.php:377
-#: includes/Admin/AttachmentDetailPage.php:393
-#: includes/Admin/AttachmentDetailPage.php:409 includes/Admin/AuditPage.php:373
+#: includes/Admin/AttachmentDetailPage.php:381
+#: includes/Admin/AttachmentDetailPage.php:397
+#: includes/Admin/AttachmentDetailPage.php:413 includes/Admin/AuditPage.php:377
msgid "Occurrences"
msgstr "Aparicions"
-#: includes/Admin/AttachmentDetailPage.php:389 includes/Admin/AuditPage.php:567
+#: includes/Admin/AttachmentDetailPage.php:393 includes/Admin/AuditPage.php:571
msgid "Other Domains"
msgstr "Altres dominis"
-#: includes/Admin/AttachmentDetailPage.php:405 includes/Admin/AuditPage.php:568
+#: includes/Admin/AttachmentDetailPage.php:409 includes/Admin/AuditPage.php:572
msgid "Ignored Domains"
msgstr "Dominis ignorats"
-#: includes/Admin/AttachmentDetailPage.php:447
+#: includes/Admin/AttachmentDetailPage.php:451
msgid "Pages with this image"
msgstr "Pàgines amb aquesta imatge"
-#: includes/Admin/AttachmentDetailPage.php:449
-#: includes/Admin/AttachmentDetailPage.php:550
-#: includes/Admin/AttachmentDetailPage.php:663
+#: includes/Admin/AttachmentDetailPage.php:453
+#: includes/Admin/AttachmentDetailPage.php:554
+#: includes/Admin/AttachmentDetailPage.php:667
msgid "Page URL"
msgstr "URL de la pàgina"
-#: includes/Admin/AttachmentDetailPage.php:450
+#: includes/Admin/AttachmentDetailPage.php:454
msgid "Page Title"
msgstr "Títol de la pàgina"
-#: includes/Admin/AttachmentDetailPage.php:473
+#: includes/Admin/AttachmentDetailPage.php:477
msgid "Full image matches"
msgstr "Coincidències exactes d'imatge"
-#: includes/Admin/AttachmentDetailPage.php:474
-#: includes/Admin/AttachmentDetailPage.php:492
-#: includes/Admin/AttachmentDetailPage.php:551
-#: includes/Admin/AttachmentDetailPage.php:664
+#: includes/Admin/AttachmentDetailPage.php:478
+#: includes/Admin/AttachmentDetailPage.php:496
+#: includes/Admin/AttachmentDetailPage.php:555
+#: includes/Admin/AttachmentDetailPage.php:668
msgid "Image URL"
msgstr "URL de la imatge"
-#: includes/Admin/AttachmentDetailPage.php:491
+#: includes/Admin/AttachmentDetailPage.php:495
msgid "Partial image matches"
msgstr "Coincidències parcials d'imatge"
-#: includes/Admin/AttachmentDetailPage.php:548
-msgid "Backlinks found by TinEye (sorted by crawl date, newest first)"
-msgstr ""
-"Backlinks trobats per TinEye (ordenats per data de rastreig, el més recent "
-"primer)"
-
#: includes/Admin/AttachmentDetailPage.php:552
+msgid "Backlinks found by TinEye (sorted by crawl date, newest first)"
+msgstr "Backlinks trobats per TinEye (ordenats per data de rastreig, el més recent primer)"
+
+#: includes/Admin/AttachmentDetailPage.php:556
msgid "Crawl date"
msgstr "Data de rastreig"
-#: includes/Admin/AttachmentDetailPage.php:599
+#: includes/Admin/AttachmentDetailPage.php:603
msgid "Face detected"
msgstr "Cara detectada"
-#: includes/Admin/AttachmentDetailPage.php:602
+#: includes/Admin/AttachmentDetailPage.php:606
msgid "Logo detected"
msgstr "Logotip detectat"
-#: includes/Admin/AttachmentDetailPage.php:605
+#: includes/Admin/AttachmentDetailPage.php:609
msgid "Landmark detected"
msgstr "Monument detectat"
-#: includes/Admin/AttachmentDetailPage.php:608
+#: includes/Admin/AttachmentDetailPage.php:612
msgid "Stock image"
msgstr "Imatge de banc"
#. translators: %s: copyright holder name
-#: includes/Admin/AttachmentDetailPage.php:615
+#: includes/Admin/AttachmentDetailPage.php:619
#, php-format
msgid "EXIF copyright: %s"
msgstr "Copyright EXIF: %s"
-#: includes/Admin/AttachmentDetailPage.php:620
+#: includes/Admin/AttachmentDetailPage.php:624
msgid "Risk flags"
msgstr "Indicadors de risc"
-#: includes/Admin/AttachmentDetailPage.php:622
+#: includes/Admin/AttachmentDetailPage.php:626
msgid "No risk flags detected."
msgstr "No s'han detectat indicadors de risc."
-#: includes/Admin/AttachmentDetailPage.php:661
+#: includes/Admin/AttachmentDetailPage.php:665
msgid "Backlinks found by PicDefense"
msgstr "Backlinks trobats per PicDefense"
-#: includes/Admin/AttachmentDetailPage.php:665
+#: includes/Admin/AttachmentDetailPage.php:669
msgid "Similarity"
msgstr "Similitud"
-#: includes/Admin/AttachmentDetailPage.php:694
+#: includes/Admin/AttachmentDetailPage.php:698
msgid "Labels"
msgstr "Etiquetes"
-#: includes/Admin/AuditPage.php:117
+#: includes/Admin/AuditPage.php:121
msgid "Loading…"
msgstr "S'està carregant…"
-#: includes/Admin/AuditPage.php:118
+#: includes/Admin/AuditPage.php:122
msgid "Error loading details."
msgstr "S'ha produït un error en carregar els detalls."
-#: includes/Admin/AuditPage.php:119 includes/Admin/AuditPage.php:195
+#: includes/Admin/AuditPage.php:123 includes/Admin/AuditPage.php:199
msgid "This image is not used in any post."
msgstr "Aquesta imatge no s'utilitza en cap entrada."
-#: includes/Admin/AuditPage.php:120 includes/Admin/AuditPage.php:157
+#: includes/Admin/AuditPage.php:124 includes/Admin/AuditPage.php:161
msgid "Usage Details"
msgstr "Detalls d'ús"
-#: includes/Admin/AuditPage.php:143 includes/Core/Plugin.php:118
-#: includes/Core/Plugin.php:119 includes/Core/Plugin.php:132
-#: includes/Core/Plugin.php:133 includes/Privacy/DataEraser.php:33
-#: includes/Privacy/DataExporter.php:45
+#: includes/Admin/AuditPage.php:147 includes/Core/Plugin.php:126
+#: includes/Core/Plugin.php:127 includes/Core/Plugin.php:138
+#: includes/Core/Plugin.php:139 includes/Core/Plugin.php:152
+#: includes/Core/Plugin.php:153 includes/Core/Plugin.php:275
+#: includes/Network/Plugin.php:84 includes/Network/Plugin.php:125
+#: includes/Privacy/DataEraser.php:37 includes/Privacy/DataExporter.php:49
msgid "Media Audit"
msgstr "Auditoria de mitjans"
-#: includes/Admin/AuditPage.php:149
+#: includes/Admin/AuditPage.php:153
msgid "Search"
msgstr "Cerca"
-#: includes/Admin/AuditPage.php:158
+#: includes/Admin/AuditPage.php:162
msgid "Close"
msgstr "Tanca"
-#: includes/Admin/AuditPage.php:176 includes/Admin/AuditPage.php:530
-#: includes/Admin/AuditPage.php:806 includes/Admin/AuditPage.php:838
-#: includes/Admin/ToolsPage.php:105 includes/Admin/ToolsPage.php:165
+#: includes/Admin/AuditPage.php:180 includes/Admin/AuditPage.php:534
+#: includes/Admin/AuditPage.php:810 includes/Admin/AuditPage.php:842
+#: includes/Admin/ToolsPage.php:110 includes/Admin/ToolsPage.php:169
+#: includes/Network/ToolsPage.php:78
msgid "Insufficient permissions."
msgstr "Permisos insuficients."
-#: includes/Admin/AuditPage.php:329
+#: includes/Admin/AuditPage.php:333
msgid "No matches"
msgstr "Sense coincidències"
-#: includes/Admin/AuditPage.php:404
+#: includes/Admin/AuditPage.php:408
msgid "Consensus Domains"
msgstr "Dominis de consens"
#. translators: %d: number of providers that agree
-#: includes/Admin/AuditPage.php:410
+#: includes/Admin/AuditPage.php:414
#, php-format
msgid "%d provider"
msgid_plural "%d providers"
msgstr[0] "%d proveïdor"
msgstr[1] "%d proveïdors"
-#: includes/Admin/AuditPage.php:420
+#: includes/Admin/AuditPage.php:424
msgid "View full report →"
msgstr "Veure l'informe complet →"
-#: includes/Admin/AuditPage.php:446
+#: includes/Admin/AuditPage.php:450
msgid "In Index"
msgstr "A l'índex"
#. translators: %d: count of images not yet indexed
-#: includes/Admin/AuditPage.php:450
+#: includes/Admin/AuditPage.php:454
#, php-format
msgid "%d not yet indexed"
msgstr "%d encara no indexades"
-#: includes/Admin/AuditPage.php:453
+#: includes/Admin/AuditPage.php:457
msgid "All indexed"
msgstr "Totes indexades"
-#: includes/Admin/AuditPage.php:458 includes/Admin/MediaListTable.php:346
+#: includes/Admin/AuditPage.php:462 includes/Admin/MediaListTable.php:350
msgid "Scanned"
msgstr "Explorades"
#. translators: %d: percentage
-#: includes/Admin/AuditPage.php:461
+#: includes/Admin/AuditPage.php:465
#, php-format
msgid "%d%% of index"
msgstr "%d%% de l'índex"
-#: includes/Admin/AuditPage.php:468
+#: includes/Admin/AuditPage.php:472
msgid "Used"
msgstr "Usades"
-#: includes/Admin/AuditPage.php:474 includes/Admin/MediaListTable.php:212
+#: includes/Admin/AuditPage.php:478 includes/Admin/MediaListTable.php:216
msgid "Unused"
msgstr "No usades"
-#: includes/Admin/AuditPage.php:481
+#: includes/Admin/AuditPage.php:485 includes/Network/AuditPage.php:45
msgid "External Matches"
msgstr "Coincidències externes"
-#: includes/Admin/AuditPage.php:544
+#: includes/Admin/AuditPage.php:548
msgid "Could not open output stream."
msgstr "No s'ha pogut obrir el flux de sortida."
-#: includes/Admin/AuditPage.php:553 includes/Privacy/DataExporter.php:257
-#: includes/Privacy/DataExporter.php:299
+#: includes/Admin/AuditPage.php:557 includes/Privacy/DataExporter.php:261
+#: includes/Privacy/DataExporter.php:303
msgid "Attachment ID"
msgstr "ID del fitxer adjunt"
-#: includes/Admin/AuditPage.php:557
+#: includes/Admin/AuditPage.php:561
msgid "File Size (bytes)"
msgstr "Mida del fitxer (bytes)"
-#: includes/Admin/AuditPage.php:558
+#: includes/Admin/AuditPage.php:562
msgid "Internal Scan Date"
msgstr "Data de l'escaneig intern"
-#: includes/Admin/AuditPage.php:560
+#: includes/Admin/AuditPage.php:564
msgid "Has Alert"
msgstr "Té alerta"
-#: includes/Admin/AuditPage.php:561 includes/Admin/MediaListTable.php:58
+#: includes/Admin/AuditPage.php:565 includes/Admin/MediaListTable.php:62
msgid "Usage Count"
msgstr "Nombre d'usos"
-#: includes/Admin/AuditPage.php:562
+#: includes/Admin/AuditPage.php:566
msgid "Used In"
msgstr "Usat a"
-#: includes/Admin/AuditPage.php:563
+#: includes/Admin/AuditPage.php:567
msgid "Google Vision — Matches"
msgstr "Google Vision — Coincidències"
-#: includes/Admin/AuditPage.php:564
+#: includes/Admin/AuditPage.php:568
msgid "TinEye — Matches"
msgstr "TinEye — Coincidències"
-#: includes/Admin/AuditPage.php:565
+#: includes/Admin/AuditPage.php:569
msgid "PicDefense — Matches"
msgstr "PicDefense — Coincidències"
-#: includes/Admin/AuditPage.php:570
+#: includes/Admin/AuditPage.php:574
msgid "Dismissed Notes"
msgstr "Notes de descart"
-#: includes/Admin/AuditPage.php:776 includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780 includes/Admin/AuditPage.php:792
msgid "Yes"
msgstr "Sí"
-#: includes/Admin/AuditPage.php:776 includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780 includes/Admin/AuditPage.php:792
msgid "No"
msgstr "No"
-#: includes/Admin/MediaListTable.php:59
+#. translators: %s: Manager plugin page URL.
+#: includes/Admin/ManagerNotice.php:199
+#, php-format
+msgid "To receive plugin updates, the plugin Manager (by ROBOTSTXT) must be installed and active."
+msgstr "Per rebre actualitzacions del plugin, el plugin Manager (by ROBOTSTXT) ha d’estar instal·lat i actiu."
+
+#: includes/Admin/MediaListTable.php:63
msgid "Usages"
msgstr "Usos"
-#: includes/Admin/MediaListTable.php:61
+#: includes/Admin/MediaListTable.php:65
+#: includes/Network/NetworkListTable.php:70
msgid "Last Scanned"
msgstr "Darrera exploració"
-#: includes/Admin/MediaListTable.php:85
+#: includes/Admin/MediaListTable.php:89
+#: includes/Network/NetworkListTable.php:95
msgid "Run External Scan"
msgstr "Executar exploració externa"
-#: includes/Admin/MediaListTable.php:86
+#: includes/Admin/MediaListTable.php:90
+#: includes/Network/NetworkListTable.php:96
msgid "Purge External Data"
msgstr "Eliminar dades externes"
-#: includes/Admin/MediaListTable.php:87
+#: includes/Admin/MediaListTable.php:91
msgid "Export CSV"
msgstr "Exportar CSV"
-#: includes/Admin/MediaListTable.php:88
+#: includes/Admin/MediaListTable.php:92
msgid "Export CSV (Alerts only)"
msgstr "Exportar CSV (només alertes)"
-#: includes/Admin/MediaListTable.php:177
+#: includes/Admin/MediaListTable.php:181
msgid "View Details"
msgstr "Visualitza els detalls"
-#: includes/Admin/MediaListTable.php:248
+#: includes/Admin/MediaListTable.php:252
msgid "(no title)"
msgstr "(sense títol)"
#. translators: %d: number of additional usages
-#: includes/Admin/MediaListTable.php:263
+#: includes/Admin/MediaListTable.php:267
#, php-format
msgid "+ %d more…"
msgstr "+ %d més…"
-#: includes/Admin/MediaListTable.php:307 includes/Admin/MediaListTable.php:337
-#: includes/Admin/MediaListTable.php:376
+#: includes/Admin/MediaListTable.php:311 includes/Admin/MediaListTable.php:341
+#: includes/Admin/MediaListTable.php:380
msgid "View Results"
msgstr "Visualitza els resultats"
-#: includes/Admin/MediaListTable.php:344 includes/Admin/ToolsPage.php:589
-#: includes/Admin/ToolsPage.php:590 includes/Admin/ToolsPage.php:591
+#: includes/Admin/MediaListTable.php:348 includes/Admin/ToolsPage.php:593
+#: includes/Admin/ToolsPage.php:594 includes/Admin/ToolsPage.php:595
msgid "Pending"
msgstr "Pendent"
-#: includes/Admin/MediaListTable.php:345
+#: includes/Admin/MediaListTable.php:349
msgid "Queued"
msgstr "En cua"
-#: includes/Admin/MediaListTable.php:347
+#: includes/Admin/MediaListTable.php:351
msgid "Matches Found"
msgstr "Coincidències trobades"
-#: includes/Admin/MediaListTable.php:348
+#: includes/Admin/MediaListTable.php:352
msgid "Error"
msgstr "Error"
#. translators: %s: human-readable time difference, e.g. "3 days"
-#: includes/Admin/MediaListTable.php:418
+#: includes/Admin/MediaListTable.php:422
#, php-format
msgid "%s ago"
msgstr "fa %s"
-#: includes/Admin/MediaListTable.php:448
+#: includes/Admin/MediaListTable.php:452
msgid "All statuses"
msgstr "Tots els estats"
-#: includes/Admin/MediaListTable.php:467
+#: includes/Admin/MediaListTable.php:471
msgid "All post types"
msgstr "Tots els tipus d'entrada"
-#: includes/Admin/MediaListTable.php:482
+#: includes/Admin/MediaListTable.php:486
msgid "Unused only"
msgstr "Només no usades"
-#: includes/Admin/MediaListTable.php:485
+#: includes/Admin/MediaListTable.php:489
msgid "Filter"
msgstr "Filtra"
-#: includes/Admin/MediaListTable.php:495
-msgid ""
-"No indexed attachments found. Run wp mra scan-internal to populate the index."
-msgstr ""
-"No s'han trobat fitxers adjunts indexats. Executeu wp mra scan-internal per "
-"omplir l'índex."
+#: includes/Admin/MediaListTable.php:499
+msgid "No indexed attachments found. Run wp mra scan-internal to populate the index."
+msgstr "No s'han trobat fitxers adjunts indexats. Executeu wp mra scan-internal per omplir l'índex."
-#: includes/Admin/Settings.php:203
+#: includes/Admin/Settings.php:207
msgid "General"
msgstr "General"
-#: includes/Admin/Settings.php:204
+#: includes/Admin/Settings.php:208 includes/Network/Settings.php:199
msgid "API Credentials"
msgstr "Credencials de l'API"
-#: includes/Admin/Settings.php:205
+#: includes/Admin/Settings.php:209 includes/Network/Settings.php:200
msgid "Filters"
msgstr "Filtres"
-#: includes/Admin/Settings.php:206
+#: includes/Admin/Settings.php:210 includes/Network/Settings.php:201
msgid "External Scanning"
msgstr "Exploració externa"
-#: includes/Admin/Settings.php:249
+#: includes/Admin/Settings.php:288
msgid "Delete data on uninstall"
msgstr "Elimina les dades en desinstal·lar"
-#: includes/Admin/Settings.php:265
+#: includes/Admin/Settings.php:304 includes/Network/Settings.php:309
msgid "Google Cloud Vision API Key"
msgstr "Clau de l'API de Google Cloud Vision"
-#: includes/Admin/Settings.php:273
+#: includes/Admin/Settings.php:312 includes/Network/Settings.php:313
msgid "TinEye API Key"
msgstr "Clau de l'API de TinEye"
-#: includes/Admin/Settings.php:281
+#: includes/Admin/Settings.php:320 includes/Network/Settings.php:317
msgid "PicDefense User ID"
msgstr "ID d'usuari PicDefense"
-#: includes/Admin/Settings.php:289
+#: includes/Admin/Settings.php:328 includes/Network/Settings.php:321
msgid "PicDefense API Key"
msgstr "Clau API de PicDefense"
-#: includes/Admin/Settings.php:298
+#: includes/Admin/Settings.php:337 includes/Network/Settings.php:343
msgid "Alert Hostnames"
msgstr "Hostnames d'alerta"
-#: includes/Admin/Settings.php:305 includes/Admin/Settings.php:320
+#: includes/Admin/Settings.php:344 includes/Admin/Settings.php:359
msgid "Hostnames"
msgstr "Hostnames"
-#: includes/Admin/Settings.php:313
+#: includes/Admin/Settings.php:352 includes/Network/Settings.php:347
msgid "Ignored Hostnames"
msgstr "Hostnames ignorats"
-#: includes/Admin/Settings.php:336
+#: includes/Admin/Settings.php:375 includes/Network/Settings.php:366
msgid "Batch Size"
msgstr "Mida del lot"
-#: includes/Admin/Settings.php:344
+#: includes/Admin/Settings.php:383
msgid "Rate Limit (requests/min)"
msgstr "Límit de velocitat (sol·licituds/min)"
#. translators: %s: comma-separated list of hostnames
-#: includes/Admin/Settings.php:404
+#: includes/Admin/Settings.php:455
#, php-format
-msgid ""
-"The following hostnames were removed from the exclusion list because they "
-"already appear in the alert list: %s"
-msgstr ""
-"Els hostnames següents s'han eliminat de la llista d'exclusió perquè ja "
-"apareixen a la llista d'alertes: %s"
+msgid "The following hostnames were removed from the exclusion list because they already appear in the alert list: %s"
+msgstr "Els hostnames següents s'han eliminat de la llista d'exclusió perquè ja apareixen a la llista d'alertes: %s"
-#: includes/Admin/Settings.php:505
+#: includes/Admin/Settings.php:563
msgid "API Credentials Status"
msgstr "Estat de les credencials d'API"
-#: includes/Admin/Settings.php:513
-#: includes/External/GoogleVisionProvider.php:43
+#: includes/Admin/Settings.php:571
+#: includes/External/GoogleVisionProvider.php:47
msgid "Google Cloud Vision"
msgstr "Google Cloud Vision"
-#: includes/Admin/Settings.php:521
+#: includes/Admin/Settings.php:579
msgid "TinEye"
msgstr "TinEye"
-#: includes/Admin/Settings.php:544
-msgid ""
-"Matches from these hostnames are flagged as critical copyright alerts. "
-"Entering example.com also covers all its subdomains."
-msgstr ""
-"Les coincidències d'aquests hostnames es marquen com a alertes crítiques de "
-"copyright. Introduir example.com també cobreix tots els seus subdominis."
+#: includes/Admin/Settings.php:602
+msgid "Matches from these hostnames are flagged as critical copyright alerts. Entering example.com also covers all its subdomains."
+msgstr "Les coincidències d'aquests hostnames es marquen com a alertes crítiques de copyright. Introduir example.com també cobreix tots els seus subdominis."
-#: includes/Admin/Settings.php:557
-msgid ""
-"Matches from these hostnames are silently ignored and not counted as "
-"potential copyright issues. Entering example.com also covers all its "
-"subdomains. A hostname already present in the alert list cannot be added "
-"here."
-msgstr ""
-"Les coincidències d'aquests hostnames s'ignoren silenciosament i no es "
-"comptabilitzen com a possibles problemes de copyright. Introduir example.com "
-"també cobreix tots els seus subdominis. Un hostname ja present a la llista "
-"d'alertes no es pot afegir aquí."
+#: includes/Admin/Settings.php:615
+msgid "Matches from these hostnames are silently ignored and not counted as potential copyright issues. Entering example.com also covers all its subdomains. A hostname already present in the alert list cannot be added here."
+msgstr "Les coincidències d'aquests hostnames s'ignoren silenciosament i no es comptabilitzen com a possibles problemes de copyright. Introduir example.com també cobreix tots els seus subdominis. Un hostname ja present a la llista d'alertes no es pot afegir aquí."
-#: includes/Admin/Settings.php:578
-msgid ""
-"Remove all plugin data (tables and options) when the plugin is uninstalled."
-msgstr ""
-"Elimina totes les dades del connector (taules i opcions) quan es "
-"desinstal·li el connector."
+#: includes/Admin/Settings.php:636
+msgid "Remove all plugin data (tables and options) when the plugin is uninstalled."
+msgstr "Elimina totes les dades del connector (taules i opcions) quan es desinstal·li el connector."
-#: includes/Admin/Settings.php:581
-msgid ""
-"By default, data is preserved after uninstall. Enable this only if you want "
-"a clean removal."
-msgstr ""
-"Per defecte, les dades es conserven després de la desinstal·lació. Activeu-"
-"ho només si voleu una eliminació completa."
+#: includes/Admin/Settings.php:639
+msgid "By default, data is preserved after uninstall. Enable this only if you want a clean removal."
+msgstr "Per defecte, les dades es conserven després de la desinstal·lació. Activeu-ho només si voleu una eliminació completa."
-#: includes/Admin/Settings.php:605
-msgid ""
-"Required for Google Cloud Vision Web Detection. Obtain from the Google Cloud "
-"Console."
-msgstr ""
-"Necessari per a la detecció web de Google Cloud Vision. Obteniu-lo a Google "
-"Cloud Console."
+#: includes/Admin/Settings.php:663
+msgid "Required for Google Cloud Vision Web Detection. Obtain from the Google Cloud Console."
+msgstr "Necessari per a la detecció web de Google Cloud Vision. Obteniu-lo a Google Cloud Console."
-#: includes/Admin/Settings.php:608 includes/Admin/Settings.php:658
-#: includes/Admin/Settings.php:736
+#: includes/Admin/Settings.php:666 includes/Admin/Settings.php:716
+#: includes/Admin/Settings.php:794
msgid "View pricing"
msgstr "Veure tarifes"
-#: includes/Admin/Settings.php:614
+#: includes/Admin/Settings.php:672
msgid "Monthly requests"
msgstr "Sol·licituds mensuals"
-#: includes/Admin/Settings.php:615
+#: includes/Admin/Settings.php:673
msgid "Price per 1,000"
msgstr "Preu per 1.000"
-#: includes/Admin/Settings.php:620
+#: includes/Admin/Settings.php:678
msgid "First 1,000"
msgstr "Primeres 1.000"
-#: includes/Admin/Settings.php:621
+#: includes/Admin/Settings.php:679
msgid "Free"
msgstr "Gratuït"
-#: includes/Admin/Settings.php:655
-msgid ""
-"Required for TinEye reverse image search. Obtain from your TinEye Commercial "
-"account."
-msgstr ""
-"Necessari per a la cerca inversa d'imatges de TinEye. Obteniu-lo al vostre "
-"compte comercial de TinEye."
+#: includes/Admin/Settings.php:713
+msgid "Required for TinEye reverse image search. Obtain from your TinEye Commercial account."
+msgstr "Necessari per a la cerca inversa d'imatges de TinEye. Obteniu-lo al vostre compte comercial de TinEye."
-#: includes/Admin/Settings.php:664
+#: includes/Admin/Settings.php:722
msgid "Bundle"
msgstr "Pla"
-#: includes/Admin/Settings.php:665
+#: includes/Admin/Settings.php:723
msgid "Searches"
msgstr "Cerques"
-#: includes/Admin/Settings.php:666
+#: includes/Admin/Settings.php:724
msgid "Price"
msgstr "Preu"
-#: includes/Admin/Settings.php:671
+#: includes/Admin/Settings.php:729
msgid "Starter"
msgstr "Inicial"
-#: includes/Admin/Settings.php:676
+#: includes/Admin/Settings.php:734
msgid "Standard"
msgstr "Estàndard"
-#: includes/Admin/Settings.php:681
+#: includes/Admin/Settings.php:739
msgid "Professional"
msgstr "Professional"
-#: includes/Admin/Settings.php:709
-msgid ""
-"Required for PicDefense copyright risk analysis. Your PicDefense account "
-"user ID."
-msgstr ""
-"Necessari per a l'anàlisi de risc de copyright de PicDefense. Identificador "
-"d'usuari del vostre compte PicDefense."
+#: includes/Admin/Settings.php:767
+msgid "Required for PicDefense copyright risk analysis. Your PicDefense account user ID."
+msgstr "Necessari per a l'anàlisi de risc de copyright de PicDefense. Identificador d'usuari del vostre compte PicDefense."
-#: includes/Admin/Settings.php:733
-msgid ""
-"Required for PicDefense copyright risk analysis. Your PicDefense API key."
-msgstr ""
-"Necessari per a l'anàlisi de risc de copyright de PicDefense. Clau d'API de "
-"PicDefense."
+#: includes/Admin/Settings.php:791
+msgid "Required for PicDefense copyright risk analysis. Your PicDefense API key."
+msgstr "Necessari per a l'anàlisi de risc de copyright de PicDefense. Clau d'API de PicDefense."
-#: includes/Admin/Settings.php:768 includes/Admin/Settings.php:799
-msgid ""
-"One hostname per line. example.com covers all its subdomains. Explicit "
-"wildcard: *.example.com."
-msgstr ""
-"Un hostname per línia. example.com també cobreix tots els seus subdominis. "
-"Comodí explícit: *.example.com."
+#: includes/Admin/Settings.php:826 includes/Admin/Settings.php:857
+msgid "One hostname per line. example.com covers all its subdomains. Explicit wildcard: *.example.com."
+msgstr "Un hostname per línia. example.com també cobreix tots els seus subdominis. Comodí explícit: *.example.com."
-#: includes/Admin/Settings.php:824
+#: includes/Admin/Settings.php:882
msgid "Number of images to scan per scheduled batch (1–100). Default: 10."
-msgstr ""
-"Nombre d'imatges a explorar per lot programat (1–100). Per defecte: 10."
+msgstr "Nombre d'imatges a explorar per lot programat (1–100). Per defecte: 10."
-#: includes/Admin/Settings.php:849
+#: includes/Admin/Settings.php:907
msgid "Maximum API requests per minute per provider (1–60). Default: 10."
-msgstr ""
-"Nombre màxim de sol·licituds d'API per minut per proveïdor (1–60). Per "
-"defecte: 10."
+msgstr "Nombre màxim de sol·licituds d'API per minut per proveïdor (1–60). Per defecte: 10."
-#: includes/Admin/ToolsPage.php:85
+#: includes/Admin/ToolsPage.php:90
msgid "Done."
msgstr "Fet."
-#: includes/Admin/ToolsPage.php:86
+#: includes/Admin/ToolsPage.php:91
msgid "Stopped."
msgstr "Aturat."
-#: includes/Admin/ToolsPage.php:87
+#: includes/Admin/ToolsPage.php:92
msgid "An error occurred."
msgstr "S'ha produït un error."
-#: includes/Admin/ToolsPage.php:143
+#: includes/Admin/ToolsPage.php:147
msgid "Invalid batch type."
msgstr "Tipus de lot no vàlid."
-#: includes/Admin/ToolsPage.php:264
+#: includes/Admin/ToolsPage.php:268
msgid "System Status"
msgstr "Estat del sistema"
-#: includes/Admin/ToolsPage.php:267
+#: includes/Admin/ToolsPage.php:271
msgid "Operations"
msgstr "Operacions"
-#: includes/Admin/ToolsPage.php:270
+#: includes/Admin/ToolsPage.php:274
msgid "Direct scan runner"
msgstr "Executor d'exploració directa"
-#: includes/Admin/ToolsPage.php:272
-msgid ""
-"Run scan batches directly from your browser without relying on background "
-"jobs. Useful when WP-Cron is disabled or Action Scheduler is not running. "
-"Keep this tab open while processing."
-msgstr ""
-"Executeu lots d'exploració directament des del navegador sense dependre de "
-"treballs en segon pla. Útil quan WP-Cron està desactivat o Action Scheduler "
-"no s'està executant. Manteniu aquesta pestanya oberta mentre es processa."
+#: includes/Admin/ToolsPage.php:276
+msgid "Run scan batches directly from your browser without relying on background jobs. Useful when WP-Cron is disabled or Action Scheduler is not running. Keep this tab open while processing."
+msgstr "Executeu lots d'exploració directament des del navegador sense dependre de treballs en segon pla. Útil quan WP-Cron està desactivat o Action Scheduler no s'està executant. Manteniu aquesta pestanya oberta mentre es processa."
-#: includes/Admin/ToolsPage.php:308
+#: includes/Admin/ToolsPage.php:312
msgid "not installed"
msgstr "no instal·lat"
-#: includes/Admin/ToolsPage.php:366
+#: includes/Admin/ToolsPage.php:370
msgid "Internal scan scheduled."
msgstr "Exploració interna programada."
-#: includes/Admin/ToolsPage.php:367
+#: includes/Admin/ToolsPage.php:371
msgid "External scan scheduled."
msgstr "Exploració externa programada."
-#: includes/Admin/ToolsPage.php:368
+#: includes/Admin/ToolsPage.php:372
msgid "Failed scans re-queued. Background scan scheduled."
msgstr "Exploracions fallides reencolades. Exploració en segon pla programada."
-#: includes/Admin/ToolsPage.php:369
+#: includes/Admin/ToolsPage.php:373
msgid "Provider registry synced. New scans scheduled."
msgstr "Registre de proveïdors sincronitzat. Nous escanejos programats."
-#: includes/Admin/ToolsPage.php:370
+#: includes/Admin/ToolsPage.php:374
msgid "Usage data cleared. Background scan scheduled."
msgstr "Dades d'ús eliminades. Exploració en segon pla programada."
-#: includes/Admin/ToolsPage.php:371
+#: includes/Admin/ToolsPage.php:375
msgid "Index cleared. Fresh indexing scheduled."
msgstr "Índex eliminat. Nova indexació programada."
-#: includes/Admin/ToolsPage.php:372
+#: includes/Admin/ToolsPage.php:376
msgid "External scan data purged."
msgstr "Dades d'exploració externa eliminades."
-#: includes/Admin/ToolsPage.php:373
+#: includes/Admin/ToolsPage.php:377
msgid "All data reset. Fresh indexing scheduled."
msgstr "Totes les dades restablertes. Nova indexació programada."
-#: includes/Admin/ToolsPage.php:420
+#: includes/Admin/ToolsPage.php:424
msgid "Database schema"
msgstr "Esquema de base de dades"
#. translators: %s: version number
-#: includes/Admin/ToolsPage.php:426
+#: includes/Admin/ToolsPage.php:430
#, php-format
msgid "v%s – up to date"
msgstr "v%s – actualitzat"
#. translators: 1: stored version, 2: expected version
-#: includes/Admin/ToolsPage.php:432
+#: includes/Admin/ToolsPage.php:436
#, php-format
msgid "Installed: %1$s — Required: %2$s"
msgstr "Instal·lat: %1$s — Requerit: %2$s"
-#: includes/Admin/ToolsPage.php:441
+#: includes/Admin/ToolsPage.php:445
msgid "Deactivate and reactivate the plugin to apply pending migrations."
-msgstr "Desactiva i reactiva el plugin per aplicar les migracions pendents."
-"Desactiveu i reactiveu el connector per aplicar les migracions pendents."
+msgstr "Desactiva i reactiva el plugin per aplicar les migracions pendents.Desactiveu i reactiveu el connector per aplicar les migracions pendents."
-#: includes/Admin/ToolsPage.php:448
+#: includes/Admin/ToolsPage.php:452
msgid "Action Scheduler"
msgstr "Action Scheduler"
-#: includes/Admin/ToolsPage.php:451
+#: includes/Admin/ToolsPage.php:455
msgid "Available"
msgstr "Disponible"
-#: includes/Admin/ToolsPage.php:453
+#: includes/Admin/ToolsPage.php:457
msgid "Not available"
msgstr "No disponible"
-#: includes/Admin/ToolsPage.php:458
-msgid ""
-"Install and activate the Action Scheduler plugin. Background scanning will "
-"not work without it."
-msgstr ""
-"Instal·leu i activeu el connector Action Scheduler. L'exploració en segon "
-"pla no funcionarà sense ell."
+#: includes/Admin/ToolsPage.php:462
+msgid "Install and activate the Action Scheduler plugin. Background scanning will not work without it."
+msgstr "Instal·leu i activeu el connector Action Scheduler. L'exploració en segon pla no funcionarà sense ell."
-#: includes/Admin/ToolsPage.php:465
+#: includes/Admin/ToolsPage.php:469
msgid "WP-Cron"
msgstr "WP-Cron"
-#: includes/Admin/ToolsPage.php:468
+#: includes/Admin/ToolsPage.php:472
msgid "Disabled (DISABLE_WP_CRON)"
msgstr "Desactivat (DISABLE_WP_CRON)"
-#: includes/Admin/ToolsPage.php:470
+#: includes/Admin/ToolsPage.php:474
msgid "Enabled"
msgstr "Activat"
-#: includes/Admin/ToolsPage.php:475
-msgid ""
-"Background jobs will not fire automatically. Trigger the cron externally or "
-"use WP-CLI:"
-msgstr ""
-"Els treballs en segon pla no s'executaran automàticament. Activeu el cron "
-"externament o useu WP-CLI:"
+#: includes/Admin/ToolsPage.php:479
+msgid "Background jobs will not fire automatically. Trigger the cron externally or use WP-CLI:"
+msgstr "Els treballs en segon pla no s'executaran automàticament. Activeu el cron externament o useu WP-CLI:"
-#: includes/Admin/ToolsPage.php:483
+#: includes/Admin/ToolsPage.php:487
msgid "Internal index"
msgstr "Índex intern"
#. translators: 1: indexed count, 2: total images
-#: includes/Admin/ToolsPage.php:488
+#: includes/Admin/ToolsPage.php:492
#, php-format
msgid "%1$s / %2$s images indexed"
msgstr "%1$s / %2$s imatges indexades"
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:499
+#: includes/Admin/ToolsPage.php:503
#, php-format
msgid "%s image not yet indexed."
msgid_plural "%s images not yet indexed."
msgstr[0] "%s imatge encara no indexada."
msgstr[1] "%s imatges encara no indexades."
-#: includes/Admin/ToolsPage.php:503
+#: includes/Admin/ToolsPage.php:507
msgid "Schedule an internal scan below."
msgstr "Programeu una exploració interna a continuació."
-#: includes/Admin/ToolsPage.php:511
+#: includes/Admin/ToolsPage.php:515
msgid "Usage scan"
msgstr "Exploració d'ús"
#. translators: 1: scanned count, 2: total indexed
-#: includes/Admin/ToolsPage.php:516
+#: includes/Admin/ToolsPage.php:520
#, php-format
msgid "%1$s / %2$s scanned for usage"
msgstr "%1$s / %2$s explorades per a ús"
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:527
+#: includes/Admin/ToolsPage.php:531
#, php-format
msgid "%s pending."
msgid_plural "%s pending."
msgstr[0] "%s pendent."
msgstr[1] "%s pendents."
-#: includes/Admin/ToolsPage.php:548 includes/Admin/ToolsPage.php:752
+#: includes/Admin/ToolsPage.php:552 includes/Admin/ToolsPage.php:756
msgid "External scan"
msgstr "Exploració externa"
#. translators: 1: scanned 2: matches 3: queued 4: pending 5: errors
-#: includes/Admin/ToolsPage.php:553
+#: includes/Admin/ToolsPage.php:557
#, php-format
msgid "%1$s scanned · %2$s matches · %3$s queued · %4$s pending · %5$s errors"
-msgstr ""
-"%1$s explorades · %2$s coincidències · %3$s en cua · %4$s pendents · %5$s "
-"errors"
+msgstr "%1$s explorades · %2$s coincidències · %3$s en cua · %4$s pendents · %5$s errors"
-#: includes/Admin/ToolsPage.php:564
-msgid ""
-"Some scans failed. Check that API keys are configured correctly in Settings."
-msgstr ""
-"Algunes exploracions han fallat. Comproveu que les claus d'API estan "
-"configurades correctament a la Configuració."
+#: includes/Admin/ToolsPage.php:568
+msgid "Some scans failed. Check that API keys are configured correctly in Settings."
+msgstr "Algunes exploracions han fallat. Comproveu que les claus d'API estan configurades correctament a la Configuració."
-#: includes/Admin/ToolsPage.php:566
+#: includes/Admin/ToolsPage.php:570
msgid "Schedule an external scan below to process pending items."
-msgstr ""
-"Programeu una exploració externa a continuació per processar els elements "
-"pendents."
+msgstr "Programeu una exploració externa a continuació per processar els elements pendents."
-#: includes/Admin/ToolsPage.php:584
+#: includes/Admin/ToolsPage.php:588
msgid "Scheduled jobs"
msgstr "Treballs programats"
-#: includes/Admin/ToolsPage.php:587
+#: includes/Admin/ToolsPage.php:591
msgid "Action Scheduler not available."
msgstr "Action Scheduler no disponible."
-#: includes/Admin/ToolsPage.php:589
+#: includes/Admin/ToolsPage.php:593
msgid "Index:"
msgstr "Índex:"
-#: includes/Admin/ToolsPage.php:590
+#: includes/Admin/ToolsPage.php:594
msgid "Usage:"
msgstr "Ús:"
-#: includes/Admin/ToolsPage.php:591
+#: includes/Admin/ToolsPage.php:595
msgid "External:"
msgstr "Extern:"
-#: includes/Admin/ToolsPage.php:596
-msgid ""
-"There is work to do but no background job is scheduled. Use the operations "
-"below."
-msgstr ""
-"Hi ha feina pendent però no hi ha cap treball en segon pla programat. Useu "
-"les operacions de sota."
+#: includes/Admin/ToolsPage.php:600
+msgid "There is work to do but no background job is scheduled. Use the operations below."
+msgstr "Hi ha feina pendent però no hi ha cap treball en segon pla programat. Useu les operacions de sota."
-#: includes/Admin/ToolsPage.php:598
+#: includes/Admin/ToolsPage.php:602
msgid "WP-Cron is disabled. Jobs will not fire automatically."
msgstr "WP-Cron està desactivat. Els treballs no s'executaran automàticament."
-#: includes/Admin/ToolsPage.php:608
+#: includes/Admin/ToolsPage.php:612
msgid "WP-CLI commands to process scans manually:"
msgstr "Comandes WP-CLI per processar exploracions manualment:"
-#: includes/Admin/ToolsPage.php:625
+#: includes/Admin/ToolsPage.php:629
msgid "Schedule internal scan"
msgstr "Programar exploració interna"
-#: includes/Admin/ToolsPage.php:626
-msgid ""
-"Queue a background job to index all unindexed media files and scan their "
-"usage across posts, pages, and custom fields. Safe to run at any time — will "
-"not re-process completed work."
-msgstr ""
-"Posa en cua un treball en segon pla per indexar tots els fitxers multimèdia "
-"no indexats i explorar el seu ús en entrades, pàgines i camps "
-"personalitzats. Es pot executar en qualsevol moment: no reprocessarà el "
-"treball ja completat."
+#: includes/Admin/ToolsPage.php:630
+msgid "Queue a background job to index all unindexed media files and scan their usage across posts, pages, and custom fields. Safe to run at any time — will not re-process completed work."
+msgstr "Posa en cua un treball en segon pla per indexar tots els fitxers multimèdia no indexats i explorar el seu ús en entrades, pàgines i camps personalitzats. Es pot executar en qualsevol moment: no reprocessarà el treball ja completat."
-#: includes/Admin/ToolsPage.php:632
+#: includes/Admin/ToolsPage.php:636
msgid "Schedule external scan"
msgstr "Programar exploració externa"
-#: includes/Admin/ToolsPage.php:633
-msgid ""
-"Mark all pending attachments as queued and launch a background reverse-image-"
-"search via the configured providers. Requires API keys in Settings."
-msgstr ""
-"Marca tots els fitxers adjunts pendents com en cua i llança una cerca "
-"inversa d'imatges en segon pla a través dels proveïdors configurats. "
-"Requereix claus d'API a la Configuració."
+#: includes/Admin/ToolsPage.php:637
+msgid "Mark all pending attachments as queued and launch a background reverse-image-search via the configured providers. Requires API keys in Settings."
+msgstr "Marca tots els fitxers adjunts pendents com en cua i llança una cerca inversa d'imatges en segon pla a través dels proveïdors configurats. Requereix claus d'API a la Configuració."
-#: includes/Admin/ToolsPage.php:639
+#: includes/Admin/ToolsPage.php:643
msgid "Requeue scan errors"
msgstr "Reencolar errors d'exploració"
-#: includes/Admin/ToolsPage.php:640
-msgid ""
-"Re-queues only the attachments that failed with an error on the last "
-"external scan run. Does not affect already-scanned items. Useful to retry "
-"after fixing API key issues."
-msgstr ""
-"Reencola només els fitxers adjunts que van fallar amb un error en l'última "
-"execució de l'exploració externa. No afecta els elements ja explorats. Útil "
-"per reintentar després de corregir problemes amb les claus d'API."
+#: includes/Admin/ToolsPage.php:644
+msgid "Re-queues only the attachments that failed with an error on the last external scan run. Does not affect already-scanned items. Useful to retry after fixing API key issues."
+msgstr "Reencola només els fitxers adjunts que van fallar amb un error en l'última execució de l'exploració externa. No afecta els elements ja explorats. Útil per reintentar després de corregir problemes amb les claus d'API."
-#: includes/Admin/ToolsPage.php:646
+#: includes/Admin/ToolsPage.php:650
msgid "Sync provider registry"
msgstr "Sincronitza el registre de proveïdors"
-#: includes/Admin/ToolsPage.php:647
-msgid ""
-"Creates scan entries for any newly registered external providers. Run this "
-"after adding a new provider via the mra/external/providers filter. Already-"
-"scanned attachments are not affected."
-msgstr ""
-"Crea entrades d'escaneig per als proveïdors externs registrats recentment. "
-"Executa-ho després d'afegir un nou proveïdor mitjançant el filtre mra/"
-"external/providers. Els fitxers ja escanejats no es veuen afectats."
+#: includes/Admin/ToolsPage.php:651
+msgid "Creates scan entries for any newly registered external providers. Run this after adding a new provider via the mra/external/providers filter. Already-scanned attachments are not affected."
+msgstr "Crea entrades d'escaneig per als proveïdors externs registrats recentment. Executa-ho després d'afegir un nou proveïdor mitjançant el filtre mra/external/providers. Els fitxers ja escanejats no es veuen afectats."
-#: includes/Admin/ToolsPage.php:656
+#: includes/Admin/ToolsPage.php:660
msgid "Reset usage data"
msgstr "Restablir dades d'ús"
-#: includes/Admin/ToolsPage.php:657
-msgid ""
-"Clears all usage rows and resets the usage-scan flag for every indexed "
-"attachment. File metadata in the index is preserved. A background usage scan "
-"is scheduled immediately after."
-msgstr ""
-"Elimina totes les files d'ús i restableix l'indicador d'exploració d'ús per "
-"a cada fitxer adjunt indexat. Els metadades del fitxer a l'índex es "
-"conserven. Es programa una exploració en segon pla immediatament després."
+#: includes/Admin/ToolsPage.php:661
+msgid "Clears all usage rows and resets the usage-scan flag for every indexed attachment. File metadata in the index is preserved. A background usage scan is scheduled immediately after."
+msgstr "Elimina totes les files d'ús i restableix l'indicador d'exploració d'ús per a cada fitxer adjunt indexat. Els metadades del fitxer a l'índex es conserven. Es programa una exploració en segon pla immediatament després."
-#: includes/Admin/ToolsPage.php:659
+#: includes/Admin/ToolsPage.php:663
msgid "This will delete all usage data. Continue?"
msgstr "Això eliminarà totes les dades d'ús. Voleu continuar?"
-#: includes/Admin/ToolsPage.php:663
+#: includes/Admin/ToolsPage.php:667
msgid "Re-index media library"
msgstr "Re-indexar la biblioteca de mitjans"
-#: includes/Admin/ToolsPage.php:664
-msgid ""
-"Deletes all index and usage entries, then schedules a full fresh re-index. "
-"External scan results are not affected. Useful if many media files have been "
-"added or removed."
-msgstr ""
-"Elimina totes les entrades de l'índex i d'ús, i després programa una re-"
-"indexació completa. Els resultats de l'exploració externa no es veuen "
-"afectats. Útil si s'han afegit o eliminat molts fitxers multimèdia."
+#: includes/Admin/ToolsPage.php:668
+msgid "Deletes all index and usage entries, then schedules a full fresh re-index. External scan results are not affected. Useful if many media files have been added or removed."
+msgstr "Elimina totes les entrades de l'índex i d'ús, i després programa una re-indexació completa. Els resultats de l'exploració externa no es veuen afectats. Útil si s'han afegit o eliminat molts fitxers multimèdia."
-#: includes/Admin/ToolsPage.php:666
+#: includes/Admin/ToolsPage.php:670
msgid "This will delete all index and usage data. Continue?"
msgstr "Això eliminarà totes les dades de l'índex i d'ús. Voleu continuar?"
-#: includes/Admin/ToolsPage.php:670
+#: includes/Admin/ToolsPage.php:674
msgid "Purge external data"
msgstr "Purgar dades externes"
-#: includes/Admin/ToolsPage.php:671
-msgid ""
-"Deletes all external scan results and resets every attachment's external "
-"status to pending. Use this before switching API providers or to force a "
-"complete re-scan."
-msgstr ""
-"Elimina tots els resultats de l'exploració externa i restableix l'estat "
-"extern de cada fitxer adjunt a pendent. Useu-ho abans de canviar de "
-"proveïdors d'API o per forçar una exploració completa."
-
-#: includes/Admin/ToolsPage.php:673
-msgid "This will delete all external scan results. Continue?"
-msgstr ""
-"Això eliminarà tots els resultats de l'exploració externa. Voleu continuar?"
+#: includes/Admin/ToolsPage.php:675
+msgid "Deletes all external scan results and resets every attachment's external status to pending. Use this before switching API providers or to force a complete re-scan."
+msgstr "Elimina tots els resultats de l'exploració externa i restableix l'estat extern de cada fitxer adjunt a pendent. Useu-ho abans de canviar de proveïdors d'API o per forçar una exploració completa."
#: includes/Admin/ToolsPage.php:677
+msgid "This will delete all external scan results. Continue?"
+msgstr "Això eliminarà tots els resultats de l'exploració externa. Voleu continuar?"
+
+#: includes/Admin/ToolsPage.php:681
msgid "Reset all data"
msgstr "Restablir totes les dades"
-#: includes/Admin/ToolsPage.php:678
-msgid ""
-"Truncates all three plugin tables (index, usage, external results) and "
-"schedules a fresh indexing run. Use this to start completely from scratch."
-msgstr ""
-"Buida les tres taules del connector (índex, ús, resultats externs) i "
-"programa una nova indexació. Useu-ho per començar completament des de zero."
+#: includes/Admin/ToolsPage.php:682
+msgid "Truncates all three plugin tables (index, usage, external results) and schedules a fresh indexing run. Use this to start completely from scratch."
+msgstr "Buida les tres taules del connector (índex, ús, resultats externs) i programa una nova indexació. Useu-ho per començar completament des de zero."
-#: includes/Admin/ToolsPage.php:680
-msgid ""
-"This will permanently delete ALL plugin data and cannot be undone. Are you "
-"absolutely sure?"
-msgstr ""
-"Això eliminarà TOTES les dades del connector de forma permanent i no es pot "
-"desfer. Esteu absolutament segurs?"
+#: includes/Admin/ToolsPage.php:684
+msgid "This will permanently delete ALL plugin data and cannot be undone. Are you absolutely sure?"
+msgstr "Això eliminarà TOTES les dades del connector de forma permanent i no es pot desfer. Esteu absolutament segurs?"
-#: includes/Admin/ToolsPage.php:691
+#: includes/Admin/ToolsPage.php:695
msgid "Destructive operations"
msgstr "Operacions destructives"
-#: includes/Admin/ToolsPage.php:694
-msgid ""
-"These operations permanently delete plugin data. Intended for forced "
-"rescans, troubleshooting, or starting fresh. A confirmation prompt will "
-"appear before any action is taken."
-msgstr ""
-"Aquestes operacions eliminen les dades del connector de forma permanent. "
-"Pensades per forçar re-exploracions, solucionar problemes o començar des de "
-"zero. Apareixerà una confirmació abans d'executar qualsevol acció."
+#: includes/Admin/ToolsPage.php:698
+msgid "These operations permanently delete plugin data. Intended for forced rescans, troubleshooting, or starting fresh. A confirmation prompt will appear before any action is taken."
+msgstr "Aquestes operacions eliminen les dades del connector de forma permanent. Pensades per forçar re-exploracions, solucionar problemes o començar des de zero. Apareixerà una confirmació abans d'executar qualsevol acció."
-#: includes/Admin/ToolsPage.php:742
+#: includes/Admin/ToolsPage.php:746
msgid "Index media files"
msgstr "Indexar fitxers multimèdia"
-#: includes/Admin/ToolsPage.php:743
-msgid ""
-"Discovers unindexed images and registers them in the plugin index. Run this "
-"first."
-msgstr ""
-"Descobreix imatges no indexades i les registra a l'índex del connector. "
-"Executeu-ho primer."
-
#: includes/Admin/ToolsPage.php:747
+msgid "Discovers unindexed images and registers them in the plugin index. Run this first."
+msgstr "Descobreix imatges no indexades i les registra a l'índex del connector. Executeu-ho primer."
+
+#: includes/Admin/ToolsPage.php:751
msgid "Scan usage"
msgstr "Explorar l'ús"
-#: includes/Admin/ToolsPage.php:748
-msgid ""
-"Checks every indexed image for usage across posts, pages, and custom fields."
-msgstr ""
-"Comprova l'ús de cada imatge indexada en entrades, pàgines i camps "
-"personalitzats."
+#: includes/Admin/ToolsPage.php:752
+msgid "Checks every indexed image for usage across posts, pages, and custom fields."
+msgstr "Comprova l'ús de cada imatge indexada en entrades, pàgines i camps personalitzats."
-#: includes/Admin/ToolsPage.php:753
-msgid ""
-"Sends images to external providers for reverse-image search. Requires API "
-"keys in Settings."
-msgstr ""
-"Envia imatges a proveïdors externs per a la cerca inversa d'imatges. "
-"Requereix claus d'API a la Configuració."
+#: includes/Admin/ToolsPage.php:757
+msgid "Sends images to external providers for reverse-image search. Requires API keys in Settings."
+msgstr "Envia imatges a proveïdors externs per a la cerca inversa d'imatges. Requereix claus d'API a la Configuració."
-#: includes/Admin/ToolsPage.php:770
+#: includes/Admin/ToolsPage.php:774
msgid "Run now"
msgstr "Executa ara"
-#: includes/Admin/ToolsPage.php:773
+#: includes/Admin/ToolsPage.php:777
msgid "Stop"
msgstr "Atura"
#. translators: %s: DB version number
-#: includes/CLI/Command.php:49
+#: includes/CLI/Command.php:53
#, php-format
msgid "Media Audit tables ready. DB version: %s"
msgstr "Taules d'Auditoria de mitjans llestes. Versió de BD: %s"
#. translators: %s: plugin version
-#: includes/CLI/Command.php:73
+#: includes/CLI/Command.php:77
#, php-format
msgid "Plugin version : %s"
msgstr "Versió del connector : %s"
#. translators: %s: DB version number
-#: includes/CLI/Command.php:80
+#: includes/CLI/Command.php:84
#, php-format
msgid "DB version : %s"
msgstr "Versió de BD : %s"
-#: includes/CLI/Command.php:118
+#: includes/CLI/Command.php:122
msgid "Indexing attachments…"
msgstr "S'estan indexant els fitxers adjunts…"
#. translators: 1: newly indexed count, 2: remaining count
-#: includes/CLI/Command.php:130
+#: includes/CLI/Command.php:134
#, php-format
msgid "Indexed %1$d (%2$d remaining)"
msgstr "Indexats %1$d (%2$d restants)"
#. translators: %d: total indexed count
-#: includes/CLI/Command.php:141
+#: includes/CLI/Command.php:145
#, php-format
msgid "Indexing complete. %d attachments in index."
msgstr "Indexació completada. %d fitxers adjunts a l'índex."
-#: includes/CLI/Command.php:147
+#: includes/CLI/Command.php:151
msgid "Scanning usage…"
msgstr "S'està explorant l'ús…"
#. translators: 1: scanned count, 2: remaining count
-#: includes/CLI/Command.php:159 includes/CLI/Command.php:223
+#: includes/CLI/Command.php:163 includes/CLI/Command.php:227
#, php-format
msgid "Scanned %1$d (%2$d remaining)"
msgstr "Explorats %1$d (%2$d restants)"
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:170
+#: includes/CLI/Command.php:174
#, php-format
msgid "Scan complete. %d attachments scanned."
msgstr "Exploració completada. %d fitxers adjunts explorats."
-#: includes/CLI/Command.php:208
+#: includes/CLI/Command.php:212
msgid "Running external scans…"
msgstr "S'estan executant les exploracions externes…"
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:234
+#: includes/CLI/Command.php:238
#, php-format
msgid "External scan complete. %d attachments processed."
msgstr "Exploració externa completada. %d fitxers adjunts processats."
-#: includes/Core/Plugin.php:154 includes/Core/Plugin.php:155
+#: includes/Core/Plugin.php:174 includes/Core/Plugin.php:175
+#: includes/Network/Plugin.php:113
msgid "Tools"
msgstr "Eines"
-#: includes/Core/Plugin.php:167 includes/Core/Plugin.php:168
+#: includes/Core/Plugin.php:187 includes/Core/Plugin.php:188
+#: includes/Network/Plugin.php:142
msgid "Settings"
msgstr "Configuració"
-#: includes/Core/Plugin.php:176
+#: includes/Core/Plugin.php:196
msgid "Attachment Report"
msgstr "Informe del fitxer adjunt"
-#: includes/Privacy/DataExporter.php:88
+#: includes/Core/Plugin.php:278
+msgid "This plugin is managed at the network level. Media data for this site is collected and stored here, but viewed and managed from the Network Admin panel."
+msgstr "Aquest plugin es gestiona a nivell de xarxa. Les dades multimèdia d’aquest lloc es recullen i s’emmagatzemen aquí, però es consulten i es gestionen des del tauler d’administració de la xarxa."
+
+#: includes/Core/Plugin.php:282
+msgid "Go to Network Media Audit →"
+msgstr "Anar a Auditoria de mitjans de la xarxa →"
+
+#: includes/Network/AlertsPage.php:42 includes/Network/Plugin.php:103
+msgid "Network Alerts"
+msgstr "Alertes de la xarxa"
+
+#: includes/Network/AlertsPage.php:49
+msgid "Active copyright-risk alerts across all sites. To dismiss an alert, visit the Alerts page on the corresponding site."
+msgstr "Alertes actives de risc de drets d’autor a tots els llocs. Per descartar una alerta, visiteu la pàgina d’Alertes del lloc corresponent."
+
+#: includes/Network/AuditPage.php:40 includes/Network/Plugin.php:83
+#: includes/Network/Plugin.php:94
+msgid "Network Media Audit"
+msgstr "Auditoria de mitjans de la xarxa"
+
+#: includes/Network/AuditPage.php:44
+msgid "Total Indexed"
+msgstr "Total indexades"
+
+#: includes/Network/AuditPage.php:46
+msgid "Active Alerts"
+msgstr "Alertes actives"
+
+#: includes/Network/AuditPage.php:47
+msgid "Sites"
+msgstr "Llocs"
+
+#: includes/Network/NetworkListTable.php:66 includes/Network/ToolsPage.php:203
+msgid "Site"
+msgstr "Lloc"
+
+#: includes/Network/NetworkListTable.php:302
+msgid "No media attachments found across the network."
+msgstr "No s’han trobat fitxers multimèdia adjunts a la xarxa."
+
+#: includes/Network/Plugin.php:95
+msgid "Network Audit"
+msgstr "Auditoria de la xarxa"
+
+#: includes/Network/Plugin.php:112 includes/Network/ToolsPage.php:156
+msgid "Network Tools"
+msgstr "Eines de la xarxa"
+
+#: includes/Network/Plugin.php:124
+msgid "Media Audit — Network"
+msgstr "Auditoria de mitjans — Xarxa"
+
+#: includes/Network/Plugin.php:141
+msgid "Network Settings"
+msgstr "Configuració de la xarxa"
+
+#: includes/Network/Settings.php:72
+msgid "You do not have permission to manage network settings."
+msgstr "No teniu permís per gestionar la configuració de la xarxa."
+
+#: includes/Network/Settings.php:198 includes/Network/Settings.php:266
+msgid "Mode"
+msgstr "Mode"
+
+#: includes/Network/Settings.php:211
+msgid "Media Audit — Network Settings"
+msgstr "Auditoria de mitjans — Configuració de la xarxa"
+
+#: includes/Network/Settings.php:216
+msgid "Settings saved."
+msgstr "Configuració desada."
+
+#: includes/Network/Settings.php:260
+msgid "Operating Mode"
+msgstr "Mode de funcionament"
+
+#: includes/Network/Settings.php:262
+msgid "Choose how Media Audit operates across this network."
+msgstr "Trieu com funciona Auditoria de mitjans en aquesta xarxa."
+
+#: includes/Network/Settings.php:272
+msgid "Per site"
+msgstr "Per lloc"
+
+#: includes/Network/Settings.php:275
+msgid "Each site manages its own media audit independently. No network admin aggregation. Site admins configure API credentials and run scans separately."
+msgstr "Cada lloc gestiona la seva pròpia auditoria de mitjans de manera independent, sense agregació a l’administració de la xarxa. Els administradors de cada lloc configuren les seves credencials d’API i executen les exploracions per separat."
+
+#: includes/Network/Settings.php:281
+msgid "Central (network admin)"
+msgstr "Central (administració de la xarxa)"
+
+#: includes/Network/Settings.php:284
+msgid "API credentials and filter lists are configured here and shared across all sites. Data is stored per site but viewed and managed from this network admin panel. Site-level admin pages show a placeholder notice."
+msgstr "Les credencials d’API i les llistes de filtres es configuren aquí i es comparteixen entre tots els llocs. Les dades s’emmagatzemen per lloc, però es consulten i es gestionen des d’aquest tauler d’administració de la xarxa. Les pàgines d’administració de cada lloc mostren un avís al seu lloc."
+
+#: includes/Network/Settings.php:306
+msgid "These credentials are shared across all sites in the network (central mode only)."
+msgstr "Aquestes credencials es comparteixen entre tots els llocs de la xarxa (només en mode central)."
+
+#: includes/Network/Settings.php:342
+msgid "Hostname lists applied to all sites in the network (central mode only)."
+msgstr "Llistes de hostnames aplicades a tots els llocs de la xarxa (només en mode central)."
+
+#: includes/Network/Settings.php:344
+msgid "Matches from these hostnames are flagged as copyright alerts. One hostname per line."
+msgstr "Les coincidències d’aquests hostnames es marquen com a alertes de drets d’autor. Un hostname per línia."
+
+#: includes/Network/Settings.php:348
+msgid "Matches from these hostnames are silently ignored. One hostname per line."
+msgstr "Les coincidències d’aquests hostnames s’ignoren silenciosament. Un hostname per línia."
+
+#: includes/Network/Settings.php:370
+msgid "Images to scan per scheduled batch per site (1–100). Default: 10."
+msgstr "Nombre d’imatges a explorar per lot programat i per lloc (1–100). Per defecte: 10."
+
+#: includes/Network/Settings.php:374
+msgid "Rate Limit (req/min)"
+msgstr "Límit de velocitat (sol·licituds/min)"
+
+#: includes/Network/Settings.php:378
+msgid "Maximum API requests per minute per provider per site (1–60). Default: 10."
+msgstr "Màxim de sol·licituds d’API per minut, proveïdor i lloc (1–60). Per defecte: 10."
+
+#: includes/Network/ToolsPage.php:160
+msgid "Per-Site Status"
+msgstr "Estat per lloc"
+
+#: includes/Network/ToolsPage.php:163
+msgid "Network Operations"
+msgstr "Operacions de la xarxa"
+
+#: includes/Network/ToolsPage.php:182
+msgid "Media Audit — Network Overview"
+msgstr "Auditoria de mitjans — Resum de la xarxa"
+
+#: includes/Network/ToolsPage.php:184
+msgid "Currently running in per-site mode. Each site manages its own audit independently. Switch to central mode in Network Settings to manage all sites from here."
+msgstr "Actualment s’executa en mode per lloc: cada lloc gestiona la seva pròpia auditoria de manera independent. Canvieu al mode central a la configuració de la xarxa per gestionar tots els llocs des d’aquí."
+
+#: includes/Network/ToolsPage.php:204
+msgid "DB Schema"
+msgstr "Esquema de BD"
+
+#: includes/Network/ToolsPage.php:205
+msgid "Indexed"
+msgstr "Indexades"
+
+#: includes/Network/ToolsPage.php:206
+msgid "External"
+msgstr "Extern"
+
+#: includes/Network/ToolsPage.php:208
+msgid "Pending Jobs"
+msgstr "Treballs pendents"
+
+#. translators: 1: indexed 2: total
+#: includes/Network/ToolsPage.php:246
+#, php-format
+msgid "%1$s / %2$s"
+msgstr "%1$s / %2$s"
+
+#. translators: 1: scanned 2: matches 3: errors
+#: includes/Network/ToolsPage.php:256
+#, php-format
+msgid "%1$s scanned · %2$s matches · %3$s errors"
+msgstr "%1$s explorades · %2$s coincidències · %3$s errors"
+
+#: includes/Network/ToolsPage.php:265
+msgid "Running"
+msgstr "En execució"
+
+#: includes/Network/ToolsPage.php:272
+msgid "Status cached for 5 minutes."
+msgstr "Estat a la memòria cau durant 5 minuts."
+
+#: includes/Network/ToolsPage.php:274
+msgid "Refresh now"
+msgstr "Actualitza ara"
+
+#: includes/Network/ToolsPage.php:289
+msgid "Schedule Internal Scan — All Sites"
+msgstr "Programar exploració interna — Tots els llocs"
+
+#: includes/Network/ToolsPage.php:290
+msgid "Queues indexing and usage scanning jobs on every active site. Safe to run at any time — skips already-indexed attachments."
+msgstr "Posa a la cua treballs d’indexació i d’exploració d’ús a tots els llocs actius. Es pot executar en qualsevol moment: omet els fitxers adjunts ja indexats."
+
+#: includes/Network/ToolsPage.php:295
+msgid "Schedule External Scan — All Sites"
+msgstr "Programar exploració externa — Tots els llocs"
+
+#: includes/Network/ToolsPage.php:296
+msgid "Queues reverse-image-search jobs on every active site. Requires API keys configured in Network Settings."
+msgstr "Posa a la cua treballs de cerca inversa per imatge a tots els llocs actius. Requereix claus d’API configurades a la configuració de la xarxa."
+
+#: includes/Network/ToolsPage.php:301
+msgid "Requeue Scan Errors — All Sites"
+msgstr "Reencolar errors d’exploració — Tots els llocs"
+
+#: includes/Network/ToolsPage.php:302
+msgid "Re-queues attachments that failed with an error on the last external scan run across all sites."
+msgstr "Reencola els fitxers adjunts que van fallar amb un error en l’última execució de l’exploració externa a tots els llocs."
+
+#: includes/Network/ToolsPage.php:316
+msgid "Schedule"
+msgstr "Programar"
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:368
+#, php-format
+msgid "Internal scan scheduled on %s sites."
+msgstr "Exploració interna programada a %s llocs."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:371
+#, php-format
+msgid "External scan scheduled on %s sites."
+msgstr "Exploració externa programada a %s llocs."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:374
+#, php-format
+msgid "Errors re-queued on %s sites."
+msgstr "Errors tornats a posar a la cua a %s llocs."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:377
+#, php-format
+msgid "Operation completed on %s sites."
+msgstr "Operació completada a %s llocs."
+
+#: includes/Privacy/DataExporter.php:92
msgid "Media Audit – Indexed Files"
msgstr "Auditoria de mitjans – Fitxers indexats"
-#: includes/Privacy/DataExporter.php:104
+#: includes/Privacy/DataExporter.php:108
msgid "Media Audit – External Scan Results"
msgstr "Auditoria de mitjans – Resultats d'exploració externa"
-#: includes/Privacy/DataExporter.php:269
+#: includes/Privacy/DataExporter.php:273
msgid "External Scan Status"
msgstr "Estat de l'exploració externa"
-#: includes/Privacy/DataExporter.php:273
+#: includes/Privacy/DataExporter.php:277
msgid "Last Scanned (internal)"
msgstr "Última exploració (interna)"
-#: includes/Privacy/DataExporter.php:277
+#: includes/Privacy/DataExporter.php:281
msgid "Last Scanned (external)"
msgstr "Última exploració (externa)"
-#: includes/Privacy/DataExporter.php:303
+#: includes/Privacy/DataExporter.php:307
msgid "Provider"
msgstr "Proveïdor"
-#: includes/Privacy/DataExporter.php:307
+#: includes/Privacy/DataExporter.php:311
msgid "Match Count"
msgstr "Nombre de coincidències"
-#: includes/Privacy/DataExporter.php:311
+#: includes/Privacy/DataExporter.php:315
msgid "Scanned At"
msgstr "Explorat el"
@@ -1358,9 +1463,6 @@ msgstr "Explorat el"
#~ msgid "Export External Results CSV"
#~ msgstr "Exportar CSV de resultats externs"
-#~ msgid "https://robotstxt.es/plugins/media-audit/"
-#~ msgstr "https://robotstxt.es/plugins/media-audit/"
-
#~ msgid "Javier Casares"
#~ msgstr "Javier Casares"
diff --git a/languages/robotstxt-mediaaudit-es_ES.mo b/languages/robotstxt-mediaaudit-es_ES.mo
index f4d442f..828c087 100644
Binary files a/languages/robotstxt-mediaaudit-es_ES.mo and b/languages/robotstxt-mediaaudit-es_ES.mo differ
diff --git a/languages/robotstxt-mediaaudit-es_ES.po b/languages/robotstxt-mediaaudit-es_ES.po
index aaac0d0..e523a61 100644
--- a/languages/robotstxt-mediaaudit-es_ES.po
+++ b/languages/robotstxt-mediaaudit-es_ES.po
@@ -3,13 +3,13 @@
msgid ""
msgstr ""
"Project-Id-Version: Media Audit (by ROBOTSTXT) 1.7.0\n"
-"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-"
-"mediaaudit\n"
-"POT-Creation-Date: 2026-05-11T07:13:58+00:00\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-mediaaudit\n"
+"POT-Creation-Date: 2026-08-17T18:13:19+00:00\n"
"PO-Revision-Date: 2026-05-01 07:41+0000\n"
"Last-Translator: Javier Casares \n"
"Language-Team: Spanish (Spain) \n"
"Language: es_ES\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,243 +23,249 @@ msgstr "Auditoría de medios (by ROBOTSTXT)"
#. Plugin URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit"
-msgstr ""
+msgid "https://www.robotstxt.software/plugins/robotstxt-mediaaudit/"
+msgstr "https://www.robotstxt.software/plugins/robotstxt-mediaaudit/"
#. Description of the plugin
#: robotstxt-mediaaudit.php
-msgid ""
-"Internal media library usage auditing and external reverse image search to "
-"detect potential copyright issues."
-msgstr ""
-"Auditoría del uso de la biblioteca multimedia interna y búsqueda inversa de "
-"imágenes externa para detectar posibles problemas de derechos de autor."
+msgid "Internal media library usage auditing and external reverse image search to detect potential copyright issues."
+msgstr "Auditoría del uso de la biblioteca multimedia interna y búsqueda inversa de imágenes externa para detectar posibles problemas de derechos de autor."
#. Author of the plugin
#: robotstxt-mediaaudit.php
msgid "ROBOTSTXT"
-msgstr ""
+msgstr "ROBOTSTXT"
#. Author URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://www.robotstxt.es/"
-msgstr ""
+msgid "https://www.robotstxt.software/"
+msgstr "https://www.robotstxt.software/"
-#: includes/Admin/AlertsPage.php:210
+#: includes/Admin/AlertsPage.php:211 includes/Admin/AlertsPage.php:494
+#: includes/Admin/ManagerNotice.php:133
+msgid "Dismiss"
+msgstr "Descartar"
+
+#: includes/Admin/AlertsPage.php:212 includes/Admin/AlertsPage.php:517
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: includes/Admin/AlertsPage.php:231
msgid "You do not have permission to perform this action."
msgstr "No tienes permiso para realizar esta acción."
-#: includes/Admin/AlertsPage.php:263 includes/Admin/AttachmentDetailPage.php:40
-#: includes/Admin/AuditPage.php:136 includes/Admin/Settings.php:898
-#: includes/Admin/ToolsPage.php:253
+#: includes/Admin/AlertsPage.php:284 includes/Admin/AttachmentDetailPage.php:44
+#: includes/Admin/AuditPage.php:140 includes/Admin/Settings.php:956
+#: includes/Admin/ToolsPage.php:257 includes/Network/AlertsPage.php:32
+#: includes/Network/AuditPage.php:31 includes/Network/Settings.php:188
+#: includes/Network/ToolsPage.php:149 includes/Network/ToolsPage.php:176
msgid "You do not have permission to access this page."
msgstr "No tienes permiso para acceder a esta página."
-#: includes/Admin/AlertsPage.php:280 includes/Core/Plugin.php:141
-#: includes/Core/Plugin.php:142
+#: includes/Admin/AlertsPage.php:301 includes/Core/Plugin.php:161
+#: includes/Core/Plugin.php:162 includes/Network/Plugin.php:104
+#: includes/Network/ToolsPage.php:207
msgid "Alerts"
msgstr "Alertas"
#. translators: %d: count of active alerts
-#: includes/Admin/AlertsPage.php:292
+#: includes/Admin/AlertsPage.php:313
#, php-format
msgid "Active Alerts (%d)"
msgstr "Alertas activas (%d)"
#. translators: %d: count of dismissed alerts
-#: includes/Admin/AlertsPage.php:304
+#: includes/Admin/AlertsPage.php:325
#, php-format
msgid "Dismissed Alerts (%d)"
msgstr "Alertas descartadas (%d)"
-#: includes/Admin/AlertsPage.php:376
+#: includes/Admin/AlertsPage.php:397
msgid "Alert dismissed successfully."
msgstr "Alerta descartada correctamente."
-#: includes/Admin/AlertsPage.php:377
+#: includes/Admin/AlertsPage.php:398
msgid "Alert reactivated successfully."
msgstr "Alerta reactivada correctamente."
-#: includes/Admin/AlertsPage.php:378
+#: includes/Admin/AlertsPage.php:399
msgid "An error occurred. Please try again."
msgstr "Se ha producido un error. Por favor, inténtalo de nuevo."
-#: includes/Admin/AlertsPage.php:382 includes/Admin/ToolsPage.php:376
+#: includes/Admin/AlertsPage.php:403 includes/Admin/ToolsPage.php:380
msgid "Operation completed."
msgstr "Operación completada."
-#: includes/Admin/AlertsPage.php:402
+#: includes/Admin/AlertsPage.php:423
msgid "No active alerts found."
msgstr "No se encontraron alertas activas."
-#: includes/Admin/AlertsPage.php:409 includes/Admin/AlertsPage.php:541
-#: includes/Admin/MediaListTable.php:55
+#: includes/Admin/AlertsPage.php:430 includes/Admin/AlertsPage.php:562
+#: includes/Admin/MediaListTable.php:59
msgid "Thumbnail"
msgstr "Miniatura"
-#: includes/Admin/AlertsPage.php:410 includes/Admin/AlertsPage.php:542
-#: includes/Admin/AttachmentDetailPage.php:87 includes/Admin/AuditPage.php:554
-#: includes/Admin/MediaListTable.php:56 includes/Privacy/DataExporter.php:261
+#: includes/Admin/AlertsPage.php:431 includes/Admin/AlertsPage.php:563
+#: includes/Admin/AttachmentDetailPage.php:91 includes/Admin/AuditPage.php:558
+#: includes/Admin/MediaListTable.php:60
+#: includes/Network/NetworkListTable.php:67
+#: includes/Privacy/DataExporter.php:265
msgid "Filename"
msgstr "Nombre de archivo"
-#: includes/Admin/AlertsPage.php:411 includes/Admin/AlertsPage.php:543
-#: includes/Admin/AttachmentDetailPage.php:372 includes/Admin/AuditPage.php:566
+#: includes/Admin/AlertsPage.php:432 includes/Admin/AlertsPage.php:564
+#: includes/Admin/AttachmentDetailPage.php:376 includes/Admin/AuditPage.php:570
msgid "Alert Domains"
msgstr "Dominios de alerta"
-#: includes/Admin/AlertsPage.php:412
+#: includes/Admin/AlertsPage.php:433
msgid "Usage"
msgstr "Usos"
-#: includes/Admin/AlertsPage.php:413 includes/Admin/AlertsPage.php:547
+#: includes/Admin/AlertsPage.php:434 includes/Admin/AlertsPage.php:568
msgid "Actions"
msgstr "Acciones"
-#: includes/Admin/AlertsPage.php:447 includes/Admin/AlertsPage.php:587
-#: includes/Admin/MediaListTable.php:172
+#: includes/Admin/AlertsPage.php:468 includes/Admin/AlertsPage.php:608
+#: includes/Admin/MediaListTable.php:176
msgid "Edit"
msgstr "Editar"
-#: includes/Admin/AlertsPage.php:449 includes/Admin/AlertsPage.php:589
-#: includes/Admin/MediaListTable.php:182
+#: includes/Admin/AlertsPage.php:470 includes/Admin/AlertsPage.php:610
+#: includes/Admin/MediaListTable.php:186
msgid "Full Report"
msgstr "Informe completo"
-#: includes/Admin/AlertsPage.php:459 includes/Admin/AuditPage.php:382
-#: includes/Admin/AuditPage.php:489 includes/Admin/MediaListTable.php:315
-#: includes/Admin/MediaListTable.php:452
+#: includes/Admin/AlertsPage.php:480 includes/Admin/AuditPage.php:386
+#: includes/Admin/AuditPage.php:493 includes/Admin/MediaListTable.php:319
+#: includes/Admin/MediaListTable.php:456
+#: includes/Network/NetworkListTable.php:69
+#: includes/Network/NetworkListTable.php:195
msgid "Alert"
msgstr "Alerta"
-#: includes/Admin/AlertsPage.php:473
-msgid "Dismiss"
-msgstr "Descartar"
-
-#: includes/Admin/AlertsPage.php:485
+#: includes/Admin/AlertsPage.php:506
msgid "Notes (optional):"
msgstr "Notas (opcional):"
-#: includes/Admin/AlertsPage.php:495
+#: includes/Admin/AlertsPage.php:516
msgid "Confirm Dismiss"
msgstr "Confirmar descarte"
-#: includes/Admin/AlertsPage.php:496
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: includes/Admin/AlertsPage.php:534
+#: includes/Admin/AlertsPage.php:555
msgid "No dismissed alerts."
msgstr "No hay alertas descartadas."
-#: includes/Admin/AlertsPage.php:544
+#: includes/Admin/AlertsPage.php:565
msgid "Notes"
msgstr "Notas"
-#: includes/Admin/AlertsPage.php:545
+#: includes/Admin/AlertsPage.php:566
msgid "Dismissed By"
msgstr "Descartada por"
-#: includes/Admin/AlertsPage.php:546
+#: includes/Admin/AlertsPage.php:567
msgid "Dismissed At"
msgstr "Descartada el"
-#: includes/Admin/AlertsPage.php:599 includes/Admin/AuditPage.php:569
-#: includes/Admin/MediaListTable.php:302
+#: includes/Admin/AlertsPage.php:620 includes/Admin/AuditPage.php:573
+#: includes/Admin/MediaListTable.php:306
+#: includes/Network/NetworkListTable.php:192
msgid "Dismissed"
msgstr "Descartada"
-#: includes/Admin/AlertsPage.php:616
+#: includes/Admin/AlertsPage.php:637
msgid "Reactivate"
msgstr "Reactivar"
-#: includes/Admin/AttachmentDetailPage.php:51
-#: includes/Admin/AttachmentDetailPage.php:56 includes/Admin/AuditPage.php:181
+#: includes/Admin/AttachmentDetailPage.php:55
+#: includes/Admin/AttachmentDetailPage.php:60 includes/Admin/AuditPage.php:185
msgid "Invalid attachment ID."
msgstr "ID de adjunto no válido."
-#: includes/Admin/AttachmentDetailPage.php:64
+#: includes/Admin/AttachmentDetailPage.php:68
msgid "← Media Audit"
msgstr "← Auditoría de medios"
-#: includes/Admin/AttachmentDetailPage.php:69
+#: includes/Admin/AttachmentDetailPage.php:73
msgid "File Information"
msgstr "Información del archivo"
-#: includes/Admin/AttachmentDetailPage.php:81
-#: includes/Admin/MediaListTable.php:57
+#: includes/Admin/AttachmentDetailPage.php:85
+#: includes/Admin/MediaListTable.php:61
msgid "ID"
msgstr "ID"
-#: includes/Admin/AttachmentDetailPage.php:94 includes/Admin/AuditPage.php:555
-#: includes/Privacy/DataExporter.php:265
+#: includes/Admin/AttachmentDetailPage.php:98 includes/Admin/AuditPage.php:559
+#: includes/Privacy/DataExporter.php:269
msgid "File URL"
msgstr "URL del archivo"
-#: includes/Admin/AttachmentDetailPage.php:102 includes/Admin/AuditPage.php:556
+#: includes/Admin/AttachmentDetailPage.php:106 includes/Admin/AuditPage.php:560
msgid "MIME Type"
msgstr "Tipo MIME"
-#: includes/Admin/AttachmentDetailPage.php:112
+#: includes/Admin/AttachmentDetailPage.php:116
msgid "File size"
msgstr "Tamaño del archivo"
-#: includes/Admin/AttachmentDetailPage.php:118
+#: includes/Admin/AttachmentDetailPage.php:122
msgid "Internal scan date"
msgstr "Fecha del escaneo interno"
-#: includes/Admin/AttachmentDetailPage.php:124 includes/Admin/AuditPage.php:559
-#: includes/Admin/MediaListTable.php:60
+#: includes/Admin/AttachmentDetailPage.php:128 includes/Admin/AuditPage.php:563
+#: includes/Admin/MediaListTable.php:64
+#: includes/Network/NetworkListTable.php:68
msgid "External Status"
msgstr "Estado externo"
-#: includes/Admin/AttachmentDetailPage.php:139 includes/Admin/AuditPage.php:245
+#: includes/Admin/AttachmentDetailPage.php:143 includes/Admin/AuditPage.php:249
msgid "Internal Usage"
msgstr "Uso interno"
-#: includes/Admin/AttachmentDetailPage.php:144 includes/Admin/AuditPage.php:189
+#: includes/Admin/AttachmentDetailPage.php:148 includes/Admin/AuditPage.php:193
msgid "Featured Image"
msgstr "Imagen destacada"
-#: includes/Admin/AttachmentDetailPage.php:145 includes/Admin/AuditPage.php:190
+#: includes/Admin/AttachmentDetailPage.php:149 includes/Admin/AuditPage.php:194
msgid "Post Content"
msgstr "Contenido de la entrada"
-#: includes/Admin/AttachmentDetailPage.php:146 includes/Admin/AuditPage.php:191
+#: includes/Admin/AttachmentDetailPage.php:150 includes/Admin/AuditPage.php:195
msgid "Custom Field"
msgstr "Campo personalizado"
-#: includes/Admin/AttachmentDetailPage.php:150
+#: includes/Admin/AttachmentDetailPage.php:154
msgid "Not used in any post."
msgstr "Este archivo no se usa en ninguna entrada."
-#: includes/Admin/AttachmentDetailPage.php:154 includes/Admin/AuditPage.php:199
+#: includes/Admin/AttachmentDetailPage.php:158 includes/Admin/AuditPage.php:203
msgid "Post"
msgstr "Entrada"
-#: includes/Admin/AttachmentDetailPage.php:155 includes/Admin/AuditPage.php:200
+#: includes/Admin/AttachmentDetailPage.php:159 includes/Admin/AuditPage.php:204
msgid "Type"
msgstr "Tipo"
-#: includes/Admin/AttachmentDetailPage.php:156 includes/Admin/AuditPage.php:201
+#: includes/Admin/AttachmentDetailPage.php:160 includes/Admin/AuditPage.php:205
msgid "Context"
msgstr "Contexto"
-#: includes/Admin/AttachmentDetailPage.php:157 includes/Admin/AuditPage.php:202
-#: includes/Admin/AuditPage.php:374
+#: includes/Admin/AttachmentDetailPage.php:161 includes/Admin/AuditPage.php:206
+#: includes/Admin/AuditPage.php:378
msgid "Status"
msgstr "Estado"
-#: includes/Admin/AttachmentDetailPage.php:198 includes/Admin/AuditPage.php:294
+#: includes/Admin/AttachmentDetailPage.php:202 includes/Admin/AuditPage.php:298
msgid "External Scan Results"
msgstr "Resultados del escaneo externo"
-#: includes/Admin/AttachmentDetailPage.php:260
+#: includes/Admin/AttachmentDetailPage.php:264
msgid "No external scan data available."
msgstr "No hay datos de escaneo externo disponibles."
#. translators: %d: number of external matches
-#: includes/Admin/AttachmentDetailPage.php:313 includes/Admin/AuditPage.php:324
+#: includes/Admin/AttachmentDetailPage.php:317 includes/Admin/AuditPage.php:328
#, php-format
msgid "%d match"
msgid_plural "%d matches"
@@ -267,1086 +273,1184 @@ msgstr[0] "%d coincidencia"
msgstr[1] "%d coincidencias"
#. translators: %s: scan date string
-#: includes/Admin/AttachmentDetailPage.php:321
+#: includes/Admin/AttachmentDetailPage.php:325
#, php-format
msgid "scanned %s"
msgstr "escaneado el %s"
-#: includes/Admin/AttachmentDetailPage.php:373
-msgid ""
-"These domains are associated with copyright-protected content and may "
-"indicate a copyright risk."
-msgstr ""
-"Estos dominios están asociados a contenido protegido por derechos de autor y "
-"pueden indicar un riesgo de copyright."
+#: includes/Admin/AttachmentDetailPage.php:377
+msgid "These domains are associated with copyright-protected content and may indicate a copyright risk."
+msgstr "Estos dominios están asociados a contenido protegido por derechos de autor y pueden indicar un riesgo de copyright."
-#: includes/Admin/AttachmentDetailPage.php:376
-#: includes/Admin/AttachmentDetailPage.php:392
-#: includes/Admin/AttachmentDetailPage.php:408 includes/Admin/AuditPage.php:372
+#: includes/Admin/AttachmentDetailPage.php:380
+#: includes/Admin/AttachmentDetailPage.php:396
+#: includes/Admin/AttachmentDetailPage.php:412 includes/Admin/AuditPage.php:376
msgid "Domain"
msgstr "Dominio"
-#: includes/Admin/AttachmentDetailPage.php:377
-#: includes/Admin/AttachmentDetailPage.php:393
-#: includes/Admin/AttachmentDetailPage.php:409 includes/Admin/AuditPage.php:373
+#: includes/Admin/AttachmentDetailPage.php:381
+#: includes/Admin/AttachmentDetailPage.php:397
+#: includes/Admin/AttachmentDetailPage.php:413 includes/Admin/AuditPage.php:377
msgid "Occurrences"
msgstr "Apariciones"
-#: includes/Admin/AttachmentDetailPage.php:389 includes/Admin/AuditPage.php:567
+#: includes/Admin/AttachmentDetailPage.php:393 includes/Admin/AuditPage.php:571
msgid "Other Domains"
msgstr "Otros dominios"
-#: includes/Admin/AttachmentDetailPage.php:405 includes/Admin/AuditPage.php:568
+#: includes/Admin/AttachmentDetailPage.php:409 includes/Admin/AuditPage.php:572
msgid "Ignored Domains"
msgstr "Dominios ignorados"
-#: includes/Admin/AttachmentDetailPage.php:447
+#: includes/Admin/AttachmentDetailPage.php:451
msgid "Pages with this image"
msgstr "Páginas con esta imagen"
-#: includes/Admin/AttachmentDetailPage.php:449
-#: includes/Admin/AttachmentDetailPage.php:550
-#: includes/Admin/AttachmentDetailPage.php:663
+#: includes/Admin/AttachmentDetailPage.php:453
+#: includes/Admin/AttachmentDetailPage.php:554
+#: includes/Admin/AttachmentDetailPage.php:667
msgid "Page URL"
msgstr "URL de la página"
-#: includes/Admin/AttachmentDetailPage.php:450
+#: includes/Admin/AttachmentDetailPage.php:454
msgid "Page Title"
msgstr "Título de la página"
-#: includes/Admin/AttachmentDetailPage.php:473
+#: includes/Admin/AttachmentDetailPage.php:477
msgid "Full image matches"
msgstr "Coincidencias exactas de imagen"
-#: includes/Admin/AttachmentDetailPage.php:474
-#: includes/Admin/AttachmentDetailPage.php:492
-#: includes/Admin/AttachmentDetailPage.php:551
-#: includes/Admin/AttachmentDetailPage.php:664
+#: includes/Admin/AttachmentDetailPage.php:478
+#: includes/Admin/AttachmentDetailPage.php:496
+#: includes/Admin/AttachmentDetailPage.php:555
+#: includes/Admin/AttachmentDetailPage.php:668
msgid "Image URL"
msgstr "URL de la imagen"
-#: includes/Admin/AttachmentDetailPage.php:491
+#: includes/Admin/AttachmentDetailPage.php:495
msgid "Partial image matches"
msgstr "Coincidencias parciales de imagen"
-#: includes/Admin/AttachmentDetailPage.php:548
-msgid "Backlinks found by TinEye (sorted by crawl date, newest first)"
-msgstr ""
-"Backlinks encontrados por TinEye (ordenados por fecha de rastreo, más "
-"reciente primero)"
-
#: includes/Admin/AttachmentDetailPage.php:552
+msgid "Backlinks found by TinEye (sorted by crawl date, newest first)"
+msgstr "Backlinks encontrados por TinEye (ordenados por fecha de rastreo, más reciente primero)"
+
+#: includes/Admin/AttachmentDetailPage.php:556
msgid "Crawl date"
msgstr "Fecha de rastreo"
-#: includes/Admin/AttachmentDetailPage.php:599
+#: includes/Admin/AttachmentDetailPage.php:603
msgid "Face detected"
msgstr "Cara detectada"
-#: includes/Admin/AttachmentDetailPage.php:602
+#: includes/Admin/AttachmentDetailPage.php:606
msgid "Logo detected"
msgstr "Logo detectado"
-#: includes/Admin/AttachmentDetailPage.php:605
+#: includes/Admin/AttachmentDetailPage.php:609
msgid "Landmark detected"
msgstr "Monumento detectado"
-#: includes/Admin/AttachmentDetailPage.php:608
+#: includes/Admin/AttachmentDetailPage.php:612
msgid "Stock image"
msgstr "Imagen de banco"
#. translators: %s: copyright holder name
-#: includes/Admin/AttachmentDetailPage.php:615
+#: includes/Admin/AttachmentDetailPage.php:619
#, php-format
msgid "EXIF copyright: %s"
msgstr "Copyright EXIF: %s"
-#: includes/Admin/AttachmentDetailPage.php:620
+#: includes/Admin/AttachmentDetailPage.php:624
msgid "Risk flags"
msgstr "Indicadores de riesgo"
-#: includes/Admin/AttachmentDetailPage.php:622
+#: includes/Admin/AttachmentDetailPage.php:626
msgid "No risk flags detected."
msgstr "No se detectaron indicadores de riesgo."
-#: includes/Admin/AttachmentDetailPage.php:661
+#: includes/Admin/AttachmentDetailPage.php:665
msgid "Backlinks found by PicDefense"
msgstr "Backlinks encontrados por PicDefense"
-#: includes/Admin/AttachmentDetailPage.php:665
+#: includes/Admin/AttachmentDetailPage.php:669
msgid "Similarity"
msgstr "Similitud"
-#: includes/Admin/AttachmentDetailPage.php:694
+#: includes/Admin/AttachmentDetailPage.php:698
msgid "Labels"
msgstr "Etiquetas"
-#: includes/Admin/AuditPage.php:117
+#: includes/Admin/AuditPage.php:121
msgid "Loading…"
msgstr "Cargando…"
-#: includes/Admin/AuditPage.php:118
+#: includes/Admin/AuditPage.php:122
msgid "Error loading details."
msgstr "Error al cargar los detalles."
-#: includes/Admin/AuditPage.php:119 includes/Admin/AuditPage.php:195
+#: includes/Admin/AuditPage.php:123 includes/Admin/AuditPage.php:199
msgid "This image is not used in any post."
msgstr "Esta imagen no se usa en ninguna entrada."
-#: includes/Admin/AuditPage.php:120 includes/Admin/AuditPage.php:157
+#: includes/Admin/AuditPage.php:124 includes/Admin/AuditPage.php:161
msgid "Usage Details"
msgstr "Detalles de uso"
-#: includes/Admin/AuditPage.php:143 includes/Core/Plugin.php:118
-#: includes/Core/Plugin.php:119 includes/Core/Plugin.php:132
-#: includes/Core/Plugin.php:133 includes/Privacy/DataEraser.php:33
-#: includes/Privacy/DataExporter.php:45
+#: includes/Admin/AuditPage.php:147 includes/Core/Plugin.php:126
+#: includes/Core/Plugin.php:127 includes/Core/Plugin.php:138
+#: includes/Core/Plugin.php:139 includes/Core/Plugin.php:152
+#: includes/Core/Plugin.php:153 includes/Core/Plugin.php:275
+#: includes/Network/Plugin.php:84 includes/Network/Plugin.php:125
+#: includes/Privacy/DataEraser.php:37 includes/Privacy/DataExporter.php:49
msgid "Media Audit"
msgstr "Auditoría de medios"
-#: includes/Admin/AuditPage.php:149
+#: includes/Admin/AuditPage.php:153
msgid "Search"
msgstr "Buscar"
-#: includes/Admin/AuditPage.php:158
+#: includes/Admin/AuditPage.php:162
msgid "Close"
msgstr "Cerrar"
-#: includes/Admin/AuditPage.php:176 includes/Admin/AuditPage.php:530
-#: includes/Admin/AuditPage.php:806 includes/Admin/AuditPage.php:838
-#: includes/Admin/ToolsPage.php:105 includes/Admin/ToolsPage.php:165
+#: includes/Admin/AuditPage.php:180 includes/Admin/AuditPage.php:534
+#: includes/Admin/AuditPage.php:810 includes/Admin/AuditPage.php:842
+#: includes/Admin/ToolsPage.php:110 includes/Admin/ToolsPage.php:169
+#: includes/Network/ToolsPage.php:78
msgid "Insufficient permissions."
msgstr "Permisos insuficientes."
-#: includes/Admin/AuditPage.php:329
+#: includes/Admin/AuditPage.php:333
msgid "No matches"
msgstr "Sin coincidencias"
-#: includes/Admin/AuditPage.php:404
+#: includes/Admin/AuditPage.php:408
msgid "Consensus Domains"
msgstr "Dominios de consenso"
#. translators: %d: number of providers that agree
-#: includes/Admin/AuditPage.php:410
+#: includes/Admin/AuditPage.php:414
#, php-format
msgid "%d provider"
msgid_plural "%d providers"
msgstr[0] "%d proveedor"
msgstr[1] "%d proveedores"
-#: includes/Admin/AuditPage.php:420
+#: includes/Admin/AuditPage.php:424
msgid "View full report →"
msgstr "Ver informe completo →"
-#: includes/Admin/AuditPage.php:446
+#: includes/Admin/AuditPage.php:450
msgid "In Index"
msgstr "En el índice"
#. translators: %d: count of images not yet indexed
-#: includes/Admin/AuditPage.php:450
+#: includes/Admin/AuditPage.php:454
#, php-format
msgid "%d not yet indexed"
msgstr "%d aún no indexadas"
-#: includes/Admin/AuditPage.php:453
+#: includes/Admin/AuditPage.php:457
msgid "All indexed"
msgstr "Todas indexadas"
-#: includes/Admin/AuditPage.php:458 includes/Admin/MediaListTable.php:346
+#: includes/Admin/AuditPage.php:462 includes/Admin/MediaListTable.php:350
msgid "Scanned"
msgstr "Escaneadas"
#. translators: %d: percentage
-#: includes/Admin/AuditPage.php:461
+#: includes/Admin/AuditPage.php:465
#, php-format
msgid "%d%% of index"
msgstr "%d%% del índice"
-#: includes/Admin/AuditPage.php:468
+#: includes/Admin/AuditPage.php:472
msgid "Used"
msgstr "Usadas"
-#: includes/Admin/AuditPage.php:474 includes/Admin/MediaListTable.php:212
+#: includes/Admin/AuditPage.php:478 includes/Admin/MediaListTable.php:216
msgid "Unused"
msgstr "Sin usar"
-#: includes/Admin/AuditPage.php:481
+#: includes/Admin/AuditPage.php:485 includes/Network/AuditPage.php:45
msgid "External Matches"
msgstr "Coincidencias externas"
-#: includes/Admin/AuditPage.php:544
+#: includes/Admin/AuditPage.php:548
msgid "Could not open output stream."
msgstr "No se pudo abrir el flujo de salida."
-#: includes/Admin/AuditPage.php:553 includes/Privacy/DataExporter.php:257
-#: includes/Privacy/DataExporter.php:299
+#: includes/Admin/AuditPage.php:557 includes/Privacy/DataExporter.php:261
+#: includes/Privacy/DataExporter.php:303
msgid "Attachment ID"
msgstr "ID del adjunto"
-#: includes/Admin/AuditPage.php:557
+#: includes/Admin/AuditPage.php:561
msgid "File Size (bytes)"
msgstr "Tamaño del archivo (bytes)"
-#: includes/Admin/AuditPage.php:558
+#: includes/Admin/AuditPage.php:562
msgid "Internal Scan Date"
msgstr "Fecha del escaneo interno"
-#: includes/Admin/AuditPage.php:560
+#: includes/Admin/AuditPage.php:564
msgid "Has Alert"
msgstr "Tiene alerta"
-#: includes/Admin/AuditPage.php:561 includes/Admin/MediaListTable.php:58
+#: includes/Admin/AuditPage.php:565 includes/Admin/MediaListTable.php:62
msgid "Usage Count"
msgstr "Número de usos"
-#: includes/Admin/AuditPage.php:562
+#: includes/Admin/AuditPage.php:566
msgid "Used In"
msgstr "Usado en"
-#: includes/Admin/AuditPage.php:563
+#: includes/Admin/AuditPage.php:567
msgid "Google Vision — Matches"
msgstr "Google Vision — Coincidencias"
-#: includes/Admin/AuditPage.php:564
+#: includes/Admin/AuditPage.php:568
msgid "TinEye — Matches"
msgstr "TinEye — Coincidencias"
-#: includes/Admin/AuditPage.php:565
+#: includes/Admin/AuditPage.php:569
msgid "PicDefense — Matches"
msgstr "PicDefense — Coincidencias"
-#: includes/Admin/AuditPage.php:570
+#: includes/Admin/AuditPage.php:574
msgid "Dismissed Notes"
msgstr "Notas de descarte"
-#: includes/Admin/AuditPage.php:776 includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780 includes/Admin/AuditPage.php:792
msgid "Yes"
msgstr "Sí"
-#: includes/Admin/AuditPage.php:776 includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780 includes/Admin/AuditPage.php:792
msgid "No"
msgstr "No"
-#: includes/Admin/MediaListTable.php:59
+#. translators: %s: Manager plugin page URL.
+#: includes/Admin/ManagerNotice.php:199
+#, php-format
+msgid "To receive plugin updates, the plugin Manager (by ROBOTSTXT) must be installed and active."
+msgstr "Para recibir actualizaciones del plugin, el plugin Manager (by ROBOTSTXT) debe estar instalado y activo."
+
+#: includes/Admin/MediaListTable.php:63
msgid "Usages"
msgstr "Usos"
-#: includes/Admin/MediaListTable.php:61
+#: includes/Admin/MediaListTable.php:65
+#: includes/Network/NetworkListTable.php:70
msgid "Last Scanned"
msgstr "Último escaneo"
-#: includes/Admin/MediaListTable.php:85
+#: includes/Admin/MediaListTable.php:89
+#: includes/Network/NetworkListTable.php:95
msgid "Run External Scan"
msgstr "Ejecutar escaneo externo"
-#: includes/Admin/MediaListTable.php:86
+#: includes/Admin/MediaListTable.php:90
+#: includes/Network/NetworkListTable.php:96
msgid "Purge External Data"
msgstr "Purgar datos externos"
-#: includes/Admin/MediaListTable.php:87
+#: includes/Admin/MediaListTable.php:91
msgid "Export CSV"
msgstr "Exportar CSV"
-#: includes/Admin/MediaListTable.php:88
+#: includes/Admin/MediaListTable.php:92
msgid "Export CSV (Alerts only)"
msgstr "Exportar CSV (solo alertas)"
-#: includes/Admin/MediaListTable.php:177
+#: includes/Admin/MediaListTable.php:181
msgid "View Details"
msgstr "Ver detalles"
-#: includes/Admin/MediaListTable.php:248
+#: includes/Admin/MediaListTable.php:252
msgid "(no title)"
msgstr "(sin título)"
#. translators: %d: number of additional usages
-#: includes/Admin/MediaListTable.php:263
+#: includes/Admin/MediaListTable.php:267
#, php-format
msgid "+ %d more…"
msgstr "+ %d más…"
-#: includes/Admin/MediaListTable.php:307 includes/Admin/MediaListTable.php:337
-#: includes/Admin/MediaListTable.php:376
+#: includes/Admin/MediaListTable.php:311 includes/Admin/MediaListTable.php:341
+#: includes/Admin/MediaListTable.php:380
msgid "View Results"
msgstr "Ver resultados"
-#: includes/Admin/MediaListTable.php:344 includes/Admin/ToolsPage.php:589
-#: includes/Admin/ToolsPage.php:590 includes/Admin/ToolsPage.php:591
+#: includes/Admin/MediaListTable.php:348 includes/Admin/ToolsPage.php:593
+#: includes/Admin/ToolsPage.php:594 includes/Admin/ToolsPage.php:595
msgid "Pending"
msgstr "Pendiente"
-#: includes/Admin/MediaListTable.php:345
+#: includes/Admin/MediaListTable.php:349
msgid "Queued"
msgstr "En cola"
-#: includes/Admin/MediaListTable.php:347
+#: includes/Admin/MediaListTable.php:351
msgid "Matches Found"
msgstr "Coincidencias encontradas"
-#: includes/Admin/MediaListTable.php:348
+#: includes/Admin/MediaListTable.php:352
msgid "Error"
msgstr "Error"
#. translators: %s: human-readable time difference, e.g. "3 days"
-#: includes/Admin/MediaListTable.php:418
+#: includes/Admin/MediaListTable.php:422
#, php-format
msgid "%s ago"
msgstr "hace %s"
-#: includes/Admin/MediaListTable.php:448
+#: includes/Admin/MediaListTable.php:452
msgid "All statuses"
msgstr "Todos los estados"
-#: includes/Admin/MediaListTable.php:467
+#: includes/Admin/MediaListTable.php:471
msgid "All post types"
msgstr "Todos los tipos de entrada"
-#: includes/Admin/MediaListTable.php:482
+#: includes/Admin/MediaListTable.php:486
msgid "Unused only"
msgstr "Solo sin usar"
-#: includes/Admin/MediaListTable.php:485
+#: includes/Admin/MediaListTable.php:489
msgid "Filter"
msgstr "Filtrar"
-#: includes/Admin/MediaListTable.php:495
-msgid ""
-"No indexed attachments found. Run wp mra scan-internal to populate the index."
-msgstr ""
-"No se encontraron adjuntos indexados. Ejecuta wp mra scan-internal para "
-"poblar el índice."
+#: includes/Admin/MediaListTable.php:499
+msgid "No indexed attachments found. Run wp mra scan-internal to populate the index."
+msgstr "No se encontraron adjuntos indexados. Ejecuta wp mra scan-internal para poblar el índice."
-#: includes/Admin/Settings.php:203
+#: includes/Admin/Settings.php:207
msgid "General"
msgstr "General"
-#: includes/Admin/Settings.php:204
+#: includes/Admin/Settings.php:208 includes/Network/Settings.php:199
msgid "API Credentials"
msgstr "Credenciales de API"
-#: includes/Admin/Settings.php:205
+#: includes/Admin/Settings.php:209 includes/Network/Settings.php:200
msgid "Filters"
msgstr "Filtros"
-#: includes/Admin/Settings.php:206
+#: includes/Admin/Settings.php:210 includes/Network/Settings.php:201
msgid "External Scanning"
msgstr "Escaneo externo"
-#: includes/Admin/Settings.php:249
+#: includes/Admin/Settings.php:288
msgid "Delete data on uninstall"
msgstr "Eliminar datos al desinstalar"
-#: includes/Admin/Settings.php:265
+#: includes/Admin/Settings.php:304 includes/Network/Settings.php:309
msgid "Google Cloud Vision API Key"
msgstr "Clave de API de Google Cloud Vision"
-#: includes/Admin/Settings.php:273
+#: includes/Admin/Settings.php:312 includes/Network/Settings.php:313
msgid "TinEye API Key"
msgstr "Clave de API de TinEye"
-#: includes/Admin/Settings.php:281
+#: includes/Admin/Settings.php:320 includes/Network/Settings.php:317
msgid "PicDefense User ID"
msgstr "ID de usuario PicDefense"
-#: includes/Admin/Settings.php:289
+#: includes/Admin/Settings.php:328 includes/Network/Settings.php:321
msgid "PicDefense API Key"
msgstr "Clave API de PicDefense"
-#: includes/Admin/Settings.php:298
+#: includes/Admin/Settings.php:337 includes/Network/Settings.php:343
msgid "Alert Hostnames"
msgstr "Hostnames de alerta"
-#: includes/Admin/Settings.php:305 includes/Admin/Settings.php:320
+#: includes/Admin/Settings.php:344 includes/Admin/Settings.php:359
msgid "Hostnames"
msgstr "Hostnames"
-#: includes/Admin/Settings.php:313
+#: includes/Admin/Settings.php:352 includes/Network/Settings.php:347
msgid "Ignored Hostnames"
msgstr "Hostnames ignorados"
-#: includes/Admin/Settings.php:336
+#: includes/Admin/Settings.php:375 includes/Network/Settings.php:366
msgid "Batch Size"
msgstr "Tamaño de lote"
-#: includes/Admin/Settings.php:344
+#: includes/Admin/Settings.php:383
msgid "Rate Limit (requests/min)"
msgstr "Límite de velocidad (solicitudes/min)"
#. translators: %s: comma-separated list of hostnames
-#: includes/Admin/Settings.php:404
+#: includes/Admin/Settings.php:455
#, php-format
-msgid ""
-"The following hostnames were removed from the exclusion list because they "
-"already appear in the alert list: %s"
-msgstr ""
-"Los siguientes hostnames se eliminaron de la lista de exclusión porque ya "
-"aparecen en la lista de alertas: %s"
+msgid "The following hostnames were removed from the exclusion list because they already appear in the alert list: %s"
+msgstr "Los siguientes hostnames se eliminaron de la lista de exclusión porque ya aparecen en la lista de alertas: %s"
-#: includes/Admin/Settings.php:505
+#: includes/Admin/Settings.php:563
msgid "API Credentials Status"
msgstr "Estado de las credenciales de API"
-#: includes/Admin/Settings.php:513
-#: includes/External/GoogleVisionProvider.php:43
+#: includes/Admin/Settings.php:571
+#: includes/External/GoogleVisionProvider.php:47
msgid "Google Cloud Vision"
msgstr "Google Cloud Vision"
-#: includes/Admin/Settings.php:521
+#: includes/Admin/Settings.php:579
msgid "TinEye"
msgstr "TinEye"
-#: includes/Admin/Settings.php:544
-msgid ""
-"Matches from these hostnames are flagged as critical copyright alerts. "
-"Entering example.com also covers all its subdomains."
-msgstr ""
-"Las coincidencias de estos hostnames se marcan como alertas críticas de "
-"copyright. Introducir example.com también cubre todos sus subdominios."
+#: includes/Admin/Settings.php:602
+msgid "Matches from these hostnames are flagged as critical copyright alerts. Entering example.com also covers all its subdomains."
+msgstr "Las coincidencias de estos hostnames se marcan como alertas críticas de copyright. Introducir example.com también cubre todos sus subdominios."
-#: includes/Admin/Settings.php:557
-msgid ""
-"Matches from these hostnames are silently ignored and not counted as "
-"potential copyright issues. Entering example.com also covers all its "
-"subdomains. A hostname already present in the alert list cannot be added "
-"here."
-msgstr ""
-"Las coincidencias de estos hostnames se ignoran silenciosamente y no se "
-"contabilizan como posibles problemas de copyright. Introducir example.com "
-"también cubre todos sus subdominios. Un hostname ya presente en la lista de "
-"alertas no puede añadirse aquí."
+#: includes/Admin/Settings.php:615
+msgid "Matches from these hostnames are silently ignored and not counted as potential copyright issues. Entering example.com also covers all its subdomains. A hostname already present in the alert list cannot be added here."
+msgstr "Las coincidencias de estos hostnames se ignoran silenciosamente y no se contabilizan como posibles problemas de copyright. Introducir example.com también cubre todos sus subdominios. Un hostname ya presente en la lista de alertas no puede añadirse aquí."
-#: includes/Admin/Settings.php:578
-msgid ""
-"Remove all plugin data (tables and options) when the plugin is uninstalled."
-msgstr ""
-"Elimina todos los datos del plugin (tablas y opciones) cuando se desinstale "
-"el plugin."
+#: includes/Admin/Settings.php:636
+msgid "Remove all plugin data (tables and options) when the plugin is uninstalled."
+msgstr "Elimina todos los datos del plugin (tablas y opciones) cuando se desinstale el plugin."
-#: includes/Admin/Settings.php:581
-msgid ""
-"By default, data is preserved after uninstall. Enable this only if you want "
-"a clean removal."
-msgstr ""
-"Por defecto, los datos se conservan tras la desinstalación. Activa esto solo "
-"si deseas una eliminación completa."
+#: includes/Admin/Settings.php:639
+msgid "By default, data is preserved after uninstall. Enable this only if you want a clean removal."
+msgstr "Por defecto, los datos se conservan tras la desinstalación. Activa esto solo si deseas una eliminación completa."
-#: includes/Admin/Settings.php:605
-msgid ""
-"Required for Google Cloud Vision Web Detection. Obtain from the Google Cloud "
-"Console."
-msgstr ""
-"Necesario para la detección web de Google Cloud Vision. Obtener desde Google "
-"Cloud Console."
+#: includes/Admin/Settings.php:663
+msgid "Required for Google Cloud Vision Web Detection. Obtain from the Google Cloud Console."
+msgstr "Necesario para la detección web de Google Cloud Vision. Obtener desde Google Cloud Console."
-#: includes/Admin/Settings.php:608 includes/Admin/Settings.php:658
-#: includes/Admin/Settings.php:736
+#: includes/Admin/Settings.php:666 includes/Admin/Settings.php:716
+#: includes/Admin/Settings.php:794
msgid "View pricing"
msgstr "Ver tarifas"
-#: includes/Admin/Settings.php:614
+#: includes/Admin/Settings.php:672
msgid "Monthly requests"
msgstr "Solicitudes mensuales"
-#: includes/Admin/Settings.php:615
+#: includes/Admin/Settings.php:673
msgid "Price per 1,000"
msgstr "Precio por 1.000"
-#: includes/Admin/Settings.php:620
+#: includes/Admin/Settings.php:678
msgid "First 1,000"
msgstr "Primeras 1.000"
-#: includes/Admin/Settings.php:621
+#: includes/Admin/Settings.php:679
msgid "Free"
msgstr "Gratis"
-#: includes/Admin/Settings.php:655
-msgid ""
-"Required for TinEye reverse image search. Obtain from your TinEye Commercial "
-"account."
-msgstr ""
-"Necesario para la búsqueda inversa de imágenes de TinEye. Obtener desde tu "
-"cuenta comercial de TinEye."
+#: includes/Admin/Settings.php:713
+msgid "Required for TinEye reverse image search. Obtain from your TinEye Commercial account."
+msgstr "Necesario para la búsqueda inversa de imágenes de TinEye. Obtener desde tu cuenta comercial de TinEye."
-#: includes/Admin/Settings.php:664
+#: includes/Admin/Settings.php:722
msgid "Bundle"
msgstr "Plan"
-#: includes/Admin/Settings.php:665
+#: includes/Admin/Settings.php:723
msgid "Searches"
msgstr "Búsquedas"
-#: includes/Admin/Settings.php:666
+#: includes/Admin/Settings.php:724
msgid "Price"
msgstr "Precio"
-#: includes/Admin/Settings.php:671
+#: includes/Admin/Settings.php:729
msgid "Starter"
msgstr "Inicial"
-#: includes/Admin/Settings.php:676
+#: includes/Admin/Settings.php:734
msgid "Standard"
msgstr "Estándar"
-#: includes/Admin/Settings.php:681
+#: includes/Admin/Settings.php:739
msgid "Professional"
msgstr "Profesional"
-#: includes/Admin/Settings.php:709
-msgid ""
-"Required for PicDefense copyright risk analysis. Your PicDefense account "
-"user ID."
-msgstr ""
-"Necesario para el análisis de riesgo de copyright de PicDefense. ID de "
-"usuario de tu cuenta PicDefense."
+#: includes/Admin/Settings.php:767
+msgid "Required for PicDefense copyright risk analysis. Your PicDefense account user ID."
+msgstr "Necesario para el análisis de riesgo de copyright de PicDefense. ID de usuario de tu cuenta PicDefense."
-#: includes/Admin/Settings.php:733
-msgid ""
-"Required for PicDefense copyright risk analysis. Your PicDefense API key."
-msgstr ""
-"Necesario para el análisis de riesgo de copyright de PicDefense. Clave de "
-"API de PicDefense."
+#: includes/Admin/Settings.php:791
+msgid "Required for PicDefense copyright risk analysis. Your PicDefense API key."
+msgstr "Necesario para el análisis de riesgo de copyright de PicDefense. Clave de API de PicDefense."
-#: includes/Admin/Settings.php:768 includes/Admin/Settings.php:799
-msgid ""
-"One hostname per line. example.com covers all its subdomains. Explicit "
-"wildcard: *.example.com."
-msgstr ""
-"Un hostname por línea. example.com también cubre todos sus subdominios. "
-"Comodín explícito: *.example.com."
+#: includes/Admin/Settings.php:826 includes/Admin/Settings.php:857
+msgid "One hostname per line. example.com covers all its subdomains. Explicit wildcard: *.example.com."
+msgstr "Un hostname por línea. example.com también cubre todos sus subdominios. Comodín explícito: *.example.com."
-#: includes/Admin/Settings.php:824
+#: includes/Admin/Settings.php:882
msgid "Number of images to scan per scheduled batch (1–100). Default: 10."
-msgstr ""
-"Número de imágenes a escanear por lote programado (1–100). Predeterminado: "
-"10."
+msgstr "Número de imágenes a escanear por lote programado (1–100). Predeterminado: 10."
-#: includes/Admin/Settings.php:849
+#: includes/Admin/Settings.php:907
msgid "Maximum API requests per minute per provider (1–60). Default: 10."
-msgstr ""
-"Máximo de solicitudes de API por minuto por proveedor (1–60). "
-"Predeterminado: 10."
+msgstr "Máximo de solicitudes de API por minuto por proveedor (1–60). Predeterminado: 10."
-#: includes/Admin/ToolsPage.php:85
+#: includes/Admin/ToolsPage.php:90
msgid "Done."
msgstr "Listo."
-#: includes/Admin/ToolsPage.php:86
+#: includes/Admin/ToolsPage.php:91
msgid "Stopped."
msgstr "Detenido."
-#: includes/Admin/ToolsPage.php:87
+#: includes/Admin/ToolsPage.php:92
msgid "An error occurred."
msgstr "Se ha producido un error."
-#: includes/Admin/ToolsPage.php:143
+#: includes/Admin/ToolsPage.php:147
msgid "Invalid batch type."
msgstr "Tipo de lote no válido."
-#: includes/Admin/ToolsPage.php:264
+#: includes/Admin/ToolsPage.php:268
msgid "System Status"
msgstr "Estado del sistema"
-#: includes/Admin/ToolsPage.php:267
+#: includes/Admin/ToolsPage.php:271
msgid "Operations"
msgstr "Operaciones"
-#: includes/Admin/ToolsPage.php:270
+#: includes/Admin/ToolsPage.php:274
msgid "Direct scan runner"
msgstr "Ejecutor de escaneo directo"
-#: includes/Admin/ToolsPage.php:272
-msgid ""
-"Run scan batches directly from your browser without relying on background "
-"jobs. Useful when WP-Cron is disabled or Action Scheduler is not running. "
-"Keep this tab open while processing."
-msgstr ""
-"Ejecuta lotes de escaneo directamente desde tu navegador sin depender de "
-"trabajos en segundo plano. Útil cuando WP-Cron está desactivado o Action "
-"Scheduler no está en ejecución. Mantén esta pestaña abierta mientras se "
-"procesa."
+#: includes/Admin/ToolsPage.php:276
+msgid "Run scan batches directly from your browser without relying on background jobs. Useful when WP-Cron is disabled or Action Scheduler is not running. Keep this tab open while processing."
+msgstr "Ejecuta lotes de escaneo directamente desde tu navegador sin depender de trabajos en segundo plano. Útil cuando WP-Cron está desactivado o Action Scheduler no está en ejecución. Mantén esta pestaña abierta mientras se procesa."
-#: includes/Admin/ToolsPage.php:308
+#: includes/Admin/ToolsPage.php:312
msgid "not installed"
msgstr "no instalado"
-#: includes/Admin/ToolsPage.php:366
+#: includes/Admin/ToolsPage.php:370
msgid "Internal scan scheduled."
msgstr "Escaneo interno programado."
-#: includes/Admin/ToolsPage.php:367
+#: includes/Admin/ToolsPage.php:371
msgid "External scan scheduled."
msgstr "Escaneo externo programado."
-#: includes/Admin/ToolsPage.php:368
+#: includes/Admin/ToolsPage.php:372
msgid "Failed scans re-queued. Background scan scheduled."
msgstr "Escaneos fallidos reencolados. Escaneo en segundo plano programado."
-#: includes/Admin/ToolsPage.php:369
+#: includes/Admin/ToolsPage.php:373
msgid "Provider registry synced. New scans scheduled."
msgstr "Registro de proveedores sincronizado. Nuevos escaneos programados."
-#: includes/Admin/ToolsPage.php:370
+#: includes/Admin/ToolsPage.php:374
msgid "Usage data cleared. Background scan scheduled."
msgstr "Datos de uso eliminados. Escaneo en segundo plano programado."
-#: includes/Admin/ToolsPage.php:371
+#: includes/Admin/ToolsPage.php:375
msgid "Index cleared. Fresh indexing scheduled."
msgstr "Índice eliminado. Re-indexación programada."
-#: includes/Admin/ToolsPage.php:372
+#: includes/Admin/ToolsPage.php:376
msgid "External scan data purged."
msgstr "Datos de escaneo externo eliminados."
-#: includes/Admin/ToolsPage.php:373
+#: includes/Admin/ToolsPage.php:377
msgid "All data reset. Fresh indexing scheduled."
msgstr "Todos los datos restablecidos. Re-indexación programada."
-#: includes/Admin/ToolsPage.php:420
+#: includes/Admin/ToolsPage.php:424
msgid "Database schema"
msgstr "Esquema de base de datos"
#. translators: %s: version number
-#: includes/Admin/ToolsPage.php:426
+#: includes/Admin/ToolsPage.php:430
#, php-format
msgid "v%s – up to date"
msgstr "v%s – actualizado"
#. translators: 1: stored version, 2: expected version
-#: includes/Admin/ToolsPage.php:432
+#: includes/Admin/ToolsPage.php:436
#, php-format
msgid "Installed: %1$s — Required: %2$s"
msgstr "Instalado: %1$s — Requerido: %2$s"
-#: includes/Admin/ToolsPage.php:441
+#: includes/Admin/ToolsPage.php:445
msgid "Deactivate and reactivate the plugin to apply pending migrations."
-msgstr "Desactiva y reactiva el plugin para aplicar las migraciones pendientes."
-"Desactiva y reactiva el plugin para aplicar las migraciones pendientes."
+msgstr "Desactiva y reactiva el plugin para aplicar las migraciones pendientes.Desactiva y reactiva el plugin para aplicar las migraciones pendientes."
-#: includes/Admin/ToolsPage.php:448
+#: includes/Admin/ToolsPage.php:452
msgid "Action Scheduler"
msgstr "Action Scheduler"
-#: includes/Admin/ToolsPage.php:451
+#: includes/Admin/ToolsPage.php:455
msgid "Available"
msgstr "Disponible"
-#: includes/Admin/ToolsPage.php:453
+#: includes/Admin/ToolsPage.php:457
msgid "Not available"
msgstr "No disponible"
-#: includes/Admin/ToolsPage.php:458
-msgid ""
-"Install and activate the Action Scheduler plugin. Background scanning will "
-"not work without it."
-msgstr ""
-"Instala y activa el plugin Action Scheduler. El escaneo en segundo plano no "
-"funcionará sin él."
+#: includes/Admin/ToolsPage.php:462
+msgid "Install and activate the Action Scheduler plugin. Background scanning will not work without it."
+msgstr "Instala y activa el plugin Action Scheduler. El escaneo en segundo plano no funcionará sin él."
-#: includes/Admin/ToolsPage.php:465
+#: includes/Admin/ToolsPage.php:469
msgid "WP-Cron"
msgstr "WP-Cron"
-#: includes/Admin/ToolsPage.php:468
+#: includes/Admin/ToolsPage.php:472
msgid "Disabled (DISABLE_WP_CRON)"
msgstr "Desactivado (DISABLE_WP_CRON)"
-#: includes/Admin/ToolsPage.php:470
+#: includes/Admin/ToolsPage.php:474
msgid "Enabled"
msgstr "Activado"
-#: includes/Admin/ToolsPage.php:475
-msgid ""
-"Background jobs will not fire automatically. Trigger the cron externally or "
-"use WP-CLI:"
-msgstr ""
-"Los trabajos en segundo plano no se ejecutarán automáticamente. Activa el "
-"cron externamente o usa WP-CLI:"
+#: includes/Admin/ToolsPage.php:479
+msgid "Background jobs will not fire automatically. Trigger the cron externally or use WP-CLI:"
+msgstr "Los trabajos en segundo plano no se ejecutarán automáticamente. Activa el cron externamente o usa WP-CLI:"
-#: includes/Admin/ToolsPage.php:483
+#: includes/Admin/ToolsPage.php:487
msgid "Internal index"
msgstr "Índice interno"
#. translators: 1: indexed count, 2: total images
-#: includes/Admin/ToolsPage.php:488
+#: includes/Admin/ToolsPage.php:492
#, php-format
msgid "%1$s / %2$s images indexed"
msgstr "%1$s / %2$s imágenes indexadas"
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:499
+#: includes/Admin/ToolsPage.php:503
#, php-format
msgid "%s image not yet indexed."
msgid_plural "%s images not yet indexed."
msgstr[0] "%s imagen aún no indexada."
msgstr[1] "%s imágenes aún no indexadas."
-#: includes/Admin/ToolsPage.php:503
+#: includes/Admin/ToolsPage.php:507
msgid "Schedule an internal scan below."
msgstr "Programa un escaneo interno más abajo."
-#: includes/Admin/ToolsPage.php:511
+#: includes/Admin/ToolsPage.php:515
msgid "Usage scan"
msgstr "Escaneo de uso"
#. translators: 1: scanned count, 2: total indexed
-#: includes/Admin/ToolsPage.php:516
+#: includes/Admin/ToolsPage.php:520
#, php-format
msgid "%1$s / %2$s scanned for usage"
msgstr "%1$s / %2$s escaneadas de uso"
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:527
+#: includes/Admin/ToolsPage.php:531
#, php-format
msgid "%s pending."
msgid_plural "%s pending."
msgstr[0] "%s pendiente."
msgstr[1] "%s pendientes."
-#: includes/Admin/ToolsPage.php:548 includes/Admin/ToolsPage.php:752
+#: includes/Admin/ToolsPage.php:552 includes/Admin/ToolsPage.php:756
msgid "External scan"
msgstr "Escaneo externo"
#. translators: 1: scanned 2: matches 3: queued 4: pending 5: errors
-#: includes/Admin/ToolsPage.php:553
+#: includes/Admin/ToolsPage.php:557
#, php-format
msgid "%1$s scanned · %2$s matches · %3$s queued · %4$s pending · %5$s errors"
-msgstr ""
-"%1$s escaneadas · %2$s coincidencias · %3$s en cola · %4$s pendientes · %5$s "
-"errores"
+msgstr "%1$s escaneadas · %2$s coincidencias · %3$s en cola · %4$s pendientes · %5$s errores"
-#: includes/Admin/ToolsPage.php:564
-msgid ""
-"Some scans failed. Check that API keys are configured correctly in Settings."
-msgstr ""
-"Algunos escaneos fallaron. Verifica que las claves de API están configuradas "
-"correctamente en Ajustes."
+#: includes/Admin/ToolsPage.php:568
+msgid "Some scans failed. Check that API keys are configured correctly in Settings."
+msgstr "Algunos escaneos fallaron. Verifica que las claves de API están configuradas correctamente en Ajustes."
-#: includes/Admin/ToolsPage.php:566
+#: includes/Admin/ToolsPage.php:570
msgid "Schedule an external scan below to process pending items."
-msgstr ""
-"Programa un escaneo externo más abajo para procesar los elementos pendientes."
+msgstr "Programa un escaneo externo más abajo para procesar los elementos pendientes."
-#: includes/Admin/ToolsPage.php:584
+#: includes/Admin/ToolsPage.php:588
msgid "Scheduled jobs"
msgstr "Trabajos programados"
-#: includes/Admin/ToolsPage.php:587
+#: includes/Admin/ToolsPage.php:591
msgid "Action Scheduler not available."
msgstr "Action Scheduler no disponible."
-#: includes/Admin/ToolsPage.php:589
+#: includes/Admin/ToolsPage.php:593
msgid "Index:"
msgstr "Índice:"
-#: includes/Admin/ToolsPage.php:590
+#: includes/Admin/ToolsPage.php:594
msgid "Usage:"
msgstr "Uso:"
-#: includes/Admin/ToolsPage.php:591
+#: includes/Admin/ToolsPage.php:595
msgid "External:"
msgstr "Externo:"
-#: includes/Admin/ToolsPage.php:596
-msgid ""
-"There is work to do but no background job is scheduled. Use the operations "
-"below."
-msgstr ""
-"Hay trabajo pendiente pero no hay ningún trabajo en segundo plano "
-"programado. Usa las operaciones de abajo."
+#: includes/Admin/ToolsPage.php:600
+msgid "There is work to do but no background job is scheduled. Use the operations below."
+msgstr "Hay trabajo pendiente pero no hay ningún trabajo en segundo plano programado. Usa las operaciones de abajo."
-#: includes/Admin/ToolsPage.php:598
+#: includes/Admin/ToolsPage.php:602
msgid "WP-Cron is disabled. Jobs will not fire automatically."
-msgstr ""
-"WP-Cron está desactivado. Los trabajos no se ejecutarán automáticamente."
+msgstr "WP-Cron está desactivado. Los trabajos no se ejecutarán automáticamente."
-#: includes/Admin/ToolsPage.php:608
+#: includes/Admin/ToolsPage.php:612
msgid "WP-CLI commands to process scans manually:"
msgstr "Comandos WP-CLI para procesar escaneos manualmente:"
-#: includes/Admin/ToolsPage.php:625
+#: includes/Admin/ToolsPage.php:629
msgid "Schedule internal scan"
msgstr "Programar escaneo interno"
-#: includes/Admin/ToolsPage.php:626
-msgid ""
-"Queue a background job to index all unindexed media files and scan their "
-"usage across posts, pages, and custom fields. Safe to run at any time — will "
-"not re-process completed work."
-msgstr ""
-"Cola un trabajo en segundo plano para indexar todos los archivos multimedia "
-"no indexados y escanear su uso en entradas, páginas y campos personalizados. "
-"Es seguro ejecutarlo en cualquier momento: no reprocesará el trabajo ya "
-"completado."
+#: includes/Admin/ToolsPage.php:630
+msgid "Queue a background job to index all unindexed media files and scan their usage across posts, pages, and custom fields. Safe to run at any time — will not re-process completed work."
+msgstr "Cola un trabajo en segundo plano para indexar todos los archivos multimedia no indexados y escanear su uso en entradas, páginas y campos personalizados. Es seguro ejecutarlo en cualquier momento: no reprocesará el trabajo ya completado."
-#: includes/Admin/ToolsPage.php:632
+#: includes/Admin/ToolsPage.php:636
msgid "Schedule external scan"
msgstr "Programar escaneo externo"
-#: includes/Admin/ToolsPage.php:633
-msgid ""
-"Mark all pending attachments as queued and launch a background reverse-image-"
-"search via the configured providers. Requires API keys in Settings."
-msgstr ""
-"Marca todos los adjuntos pendientes como en cola y lanza una búsqueda "
-"inversa de imágenes en segundo plano a través de los proveedores "
-"configurados. Requiere claves de API en Ajustes."
+#: includes/Admin/ToolsPage.php:637
+msgid "Mark all pending attachments as queued and launch a background reverse-image-search via the configured providers. Requires API keys in Settings."
+msgstr "Marca todos los adjuntos pendientes como en cola y lanza una búsqueda inversa de imágenes en segundo plano a través de los proveedores configurados. Requiere claves de API en Ajustes."
-#: includes/Admin/ToolsPage.php:639
+#: includes/Admin/ToolsPage.php:643
msgid "Requeue scan errors"
msgstr "Reencolar errores de escaneo"
-#: includes/Admin/ToolsPage.php:640
-msgid ""
-"Re-queues only the attachments that failed with an error on the last "
-"external scan run. Does not affect already-scanned items. Useful to retry "
-"after fixing API key issues."
-msgstr ""
-"Reencola solo los adjuntos que fallaron con un error en la última ejecución "
-"del escaneo externo. No afecta a los elementos ya escaneados. Útil para "
-"reintentar después de corregir problemas con las claves de API."
+#: includes/Admin/ToolsPage.php:644
+msgid "Re-queues only the attachments that failed with an error on the last external scan run. Does not affect already-scanned items. Useful to retry after fixing API key issues."
+msgstr "Reencola solo los adjuntos que fallaron con un error en la última ejecución del escaneo externo. No afecta a los elementos ya escaneados. Útil para reintentar después de corregir problemas con las claves de API."
-#: includes/Admin/ToolsPage.php:646
+#: includes/Admin/ToolsPage.php:650
msgid "Sync provider registry"
msgstr "Sincronizar registro de proveedores"
-#: includes/Admin/ToolsPage.php:647
-msgid ""
-"Creates scan entries for any newly registered external providers. Run this "
-"after adding a new provider via the mra/external/providers filter. Already-"
-"scanned attachments are not affected."
-msgstr ""
-"Crea entradas de escaneo para los proveedores externos recién registrados. "
-"Ejecútalo después de añadir un nuevo proveedor mediante el filtro mra/"
-"external/providers. Los archivos ya escaneados no se ven afectados."
+#: includes/Admin/ToolsPage.php:651
+msgid "Creates scan entries for any newly registered external providers. Run this after adding a new provider via the mra/external/providers filter. Already-scanned attachments are not affected."
+msgstr "Crea entradas de escaneo para los proveedores externos recién registrados. Ejecútalo después de añadir un nuevo proveedor mediante el filtro mra/external/providers. Los archivos ya escaneados no se ven afectados."
-#: includes/Admin/ToolsPage.php:656
+#: includes/Admin/ToolsPage.php:660
msgid "Reset usage data"
msgstr "Restablecer datos de uso"
-#: includes/Admin/ToolsPage.php:657
-msgid ""
-"Clears all usage rows and resets the usage-scan flag for every indexed "
-"attachment. File metadata in the index is preserved. A background usage scan "
-"is scheduled immediately after."
-msgstr ""
-"Elimina todas las filas de uso y restablece el indicador de escaneo de uso "
-"para cada adjunto indexado. Los metadatos del archivo en el índice se "
-"conservan. Se programa un escaneo en segundo plano inmediatamente después."
+#: includes/Admin/ToolsPage.php:661
+msgid "Clears all usage rows and resets the usage-scan flag for every indexed attachment. File metadata in the index is preserved. A background usage scan is scheduled immediately after."
+msgstr "Elimina todas las filas de uso y restablece el indicador de escaneo de uso para cada adjunto indexado. Los metadatos del archivo en el índice se conservan. Se programa un escaneo en segundo plano inmediatamente después."
-#: includes/Admin/ToolsPage.php:659
+#: includes/Admin/ToolsPage.php:663
msgid "This will delete all usage data. Continue?"
msgstr "Esto eliminará todos los datos de uso. ¿Continuar?"
-#: includes/Admin/ToolsPage.php:663
+#: includes/Admin/ToolsPage.php:667
msgid "Re-index media library"
msgstr "Re-indexar la biblioteca de medios"
-#: includes/Admin/ToolsPage.php:664
-msgid ""
-"Deletes all index and usage entries, then schedules a full fresh re-index. "
-"External scan results are not affected. Useful if many media files have been "
-"added or removed."
-msgstr ""
-"Elimina todas las entradas del índice y de uso, luego programa una re-"
-"indexación completa. Los resultados del escaneo externo no se ven afectados. "
-"Útil si se han añadido o eliminado muchos archivos multimedia."
+#: includes/Admin/ToolsPage.php:668
+msgid "Deletes all index and usage entries, then schedules a full fresh re-index. External scan results are not affected. Useful if many media files have been added or removed."
+msgstr "Elimina todas las entradas del índice y de uso, luego programa una re-indexación completa. Los resultados del escaneo externo no se ven afectados. Útil si se han añadido o eliminado muchos archivos multimedia."
-#: includes/Admin/ToolsPage.php:666
+#: includes/Admin/ToolsPage.php:670
msgid "This will delete all index and usage data. Continue?"
msgstr "Esto eliminará todos los datos del índice y de uso. ¿Continuar?"
-#: includes/Admin/ToolsPage.php:670
+#: includes/Admin/ToolsPage.php:674
msgid "Purge external data"
msgstr "Purgar datos externos"
-#: includes/Admin/ToolsPage.php:671
-msgid ""
-"Deletes all external scan results and resets every attachment's external "
-"status to pending. Use this before switching API providers or to force a "
-"complete re-scan."
-msgstr ""
-"Elimina todos los resultados del escaneo externo y restablece el estado "
-"externo de cada adjunto a pendiente. Úsalo antes de cambiar de proveedores "
-"de API o para forzar un escaneo completo."
+#: includes/Admin/ToolsPage.php:675
+msgid "Deletes all external scan results and resets every attachment's external status to pending. Use this before switching API providers or to force a complete re-scan."
+msgstr "Elimina todos los resultados del escaneo externo y restablece el estado externo de cada adjunto a pendiente. Úsalo antes de cambiar de proveedores de API o para forzar un escaneo completo."
-#: includes/Admin/ToolsPage.php:673
+#: includes/Admin/ToolsPage.php:677
msgid "This will delete all external scan results. Continue?"
msgstr "Esto eliminará todos los resultados del escaneo externo. ¿Continuar?"
-#: includes/Admin/ToolsPage.php:677
+#: includes/Admin/ToolsPage.php:681
msgid "Reset all data"
msgstr "Restablecer todos los datos"
-#: includes/Admin/ToolsPage.php:678
-msgid ""
-"Truncates all three plugin tables (index, usage, external results) and "
-"schedules a fresh indexing run. Use this to start completely from scratch."
-msgstr ""
-"Vacía las tres tablas del plugin (índice, uso, resultados externos) y "
-"programa una nueva indexación. Úsalo para empezar completamente desde cero."
+#: includes/Admin/ToolsPage.php:682
+msgid "Truncates all three plugin tables (index, usage, external results) and schedules a fresh indexing run. Use this to start completely from scratch."
+msgstr "Vacía las tres tablas del plugin (índice, uso, resultados externos) y programa una nueva indexación. Úsalo para empezar completamente desde cero."
-#: includes/Admin/ToolsPage.php:680
-msgid ""
-"This will permanently delete ALL plugin data and cannot be undone. Are you "
-"absolutely sure?"
-msgstr ""
-"Esto eliminará TODOS los datos del plugin de forma permanente y no se puede "
-"deshacer. ¿Estás absolutamente seguro?"
+#: includes/Admin/ToolsPage.php:684
+msgid "This will permanently delete ALL plugin data and cannot be undone. Are you absolutely sure?"
+msgstr "Esto eliminará TODOS los datos del plugin de forma permanente y no se puede deshacer. ¿Estás absolutamente seguro?"
-#: includes/Admin/ToolsPage.php:691
+#: includes/Admin/ToolsPage.php:695
msgid "Destructive operations"
msgstr "Operaciones destructivas"
-#: includes/Admin/ToolsPage.php:694
-msgid ""
-"These operations permanently delete plugin data. Intended for forced "
-"rescans, troubleshooting, or starting fresh. A confirmation prompt will "
-"appear before any action is taken."
-msgstr ""
-"Estas operaciones eliminan datos del plugin de forma permanente. Pensadas "
-"para forzar re-escaneos, solucionar problemas o empezar desde cero. "
-"Aparecerá una confirmación antes de ejecutar cualquier acción."
+#: includes/Admin/ToolsPage.php:698
+msgid "These operations permanently delete plugin data. Intended for forced rescans, troubleshooting, or starting fresh. A confirmation prompt will appear before any action is taken."
+msgstr "Estas operaciones eliminan datos del plugin de forma permanente. Pensadas para forzar re-escaneos, solucionar problemas o empezar desde cero. Aparecerá una confirmación antes de ejecutar cualquier acción."
-#: includes/Admin/ToolsPage.php:742
+#: includes/Admin/ToolsPage.php:746
msgid "Index media files"
msgstr "Indexar archivos multimedia"
-#: includes/Admin/ToolsPage.php:743
-msgid ""
-"Discovers unindexed images and registers them in the plugin index. Run this "
-"first."
-msgstr ""
-"Descubre imágenes no indexadas y las registra en el índice del plugin. "
-"Ejecútalo primero."
-
#: includes/Admin/ToolsPage.php:747
+msgid "Discovers unindexed images and registers them in the plugin index. Run this first."
+msgstr "Descubre imágenes no indexadas y las registra en el índice del plugin. Ejecútalo primero."
+
+#: includes/Admin/ToolsPage.php:751
msgid "Scan usage"
msgstr "Escanear uso"
-#: includes/Admin/ToolsPage.php:748
-msgid ""
-"Checks every indexed image for usage across posts, pages, and custom fields."
-msgstr ""
-"Comprueba el uso de cada imagen indexada en entradas, páginas y campos "
-"personalizados."
+#: includes/Admin/ToolsPage.php:752
+msgid "Checks every indexed image for usage across posts, pages, and custom fields."
+msgstr "Comprueba el uso de cada imagen indexada en entradas, páginas y campos personalizados."
-#: includes/Admin/ToolsPage.php:753
-msgid ""
-"Sends images to external providers for reverse-image search. Requires API "
-"keys in Settings."
-msgstr ""
-"Envía imágenes a proveedores externos para búsqueda inversa de imágenes. "
-"Requiere claves de API en Ajustes."
+#: includes/Admin/ToolsPage.php:757
+msgid "Sends images to external providers for reverse-image search. Requires API keys in Settings."
+msgstr "Envía imágenes a proveedores externos para búsqueda inversa de imágenes. Requiere claves de API en Ajustes."
-#: includes/Admin/ToolsPage.php:770
+#: includes/Admin/ToolsPage.php:774
msgid "Run now"
msgstr "Ejecutar ahora"
-#: includes/Admin/ToolsPage.php:773
+#: includes/Admin/ToolsPage.php:777
msgid "Stop"
msgstr "Detener"
#. translators: %s: DB version number
-#: includes/CLI/Command.php:49
+#: includes/CLI/Command.php:53
#, php-format
msgid "Media Audit tables ready. DB version: %s"
msgstr "Tablas de Auditoría de medios listas. Versión de BD: %s"
#. translators: %s: plugin version
-#: includes/CLI/Command.php:73
+#: includes/CLI/Command.php:77
#, php-format
msgid "Plugin version : %s"
msgstr "Versión del plugin : %s"
#. translators: %s: DB version number
-#: includes/CLI/Command.php:80
+#: includes/CLI/Command.php:84
#, php-format
msgid "DB version : %s"
msgstr "Versión de BD : %s"
-#: includes/CLI/Command.php:118
+#: includes/CLI/Command.php:122
msgid "Indexing attachments…"
msgstr "Indexando adjuntos…"
#. translators: 1: newly indexed count, 2: remaining count
-#: includes/CLI/Command.php:130
+#: includes/CLI/Command.php:134
#, php-format
msgid "Indexed %1$d (%2$d remaining)"
msgstr "Indexados %1$d (%2$d restantes)"
#. translators: %d: total indexed count
-#: includes/CLI/Command.php:141
+#: includes/CLI/Command.php:145
#, php-format
msgid "Indexing complete. %d attachments in index."
msgstr "Indexación completa. %d adjuntos en el índice."
-#: includes/CLI/Command.php:147
+#: includes/CLI/Command.php:151
msgid "Scanning usage…"
msgstr "Escaneando uso…"
#. translators: 1: scanned count, 2: remaining count
-#: includes/CLI/Command.php:159 includes/CLI/Command.php:223
+#: includes/CLI/Command.php:163 includes/CLI/Command.php:227
#, php-format
msgid "Scanned %1$d (%2$d remaining)"
msgstr "Escaneados %1$d (%2$d restantes)"
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:170
+#: includes/CLI/Command.php:174
#, php-format
msgid "Scan complete. %d attachments scanned."
msgstr "Escaneo completo. %d adjuntos escaneados."
-#: includes/CLI/Command.php:208
+#: includes/CLI/Command.php:212
msgid "Running external scans…"
msgstr "Ejecutando escaneos externos…"
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:234
+#: includes/CLI/Command.php:238
#, php-format
msgid "External scan complete. %d attachments processed."
msgstr "Escaneo externo completo. %d adjuntos procesados."
-#: includes/Core/Plugin.php:154 includes/Core/Plugin.php:155
+#: includes/Core/Plugin.php:174 includes/Core/Plugin.php:175
+#: includes/Network/Plugin.php:113
msgid "Tools"
msgstr "Herramientas"
-#: includes/Core/Plugin.php:167 includes/Core/Plugin.php:168
+#: includes/Core/Plugin.php:187 includes/Core/Plugin.php:188
+#: includes/Network/Plugin.php:142
msgid "Settings"
msgstr "Ajustes"
-#: includes/Core/Plugin.php:176
+#: includes/Core/Plugin.php:196
msgid "Attachment Report"
msgstr "Informe del archivo adjunto"
-#: includes/Privacy/DataExporter.php:88
+#: includes/Core/Plugin.php:278
+msgid "This plugin is managed at the network level. Media data for this site is collected and stored here, but viewed and managed from the Network Admin panel."
+msgstr "Este plugin se gestiona a nivel de red. Los datos multimedia de este sitio se recopilan y se almacenan aquí, pero se consultan y se gestionan desde el panel de administración de la red."
+
+#: includes/Core/Plugin.php:282
+msgid "Go to Network Media Audit →"
+msgstr "Ir a Auditoría de medios de la red →"
+
+#: includes/Network/AlertsPage.php:42 includes/Network/Plugin.php:103
+msgid "Network Alerts"
+msgstr "Alertas de la red"
+
+#: includes/Network/AlertsPage.php:49
+msgid "Active copyright-risk alerts across all sites. To dismiss an alert, visit the Alerts page on the corresponding site."
+msgstr "Alertas activas de riesgo de derechos de autor en todos los sitios. Para descartar una alerta, visita la página de Alertas del sitio correspondiente."
+
+#: includes/Network/AuditPage.php:40 includes/Network/Plugin.php:83
+#: includes/Network/Plugin.php:94
+msgid "Network Media Audit"
+msgstr "Auditoría de medios de la red"
+
+#: includes/Network/AuditPage.php:44
+msgid "Total Indexed"
+msgstr "Total indexadas"
+
+#: includes/Network/AuditPage.php:46
+msgid "Active Alerts"
+msgstr "Alertas activas"
+
+#: includes/Network/AuditPage.php:47
+msgid "Sites"
+msgstr "Sitios"
+
+#: includes/Network/NetworkListTable.php:66 includes/Network/ToolsPage.php:203
+msgid "Site"
+msgstr "Sitio"
+
+#: includes/Network/NetworkListTable.php:302
+msgid "No media attachments found across the network."
+msgstr "No se han encontrado adjuntos multimedia en la red."
+
+#: includes/Network/Plugin.php:95
+msgid "Network Audit"
+msgstr "Auditoría de la red"
+
+#: includes/Network/Plugin.php:112 includes/Network/ToolsPage.php:156
+msgid "Network Tools"
+msgstr "Herramientas de la red"
+
+#: includes/Network/Plugin.php:124
+msgid "Media Audit — Network"
+msgstr "Auditoría de medios — Red"
+
+#: includes/Network/Plugin.php:141
+msgid "Network Settings"
+msgstr "Ajustes de la red"
+
+#: includes/Network/Settings.php:72
+msgid "You do not have permission to manage network settings."
+msgstr "No tienes permiso para gestionar los ajustes de la red."
+
+#: includes/Network/Settings.php:198 includes/Network/Settings.php:266
+msgid "Mode"
+msgstr "Modo"
+
+#: includes/Network/Settings.php:211
+msgid "Media Audit — Network Settings"
+msgstr "Auditoría de medios — Ajustes de la red"
+
+#: includes/Network/Settings.php:216
+msgid "Settings saved."
+msgstr "Ajustes guardados."
+
+#: includes/Network/Settings.php:260
+msgid "Operating Mode"
+msgstr "Modo de funcionamiento"
+
+#: includes/Network/Settings.php:262
+msgid "Choose how Media Audit operates across this network."
+msgstr "Elige cómo funciona Auditoría de medios en esta red."
+
+#: includes/Network/Settings.php:272
+msgid "Per site"
+msgstr "Por sitio"
+
+#: includes/Network/Settings.php:275
+msgid "Each site manages its own media audit independently. No network admin aggregation. Site admins configure API credentials and run scans separately."
+msgstr "Cada sitio gestiona su propia auditoría de medios de forma independiente, sin agregación en la administración de la red. Los administradores de cada sitio configuran sus credenciales de API y ejecutan los escaneos por separado."
+
+#: includes/Network/Settings.php:281
+msgid "Central (network admin)"
+msgstr "Central (administración de la red)"
+
+#: includes/Network/Settings.php:284
+msgid "API credentials and filter lists are configured here and shared across all sites. Data is stored per site but viewed and managed from this network admin panel. Site-level admin pages show a placeholder notice."
+msgstr "Las credenciales de API y las listas de filtros se configuran aquí y se comparten entre todos los sitios. Los datos se almacenan por sitio, pero se consultan y se gestionan desde este panel de administración de la red. Las páginas de administración de cada sitio muestran un aviso en su lugar."
+
+#: includes/Network/Settings.php:306
+msgid "These credentials are shared across all sites in the network (central mode only)."
+msgstr "Estas credenciales se comparten entre todos los sitios de la red (solo en modo central)."
+
+#: includes/Network/Settings.php:342
+msgid "Hostname lists applied to all sites in the network (central mode only)."
+msgstr "Listas de hostnames aplicadas a todos los sitios de la red (solo en modo central)."
+
+#: includes/Network/Settings.php:344
+msgid "Matches from these hostnames are flagged as copyright alerts. One hostname per line."
+msgstr "Las coincidencias de estos hostnames se marcan como alertas de derechos de autor. Un hostname por línea."
+
+#: includes/Network/Settings.php:348
+msgid "Matches from these hostnames are silently ignored. One hostname per line."
+msgstr "Las coincidencias de estos hostnames se ignoran silenciosamente. Un hostname por línea."
+
+#: includes/Network/Settings.php:370
+msgid "Images to scan per scheduled batch per site (1–100). Default: 10."
+msgstr "Número de imágenes a escanear por lote programado y por sitio (1–100). Predeterminado: 10."
+
+#: includes/Network/Settings.php:374
+msgid "Rate Limit (req/min)"
+msgstr "Límite de velocidad (solicitudes/min)"
+
+#: includes/Network/Settings.php:378
+msgid "Maximum API requests per minute per provider per site (1–60). Default: 10."
+msgstr "Máximo de solicitudes de API por minuto, proveedor y sitio (1–60). Predeterminado: 10."
+
+#: includes/Network/ToolsPage.php:160
+msgid "Per-Site Status"
+msgstr "Estado por sitio"
+
+#: includes/Network/ToolsPage.php:163
+msgid "Network Operations"
+msgstr "Operaciones de la red"
+
+#: includes/Network/ToolsPage.php:182
+msgid "Media Audit — Network Overview"
+msgstr "Auditoría de medios — Resumen de la red"
+
+#: includes/Network/ToolsPage.php:184
+msgid "Currently running in per-site mode. Each site manages its own audit independently. Switch to central mode in Network Settings to manage all sites from here."
+msgstr "Actualmente se ejecuta en modo por sitio: cada sitio gestiona su propia auditoría de forma independiente. Cambia al modo central en los ajustes de la red para gestionar todos los sitios desde aquí."
+
+#: includes/Network/ToolsPage.php:204
+msgid "DB Schema"
+msgstr "Esquema de BD"
+
+#: includes/Network/ToolsPage.php:205
+msgid "Indexed"
+msgstr "Indexadas"
+
+#: includes/Network/ToolsPage.php:206
+msgid "External"
+msgstr "Externo"
+
+#: includes/Network/ToolsPage.php:208
+msgid "Pending Jobs"
+msgstr "Trabajos pendientes"
+
+#. translators: 1: indexed 2: total
+#: includes/Network/ToolsPage.php:246
+#, php-format
+msgid "%1$s / %2$s"
+msgstr "%1$s / %2$s"
+
+#. translators: 1: scanned 2: matches 3: errors
+#: includes/Network/ToolsPage.php:256
+#, php-format
+msgid "%1$s scanned · %2$s matches · %3$s errors"
+msgstr "%1$s escaneadas · %2$s coincidencias · %3$s errores"
+
+#: includes/Network/ToolsPage.php:265
+msgid "Running"
+msgstr "En ejecución"
+
+#: includes/Network/ToolsPage.php:272
+msgid "Status cached for 5 minutes."
+msgstr "Estado en caché durante 5 minutos."
+
+#: includes/Network/ToolsPage.php:274
+msgid "Refresh now"
+msgstr "Actualizar ahora"
+
+#: includes/Network/ToolsPage.php:289
+msgid "Schedule Internal Scan — All Sites"
+msgstr "Programar escaneo interno — Todos los sitios"
+
+#: includes/Network/ToolsPage.php:290
+msgid "Queues indexing and usage scanning jobs on every active site. Safe to run at any time — skips already-indexed attachments."
+msgstr "Encola trabajos de indexación y de escaneo de uso en todos los sitios activos. Se puede ejecutar en cualquier momento: omite los adjuntos ya indexados."
+
+#: includes/Network/ToolsPage.php:295
+msgid "Schedule External Scan — All Sites"
+msgstr "Programar escaneo externo — Todos los sitios"
+
+#: includes/Network/ToolsPage.php:296
+msgid "Queues reverse-image-search jobs on every active site. Requires API keys configured in Network Settings."
+msgstr "Encola trabajos de búsqueda inversa por imagen en todos los sitios activos. Requiere claves de API configuradas en los ajustes de la red."
+
+#: includes/Network/ToolsPage.php:301
+msgid "Requeue Scan Errors — All Sites"
+msgstr "Reencolar errores de escaneo — Todos los sitios"
+
+#: includes/Network/ToolsPage.php:302
+msgid "Re-queues attachments that failed with an error on the last external scan run across all sites."
+msgstr "Reencola los adjuntos que fallaron con un error en la última ejecución del escaneo externo en todos los sitios."
+
+#: includes/Network/ToolsPage.php:316
+msgid "Schedule"
+msgstr "Programar"
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:368
+#, php-format
+msgid "Internal scan scheduled on %s sites."
+msgstr "Escaneo interno programado en %s sitios."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:371
+#, php-format
+msgid "External scan scheduled on %s sites."
+msgstr "Escaneo externo programado en %s sitios."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:374
+#, php-format
+msgid "Errors re-queued on %s sites."
+msgstr "Errores reencolados en %s sitios."
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:377
+#, php-format
+msgid "Operation completed on %s sites."
+msgstr "Operación completada en %s sitios."
+
+#: includes/Privacy/DataExporter.php:92
msgid "Media Audit – Indexed Files"
msgstr "Auditoría de medios – Archivos indexados"
-#: includes/Privacy/DataExporter.php:104
+#: includes/Privacy/DataExporter.php:108
msgid "Media Audit – External Scan Results"
msgstr "Auditoría de medios – Resultados de escaneo externo"
-#: includes/Privacy/DataExporter.php:269
+#: includes/Privacy/DataExporter.php:273
msgid "External Scan Status"
msgstr "Estado del escaneo externo"
-#: includes/Privacy/DataExporter.php:273
+#: includes/Privacy/DataExporter.php:277
msgid "Last Scanned (internal)"
msgstr "Último escaneo (interno)"
-#: includes/Privacy/DataExporter.php:277
+#: includes/Privacy/DataExporter.php:281
msgid "Last Scanned (external)"
msgstr "Último escaneo (externo)"
-#: includes/Privacy/DataExporter.php:303
+#: includes/Privacy/DataExporter.php:307
msgid "Provider"
msgstr "Proveedor"
-#: includes/Privacy/DataExporter.php:307
+#: includes/Privacy/DataExporter.php:311
msgid "Match Count"
msgstr "Número de coincidencias"
-#: includes/Privacy/DataExporter.php:311
+#: includes/Privacy/DataExporter.php:315
msgid "Scanned At"
msgstr "Escaneado el"
@@ -1359,9 +1463,6 @@ msgstr "Escaneado el"
#~ msgid "Export External Results CSV"
#~ msgstr "Exportar CSV de resultados externos"
-#~ msgid "https://robotstxt.es/plugins/media-audit/"
-#~ msgstr "https://robotstxt.es/plugins/media-audit/"
-
#~ msgid "Javier Casares"
#~ msgstr "Javier Casares"
diff --git a/languages/robotstxt-mediaaudit.pot b/languages/robotstxt-mediaaudit.pot
index 8e69208..4a53fe6 100644
--- a/languages/robotstxt-mediaaudit.pot
+++ b/languages/robotstxt-mediaaudit.pot
@@ -2,14 +2,14 @@
# This file is distributed under the GPL-3.0-or-later.
msgid ""
msgstr ""
-"Project-Id-Version: Media Audit (by ROBOTSTXT) 1.7.0\n"
+"Project-Id-Version: Media Audit (by ROBOTSTXT) 1.8.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/robotstxt-mediaaudit\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2026-05-11T07:13:58+00:00\n"
+"POT-Creation-Date: 2026-08-17T18:13:19+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: robotstxt-mediaaudit\n"
@@ -21,7 +21,7 @@ msgstr ""
#. Plugin URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit"
+msgid "https://www.robotstxt.software/plugins/robotstxt-mediaaudit/"
msgstr ""
#. Description of the plugin
@@ -36,254 +36,269 @@ msgstr ""
#. Author URI of the plugin
#: robotstxt-mediaaudit.php
-msgid "https://www.robotstxt.es/"
+msgid "https://www.robotstxt.software/"
msgstr ""
-#: includes/Admin/AlertsPage.php:210
+#: includes/Admin/AlertsPage.php:211
+#: includes/Admin/AlertsPage.php:494
+#: includes/Admin/ManagerNotice.php:133
+msgid "Dismiss"
+msgstr ""
+
+#: includes/Admin/AlertsPage.php:212
+#: includes/Admin/AlertsPage.php:517
+msgid "Cancel"
+msgstr ""
+
+#: includes/Admin/AlertsPage.php:231
msgid "You do not have permission to perform this action."
msgstr ""
-#: includes/Admin/AlertsPage.php:263
-#: includes/Admin/AttachmentDetailPage.php:40
-#: includes/Admin/AuditPage.php:136
-#: includes/Admin/Settings.php:898
-#: includes/Admin/ToolsPage.php:253
+#: includes/Admin/AlertsPage.php:284
+#: includes/Admin/AttachmentDetailPage.php:44
+#: includes/Admin/AuditPage.php:140
+#: includes/Admin/Settings.php:956
+#: includes/Admin/ToolsPage.php:257
+#: includes/Network/AlertsPage.php:32
+#: includes/Network/AuditPage.php:31
+#: includes/Network/Settings.php:188
+#: includes/Network/ToolsPage.php:149
+#: includes/Network/ToolsPage.php:176
msgid "You do not have permission to access this page."
msgstr ""
-#: includes/Admin/AlertsPage.php:280
-#: includes/Core/Plugin.php:141
-#: includes/Core/Plugin.php:142
+#: includes/Admin/AlertsPage.php:301
+#: includes/Core/Plugin.php:161
+#: includes/Core/Plugin.php:162
+#: includes/Network/Plugin.php:104
+#: includes/Network/ToolsPage.php:207
msgid "Alerts"
msgstr ""
#. translators: %d: count of active alerts
-#: includes/Admin/AlertsPage.php:292
+#: includes/Admin/AlertsPage.php:313
#, php-format
msgid "Active Alerts (%d)"
msgstr ""
#. translators: %d: count of dismissed alerts
-#: includes/Admin/AlertsPage.php:304
+#: includes/Admin/AlertsPage.php:325
#, php-format
msgid "Dismissed Alerts (%d)"
msgstr ""
-#: includes/Admin/AlertsPage.php:376
+#: includes/Admin/AlertsPage.php:397
msgid "Alert dismissed successfully."
msgstr ""
-#: includes/Admin/AlertsPage.php:377
+#: includes/Admin/AlertsPage.php:398
msgid "Alert reactivated successfully."
msgstr ""
-#: includes/Admin/AlertsPage.php:378
+#: includes/Admin/AlertsPage.php:399
msgid "An error occurred. Please try again."
msgstr ""
-#: includes/Admin/AlertsPage.php:382
-#: includes/Admin/ToolsPage.php:376
+#: includes/Admin/AlertsPage.php:403
+#: includes/Admin/ToolsPage.php:380
msgid "Operation completed."
msgstr ""
-#: includes/Admin/AlertsPage.php:402
+#: includes/Admin/AlertsPage.php:423
msgid "No active alerts found."
msgstr ""
-#: includes/Admin/AlertsPage.php:409
-#: includes/Admin/AlertsPage.php:541
-#: includes/Admin/MediaListTable.php:55
+#: includes/Admin/AlertsPage.php:430
+#: includes/Admin/AlertsPage.php:562
+#: includes/Admin/MediaListTable.php:59
msgid "Thumbnail"
msgstr ""
-#: includes/Admin/AlertsPage.php:410
-#: includes/Admin/AlertsPage.php:542
-#: includes/Admin/AttachmentDetailPage.php:87
-#: includes/Admin/AuditPage.php:554
-#: includes/Admin/MediaListTable.php:56
-#: includes/Privacy/DataExporter.php:261
+#: includes/Admin/AlertsPage.php:431
+#: includes/Admin/AlertsPage.php:563
+#: includes/Admin/AttachmentDetailPage.php:91
+#: includes/Admin/AuditPage.php:558
+#: includes/Admin/MediaListTable.php:60
+#: includes/Network/NetworkListTable.php:67
+#: includes/Privacy/DataExporter.php:265
msgid "Filename"
msgstr ""
-#: includes/Admin/AlertsPage.php:411
-#: includes/Admin/AlertsPage.php:543
-#: includes/Admin/AttachmentDetailPage.php:372
-#: includes/Admin/AuditPage.php:566
+#: includes/Admin/AlertsPage.php:432
+#: includes/Admin/AlertsPage.php:564
+#: includes/Admin/AttachmentDetailPage.php:376
+#: includes/Admin/AuditPage.php:570
msgid "Alert Domains"
msgstr ""
-#: includes/Admin/AlertsPage.php:412
+#: includes/Admin/AlertsPage.php:433
msgid "Usage"
msgstr ""
-#: includes/Admin/AlertsPage.php:413
-#: includes/Admin/AlertsPage.php:547
+#: includes/Admin/AlertsPage.php:434
+#: includes/Admin/AlertsPage.php:568
msgid "Actions"
msgstr ""
-#: includes/Admin/AlertsPage.php:447
-#: includes/Admin/AlertsPage.php:587
-#: includes/Admin/MediaListTable.php:172
+#: includes/Admin/AlertsPage.php:468
+#: includes/Admin/AlertsPage.php:608
+#: includes/Admin/MediaListTable.php:176
msgid "Edit"
msgstr ""
-#: includes/Admin/AlertsPage.php:449
-#: includes/Admin/AlertsPage.php:589
-#: includes/Admin/MediaListTable.php:182
+#: includes/Admin/AlertsPage.php:470
+#: includes/Admin/AlertsPage.php:610
+#: includes/Admin/MediaListTable.php:186
msgid "Full Report"
msgstr ""
-#: includes/Admin/AlertsPage.php:459
-#: includes/Admin/AuditPage.php:382
-#: includes/Admin/AuditPage.php:489
-#: includes/Admin/MediaListTable.php:315
-#: includes/Admin/MediaListTable.php:452
+#: includes/Admin/AlertsPage.php:480
+#: includes/Admin/AuditPage.php:386
+#: includes/Admin/AuditPage.php:493
+#: includes/Admin/MediaListTable.php:319
+#: includes/Admin/MediaListTable.php:456
+#: includes/Network/NetworkListTable.php:69
+#: includes/Network/NetworkListTable.php:195
msgid "Alert"
msgstr ""
-#: includes/Admin/AlertsPage.php:473
-msgid "Dismiss"
-msgstr ""
-
-#: includes/Admin/AlertsPage.php:485
+#: includes/Admin/AlertsPage.php:506
msgid "Notes (optional):"
msgstr ""
-#: includes/Admin/AlertsPage.php:495
+#: includes/Admin/AlertsPage.php:516
msgid "Confirm Dismiss"
msgstr ""
-#: includes/Admin/AlertsPage.php:496
-msgid "Cancel"
-msgstr ""
-
-#: includes/Admin/AlertsPage.php:534
+#: includes/Admin/AlertsPage.php:555
msgid "No dismissed alerts."
msgstr ""
-#: includes/Admin/AlertsPage.php:544
+#: includes/Admin/AlertsPage.php:565
msgid "Notes"
msgstr ""
-#: includes/Admin/AlertsPage.php:545
+#: includes/Admin/AlertsPage.php:566
msgid "Dismissed By"
msgstr ""
-#: includes/Admin/AlertsPage.php:546
+#: includes/Admin/AlertsPage.php:567
msgid "Dismissed At"
msgstr ""
-#: includes/Admin/AlertsPage.php:599
-#: includes/Admin/AuditPage.php:569
-#: includes/Admin/MediaListTable.php:302
+#: includes/Admin/AlertsPage.php:620
+#: includes/Admin/AuditPage.php:573
+#: includes/Admin/MediaListTable.php:306
+#: includes/Network/NetworkListTable.php:192
msgid "Dismissed"
msgstr ""
-#: includes/Admin/AlertsPage.php:616
+#: includes/Admin/AlertsPage.php:637
msgid "Reactivate"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:51
-#: includes/Admin/AttachmentDetailPage.php:56
-#: includes/Admin/AuditPage.php:181
+#: includes/Admin/AttachmentDetailPage.php:55
+#: includes/Admin/AttachmentDetailPage.php:60
+#: includes/Admin/AuditPage.php:185
msgid "Invalid attachment ID."
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:64
+#: includes/Admin/AttachmentDetailPage.php:68
msgid "← Media Audit"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:69
+#: includes/Admin/AttachmentDetailPage.php:73
msgid "File Information"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:81
-#: includes/Admin/MediaListTable.php:57
+#: includes/Admin/AttachmentDetailPage.php:85
+#: includes/Admin/MediaListTable.php:61
msgid "ID"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:94
-#: includes/Admin/AuditPage.php:555
-#: includes/Privacy/DataExporter.php:265
+#: includes/Admin/AttachmentDetailPage.php:98
+#: includes/Admin/AuditPage.php:559
+#: includes/Privacy/DataExporter.php:269
msgid "File URL"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:102
-#: includes/Admin/AuditPage.php:556
+#: includes/Admin/AttachmentDetailPage.php:106
+#: includes/Admin/AuditPage.php:560
msgid "MIME Type"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:112
+#: includes/Admin/AttachmentDetailPage.php:116
msgid "File size"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:118
+#: includes/Admin/AttachmentDetailPage.php:122
msgid "Internal scan date"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:124
-#: includes/Admin/AuditPage.php:559
-#: includes/Admin/MediaListTable.php:60
+#: includes/Admin/AttachmentDetailPage.php:128
+#: includes/Admin/AuditPage.php:563
+#: includes/Admin/MediaListTable.php:64
+#: includes/Network/NetworkListTable.php:68
msgid "External Status"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:139
-#: includes/Admin/AuditPage.php:245
+#: includes/Admin/AttachmentDetailPage.php:143
+#: includes/Admin/AuditPage.php:249
msgid "Internal Usage"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:144
-#: includes/Admin/AuditPage.php:189
+#: includes/Admin/AttachmentDetailPage.php:148
+#: includes/Admin/AuditPage.php:193
msgid "Featured Image"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:145
-#: includes/Admin/AuditPage.php:190
+#: includes/Admin/AttachmentDetailPage.php:149
+#: includes/Admin/AuditPage.php:194
msgid "Post Content"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:146
-#: includes/Admin/AuditPage.php:191
+#: includes/Admin/AttachmentDetailPage.php:150
+#: includes/Admin/AuditPage.php:195
msgid "Custom Field"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:150
+#: includes/Admin/AttachmentDetailPage.php:154
msgid "Not used in any post."
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:154
-#: includes/Admin/AuditPage.php:199
+#: includes/Admin/AttachmentDetailPage.php:158
+#: includes/Admin/AuditPage.php:203
msgid "Post"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:155
-#: includes/Admin/AuditPage.php:200
+#: includes/Admin/AttachmentDetailPage.php:159
+#: includes/Admin/AuditPage.php:204
msgid "Type"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:156
-#: includes/Admin/AuditPage.php:201
+#: includes/Admin/AttachmentDetailPage.php:160
+#: includes/Admin/AuditPage.php:205
msgid "Context"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:157
-#: includes/Admin/AuditPage.php:202
-#: includes/Admin/AuditPage.php:374
+#: includes/Admin/AttachmentDetailPage.php:161
+#: includes/Admin/AuditPage.php:206
+#: includes/Admin/AuditPage.php:378
msgid "Status"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:198
-#: includes/Admin/AuditPage.php:294
+#: includes/Admin/AttachmentDetailPage.php:202
+#: includes/Admin/AuditPage.php:298
msgid "External Scan Results"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:260
+#: includes/Admin/AttachmentDetailPage.php:264
msgid "No external scan data available."
msgstr ""
#. translators: %d: number of external matches
-#: includes/Admin/AttachmentDetailPage.php:313
-#: includes/Admin/AuditPage.php:324
+#: includes/Admin/AttachmentDetailPage.php:317
+#: includes/Admin/AuditPage.php:328
#, php-format
msgid "%d match"
msgid_plural "%d matches"
@@ -291,964 +306,1230 @@ msgstr[0] ""
msgstr[1] ""
#. translators: %s: scan date string
-#: includes/Admin/AttachmentDetailPage.php:321
+#: includes/Admin/AttachmentDetailPage.php:325
#, php-format
msgid "scanned %s"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:373
+#: includes/Admin/AttachmentDetailPage.php:377
msgid "These domains are associated with copyright-protected content and may indicate a copyright risk."
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:376
-#: includes/Admin/AttachmentDetailPage.php:392
-#: includes/Admin/AttachmentDetailPage.php:408
-#: includes/Admin/AuditPage.php:372
+#: includes/Admin/AttachmentDetailPage.php:380
+#: includes/Admin/AttachmentDetailPage.php:396
+#: includes/Admin/AttachmentDetailPage.php:412
+#: includes/Admin/AuditPage.php:376
msgid "Domain"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:377
-#: includes/Admin/AttachmentDetailPage.php:393
-#: includes/Admin/AttachmentDetailPage.php:409
-#: includes/Admin/AuditPage.php:373
+#: includes/Admin/AttachmentDetailPage.php:381
+#: includes/Admin/AttachmentDetailPage.php:397
+#: includes/Admin/AttachmentDetailPage.php:413
+#: includes/Admin/AuditPage.php:377
msgid "Occurrences"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:389
-#: includes/Admin/AuditPage.php:567
+#: includes/Admin/AttachmentDetailPage.php:393
+#: includes/Admin/AuditPage.php:571
msgid "Other Domains"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:405
-#: includes/Admin/AuditPage.php:568
+#: includes/Admin/AttachmentDetailPage.php:409
+#: includes/Admin/AuditPage.php:572
msgid "Ignored Domains"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:447
+#: includes/Admin/AttachmentDetailPage.php:451
msgid "Pages with this image"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:449
-#: includes/Admin/AttachmentDetailPage.php:550
-#: includes/Admin/AttachmentDetailPage.php:663
+#: includes/Admin/AttachmentDetailPage.php:453
+#: includes/Admin/AttachmentDetailPage.php:554
+#: includes/Admin/AttachmentDetailPage.php:667
msgid "Page URL"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:450
+#: includes/Admin/AttachmentDetailPage.php:454
msgid "Page Title"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:473
+#: includes/Admin/AttachmentDetailPage.php:477
msgid "Full image matches"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:474
-#: includes/Admin/AttachmentDetailPage.php:492
-#: includes/Admin/AttachmentDetailPage.php:551
-#: includes/Admin/AttachmentDetailPage.php:664
+#: includes/Admin/AttachmentDetailPage.php:478
+#: includes/Admin/AttachmentDetailPage.php:496
+#: includes/Admin/AttachmentDetailPage.php:555
+#: includes/Admin/AttachmentDetailPage.php:668
msgid "Image URL"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:491
+#: includes/Admin/AttachmentDetailPage.php:495
msgid "Partial image matches"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:548
+#: includes/Admin/AttachmentDetailPage.php:552
msgid "Backlinks found by TinEye (sorted by crawl date, newest first)"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:552
+#: includes/Admin/AttachmentDetailPage.php:556
msgid "Crawl date"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:599
+#: includes/Admin/AttachmentDetailPage.php:603
msgid "Face detected"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:602
+#: includes/Admin/AttachmentDetailPage.php:606
msgid "Logo detected"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:605
+#: includes/Admin/AttachmentDetailPage.php:609
msgid "Landmark detected"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:608
+#: includes/Admin/AttachmentDetailPage.php:612
msgid "Stock image"
msgstr ""
#. translators: %s: copyright holder name
-#: includes/Admin/AttachmentDetailPage.php:615
+#: includes/Admin/AttachmentDetailPage.php:619
#, php-format
msgid "EXIF copyright: %s"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:620
+#: includes/Admin/AttachmentDetailPage.php:624
msgid "Risk flags"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:622
+#: includes/Admin/AttachmentDetailPage.php:626
msgid "No risk flags detected."
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:661
+#: includes/Admin/AttachmentDetailPage.php:665
msgid "Backlinks found by PicDefense"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:665
+#: includes/Admin/AttachmentDetailPage.php:669
msgid "Similarity"
msgstr ""
-#: includes/Admin/AttachmentDetailPage.php:694
+#: includes/Admin/AttachmentDetailPage.php:698
msgid "Labels"
msgstr ""
-#: includes/Admin/AuditPage.php:117
+#: includes/Admin/AuditPage.php:121
msgid "Loading…"
msgstr ""
-#: includes/Admin/AuditPage.php:118
+#: includes/Admin/AuditPage.php:122
msgid "Error loading details."
msgstr ""
-#: includes/Admin/AuditPage.php:119
-#: includes/Admin/AuditPage.php:195
+#: includes/Admin/AuditPage.php:123
+#: includes/Admin/AuditPage.php:199
msgid "This image is not used in any post."
msgstr ""
-#: includes/Admin/AuditPage.php:120
-#: includes/Admin/AuditPage.php:157
+#: includes/Admin/AuditPage.php:124
+#: includes/Admin/AuditPage.php:161
msgid "Usage Details"
msgstr ""
-#: includes/Admin/AuditPage.php:143
-#: includes/Core/Plugin.php:118
-#: includes/Core/Plugin.php:119
-#: includes/Core/Plugin.php:132
-#: includes/Core/Plugin.php:133
-#: includes/Privacy/DataEraser.php:33
-#: includes/Privacy/DataExporter.php:45
+#: includes/Admin/AuditPage.php:147
+#: includes/Core/Plugin.php:126
+#: includes/Core/Plugin.php:127
+#: includes/Core/Plugin.php:138
+#: includes/Core/Plugin.php:139
+#: includes/Core/Plugin.php:152
+#: includes/Core/Plugin.php:153
+#: includes/Core/Plugin.php:275
+#: includes/Network/Plugin.php:84
+#: includes/Network/Plugin.php:125
+#: includes/Privacy/DataEraser.php:37
+#: includes/Privacy/DataExporter.php:49
msgid "Media Audit"
msgstr ""
-#: includes/Admin/AuditPage.php:149
+#: includes/Admin/AuditPage.php:153
msgid "Search"
msgstr ""
-#: includes/Admin/AuditPage.php:158
+#: includes/Admin/AuditPage.php:162
msgid "Close"
msgstr ""
-#: includes/Admin/AuditPage.php:176
-#: includes/Admin/AuditPage.php:530
-#: includes/Admin/AuditPage.php:806
-#: includes/Admin/AuditPage.php:838
-#: includes/Admin/ToolsPage.php:105
-#: includes/Admin/ToolsPage.php:165
+#: includes/Admin/AuditPage.php:180
+#: includes/Admin/AuditPage.php:534
+#: includes/Admin/AuditPage.php:810
+#: includes/Admin/AuditPage.php:842
+#: includes/Admin/ToolsPage.php:110
+#: includes/Admin/ToolsPage.php:169
+#: includes/Network/ToolsPage.php:78
msgid "Insufficient permissions."
msgstr ""
-#: includes/Admin/AuditPage.php:329
+#: includes/Admin/AuditPage.php:333
msgid "No matches"
msgstr ""
-#: includes/Admin/AuditPage.php:404
+#: includes/Admin/AuditPage.php:408
msgid "Consensus Domains"
msgstr ""
#. translators: %d: number of providers that agree
-#: includes/Admin/AuditPage.php:410
+#: includes/Admin/AuditPage.php:414
#, php-format
msgid "%d provider"
msgid_plural "%d providers"
msgstr[0] ""
msgstr[1] ""
-#: includes/Admin/AuditPage.php:420
+#: includes/Admin/AuditPage.php:424
msgid "View full report →"
msgstr ""
-#: includes/Admin/AuditPage.php:446
+#: includes/Admin/AuditPage.php:450
msgid "In Index"
msgstr ""
#. translators: %d: count of images not yet indexed
-#: includes/Admin/AuditPage.php:450
+#: includes/Admin/AuditPage.php:454
#, php-format
msgid "%d not yet indexed"
msgstr ""
-#: includes/Admin/AuditPage.php:453
+#: includes/Admin/AuditPage.php:457
msgid "All indexed"
msgstr ""
-#: includes/Admin/AuditPage.php:458
-#: includes/Admin/MediaListTable.php:346
+#: includes/Admin/AuditPage.php:462
+#: includes/Admin/MediaListTable.php:350
msgid "Scanned"
msgstr ""
#. translators: %d: percentage
-#: includes/Admin/AuditPage.php:461
+#: includes/Admin/AuditPage.php:465
#, php-format
msgid "%d%% of index"
msgstr ""
-#: includes/Admin/AuditPage.php:468
+#: includes/Admin/AuditPage.php:472
msgid "Used"
msgstr ""
-#: includes/Admin/AuditPage.php:474
-#: includes/Admin/MediaListTable.php:212
+#: includes/Admin/AuditPage.php:478
+#: includes/Admin/MediaListTable.php:216
msgid "Unused"
msgstr ""
-#: includes/Admin/AuditPage.php:481
+#: includes/Admin/AuditPage.php:485
+#: includes/Network/AuditPage.php:45
msgid "External Matches"
msgstr ""
-#: includes/Admin/AuditPage.php:544
+#: includes/Admin/AuditPage.php:548
msgid "Could not open output stream."
msgstr ""
-#: includes/Admin/AuditPage.php:553
-#: includes/Privacy/DataExporter.php:257
-#: includes/Privacy/DataExporter.php:299
+#: includes/Admin/AuditPage.php:557
+#: includes/Privacy/DataExporter.php:261
+#: includes/Privacy/DataExporter.php:303
msgid "Attachment ID"
msgstr ""
-#: includes/Admin/AuditPage.php:557
+#: includes/Admin/AuditPage.php:561
msgid "File Size (bytes)"
msgstr ""
-#: includes/Admin/AuditPage.php:558
+#: includes/Admin/AuditPage.php:562
msgid "Internal Scan Date"
msgstr ""
-#: includes/Admin/AuditPage.php:560
+#: includes/Admin/AuditPage.php:564
msgid "Has Alert"
msgstr ""
-#: includes/Admin/AuditPage.php:561
-#: includes/Admin/MediaListTable.php:58
+#: includes/Admin/AuditPage.php:565
+#: includes/Admin/MediaListTable.php:62
msgid "Usage Count"
msgstr ""
-#: includes/Admin/AuditPage.php:562
+#: includes/Admin/AuditPage.php:566
msgid "Used In"
msgstr ""
-#: includes/Admin/AuditPage.php:563
+#: includes/Admin/AuditPage.php:567
msgid "Google Vision — Matches"
msgstr ""
-#: includes/Admin/AuditPage.php:564
+#: includes/Admin/AuditPage.php:568
msgid "TinEye — Matches"
msgstr ""
-#: includes/Admin/AuditPage.php:565
+#: includes/Admin/AuditPage.php:569
msgid "PicDefense — Matches"
msgstr ""
-#: includes/Admin/AuditPage.php:570
+#: includes/Admin/AuditPage.php:574
msgid "Dismissed Notes"
msgstr ""
-#: includes/Admin/AuditPage.php:776
-#: includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780
+#: includes/Admin/AuditPage.php:792
msgid "Yes"
msgstr ""
-#: includes/Admin/AuditPage.php:776
-#: includes/Admin/AuditPage.php:788
+#: includes/Admin/AuditPage.php:780
+#: includes/Admin/AuditPage.php:792
msgid "No"
msgstr ""
-#: includes/Admin/MediaListTable.php:59
+#. translators: %s: Manager plugin page URL.
+#: includes/Admin/ManagerNotice.php:199
+#, php-format
+msgid "To receive plugin updates, the plugin Manager (by ROBOTSTXT) must be installed and active."
+msgstr ""
+
+#: includes/Admin/MediaListTable.php:63
msgid "Usages"
msgstr ""
-#: includes/Admin/MediaListTable.php:61
+#: includes/Admin/MediaListTable.php:65
+#: includes/Network/NetworkListTable.php:70
msgid "Last Scanned"
msgstr ""
-#: includes/Admin/MediaListTable.php:85
+#: includes/Admin/MediaListTable.php:89
+#: includes/Network/NetworkListTable.php:95
msgid "Run External Scan"
msgstr ""
-#: includes/Admin/MediaListTable.php:86
+#: includes/Admin/MediaListTable.php:90
+#: includes/Network/NetworkListTable.php:96
msgid "Purge External Data"
msgstr ""
-#: includes/Admin/MediaListTable.php:87
+#: includes/Admin/MediaListTable.php:91
msgid "Export CSV"
msgstr ""
-#: includes/Admin/MediaListTable.php:88
+#: includes/Admin/MediaListTable.php:92
msgid "Export CSV (Alerts only)"
msgstr ""
-#: includes/Admin/MediaListTable.php:177
+#: includes/Admin/MediaListTable.php:181
msgid "View Details"
msgstr ""
-#: includes/Admin/MediaListTable.php:248
+#: includes/Admin/MediaListTable.php:252
msgid "(no title)"
msgstr ""
#. translators: %d: number of additional usages
-#: includes/Admin/MediaListTable.php:263
+#: includes/Admin/MediaListTable.php:267
#, php-format
msgid "+ %d more…"
msgstr ""
-#: includes/Admin/MediaListTable.php:307
-#: includes/Admin/MediaListTable.php:337
-#: includes/Admin/MediaListTable.php:376
+#: includes/Admin/MediaListTable.php:311
+#: includes/Admin/MediaListTable.php:341
+#: includes/Admin/MediaListTable.php:380
msgid "View Results"
msgstr ""
-#: includes/Admin/MediaListTable.php:344
-#: includes/Admin/ToolsPage.php:589
-#: includes/Admin/ToolsPage.php:590
-#: includes/Admin/ToolsPage.php:591
+#: includes/Admin/MediaListTable.php:348
+#: includes/Admin/ToolsPage.php:593
+#: includes/Admin/ToolsPage.php:594
+#: includes/Admin/ToolsPage.php:595
msgid "Pending"
msgstr ""
-#: includes/Admin/MediaListTable.php:345
+#: includes/Admin/MediaListTable.php:349
msgid "Queued"
msgstr ""
-#: includes/Admin/MediaListTable.php:347
+#: includes/Admin/MediaListTable.php:351
msgid "Matches Found"
msgstr ""
-#: includes/Admin/MediaListTable.php:348
+#: includes/Admin/MediaListTable.php:352
msgid "Error"
msgstr ""
#. translators: %s: human-readable time difference, e.g. "3 days"
-#: includes/Admin/MediaListTable.php:418
+#: includes/Admin/MediaListTable.php:422
#, php-format
msgid "%s ago"
msgstr ""
-#: includes/Admin/MediaListTable.php:448
+#: includes/Admin/MediaListTable.php:452
msgid "All statuses"
msgstr ""
-#: includes/Admin/MediaListTable.php:467
+#: includes/Admin/MediaListTable.php:471
msgid "All post types"
msgstr ""
-#: includes/Admin/MediaListTable.php:482
+#: includes/Admin/MediaListTable.php:486
msgid "Unused only"
msgstr ""
-#: includes/Admin/MediaListTable.php:485
+#: includes/Admin/MediaListTable.php:489
msgid "Filter"
msgstr ""
-#: includes/Admin/MediaListTable.php:495
+#: includes/Admin/MediaListTable.php:499
msgid "No indexed attachments found. Run wp mra scan-internal to populate the index."
msgstr ""
-#: includes/Admin/Settings.php:203
+#: includes/Admin/Settings.php:207
msgid "General"
msgstr ""
-#: includes/Admin/Settings.php:204
+#: includes/Admin/Settings.php:208
+#: includes/Network/Settings.php:199
msgid "API Credentials"
msgstr ""
-#: includes/Admin/Settings.php:205
+#: includes/Admin/Settings.php:209
+#: includes/Network/Settings.php:200
msgid "Filters"
msgstr ""
-#: includes/Admin/Settings.php:206
+#: includes/Admin/Settings.php:210
+#: includes/Network/Settings.php:201
msgid "External Scanning"
msgstr ""
-#: includes/Admin/Settings.php:249
+#: includes/Admin/Settings.php:288
msgid "Delete data on uninstall"
msgstr ""
-#: includes/Admin/Settings.php:265
+#: includes/Admin/Settings.php:304
+#: includes/Network/Settings.php:309
msgid "Google Cloud Vision API Key"
msgstr ""
-#: includes/Admin/Settings.php:273
+#: includes/Admin/Settings.php:312
+#: includes/Network/Settings.php:313
msgid "TinEye API Key"
msgstr ""
-#: includes/Admin/Settings.php:281
+#: includes/Admin/Settings.php:320
+#: includes/Network/Settings.php:317
msgid "PicDefense User ID"
msgstr ""
-#: includes/Admin/Settings.php:289
+#: includes/Admin/Settings.php:328
+#: includes/Network/Settings.php:321
msgid "PicDefense API Key"
msgstr ""
-#: includes/Admin/Settings.php:298
+#: includes/Admin/Settings.php:337
+#: includes/Network/Settings.php:343
msgid "Alert Hostnames"
msgstr ""
-#: includes/Admin/Settings.php:305
-#: includes/Admin/Settings.php:320
+#: includes/Admin/Settings.php:344
+#: includes/Admin/Settings.php:359
msgid "Hostnames"
msgstr ""
-#: includes/Admin/Settings.php:313
+#: includes/Admin/Settings.php:352
+#: includes/Network/Settings.php:347
msgid "Ignored Hostnames"
msgstr ""
-#: includes/Admin/Settings.php:336
+#: includes/Admin/Settings.php:375
+#: includes/Network/Settings.php:366
msgid "Batch Size"
msgstr ""
-#: includes/Admin/Settings.php:344
+#: includes/Admin/Settings.php:383
msgid "Rate Limit (requests/min)"
msgstr ""
#. translators: %s: comma-separated list of hostnames
-#: includes/Admin/Settings.php:404
+#: includes/Admin/Settings.php:455
#, php-format
msgid "The following hostnames were removed from the exclusion list because they already appear in the alert list: %s"
msgstr ""
-#: includes/Admin/Settings.php:505
+#: includes/Admin/Settings.php:563
msgid "API Credentials Status"
msgstr ""
-#: includes/Admin/Settings.php:513
-#: includes/External/GoogleVisionProvider.php:43
+#: includes/Admin/Settings.php:571
+#: includes/External/GoogleVisionProvider.php:47
msgid "Google Cloud Vision"
msgstr ""
-#: includes/Admin/Settings.php:521
+#: includes/Admin/Settings.php:579
msgid "TinEye"
msgstr ""
-#: includes/Admin/Settings.php:544
+#: includes/Admin/Settings.php:602
msgid "Matches from these hostnames are flagged as critical copyright alerts. Entering example.com also covers all its subdomains."
msgstr ""
-#: includes/Admin/Settings.php:557
+#: includes/Admin/Settings.php:615
msgid "Matches from these hostnames are silently ignored and not counted as potential copyright issues. Entering example.com also covers all its subdomains. A hostname already present in the alert list cannot be added here."
msgstr ""
-#: includes/Admin/Settings.php:578
+#: includes/Admin/Settings.php:636
msgid "Remove all plugin data (tables and options) when the plugin is uninstalled."
msgstr ""
-#: includes/Admin/Settings.php:581
+#: includes/Admin/Settings.php:639
msgid "By default, data is preserved after uninstall. Enable this only if you want a clean removal."
msgstr ""
-#: includes/Admin/Settings.php:605
+#: includes/Admin/Settings.php:663
msgid "Required for Google Cloud Vision Web Detection. Obtain from the Google Cloud Console."
msgstr ""
-#: includes/Admin/Settings.php:608
-#: includes/Admin/Settings.php:658
-#: includes/Admin/Settings.php:736
+#: includes/Admin/Settings.php:666
+#: includes/Admin/Settings.php:716
+#: includes/Admin/Settings.php:794
msgid "View pricing"
msgstr ""
-#: includes/Admin/Settings.php:614
+#: includes/Admin/Settings.php:672
msgid "Monthly requests"
msgstr ""
-#: includes/Admin/Settings.php:615
+#: includes/Admin/Settings.php:673
msgid "Price per 1,000"
msgstr ""
-#: includes/Admin/Settings.php:620
+#: includes/Admin/Settings.php:678
msgid "First 1,000"
msgstr ""
-#: includes/Admin/Settings.php:621
+#: includes/Admin/Settings.php:679
msgid "Free"
msgstr ""
-#: includes/Admin/Settings.php:655
+#: includes/Admin/Settings.php:713
msgid "Required for TinEye reverse image search. Obtain from your TinEye Commercial account."
msgstr ""
-#: includes/Admin/Settings.php:664
+#: includes/Admin/Settings.php:722
msgid "Bundle"
msgstr ""
-#: includes/Admin/Settings.php:665
+#: includes/Admin/Settings.php:723
msgid "Searches"
msgstr ""
-#: includes/Admin/Settings.php:666
+#: includes/Admin/Settings.php:724
msgid "Price"
msgstr ""
-#: includes/Admin/Settings.php:671
+#: includes/Admin/Settings.php:729
msgid "Starter"
msgstr ""
-#: includes/Admin/Settings.php:676
+#: includes/Admin/Settings.php:734
msgid "Standard"
msgstr ""
-#: includes/Admin/Settings.php:681
+#: includes/Admin/Settings.php:739
msgid "Professional"
msgstr ""
-#: includes/Admin/Settings.php:709
+#: includes/Admin/Settings.php:767
msgid "Required for PicDefense copyright risk analysis. Your PicDefense account user ID."
msgstr ""
-#: includes/Admin/Settings.php:733
+#: includes/Admin/Settings.php:791
msgid "Required for PicDefense copyright risk analysis. Your PicDefense API key."
msgstr ""
-#: includes/Admin/Settings.php:768
-#: includes/Admin/Settings.php:799
+#: includes/Admin/Settings.php:826
+#: includes/Admin/Settings.php:857
msgid "One hostname per line. example.com covers all its subdomains. Explicit wildcard: *.example.com."
msgstr ""
-#: includes/Admin/Settings.php:824
+#: includes/Admin/Settings.php:882
msgid "Number of images to scan per scheduled batch (1–100). Default: 10."
msgstr ""
-#: includes/Admin/Settings.php:849
+#: includes/Admin/Settings.php:907
msgid "Maximum API requests per minute per provider (1–60). Default: 10."
msgstr ""
-#: includes/Admin/ToolsPage.php:85
+#: includes/Admin/ToolsPage.php:90
msgid "Done."
msgstr ""
-#: includes/Admin/ToolsPage.php:86
+#: includes/Admin/ToolsPage.php:91
msgid "Stopped."
msgstr ""
-#: includes/Admin/ToolsPage.php:87
+#: includes/Admin/ToolsPage.php:92
msgid "An error occurred."
msgstr ""
-#: includes/Admin/ToolsPage.php:143
+#: includes/Admin/ToolsPage.php:147
msgid "Invalid batch type."
msgstr ""
-#: includes/Admin/ToolsPage.php:264
+#: includes/Admin/ToolsPage.php:268
msgid "System Status"
msgstr ""
-#: includes/Admin/ToolsPage.php:267
+#: includes/Admin/ToolsPage.php:271
msgid "Operations"
msgstr ""
-#: includes/Admin/ToolsPage.php:270
+#: includes/Admin/ToolsPage.php:274
msgid "Direct scan runner"
msgstr ""
-#: includes/Admin/ToolsPage.php:272
+#: includes/Admin/ToolsPage.php:276
msgid "Run scan batches directly from your browser without relying on background jobs. Useful when WP-Cron is disabled or Action Scheduler is not running. Keep this tab open while processing."
msgstr ""
-#: includes/Admin/ToolsPage.php:308
+#: includes/Admin/ToolsPage.php:312
msgid "not installed"
msgstr ""
-#: includes/Admin/ToolsPage.php:366
+#: includes/Admin/ToolsPage.php:370
msgid "Internal scan scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:367
+#: includes/Admin/ToolsPage.php:371
msgid "External scan scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:368
+#: includes/Admin/ToolsPage.php:372
msgid "Failed scans re-queued. Background scan scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:369
+#: includes/Admin/ToolsPage.php:373
msgid "Provider registry synced. New scans scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:370
+#: includes/Admin/ToolsPage.php:374
msgid "Usage data cleared. Background scan scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:371
+#: includes/Admin/ToolsPage.php:375
msgid "Index cleared. Fresh indexing scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:372
+#: includes/Admin/ToolsPage.php:376
msgid "External scan data purged."
msgstr ""
-#: includes/Admin/ToolsPage.php:373
+#: includes/Admin/ToolsPage.php:377
msgid "All data reset. Fresh indexing scheduled."
msgstr ""
-#: includes/Admin/ToolsPage.php:420
+#: includes/Admin/ToolsPage.php:424
msgid "Database schema"
msgstr ""
#. translators: %s: version number
-#: includes/Admin/ToolsPage.php:426
+#: includes/Admin/ToolsPage.php:430
#, php-format
msgid "v%s – up to date"
msgstr ""
#. translators: 1: stored version, 2: expected version
-#: includes/Admin/ToolsPage.php:432
+#: includes/Admin/ToolsPage.php:436
#, php-format
msgid "Installed: %1$s — Required: %2$s"
msgstr ""
-#: includes/Admin/ToolsPage.php:441
+#: includes/Admin/ToolsPage.php:445
msgid "Deactivate and reactivate the plugin to apply pending migrations."
msgstr ""
-#: includes/Admin/ToolsPage.php:448
+#: includes/Admin/ToolsPage.php:452
msgid "Action Scheduler"
msgstr ""
-#: includes/Admin/ToolsPage.php:451
+#: includes/Admin/ToolsPage.php:455
msgid "Available"
msgstr ""
-#: includes/Admin/ToolsPage.php:453
+#: includes/Admin/ToolsPage.php:457
msgid "Not available"
msgstr ""
-#: includes/Admin/ToolsPage.php:458
+#: includes/Admin/ToolsPage.php:462
msgid "Install and activate the Action Scheduler plugin. Background scanning will not work without it."
msgstr ""
-#: includes/Admin/ToolsPage.php:465
+#: includes/Admin/ToolsPage.php:469
msgid "WP-Cron"
msgstr ""
-#: includes/Admin/ToolsPage.php:468
+#: includes/Admin/ToolsPage.php:472
msgid "Disabled (DISABLE_WP_CRON)"
msgstr ""
-#: includes/Admin/ToolsPage.php:470
+#: includes/Admin/ToolsPage.php:474
msgid "Enabled"
msgstr ""
-#: includes/Admin/ToolsPage.php:475
+#: includes/Admin/ToolsPage.php:479
msgid "Background jobs will not fire automatically. Trigger the cron externally or use WP-CLI:"
msgstr ""
-#: includes/Admin/ToolsPage.php:483
+#: includes/Admin/ToolsPage.php:487
msgid "Internal index"
msgstr ""
#. translators: 1: indexed count, 2: total images
-#: includes/Admin/ToolsPage.php:488
+#: includes/Admin/ToolsPage.php:492
#, php-format
msgid "%1$s / %2$s images indexed"
msgstr ""
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:499
+#: includes/Admin/ToolsPage.php:503
#, php-format
msgid "%s image not yet indexed."
msgid_plural "%s images not yet indexed."
msgstr[0] ""
msgstr[1] ""
-#: includes/Admin/ToolsPage.php:503
+#: includes/Admin/ToolsPage.php:507
msgid "Schedule an internal scan below."
msgstr ""
-#: includes/Admin/ToolsPage.php:511
+#: includes/Admin/ToolsPage.php:515
msgid "Usage scan"
msgstr ""
#. translators: 1: scanned count, 2: total indexed
-#: includes/Admin/ToolsPage.php:516
+#: includes/Admin/ToolsPage.php:520
#, php-format
msgid "%1$s / %2$s scanned for usage"
msgstr ""
#. translators: %s: formatted count
-#: includes/Admin/ToolsPage.php:527
+#: includes/Admin/ToolsPage.php:531
#, php-format
msgid "%s pending."
msgid_plural "%s pending."
msgstr[0] ""
msgstr[1] ""
-#: includes/Admin/ToolsPage.php:548
-#: includes/Admin/ToolsPage.php:752
+#: includes/Admin/ToolsPage.php:552
+#: includes/Admin/ToolsPage.php:756
msgid "External scan"
msgstr ""
#. translators: 1: scanned 2: matches 3: queued 4: pending 5: errors
-#: includes/Admin/ToolsPage.php:553
+#: includes/Admin/ToolsPage.php:557
#, php-format
msgid "%1$s scanned · %2$s matches · %3$s queued · %4$s pending · %5$s errors"
msgstr ""
-#: includes/Admin/ToolsPage.php:564
+#: includes/Admin/ToolsPage.php:568
msgid "Some scans failed. Check that API keys are configured correctly in Settings."
msgstr ""
-#: includes/Admin/ToolsPage.php:566
+#: includes/Admin/ToolsPage.php:570
msgid "Schedule an external scan below to process pending items."
msgstr ""
-#: includes/Admin/ToolsPage.php:584
+#: includes/Admin/ToolsPage.php:588
msgid "Scheduled jobs"
msgstr ""
-#: includes/Admin/ToolsPage.php:587
+#: includes/Admin/ToolsPage.php:591
msgid "Action Scheduler not available."
msgstr ""
-#: includes/Admin/ToolsPage.php:589
+#: includes/Admin/ToolsPage.php:593
msgid "Index:"
msgstr ""
-#: includes/Admin/ToolsPage.php:590
+#: includes/Admin/ToolsPage.php:594
msgid "Usage:"
msgstr ""
-#: includes/Admin/ToolsPage.php:591
+#: includes/Admin/ToolsPage.php:595
msgid "External:"
msgstr ""
-#: includes/Admin/ToolsPage.php:596
+#: includes/Admin/ToolsPage.php:600
msgid "There is work to do but no background job is scheduled. Use the operations below."
msgstr ""
-#: includes/Admin/ToolsPage.php:598
+#: includes/Admin/ToolsPage.php:602
msgid "WP-Cron is disabled. Jobs will not fire automatically."
msgstr ""
-#: includes/Admin/ToolsPage.php:608
+#: includes/Admin/ToolsPage.php:612
msgid "WP-CLI commands to process scans manually:"
msgstr ""
-#: includes/Admin/ToolsPage.php:625
+#: includes/Admin/ToolsPage.php:629
msgid "Schedule internal scan"
msgstr ""
-#: includes/Admin/ToolsPage.php:626
+#: includes/Admin/ToolsPage.php:630
msgid "Queue a background job to index all unindexed media files and scan their usage across posts, pages, and custom fields. Safe to run at any time — will not re-process completed work."
msgstr ""
-#: includes/Admin/ToolsPage.php:632
+#: includes/Admin/ToolsPage.php:636
msgid "Schedule external scan"
msgstr ""
-#: includes/Admin/ToolsPage.php:633
+#: includes/Admin/ToolsPage.php:637
msgid "Mark all pending attachments as queued and launch a background reverse-image-search via the configured providers. Requires API keys in Settings."
msgstr ""
-#: includes/Admin/ToolsPage.php:639
+#: includes/Admin/ToolsPage.php:643
msgid "Requeue scan errors"
msgstr ""
-#: includes/Admin/ToolsPage.php:640
+#: includes/Admin/ToolsPage.php:644
msgid "Re-queues only the attachments that failed with an error on the last external scan run. Does not affect already-scanned items. Useful to retry after fixing API key issues."
msgstr ""
-#: includes/Admin/ToolsPage.php:646
+#: includes/Admin/ToolsPage.php:650
msgid "Sync provider registry"
msgstr ""
-#: includes/Admin/ToolsPage.php:647
+#: includes/Admin/ToolsPage.php:651
msgid "Creates scan entries for any newly registered external providers. Run this after adding a new provider via the mra/external/providers filter. Already-scanned attachments are not affected."
msgstr ""
-#: includes/Admin/ToolsPage.php:656
+#: includes/Admin/ToolsPage.php:660
msgid "Reset usage data"
msgstr ""
-#: includes/Admin/ToolsPage.php:657
+#: includes/Admin/ToolsPage.php:661
msgid "Clears all usage rows and resets the usage-scan flag for every indexed attachment. File metadata in the index is preserved. A background usage scan is scheduled immediately after."
msgstr ""
-#: includes/Admin/ToolsPage.php:659
+#: includes/Admin/ToolsPage.php:663
msgid "This will delete all usage data. Continue?"
msgstr ""
-#: includes/Admin/ToolsPage.php:663
+#: includes/Admin/ToolsPage.php:667
msgid "Re-index media library"
msgstr ""
-#: includes/Admin/ToolsPage.php:664
+#: includes/Admin/ToolsPage.php:668
msgid "Deletes all index and usage entries, then schedules a full fresh re-index. External scan results are not affected. Useful if many media files have been added or removed."
msgstr ""
-#: includes/Admin/ToolsPage.php:666
+#: includes/Admin/ToolsPage.php:670
msgid "This will delete all index and usage data. Continue?"
msgstr ""
-#: includes/Admin/ToolsPage.php:670
+#: includes/Admin/ToolsPage.php:674
msgid "Purge external data"
msgstr ""
-#: includes/Admin/ToolsPage.php:671
+#: includes/Admin/ToolsPage.php:675
msgid "Deletes all external scan results and resets every attachment's external status to pending. Use this before switching API providers or to force a complete re-scan."
msgstr ""
-#: includes/Admin/ToolsPage.php:673
+#: includes/Admin/ToolsPage.php:677
msgid "This will delete all external scan results. Continue?"
msgstr ""
-#: includes/Admin/ToolsPage.php:677
+#: includes/Admin/ToolsPage.php:681
msgid "Reset all data"
msgstr ""
-#: includes/Admin/ToolsPage.php:678
+#: includes/Admin/ToolsPage.php:682
msgid "Truncates all three plugin tables (index, usage, external results) and schedules a fresh indexing run. Use this to start completely from scratch."
msgstr ""
-#: includes/Admin/ToolsPage.php:680
+#: includes/Admin/ToolsPage.php:684
msgid "This will permanently delete ALL plugin data and cannot be undone. Are you absolutely sure?"
msgstr ""
-#: includes/Admin/ToolsPage.php:691
+#: includes/Admin/ToolsPage.php:695
msgid "Destructive operations"
msgstr ""
-#: includes/Admin/ToolsPage.php:694
+#: includes/Admin/ToolsPage.php:698
msgid "These operations permanently delete plugin data. Intended for forced rescans, troubleshooting, or starting fresh. A confirmation prompt will appear before any action is taken."
msgstr ""
-#: includes/Admin/ToolsPage.php:742
+#: includes/Admin/ToolsPage.php:746
msgid "Index media files"
msgstr ""
-#: includes/Admin/ToolsPage.php:743
+#: includes/Admin/ToolsPage.php:747
msgid "Discovers unindexed images and registers them in the plugin index. Run this first."
msgstr ""
-#: includes/Admin/ToolsPage.php:747
+#: includes/Admin/ToolsPage.php:751
msgid "Scan usage"
msgstr ""
-#: includes/Admin/ToolsPage.php:748
+#: includes/Admin/ToolsPage.php:752
msgid "Checks every indexed image for usage across posts, pages, and custom fields."
msgstr ""
-#: includes/Admin/ToolsPage.php:753
+#: includes/Admin/ToolsPage.php:757
msgid "Sends images to external providers for reverse-image search. Requires API keys in Settings."
msgstr ""
-#: includes/Admin/ToolsPage.php:770
+#: includes/Admin/ToolsPage.php:774
msgid "Run now"
msgstr ""
-#: includes/Admin/ToolsPage.php:773
+#: includes/Admin/ToolsPage.php:777
msgid "Stop"
msgstr ""
#. translators: %s: DB version number
-#: includes/CLI/Command.php:49
+#: includes/CLI/Command.php:53
#, php-format
msgid "Media Audit tables ready. DB version: %s"
msgstr ""
#. translators: %s: plugin version
-#: includes/CLI/Command.php:73
+#: includes/CLI/Command.php:77
#, php-format
msgid "Plugin version : %s"
msgstr ""
#. translators: %s: DB version number
-#: includes/CLI/Command.php:80
+#: includes/CLI/Command.php:84
#, php-format
msgid "DB version : %s"
msgstr ""
-#: includes/CLI/Command.php:118
+#: includes/CLI/Command.php:122
msgid "Indexing attachments…"
msgstr ""
#. translators: 1: newly indexed count, 2: remaining count
-#: includes/CLI/Command.php:130
+#: includes/CLI/Command.php:134
#, php-format
msgid "Indexed %1$d (%2$d remaining)"
msgstr ""
#. translators: %d: total indexed count
-#: includes/CLI/Command.php:141
+#: includes/CLI/Command.php:145
#, php-format
msgid "Indexing complete. %d attachments in index."
msgstr ""
-#: includes/CLI/Command.php:147
+#: includes/CLI/Command.php:151
msgid "Scanning usage…"
msgstr ""
#. translators: 1: scanned count, 2: remaining count
-#: includes/CLI/Command.php:159
-#: includes/CLI/Command.php:223
+#: includes/CLI/Command.php:163
+#: includes/CLI/Command.php:227
#, php-format
msgid "Scanned %1$d (%2$d remaining)"
msgstr ""
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:170
+#: includes/CLI/Command.php:174
#, php-format
msgid "Scan complete. %d attachments scanned."
msgstr ""
-#: includes/CLI/Command.php:208
+#: includes/CLI/Command.php:212
msgid "Running external scans…"
msgstr ""
#. translators: %d: total scanned count
-#: includes/CLI/Command.php:234
+#: includes/CLI/Command.php:238
#, php-format
msgid "External scan complete. %d attachments processed."
msgstr ""
-#: includes/Core/Plugin.php:154
-#: includes/Core/Plugin.php:155
+#: includes/Core/Plugin.php:174
+#: includes/Core/Plugin.php:175
+#: includes/Network/Plugin.php:113
msgid "Tools"
msgstr ""
-#: includes/Core/Plugin.php:167
-#: includes/Core/Plugin.php:168
+#: includes/Core/Plugin.php:187
+#: includes/Core/Plugin.php:188
+#: includes/Network/Plugin.php:142
msgid "Settings"
msgstr ""
-#: includes/Core/Plugin.php:176
+#: includes/Core/Plugin.php:196
msgid "Attachment Report"
msgstr ""
-#: includes/Privacy/DataExporter.php:88
+#: includes/Core/Plugin.php:278
+msgid "This plugin is managed at the network level. Media data for this site is collected and stored here, but viewed and managed from the Network Admin panel."
+msgstr ""
+
+#: includes/Core/Plugin.php:282
+msgid "Go to Network Media Audit →"
+msgstr ""
+
+#: includes/Network/AlertsPage.php:42
+#: includes/Network/Plugin.php:103
+msgid "Network Alerts"
+msgstr ""
+
+#: includes/Network/AlertsPage.php:49
+msgid "Active copyright-risk alerts across all sites. To dismiss an alert, visit the Alerts page on the corresponding site."
+msgstr ""
+
+#: includes/Network/AuditPage.php:40
+#: includes/Network/Plugin.php:83
+#: includes/Network/Plugin.php:94
+msgid "Network Media Audit"
+msgstr ""
+
+#: includes/Network/AuditPage.php:44
+msgid "Total Indexed"
+msgstr ""
+
+#: includes/Network/AuditPage.php:46
+msgid "Active Alerts"
+msgstr ""
+
+#: includes/Network/AuditPage.php:47
+msgid "Sites"
+msgstr ""
+
+#: includes/Network/NetworkListTable.php:66
+#: includes/Network/ToolsPage.php:203
+msgid "Site"
+msgstr ""
+
+#: includes/Network/NetworkListTable.php:302
+msgid "No media attachments found across the network."
+msgstr ""
+
+#: includes/Network/Plugin.php:95
+msgid "Network Audit"
+msgstr ""
+
+#: includes/Network/Plugin.php:112
+#: includes/Network/ToolsPage.php:156
+msgid "Network Tools"
+msgstr ""
+
+#: includes/Network/Plugin.php:124
+msgid "Media Audit — Network"
+msgstr ""
+
+#: includes/Network/Plugin.php:141
+msgid "Network Settings"
+msgstr ""
+
+#: includes/Network/Settings.php:72
+msgid "You do not have permission to manage network settings."
+msgstr ""
+
+#: includes/Network/Settings.php:198
+#: includes/Network/Settings.php:266
+msgid "Mode"
+msgstr ""
+
+#: includes/Network/Settings.php:211
+msgid "Media Audit — Network Settings"
+msgstr ""
+
+#: includes/Network/Settings.php:216
+msgid "Settings saved."
+msgstr ""
+
+#: includes/Network/Settings.php:260
+msgid "Operating Mode"
+msgstr ""
+
+#: includes/Network/Settings.php:262
+msgid "Choose how Media Audit operates across this network."
+msgstr ""
+
+#: includes/Network/Settings.php:272
+msgid "Per site"
+msgstr ""
+
+#: includes/Network/Settings.php:275
+msgid "Each site manages its own media audit independently. No network admin aggregation. Site admins configure API credentials and run scans separately."
+msgstr ""
+
+#: includes/Network/Settings.php:281
+msgid "Central (network admin)"
+msgstr ""
+
+#: includes/Network/Settings.php:284
+msgid "API credentials and filter lists are configured here and shared across all sites. Data is stored per site but viewed and managed from this network admin panel. Site-level admin pages show a placeholder notice."
+msgstr ""
+
+#: includes/Network/Settings.php:306
+msgid "These credentials are shared across all sites in the network (central mode only)."
+msgstr ""
+
+#: includes/Network/Settings.php:342
+msgid "Hostname lists applied to all sites in the network (central mode only)."
+msgstr ""
+
+#: includes/Network/Settings.php:344
+msgid "Matches from these hostnames are flagged as copyright alerts. One hostname per line."
+msgstr ""
+
+#: includes/Network/Settings.php:348
+msgid "Matches from these hostnames are silently ignored. One hostname per line."
+msgstr ""
+
+#: includes/Network/Settings.php:370
+msgid "Images to scan per scheduled batch per site (1–100). Default: 10."
+msgstr ""
+
+#: includes/Network/Settings.php:374
+msgid "Rate Limit (req/min)"
+msgstr ""
+
+#: includes/Network/Settings.php:378
+msgid "Maximum API requests per minute per provider per site (1–60). Default: 10."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:160
+msgid "Per-Site Status"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:163
+msgid "Network Operations"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:182
+msgid "Media Audit — Network Overview"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:184
+msgid "Currently running in per-site mode. Each site manages its own audit independently. Switch to central mode in Network Settings to manage all sites from here."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:204
+msgid "DB Schema"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:205
+msgid "Indexed"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:206
+msgid "External"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:208
+msgid "Pending Jobs"
+msgstr ""
+
+#. translators: 1: indexed 2: total
+#: includes/Network/ToolsPage.php:246
+#, php-format
+msgid "%1$s / %2$s"
+msgstr ""
+
+#. translators: 1: scanned 2: matches 3: errors
+#: includes/Network/ToolsPage.php:256
+#, php-format
+msgid "%1$s scanned · %2$s matches · %3$s errors"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:265
+msgid "Running"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:272
+msgid "Status cached for 5 minutes."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:274
+msgid "Refresh now"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:289
+msgid "Schedule Internal Scan — All Sites"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:290
+msgid "Queues indexing and usage scanning jobs on every active site. Safe to run at any time — skips already-indexed attachments."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:295
+msgid "Schedule External Scan — All Sites"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:296
+msgid "Queues reverse-image-search jobs on every active site. Requires API keys configured in Network Settings."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:301
+msgid "Requeue Scan Errors — All Sites"
+msgstr ""
+
+#: includes/Network/ToolsPage.php:302
+msgid "Re-queues attachments that failed with an error on the last external scan run across all sites."
+msgstr ""
+
+#: includes/Network/ToolsPage.php:316
+msgid "Schedule"
+msgstr ""
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:368
+#, php-format
+msgid "Internal scan scheduled on %s sites."
+msgstr ""
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:371
+#, php-format
+msgid "External scan scheduled on %s sites."
+msgstr ""
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:374
+#, php-format
+msgid "Errors re-queued on %s sites."
+msgstr ""
+
+#. translators: %s: number of sites
+#: includes/Network/ToolsPage.php:377
+#, php-format
+msgid "Operation completed on %s sites."
+msgstr ""
+
+#: includes/Privacy/DataExporter.php:92
msgid "Media Audit – Indexed Files"
msgstr ""
-#: includes/Privacy/DataExporter.php:104
+#: includes/Privacy/DataExporter.php:108
msgid "Media Audit – External Scan Results"
msgstr ""
-#: includes/Privacy/DataExporter.php:269
+#: includes/Privacy/DataExporter.php:273
msgid "External Scan Status"
msgstr ""
-#: includes/Privacy/DataExporter.php:273
+#: includes/Privacy/DataExporter.php:277
msgid "Last Scanned (internal)"
msgstr ""
-#: includes/Privacy/DataExporter.php:277
+#: includes/Privacy/DataExporter.php:281
msgid "Last Scanned (external)"
msgstr ""
-#: includes/Privacy/DataExporter.php:303
+#: includes/Privacy/DataExporter.php:307
msgid "Provider"
msgstr ""
-#: includes/Privacy/DataExporter.php:307
+#: includes/Privacy/DataExporter.php:311
msgid "Match Count"
msgstr ""
-#: includes/Privacy/DataExporter.php:311
+#: includes/Privacy/DataExporter.php:315
msgid "Scanned At"
msgstr ""
diff --git a/readme.txt b/readme.txt
index 4ae0042..4ef8518 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,11 +1,12 @@
=== Media Audit (by ROBOTSTXT) ===
-Contributors: javiercasares, robotstxt
+Contributors: robotstxt, javiercasares
Tags: media, copyright, images, reverse image search, media library
Requires at least: 5.3
Tested up to: 7.1
Requires PHP: 8.0
Requires Plugins: action-scheduler
-Stable tag: 1.8.2
+Stable tag: 1.8.3
+Version: 1.8.3
License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
@@ -29,6 +30,7 @@ Media Audit helps site owners and editors understand where their media files are
= Requirements =
* [Action Scheduler](https://actionscheduler.org/) plugin (declared as a required dependency).
+* [Manager (by ROBOTSTXT)](https://www.robotstxt.software/plugins/robotstxt-manager/) plugin (recommended) — required to receive plugin updates.
* Google Cloud Vision API key (for Web Detection scanning).
* TinEye Commercial API key (for reverse image search).
@@ -97,7 +99,13 @@ By default, no. Enable **Settings → Delete data on uninstall** if you want all
== Changelog ==
-Only the 3 latest versions. The full changelog is in [changelog.txt](changelog.txt).
+Only the 3 latest versions. The full changelog is at [www.robotstxt.software/plugins/robotstxt-mediaaudit/](https://www.robotstxt.software/plugins/robotstxt-mediaaudit/).
+
+= 1.8.3 =
+
+* Updates are now delivered through [Manager (by ROBOTSTXT)](https://www.robotstxt.software/plugins/robotstxt-manager/): the bundled self-updater (`robotstxt-updater.php`, `update.json`) was removed.
+* The Plugins page now shows a dismissible notice when Manager is not installed and active, and the Settings page shows a permanent notice until it is.
+* New `Update URI` header pointing to the plugin page at www.robotstxt.software; Plugin and Author URIs updated accordingly.
= 1.8.2 =
@@ -114,16 +122,9 @@ Only the 3 latest versions. The full changelog is in [changelog.txt](changelog.t
* Removed unreliable in-render script enqueueing for Network Tools page; operation buttons now work without JavaScript.
* JS dismiss/cancel labels on the Alerts page now use i18n strings from `wp_localize_script`.
-= 1.8.0 =
-
-* **WordPress Multisite support** — plugin now declares `Network: true` and can be activated network-wide, with two operating modes (per site / central) configurable from Network Admin → Media Audit → Settings.
-* Network admin panel (central mode): aggregated Audit list, Alerts list, and Tools page showing all media across all sites, plus a network mirror table for fast cross-site queries.
-* New site provisioning via `wp_initialize_site`; settings migration on first switch to central mode; network-aware uninstall.
-* DB schema version bumped to `1.3.0`.
-
= Previous versions =
-See [changelog.txt](changelog.txt) for the full history.
+If you want to see the full changelog, visit [www.robotstxt.software/plugins/robotstxt-mediaaudit/](https://www.robotstxt.software/plugins/robotstxt-mediaaudit/).
== Compliance ==
diff --git a/robotstxt-mediaaudit.php b/robotstxt-mediaaudit.php
index 80b4aa1..e686b72 100644
--- a/robotstxt-mediaaudit.php
+++ b/robotstxt-mediaaudit.php
@@ -1,17 +1,18 @@
register();
- }
-
- /**
- * Constructor.
- *
- * @param string $plugin_file_path Absolute path to the main plugin file.
- */
- private function __construct( string $plugin_file_path ) {
- $this->plugin_file_path = $plugin_file_path;
- $this->plugin_basename = plugin_basename( $plugin_file_path );
- $this->plugin_slug = dirname( $this->plugin_basename );
- $this->plugin_data = $this->get_plugin_data();
- $this->json_url = $this->build_json_url();
- $this->cache_key = 'robotstxt_updater_' . md5( $this->plugin_basename );
- }
-
- /**
- * Register WordPress hooks.
- */
- private function register(): void {
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'inject_update_info' ) );
- add_filter( 'plugins_api', array( $this, 'provide_plugin_details' ), 10, 3 );
- add_action( 'admin_init', array( $this, 'handle_cache_clear' ) );
- add_action( 'robotstxt_updater_clear_cache', array( $this, 'clear_cache' ) );
- }
-
- /**
- * Get plugin headers.
- *
- * @return array Plugin data.
- */
- private function get_plugin_data(): array {
- if ( ! function_exists( 'get_plugin_data' ) ) {
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
- }
-
- return get_plugin_data( $this->plugin_file_path, false, false );
- }
-
- /**
- * Build JSON URL from plugin headers.
- *
- * Tries to use "Gitea Plugin URI" header to construct the URL.
- * Falls back to Plugin URI if Gitea URI is not available.
- *
- * @return string JSON URL.
- */
- private function build_json_url(): string {
- // Try Gitea Plugin URI (format: "OWNER/REPO" or full URL).
- if ( ! empty( $this->plugin_data['Gitea Plugin URI'] ) ) {
- $gitea_uri = $this->plugin_data['Gitea Plugin URI'];
-
- // If it's already a full URL, use it.
- if ( str_starts_with( $gitea_uri, 'http' ) ) {
- // Extract base URL and construct JSON path.
- return rtrim( $gitea_uri, '/' ) . '/raw/branch/main/update.json';
- }
-
- // If it's in format "OWNER/REPO", construct full URL.
- if ( preg_match( '#^[^/]+/[^/]+$#', $gitea_uri ) ) {
- return "https://git.robotstxt.es/{$gitea_uri}/raw/branch/main/update.json";
- }
- }
-
- // Fallback: try to extract from Plugin URI.
- if ( ! empty( $this->plugin_data['PluginURI'] ) ) {
- $plugin_uri = $this->plugin_data['PluginURI'];
- if ( str_contains( $plugin_uri, 'git.robotstxt.es' ) ) {
- return rtrim( $plugin_uri, '/' ) . '/raw/branch/main/update.json';
- }
- }
-
- // Last resort: construct from plugin slug.
- return "https://git.robotstxt.es/ROBOTSTXT/{$this->plugin_slug}/raw/branch/main/update.json";
- }
-
- /**
- * Inject update info into WP's plugin update transient.
- *
- * @param object|mixed $transient The update_plugins transient.
- *
- * @return object The modified transient.
- */
- public function inject_update_info( $transient ) {
- if ( ! is_object( $transient ) ) {
- $transient = new stdClass();
- }
-
- if ( empty( $transient->checked ) || ! is_array( $transient->checked ) ) {
- return $transient;
- }
-
- if ( empty( $transient->checked[ $this->plugin_basename ] ) ) {
- return $transient;
- }
-
- $current_version = $transient->checked[ $this->plugin_basename ];
- $remote = $this->get_remote_data();
-
- if ( empty( $remote['version'] ) || empty( $remote['download_url'] ) ) {
- return $transient;
- }
-
- if ( ! $this->is_compatible( $remote ) ) {
- return $transient;
- }
-
- if ( version_compare( $remote['version'], $current_version, '>' ) ) {
- $update = (object) array(
- 'slug' => $remote['slug'] ?? $this->plugin_slug,
- 'plugin' => $this->plugin_basename,
- 'new_version' => $remote['version'],
- 'url' => $remote['homepage'] ?? $this->plugin_data['PluginURI'] ?? '',
- 'package' => $remote['download_url'],
- 'tested' => $remote['tested'] ?? '',
- 'requires' => $remote['requires'] ?? '',
- 'requires_php' => $remote['requires_php'] ?? '',
- );
-
- $transient->response[ $this->plugin_basename ] = $update;
- }
-
- return $transient;
- }
-
- /**
- * Provide "View details" modal content.
- *
- * @param false|object|array $result The result object or array.
- * @param string $action The type of information being requested.
- * @param object $args Plugin API arguments.
- *
- * @return false|object The plugin information object or false.
- */
- public function provide_plugin_details( $result, string $action, object $args ) {
- if ( 'plugin_information' !== $action ) {
- return $result;
- }
-
- if ( empty( $args->slug ) || $args->slug !== $this->plugin_slug ) {
- return $result;
- }
-
- $remote = $this->get_remote_data();
-
- if ( empty( $remote['version'] ) ) {
- return $result;
- }
-
- return (object) array(
- 'name' => $remote['name'] ?? $this->plugin_data['Name'] ?? $this->plugin_slug,
- 'slug' => $remote['slug'] ?? $this->plugin_slug,
- 'version' => $remote['version'],
- 'author' => $remote['author'] ?? $this->plugin_data['Author'] ?? '',
- 'homepage' => $remote['homepage'] ?? $this->plugin_data['PluginURI'] ?? '',
- 'requires' => $remote['requires'] ?? '',
- 'tested' => $remote['tested'] ?? '',
- 'requires_php' => $remote['requires_php'] ?? '',
- 'sections' => array(
- 'description' => $remote['description'] ?? $this->plugin_data['Description'] ?? '',
- 'changelog' => $remote['changelog'] ?? '',
- ),
- 'download_link' => $remote['download_url'] ?? '',
- );
- }
-
- /**
- * Get remote data with caching and HMAC signature verification.
- *
- * @return array Remote data.
- */
- private function get_remote_data(): array {
- $cached = get_site_transient( $this->cache_key );
-
- // Verify HMAC signature if AUTH_SALT is defined and cache has signature.
- if ( false !== $cached && defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
- if ( is_array( $cached ) && isset( $cached['signature'], $cached['data'] ) ) {
- $expected_sig = hash_hmac( 'sha256', $this->cache_key . serialize( $cached['data'] ), AUTH_SALT );
-
- if ( hash_equals( $expected_sig, $cached['signature'] ) ) {
- // Signature valid, return data.
- return is_array( $cached['data'] ) ? $cached['data'] : array();
- }
-
- // Signature invalid, delete corrupted cache.
- delete_site_transient( $this->cache_key );
- $cached = false;
- }
- }
-
- // If no valid cache, fetch fresh data.
- if ( false === $cached ) {
- $remote = $this->fetch_json();
-
- // Store with HMAC signature if AUTH_SALT is available.
- if ( defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
- $payload = array(
- 'data' => $remote ?: array(),
- 'timestamp' => time(),
- 'signature' => hash_hmac( 'sha256', $this->cache_key . serialize( $remote ?: array() ), AUTH_SALT ),
- );
- set_site_transient( $this->cache_key, $payload, 6 * HOUR_IN_SECONDS );
- } else {
- // Fallback to standard caching.
- set_site_transient( $this->cache_key, $remote ?: array(), 6 * HOUR_IN_SECONDS );
- }
-
- return is_array( $remote ) ? $remote : array();
- }
-
- // Legacy cache format without signature (backward compatibility).
- return is_array( $cached ) ? $cached : array();
- }
-
- /**
- * Fetch JSON from remote URL.
- *
- * @return array Decoded JSON data.
- */
- private function fetch_json(): array {
- $response = wp_remote_get(
- $this->json_url,
- array(
- 'timeout' => 10,
- 'headers' => array(
- 'Accept' => 'application/json',
- ),
- )
- );
-
- if ( is_wp_error( $response ) ) {
- return array();
- }
-
- $code = (int) wp_remote_retrieve_response_code( $response );
- if ( $code < 200 || $code >= 300 ) {
- return array();
- }
-
- $body = wp_remote_retrieve_body( $response );
- $data = json_decode( $body, true );
-
- return is_array( $data ) ? $data : array();
- }
-
- /**
- * Check compatibility.
- *
- * @param array $remote Remote data.
- *
- * @return bool True if compatible.
- */
- private function is_compatible( array $remote ): bool {
- if ( ! empty( $remote['requires_php'] ) ) {
- if ( version_compare( PHP_VERSION, $remote['requires_php'], '<' ) ) {
- return false;
- }
- }
-
- if ( ! empty( $remote['requires'] ) ) {
- if ( version_compare( get_bloginfo( 'version' ), $remote['requires'], '<' ) ) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Handle manual cache clear via URL parameter.
- */
- public function handle_cache_clear(): void {
- // Check if this is a cache clear request first.
- $clear_cache = filter_input( INPUT_GET, 'robotstxt_clear_update_cache', FILTER_UNSAFE_RAW );
- if ( null === $clear_cache ) {
- return;
- }
-
- // This is a cache clear request - now verify nonce.
- $nonce_raw = filter_input( INPUT_GET, '_wpnonce', FILTER_UNSAFE_RAW );
- $nonce = $nonce_raw ? sanitize_text_field( wp_unslash( $nonce_raw ) ) : '';
-
- if ( ! wp_verify_nonce( $nonce, 'robotstxt_clear_update_cache' ) ) {
- wp_die( esc_html__( 'Security check failed', 'robotstxt-smtp' ) );
- }
-
- // Check permissions.
- if ( ! current_user_can( 'update_plugins' ) ) {
- wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'robotstxt-smtp' ) );
- }
-
- $this->clear_cache();
- wp_safe_redirect( remove_query_arg( array( 'robotstxt_clear_update_cache', '_wpnonce' ) ) );
- exit;
- }
-
- /**
- * Clear update cache.
- */
- public function clear_cache(): void {
- delete_site_transient( $this->cache_key );
- delete_site_transient( 'update_plugins' );
- }
- }
-}
diff --git a/uninstall.php b/uninstall.php
index f64ce56..3572827 100644
--- a/uninstall.php
+++ b/uninstall.php
@@ -14,6 +14,9 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
global $wpdb;
+// User preferences are always removed: they are not user data, they are UI state.
+$wpdb->delete( $wpdb->usermeta, array( 'meta_key' => 'robotstxt_mediaaudit_manager_notice_dismissed' ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery,WordPress.DB.SlowDBQuery.slow_db_query_meta_key
+
if ( is_multisite() ) {
// In Multisite, read the delete preference from the network settings option.
$net_raw = get_site_option( 'robotstxt_mediaaudit_network_settings', array() );
diff --git a/update.json b/update.json
index 9fdf87b..ab9bc12 100644
--- a/update.json
+++ b/update.json
@@ -1,8 +1,8 @@
{
"name": "Media Audit (by ROBOTSTXT)",
"slug": "robotstxt-mediaaudit",
- "version": "1.8.2",
- "download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit/releases/download/1.8.2/robotstxt-mediaaudit-1.8.2.zip",
+ "version": "1.8.8",
+ "download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit/releases/download/1.8.3/robotstxt-mediaaudit-1.8.3.zip",
"requires": "5.3",
"requires_php": "8.0",
"tested": "7.1",
@@ -11,10 +11,10 @@
"author_profile": "https://www.robotstxt.es/",
"homepage": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-mediaaudit",
"description": "Audit your media library for copyright risks: track internal usage, run reverse image search via Google Vision, TinEye, and PicDefense, and classify results against configurable alert and ignored hostname lists.",
- "changelog": "1.8.2 - 2026-08-08
- Changed: Contribution guidelines restructured into a slim index plus topic-specific files (single source of truth).
- Added: Automated pre-deploy verification (bin/preflight.sh) and plugin header tests.
- Added: Clean-context pre-deploy audit tooling (.claude agents and slash command).
- Fixed: deploy.sh now excludes all AGENTS-*.md dev docs from the release ZIP.
- Compatibility: WordPress 5.3 - 7.1, PHP 8.0 - 8.5.
1.8.1 - 2026-06-08
- Fixed: Network Operations buttons now use PRG POST forms instead of AJAX.
- Fixed: Removed unreliable Network Tools script enqueueing.
- Fixed: JS dismiss/cancel labels now i18n via wp_localize_script.
1.8.0 - 2026-06-08
- Added: WordPress Multisite support (Network: true) with per-site and central operating modes.
- Added: Network admin panel with aggregated audit/alerts/tools and a network mirror table.
- Added: New site provisioning and network-aware uninstall.
",
+ "changelog": "",
"sections": {
"description": "Audit your media library for copyright risks: track internal usage, run reverse image search via Google Vision, TinEye, and PicDefense, and classify results against configurable alert and ignored hostname lists.",
- "changelog": "1.8.2 - 2026-08-08
- Changed: Contribution guidelines restructured into a slim index plus topic-specific files (single source of truth).
- Added: Automated pre-deploy verification (bin/preflight.sh) and plugin header tests.
- Added: Clean-context pre-deploy audit tooling (.claude agents and slash command).
- Fixed: deploy.sh now excludes all AGENTS-*.md dev docs from the release ZIP.
- Compatibility: WordPress 5.3 - 7.1, PHP 8.0 - 8.5.
1.8.1 - 2026-06-08
- Fixed: Network Operations buttons now use PRG POST forms instead of AJAX.
- Fixed: Removed unreliable Network Tools script enqueueing.
- Fixed: JS dismiss/cancel labels now i18n via wp_localize_script.
1.8.0 - 2026-06-08
- Added: WordPress Multisite support (Network: true) with per-site and central operating modes.
- Added: Network admin panel with aggregated audit/alerts/tools and a network mirror table.
- Added: New site provisioning and network-aware uninstall.
"
+ "changelog": ""
},
"banners": {
"low": "",
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 11b411a..02b1102 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -10,6 +10,7 @@ return array(
'MediaRightsAudit\\Admin\\AlertsPage' => $baseDir . '/includes/Admin/AlertsPage.php',
'MediaRightsAudit\\Admin\\AttachmentDetailPage' => $baseDir . '/includes/Admin/AttachmentDetailPage.php',
'MediaRightsAudit\\Admin\\AuditPage' => $baseDir . '/includes/Admin/AuditPage.php',
+ 'MediaRightsAudit\\Admin\\ManagerNotice' => $baseDir . '/includes/Admin/ManagerNotice.php',
'MediaRightsAudit\\Admin\\MediaListTable' => $baseDir . '/includes/Admin/MediaListTable.php',
'MediaRightsAudit\\Admin\\Settings' => $baseDir . '/includes/Admin/Settings.php',
'MediaRightsAudit\\Admin\\ToolsPage' => $baseDir . '/includes/Admin/ToolsPage.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index aa32c51..6f1244e 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -25,6 +25,7 @@ class ComposerStaticInit149e6f8eeaef8d46113f09e1e8d4e757
'MediaRightsAudit\\Admin\\AlertsPage' => __DIR__ . '/../..' . '/includes/Admin/AlertsPage.php',
'MediaRightsAudit\\Admin\\AttachmentDetailPage' => __DIR__ . '/../..' . '/includes/Admin/AttachmentDetailPage.php',
'MediaRightsAudit\\Admin\\AuditPage' => __DIR__ . '/../..' . '/includes/Admin/AuditPage.php',
+ 'MediaRightsAudit\\Admin\\ManagerNotice' => __DIR__ . '/../..' . '/includes/Admin/ManagerNotice.php',
'MediaRightsAudit\\Admin\\MediaListTable' => __DIR__ . '/../..' . '/includes/Admin/MediaListTable.php',
'MediaRightsAudit\\Admin\\Settings' => __DIR__ . '/../..' . '/includes/Admin/Settings.php',
'MediaRightsAudit\\Admin\\ToolsPage' => __DIR__ . '/../..' . '/includes/Admin/ToolsPage.php',