PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.4.0
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.4.0
1.4.1 1.4.0 1.3.7 1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 All 35 releases
← All changes | languages/xspeed.pot +1719 -866 1.3.0 → 1.4.0 View file →
@@ -1,9 +1,9 @@
1 1 # Copyright (C) 2026 WPDeveloper
2 2 # This file is distributed under the GPLv2 or later.
3 3 msgid ""
4 4 msgstr ""
5 -"Project-Id-Version: xSpeed Cache 1.3.0\n"
5 +"Project-Id-Version: xSpeed Cache 1.4.0\n"
6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/xspeed\n"
7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8 8 "Language-Team: LANGUAGE <[email protected]>\n"
9 9 "MIME-Version: 1.0\n"
@@ -8,9 +8,9 @@
8 8 "Language-Team: LANGUAGE <[email protected]>\n"
9 9 "MIME-Version: 1.0\n"
10 10 "Content-Type: text/plain; charset=UTF-8\n"
11 11 "Content-Transfer-Encoding: 8bit\n"
12 -"POT-Creation-Date: 2026-09-13T15:28:39+00:00\n"
12 +"POT-Creation-Date: 2026-10-07T09:31:28+00:00\n"
13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14 14 "X-Generator: WP-CLI 2.12.0\n"
15 15 "X-Domain: xspeed\n"
16 16
@@ -15,9 +15,9 @@
15 15 "X-Domain: xspeed\n"
16 16
17 17 #. Plugin Name of the plugin
18 18 #: xspeed.php
19 -#: includes/class-cache.php:7176
19 +#: includes/class-cache.php:11258
20 20 #: includes/class-deactivation-feedback.php:189
21 21 msgid "xSpeed Cache"
22 22 msgstr ""
23 23
@@ -37,9 +37,9 @@
37 37 msgstr ""
38 38
39 39 #: includes/class-admin.php:153
40 40 #: includes/class-admin.php:243
41 -#: includes/class-cache.php:7190
41 +#: includes/class-cache.php:11272
42 42 #: assets/admin.js
43 43 msgid "Settings"
44 44 msgstr ""
45 45
@@ -67,34 +67,34 @@
67 67 msgid "Loading…"
68 68 msgstr ""
69 69
70 70 #. translators: 1: cause of the sweep, 2: number of files removed.
71 -#: includes/class-cache-gc.php:654
71 +#: includes/class-cache-gc.php:703
72 72 #, php-format
73 73 msgid "Cache garbage collection (%1$s) — %2$d expired file(s) removed"
74 74 msgstr ""
75 75
76 -#: includes/class-cache-inventory.php:357
76 +#: includes/class-cache-inventory.php:364
77 77 msgid "Cached pages (PHP)"
78 78 msgstr ""
79 79
80 -#: includes/class-cache-inventory.php:362
80 +#: includes/class-cache-inventory.php:369
81 81 msgid "Cached pages (server-served)"
82 82 msgstr ""
83 83
84 -#: includes/class-cache-inventory.php:367
84 +#: includes/class-cache-inventory.php:374
85 85 msgid "Precompressed copies"
86 86 msgstr ""
87 87
88 -#: includes/class-cache-inventory.php:372
88 +#: includes/class-cache-inventory.php:379
89 89 msgid "Per-entry metadata"
90 90 msgstr ""
91 91
92 -#: includes/class-cache-inventory.php:377
92 +#: includes/class-cache-inventory.php:384
93 93 msgid "REST responses"
94 94 msgstr ""
95 95
96 -#: includes/class-cache-inventory.php:382
96 +#: includes/class-cache-inventory.php:389
97 97 msgid "Minified CSS/JS"
98 98 msgstr ""
99 99
100 100 #: includes/class-cache-meta-box.php:40
@@ -129,187 +129,208 @@
129 129 msgid "Clears this post and the pages that list it — the homepage, its archive and the neighbouring posts. The rest of the site keeps its cache."
130 130 msgstr ""
131 131
132 132 #. translators: 1: cause of the purge, 2: URL or path, 3: number of files removed.
133 -#: includes/class-cache.php:2950
133 +#: includes/class-cache.php:5909
134 +#: includes/class-cache.php:6119
134 135 #, php-format
135 136 msgid "Purged one URL (%1$s) — %2$s, %3$d file(s) removed"
136 137 msgstr ""
137 138
138 -#: includes/class-cache.php:3711
139 +#. translators: 1: cause of the purge, 2: URL or path, 3: number of files removed, 4: caches the purge was sent to.
140 +#: includes/class-cache.php:6126
141 +#, php-format
142 +msgid "Purged one URL (%1$s) — %2$s, %3$d file(s) removed, sent to %4$s"
143 +msgstr ""
144 +
145 +#. translators: 1: cause of the purge, 2: URL or path, 3: caches the purge was sent to.
146 +#: includes/class-cache.php:6138
147 +#, php-format
148 +msgid "Purged one URL (%1$s): %2$s, 0 file(s) removed here, sent to %3$s"
149 +msgstr ""
150 +
151 +#. translators: 1: number of pages, 2: cause of the purge, 3: number of files removed.
152 +#: includes/class-cache.php:6216
153 +#, php-format
154 +msgid "Purged %1$d page (%2$s), %3$d file(s) removed"
155 +msgid_plural "Purged %1$d pages (%2$s), %3$d file(s) removed"
156 +msgstr[0] ""
157 +msgstr[1] ""
158 +
159 +#: includes/class-cache.php:7251
139 160 msgid "Purge All"
140 161 msgstr ""
141 162
142 -#: includes/class-cache.php:3715
163 +#: includes/class-cache.php:7255
143 164 msgid "Purge Page / Static Cache"
144 165 msgstr ""
145 166
146 -#: includes/class-cache.php:3719
167 +#: includes/class-cache.php:7259
147 168 msgid "Purge CSS / JS Cache"
148 169 msgstr ""
149 170
150 -#: includes/class-cache.php:3723
171 +#: includes/class-cache.php:7263
151 172 msgid "Purge Object Cache"
152 173 msgstr ""
153 174
154 -#: includes/class-cache.php:3727
175 +#: includes/class-cache.php:7267
155 176 msgid "Purge REST Cache"
156 177 msgstr ""
157 178
158 179 #. translators: 1: what was purged, 2: cause of the purge.
159 -#: includes/class-cache.php:3885
180 +#: includes/class-cache.php:7601
160 181 #, php-format
161 182 msgid "Purged %1$s (%2$s)"
162 183 msgstr ""
163 184
164 185 #. translators: 1: what was purged, 2: cause of the purge, 3: number of files removed.
165 -#: includes/class-cache.php:3891
186 +#: includes/class-cache.php:7607
166 187 #, php-format
167 188 msgid "Purged %1$s (%2$s) — %3$d file(s) removed"
168 189 msgstr ""
169 190
170 -#: includes/class-cache.php:4112
191 +#: includes/class-cache.php:7879
171 192 msgid "advanced-cache.php cannot be read, so xSpeed cannot tell whose page cache is installed."
172 193 msgstr ""
173 194
174 195 #. translators: %s: the page-caching plugin that owns advanced-cache.php.
175 -#: includes/class-cache.php:4119
196 +#: includes/class-cache.php:7886
176 197 #, php-format
177 198 msgid "%s is serving the page cache. Turn the xSpeed cache off and on again to take it over."
178 199 msgstr ""
179 200
180 -#: includes/class-cache.php:4122
201 +#: includes/class-cache.php:7889
181 202 msgid "Another plugin is serving the page cache. Turn the xSpeed cache off and on again to take it over."
182 203 msgstr ""
183 204
184 -#: includes/class-cache.php:4188
205 +#: includes/class-cache.php:7964
185 206 msgid "Could not lock page-cache ownership. Try again."
186 207 msgstr ""
187 208
188 -#: includes/class-cache.php:4194
209 +#: includes/class-cache.php:7971
189 210 msgid "Page-cache ownership changed while xSpeed was checking it. Nothing was changed; try again."
190 211 msgstr ""
191 212
192 213 #. translators: %s: the page-caching plugin that owns advanced-cache.php.
193 -#: includes/class-cache.php:4268
214 +#: includes/class-cache.php:8110
194 215 #, php-format
195 216 msgid "%s owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over."
196 217 msgstr ""
197 218
198 -#: includes/class-cache.php:4271
219 +#: includes/class-cache.php:8113
199 220 msgid "Another plugin owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over."
200 221 msgstr ""
201 222
202 -#: includes/class-cache.php:4301
223 +#: includes/class-cache.php:8143
203 224 msgid "Could not write wp-content/advanced-cache.php. Check filesystem permissions."
204 225 msgstr ""
205 226
206 -#: includes/class-cache.php:4358
227 +#: includes/class-cache.php:8200
207 228 msgid "wp-config.php is not writable and already contains define( 'WP_CACHE', false ). Change that line to true — adding a second one would leave the cache off and block xSpeed from changing it again."
208 229 msgstr ""
209 230
210 -#: includes/class-cache.php:4359
231 +#: includes/class-cache.php:8201
211 232 msgid "xSpeed could not verify the complete page-cache write, and wp-config.php is not writable. Its changes were rolled back."
212 233 msgstr ""
213 234
214 -#: includes/class-cache.php:4361
235 +#: includes/class-cache.php:8203
215 236 msgid "xSpeed could not verify the complete page-cache write. Its changes were rolled back."
216 237 msgstr ""
217 238
218 -#: includes/class-cache.php:4376
239 +#: includes/class-cache.php:8218
219 240 msgid "xSpeed could not save the page-cache setting. Its file changes were rolled back."
220 241 msgstr ""
221 242
222 -#: includes/class-cache.php:4468
243 +#: includes/class-cache.php:8310
223 244 msgid "xSpeed could not safely remove its WP_CACHE setting. The cache remains enabled."
224 245 msgstr ""
225 246
226 -#: includes/class-cache.php:4483
247 +#: includes/class-cache.php:8325
227 248 msgid "xSpeed could not remove its page-cache drop-in. The cache remains enabled."
228 249 msgstr ""
229 250
230 -#: includes/class-cache.php:4484
251 +#: includes/class-cache.php:8326
231 252 msgid "xSpeed could not remove its page-cache drop-in, and could not put WP_CACHE back. The cache is not serving; check wp-config.php before changing the page cache again."
232 253 msgstr ""
233 254
234 -#: includes/class-cache.php:4501
255 +#: includes/class-cache.php:8343
235 256 msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. Remove the xSpeed block from .htaccess by hand before turning the page cache off."
236 257 msgstr ""
237 258
238 -#: includes/class-cache.php:4519
259 +#: includes/class-cache.php:8361
239 260 msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. The cache remains enabled."
240 261 msgstr ""
241 262
242 -#: includes/class-cache.php:4520
263 +#: includes/class-cache.php:8362
243 264 msgid "xSpeed could not remove its rewrite rules from .htaccess, and could not restore the drop-in it had just removed. The cache is not serving, and the site may still return stale cached pages until the xSpeed block is removed from .htaccess by hand."
244 265 msgstr ""
245 266
246 -#: includes/class-cache.php:4531
267 +#: includes/class-cache.php:8373
247 268 msgid "xSpeed could not save the disabled state."
248 269 msgstr ""
249 270
250 -#: includes/class-cache.php:4535
271 +#: includes/class-cache.php:8377
251 272 msgid "xSpeed could not save the disabled state. The page cache was restored."
252 273 msgstr ""
253 274
254 275 #. translators: 1: the refusal reason, 2: a page-caching plugin's name.
255 -#: includes/class-cache.php:6682
276 +#: includes/class-cache.php:10694
256 277 #, php-format
257 278 msgid "%1$s %2$s is also active on this site — deactivate its page cache before enabling xSpeed."
258 279 msgstr ""
259 280
260 281 #. translators: 1: the refusal reason, 2: comma-separated page-caching plugin names.
261 -#: includes/class-cache.php:6689
282 +#: includes/class-cache.php:10701
262 283 #, php-format
263 284 msgid "%1$s These page caches are also active on this site: %2$s. Deactivate them before enabling xSpeed."
264 285 msgstr ""
265 286
266 287 #. translators: %s: comma-separated list of page-caching plugin names.
267 -#: includes/class-cache.php:6744
288 +#: includes/class-cache.php:10756
268 289 #, php-format
269 290 msgid "More than one page cache is active on this site (%s). Turn off the other page caches before enabling xSpeed."
270 291 msgstr ""
271 292
272 -#: includes/class-cache.php:6751
293 +#: includes/class-cache.php:10763
273 294 #, php-format
274 295 msgid "%s is active or owns advanced-cache.php. Deactivate its page cache before enabling xSpeed."
275 296 msgstr ""
276 297
277 -#: includes/class-cache.php:6754
298 +#: includes/class-cache.php:10766
278 299 msgid "WP_CACHE is true but no page-cache drop-in owner can be proved. xSpeed will not claim it."
279 300 msgstr ""
280 301
281 -#: includes/class-cache.php:6755
302 +#: includes/class-cache.php:10767
282 303 msgid "wp-config.php defines WP_CACHE more than once. Remove the duplicate before enabling the cache."
283 304 msgstr ""
284 305
285 -#: includes/class-cache.php:6756
306 +#: includes/class-cache.php:10768
286 307 msgid "WP_CACHE is set from an expression in wp-config.php. xSpeed will not rewrite it."
287 308 msgstr ""
288 309
289 -#: includes/class-cache.php:6757
310 +#: includes/class-cache.php:10769
290 311 msgid "WP_CACHE is defined inside a conditional in wp-config.php, so xSpeed cannot tell what it will be. Move it to a plain define before enabling the cache."
291 312 msgstr ""
292 313
293 -#: includes/class-cache.php:6758
314 +#: includes/class-cache.php:10770
294 315 msgid "wp-config.php cannot be read, so xSpeed cannot safely change page-cache ownership."
295 316 msgstr ""
296 317
297 -#: includes/class-cache.php:6759
318 +#: includes/class-cache.php:10771
298 319 msgid "advanced-cache.php is occupied but its owner cannot be proved. xSpeed will not replace it."
299 320 msgstr ""
300 321
301 -#: includes/class-cache.php:6760
322 +#: includes/class-cache.php:10772
302 323 msgid "advanced-cache.php cannot be read, so xSpeed cannot prove its owner."
303 324 msgstr ""
304 325
305 -#: includes/class-cache.php:6762
326 +#: includes/class-cache.php:10774
306 327 msgid "The page-cache field is occupied or cannot be verified. xSpeed will not change it."
307 328 msgstr ""
308 329
309 -#: includes/class-cache.php:7259
330 +#: includes/class-cache.php:11341
310 331 #: includes/class-purge-ui.php:278
311 -#: includes/class-purge-ui.php:675
332 +#: includes/class-purge-ui.php:680
312 333 msgid "Unauthorized."
313 334 msgstr ""
314 335
315 336 #. translators: %s: conflicting plugin name
@@ -422,8 +443,26 @@
422 443 #, php-format
423 444 msgid "xSpeed installed its page cache, but wp-config.php is not writable. Add this line to it to start serving: %s"
424 445 msgstr ""
425 446
447 +#: includes/class-managed-edge-purge.php:86
448 +msgid "xCloud's purge plugin is not installed"
449 +msgstr ""
450 +
451 +#. translators: 1: installed version, 2: minimum version.
452 +#: includes/class-managed-edge-purge.php:101
453 +#, php-format
454 +msgid "xCloud's purge plugin %1$s cannot take purges from xSpeed. Update it to %2$s or later from xCloud."
455 +msgstr ""
456 +
457 +#: includes/class-managed-edge-purge.php:106
458 +msgid "xCloud's purge plugin is installed but not accepting purges"
459 +msgstr ""
460 +
461 +#: includes/class-managed-edge-purge.php:177
462 +msgid "handed to xCloud's purge plugin, which sends it when this request ends"
463 +msgstr ""
464 +
426 465 #. translators: 1: source lifetime in seconds, 2: imported lifetime in hours.
427 466 #: includes/class-migration.php:343
428 467 #, php-format
429 468 msgid "Page cache lifetime %1$ds cannot be expressed in whole hours — importing as %2$dh."
@@ -429,8 +468,9 @@
429 468 msgid "Page cache lifetime %1$ds cannot be expressed in whole hours — importing as %2$dh."
430 469 msgstr ""
431 470
432 471 #: includes/class-migration.php:358
472 +#: includes/modules/ObjectCache/ObjectCacheModule.php:104
433 473 msgid "Redis password"
434 474 msgstr ""
435 475
436 476 #: includes/class-migration.php:359
@@ -493,29 +533,179 @@
493 533 msgid "Reverted \"%1$s\" on \"%2$s\" to the value set in wp-config.php."
494 534 msgstr ""
495 535
496 536 #. translators: %s: comma-separated list of "field (CONSTANT_NAME)" pairs.
497 -#: includes/class-module.php:326
537 +#: includes/class-module.php:349
498 538 #, php-format
499 539 msgid "These settings are defined in wp-config.php and cannot be changed here: %s. Edit the constant, or remove it to manage the setting from this screen."
500 540 msgstr ""
501 541
502 -#: includes/class-module.php:535
542 +#: includes/class-module.php:591
503 543 msgid "This module has no single on/off switch. It counts as on when any of its settings is on, and none currently is."
504 544 msgstr ""
505 545
506 546 #. translators: %s: comma-separated list of setting labels that are switched on.
507 -#: includes/class-module.php:540
547 +#: includes/class-module.php:596
508 548 #, php-format
509 549 msgid "This module has no single on/off switch. It counts as on because these settings are on: %s."
510 550 msgstr ""
511 551
512 552 #. translators: %s: module slug.
513 -#: includes/class-module.php:721
553 +#: includes/class-module.php:777
514 554 #, php-format
515 555 msgid "Refused a settings write to the Pro module \"%s\" — no valid license."
516 556 msgstr ""
517 557
558 +#: includes/class-object-cache-takeover.php:189
559 +msgid "There is no other object cache to switch from."
560 +msgstr ""
561 +
562 +#. translators: %s: plugin name.
563 +#: includes/class-object-cache-takeover.php:197
564 +#, php-format
565 +msgid "You do not have permission to turn off %s."
566 +msgstr ""
567 +
568 +#. translators: %s: connection error.
569 +#: includes/class-object-cache-takeover.php:206
570 +#, php-format
571 +msgid "Could not switch: %s"
572 +msgstr ""
573 +
574 +#: includes/class-object-cache-takeover.php:213
575 +msgid "Could not back up the current object-cache.php, so nothing was changed."
576 +msgstr ""
577 +
578 +#. translators: %s: plugin name.
579 +#: includes/class-object-cache-takeover.php:232
580 +#, php-format
581 +msgid "Could not turn off %s, so nothing was changed."
582 +msgstr ""
583 +
584 +#. translators: %s: plugin name.
585 +#: includes/class-object-cache-takeover.php:234
586 +#, php-format
587 +msgid "Could not turn off %s."
588 +msgstr ""
589 +
590 +#: includes/class-object-cache-takeover.php:247
591 +msgid "Could not remove the old object-cache.php, so the switch was undone."
592 +msgstr ""
593 +
594 +#: includes/class-object-cache-takeover.php:248
595 +msgid "Could not remove the old object-cache.php."
596 +msgstr ""
597 +
598 +#: includes/class-object-cache-takeover.php:270
599 +msgid "xSpeed could not take over the object cache, so the previous setup was put back."
600 +msgstr ""
601 +
602 +#: includes/class-object-cache-takeover.php:271
603 +msgid "xSpeed could not take over the object cache."
604 +msgstr ""
605 +
606 +#. translators: %s: plugin name or file name.
607 +#: includes/class-object-cache-takeover.php:306
608 +#, php-format
609 +msgid "Replaced the object-cache.php left by %s (a copy is in uploads/xspeed-backups/). xSpeed now handles object caching."
610 +msgstr ""
611 +
612 +#. translators: %s: plugin name.
613 +#: includes/class-object-cache-takeover.php:311
614 +#, php-format
615 +msgid "Object caching switched from %s to xSpeed. Disable can put it back."
616 +msgstr ""
617 +
618 +#: includes/class-object-cache-takeover.php:332
619 +msgid "There is no previous object cache to restore."
620 +msgstr ""
621 +
622 +#. translators: %s: plugin name.
623 +#: includes/class-object-cache-takeover.php:344
624 +#, php-format
625 +msgid "%s is handling object caching again."
626 +msgstr ""
627 +
628 +#. translators: %s: plugin name or file name.
629 +#: includes/class-object-cache-takeover.php:383
630 +#, php-format
631 +msgid "wp-content/object-cache.php was left by %s, which is not active. Switch to xSpeed to replace it (a copy is kept in uploads/xspeed-backups/)."
632 +msgstr ""
633 +
634 +#. translators: %s: plugin name.
635 +#: includes/class-object-cache-takeover.php:389
636 +#, php-format
637 +msgid "%s handles object caching on this site. Switch to xSpeed to take it over; Disable can put it back later."
638 +msgstr ""
639 +
640 +#. translators: %s: hosting platform name.
641 +#: includes/class-object-cache-takeover.php:524
642 +#, php-format
643 +msgid "%s manages the object cache on this site and would put its own back. Turn it off in your hosting dashboard if you want xSpeed to handle it."
644 +msgstr ""
645 +
646 +#. translators: %s: plugin name.
647 +#: includes/class-object-cache-takeover.php:539
648 +#, php-format
649 +msgid "Turn off the object cache in %s first, then enable it here."
650 +msgstr ""
651 +
652 +#. translators: %s: must-use plugin file name.
653 +#: includes/class-object-cache-takeover.php:549
654 +#, php-format
655 +msgid "The must-use plugin %s manages object-cache.php and would put it back. Ask your host before switching."
656 +msgstr ""
657 +
658 +#: includes/class-object-cache-takeover.php:570
659 +msgid "Test the connection to your cache server. Nothing changes if it fails."
660 +msgstr ""
661 +
662 +#: includes/class-object-cache-takeover.php:571
663 +msgid "Back up the current object-cache.php to wp-content/uploads/xspeed-backups/."
664 +msgstr ""
665 +
666 +#. translators: %s: plugin name.
667 +#: includes/class-object-cache-takeover.php:575
668 +#, php-format
669 +msgid "Deactivate %s. It removes its own object-cache.php as it goes."
670 +msgstr ""
671 +
672 +#. translators: %s: plugin name.
673 +#: includes/class-object-cache-takeover.php:578
674 +#, php-format
675 +msgid "Turn off Object Cache in %s. Its other features keep running."
676 +msgstr ""
677 +
678 +#. translators: %s: plugin name or file name.
679 +#: includes/class-object-cache-takeover.php:581
680 +#, php-format
681 +msgid "Remove the object-cache.php left by %s, which is not active."
682 +msgstr ""
683 +
684 +#: includes/class-object-cache-takeover.php:583
685 +msgid "Install xSpeed's object cache and check it is in place."
686 +msgstr ""
687 +
688 +#: includes/class-object-cache-takeover.php:584
689 +msgid "If any step fails, put everything back as it was."
690 +msgstr ""
691 +
692 +#. translators: %s: plugin name.
693 +#: includes/class-object-cache-takeover.php:1018
694 +#, php-format
695 +msgid "%s could not be turned back on (is it still installed?), so its object-cache.php was not put back. WordPress is using its built-in cache."
696 +msgstr ""
697 +
698 +#. translators: %s: plugin name.
699 +#: includes/class-object-cache-takeover.php:1025
700 +#, php-format
701 +msgid "%s is on again, but its object-cache.php could not be put back (is wp-content writable?), so the site has no object cache. Turn its object cache on again from its settings."
702 +msgstr ""
703 +
704 +#: includes/class-object-cache-takeover.php:1029
705 +msgid "xSpeed's object-cache.php could not be removed, so the previous plugin was not put back. Check that wp-content is writable."
706 +msgstr ""
707 +
518 708 #. translators: %s: brand name (xSpeed by default, or the white-label name).
519 709 #: includes/class-onboarding.php:56
520 710 #, php-format
521 711 msgid "%s Setup Wizard"
@@ -555,9 +745,9 @@
555 745 msgid "Scripts do not run until the visitor interacts. Sliders, counters and anything that animates on load may sit still until first touch, and a script that expects to run immediately can misbehave."
556 746 msgstr ""
557 747
558 748 #: includes/class-optimize-diagnosis.php:525
559 -msgid "Stylesheets load without blocking the first paint, so a theme with no critical CSS can flash unstyled for a moment. It also moves styling to after first paint, which can INCREASE layout shift on a page that already shifts."
749 +msgid "Stylesheets load without blocking the first paint only on pages that have critical CSS; elsewhere only font stylesheets change. Where it applies, styling moves to after first paint, which can INCREASE layout shift on a page that already shifts."
560 750 msgstr ""
561 751
562 752 #: includes/class-optimize-diagnosis.php:526
563 753 msgid "Older themes and plugins still depend on it. Removing it broke a real page with \"jQuery.Deferred exception: e.indexOf is not a function\" — an error the page-level check cannot see, because the HTML arrives intact and only the browser notices."
@@ -729,33 +919,33 @@
729 919 msgid "The page got measurably slower: median render time %1$dms before, %2$dms after (+%3$d%%), beyond what run-to-run noise explains. The change was undone."
730 920 msgstr ""
731 921
732 922 #. translators: 1: number of URLs, 2: the sitemap failure detail.
733 -#: includes/class-preloader.php:151
923 +#: includes/class-preloader.php:383
734 924 #, php-format
735 925 msgid "Preloader queued %1$d URLs from the site content — %2$s"
736 926 msgstr ""
737 927
738 928 #. translators: %s: the sitemap failure detail.
739 -#: includes/class-preloader.php:159
929 +#: includes/class-preloader.php:391
740 930 #, php-format
741 931 msgid "Preloader could not start — %s"
742 932 msgstr ""
743 933
744 934 #. translators: 1: number of URLs, 2: plural suffix.
745 -#: includes/class-preloader.php:166
935 +#: includes/class-preloader.php:398
746 936 #, php-format
747 937 msgid "Preloader queued %1$d URL%2$s for warming."
748 938 msgstr ""
749 939
750 940 #. translators: 1: sitemap URL, 2: error detail.
751 -#: includes/class-preloader.php:622
941 +#: includes/class-preloader.php:845
752 942 #, php-format
753 943 msgid "Could not fetch the sitemap at %1$s — %2$s"
754 944 msgstr ""
755 945
756 946 #. translators: 1: sitemap URL, 2: HTTP status code.
757 -#: includes/class-preloader.php:635
947 +#: includes/class-preloader.php:858
758 948 #, php-format
759 949 msgid "Could not fetch the sitemap at %1$s — the server returned HTTP %2$d."
760 950 msgstr ""
761 951
@@ -765,62 +955,67 @@
765 955 msgid "%s is not enabled"
766 956 msgstr ""
767 957
768 958 #: includes/class-purge-runner.php:162
959 +#: assets/admin.js
769 960 msgid "the purge was refused"
770 961 msgstr ""
771 962
772 -#: includes/class-purge-runner.php:246
773 -msgid "Page cache (HTML, static, REST, minified assets)"
963 +#: includes/class-purge-runner.php:248
964 +msgid "Page cache (HTML, static, REST)"
774 965 msgstr ""
775 966
776 -#: includes/class-purge-runner.php:257
967 +#: includes/class-purge-runner.php:259
777 968 msgid "Object cache"
778 969 msgstr ""
779 970
780 -#: includes/class-purge-runner.php:263
971 +#: includes/class-purge-runner.php:265
781 972 msgid "Cloudflare edge"
782 973 msgstr ""
783 974
784 -#: includes/class-purge-runner.php:269
975 +#: includes/class-purge-runner.php:277
976 +msgid "Cloudflare Enterprise (xCloud)"
977 +msgstr ""
978 +
979 +#: includes/class-purge-runner.php:285
785 980 #: includes/modules/Cdn/CdnModule.php:28
786 -#: includes/modules/Migration/MigrationModule.php:555
981 +#: includes/modules/Migration/MigrationModule.php:556
787 982 msgid "CDN"
788 983 msgstr ""
789 984
790 985 #. translators: 1: what asked for the purge, 2: number of files removed.
791 -#: includes/class-purge-runner.php:322
986 +#: includes/class-purge-runner.php:351
792 987 #, php-format
793 988 msgid "Cache purged (%1$s) — %2$d file(s) removed"
794 989 msgstr ""
795 990
796 -#: includes/class-purge-runner.php:346
991 +#: includes/class-purge-runner.php:375
797 992 msgid "the object cache engine is unavailable"
798 993 msgstr ""
799 994
800 -#: includes/class-purge-runner.php:350
995 +#: includes/class-purge-runner.php:379
801 996 msgid "no persistent object cache drop-in is in use"
802 997 msgstr ""
803 998
804 -#: includes/class-purge-runner.php:353
999 +#: includes/class-purge-runner.php:382
805 1000 msgid "the drop-in is installed but is not persisting anything"
806 1001 msgstr ""
807 1002
808 1003 #. translators: %s: what asked for the purge.
809 -#: includes/class-purge-runner.php:375
1004 +#: includes/class-purge-runner.php:404
810 1005 #, php-format
811 1006 msgid "Purged object cache (%s)"
812 1007 msgstr ""
813 1008
814 -#: includes/class-purge-runner.php:385
1009 +#: includes/class-purge-runner.php:414
815 1010 msgid "the backend refused the flush"
816 1011 msgstr ""
817 1012
818 -#: includes/class-purge-runner.php:397
1013 +#: includes/class-purge-runner.php:426
819 1014 msgid "the Cloudflare module is not available"
820 1015 msgstr ""
821 1016
822 -#: includes/class-purge-runner.php:421
1017 +#: includes/class-purge-runner.php:450
823 1018 msgid "no CDN with a purge API is configured — xSpeed's CDN module rewrites asset URLs and holds no cache of its own"
824 1019 msgstr ""
825 1020
826 1021 #: includes/class-purge-ui.php:263
@@ -831,14 +1026,23 @@
831 1026 msgid "That URL is not on this site."
832 1027 msgstr ""
833 1028
834 1029 #: includes/class-purge-ui.php:292
835 -#: includes/class-purge-ui.php:697
1030 +#: includes/class-purge-ui.php:649
1031 +#: includes/class-purge-ui.php:665
836 1032 msgid "admin"
837 1033 msgstr ""
838 1034
1035 +#. translators: 1: URL path of the post, 2: number of pages that list it, 3: number of files removed.
1036 +#: includes/class-purge-ui.php:416
1037 +#, php-format
1038 +msgid "xSpeed: %1$s is listed on %2$d pages, too many to clear one by one, so the whole site cache was cleared (%3$d file)."
1039 +msgid_plural "xSpeed: %1$s is listed on %2$d pages, too many to clear one by one, so the whole site cache was cleared (%3$d files)."
1040 +msgstr[0] ""
1041 +msgstr[1] ""
1042 +
839 1043 #. translators: 1: URL path of the post, 2: number of OTHER pages also cleared.
840 -#: includes/class-purge-ui.php:414
1044 +#: includes/class-purge-ui.php:434
841 1045 #, php-format
842 1046 msgid "%1$s and %2$d page that lists it"
843 1047 msgid_plural "%1$s and %2$d pages that list it"
844 1048 msgstr[0] ""
@@ -843,16 +1047,22 @@
843 1047 msgid_plural "%1$s and %2$d pages that list it"
844 1048 msgstr[0] ""
845 1049 msgstr[1] ""
846 1050
1051 +#. translators: 1: what was purged, 2: caches in front of the site, comma-separated.
1052 +#: includes/class-purge-ui.php:449
1053 +#, php-format
1054 +msgid "xSpeed: sent the purge for %1$s to %2$s. xSpeed's own cache held no copy."
1055 +msgstr ""
1056 +
847 1057 #. translators: %s: what was purged.
848 -#: includes/class-purge-ui.php:428
1058 +#: includes/class-purge-ui.php:458
849 1059 #, php-format
850 1060 msgid "xSpeed: %s was not cached, so there was nothing to clear."
851 1061 msgstr ""
852 1062
853 1063 #. translators: 1: what was purged, 2: number of files removed.
854 -#: includes/class-purge-ui.php:435
1064 +#: includes/class-purge-ui.php:465
855 1065 #, php-format
856 1066 msgid "xSpeed: cleared the cache for %1$s (%2$d file)."
857 1067 msgid_plural "xSpeed: cleared the cache for %1$s (%2$d files)."
858 1068 msgstr[0] ""
@@ -857,140 +1067,145 @@
857 1067 msgid_plural "xSpeed: cleared the cache for %1$s (%2$d files)."
858 1068 msgstr[0] ""
859 1069 msgstr[1] ""
860 1070
861 -#: includes/class-purge-ui.php:497
1071 +#: includes/class-purge-ui.php:547
862 1072 msgid "cleared"
863 1073 msgstr ""
864 1074
865 -#: includes/class-purge-ui.php:498
1075 +#: includes/class-purge-ui.php:548
866 1076 msgid "was not cached"
867 1077 msgstr ""
868 1078
869 -#: includes/class-purge-ui.php:533
1079 +#: includes/class-purge-ui.php:583
870 1080 msgid "Purge this post"
871 1081 msgstr ""
872 1082
873 -#: includes/class-purge-ui.php:543
1083 +#: includes/class-purge-ui.php:593
874 1084 msgid "Purge this URL"
875 1085 msgstr ""
876 1086
877 -#: includes/class-purge-ui.php:684
1087 +#: includes/class-purge-ui.php:689
878 1088 msgid "That post does not exist."
879 1089 msgstr ""
880 1090
881 -#: includes/class-recommendations.php:47
1091 +#: includes/class-recommendations.php:61
882 1092 msgid "Enable page caching"
883 1093 msgstr ""
884 1094
885 -#: includes/class-recommendations.php:48
1095 +#: includes/class-recommendations.php:62
886 1096 msgid "Caching is off, so every visit renders the full page. Turning it on is the single biggest speed win."
887 1097 msgstr ""
888 1098
889 -#: includes/class-recommendations.php:58
1099 +#: includes/class-recommendations.php:72
890 1100 msgid "Go to Cache settings"
891 1101 msgstr ""
892 1102
893 -#: includes/class-recommendations.php:74
1103 +#: includes/class-recommendations.php:88
894 1104 msgid "Raise Cache Expiry to match your preload schedule"
895 1105 msgstr ""
896 1106
897 1107 #. translators: 1: current expiry hours, 2: preload interval hours.
898 -#: includes/class-recommendations.php:77
1108 +#: includes/class-recommendations.php:91
899 1109 #, php-format
900 1110 msgid "Pages expire after %1$dh but the preloader only re-warms them every %2$dh — most visits hit a cold cache."
901 1111 msgstr ""
902 1112
903 1113 #. translators: %d: recommended expiry in hours.
904 -#: includes/class-recommendations.php:87
1114 +#: includes/class-recommendations.php:101
905 1115 #, php-format
906 1116 msgid "Raise expiry to %dh"
907 1117 msgstr ""
908 1118
909 -#: includes/class-recommendations.php:99
1119 +#: includes/class-recommendations.php:113
910 1120 msgid "A plugin"
911 1121 msgstr ""
912 1122
913 -#: includes/class-recommendations.php:103
1123 +#: includes/class-recommendations.php:117
914 1124 msgid "A plugin is blocking CDN edge caching"
915 1125 msgstr ""
916 1126
917 1127 #. translators: 1: plugin name, 2: cookie name.
918 -#: includes/class-recommendations.php:106
1128 +#: includes/class-recommendations.php:120
919 1129 #, php-format
920 1130 msgid "%1$s sets the \"%2$s\" cookie on anonymous pages, which makes CDNs skip their edge cache for all HTML."
921 1131 msgstr ""
922 1132
923 -#: includes/class-recommendations.php:114
1133 +#: includes/class-recommendations.php:128
924 1134 msgid "See details in Health"
925 1135 msgstr ""
926 1136
927 -#: includes/class-recommendations.php:124
1137 +#: includes/class-recommendations.php:138
928 1138 msgid "Apply the nginx server snippet"
929 1139 msgstr ""
930 1140
931 -#: includes/class-recommendations.php:125
1141 +#: includes/class-recommendations.php:139
932 1142 msgid "nginx can serve cache hits directly (~5-15ms TTFB, PHP bypassed) once the snippet is in your server block."
933 1143 msgstr ""
934 1144
935 -#: includes/class-recommendations.php:128
1145 +#: includes/class-recommendations.php:142
936 1146 msgid "Get the snippet"
937 1147 msgstr ""
938 1148
939 -#: includes/class-recommendations.php:138
1149 +#: includes/class-recommendations.php:152
940 1150 msgid "Turn on the preloader"
941 1151 msgstr ""
942 1152
943 1153 #. translators: %d: hit ratio percent.
944 -#: includes/class-recommendations.php:141
1154 +#: includes/class-recommendations.php:155
945 1155 #, php-format
946 1156 msgid "Your hit ratio is %d%% — most visitors hit a cold cache. The preloader crawls your sitemap so pages are warm before anyone asks."
947 1157 msgstr ""
948 1158
949 -#: includes/class-recommendations.php:148
1159 +#: includes/class-recommendations.php:162
1160 +#: includes/modules/Preloader/PreloaderModule.php:78
950 1161 msgid "Enable preloader"
951 1162 msgstr ""
952 1163
953 -#: includes/class-recommendations.php:158
1164 +#: includes/class-recommendations.php:172
954 1165 msgid "Object cache is configured but not persisting"
955 1166 msgstr ""
956 1167
957 -#: includes/class-recommendations.php:159
1168 +#: includes/class-recommendations.php:173
958 1169 msgid "The backend is not connected, so every request falls back to the database. Run the connection test to see why."
959 1170 msgstr ""
960 1171
961 -#: includes/class-recommendations.php:162
1172 +#: includes/class-recommendations.php:176
962 1173 msgid "Test the connection"
963 1174 msgstr ""
964 1175
965 -#: includes/class-recommendations.php:173
1176 +#: includes/class-recommendations.php:187
966 1177 msgid "Finish connecting Cloudflare"
967 1178 msgstr ""
968 1179
969 -#: includes/class-recommendations.php:174
1180 +#: includes/class-recommendations.php:188
970 1181 msgid "The Cloudflare module is on but has no verified credentials or zone, so edge purges cannot work."
971 1182 msgstr ""
972 1183
973 -#: includes/class-recommendations.php:177
1184 +#: includes/class-recommendations.php:191
974 1185 msgid "Open Cloudflare settings"
975 1186 msgstr ""
976 1187
977 -#: includes/class-recommendations.php:251
1188 +#: includes/class-recommendations.php:419
978 1189 msgid "This recommendation links to a settings screen; it has no one-click fix."
979 1190 msgstr ""
980 1191
981 -#: includes/class-recommendations.php:284
1192 +#: includes/class-recommendations.php:452
982 1193 msgid "Unknown or no-longer-applicable recommendation."
983 1194 msgstr ""
984 1195
985 -#: includes/class-rest-api.php:352
1196 +#: includes/class-rest-api.php:382
986 1197 msgid "The id argument is required."
987 1198 msgstr ""
988 1199
989 -#: includes/class-rest-api.php:472
1200 +#: includes/class-rest-api.php:515
990 1201 msgid "dashboard"
991 1202 msgstr ""
992 1203
1204 +#: includes/class-rest-api.php:619
1205 +msgid "That is not a rules marker this site could have generated."
1206 +msgstr ""
1207 +
993 1208 #: includes/class-rest-manager.php:83
994 1209 msgid "No route was found matching the URL and request method."
995 1210 msgstr ""
996 1211
@@ -997,40 +1212,40 @@
997 1212 #: includes/class-rest-manager.php:145
998 1213 msgid "The request could not be completed due to a server error."
999 1214 msgstr ""
1000 1215
1001 -#: includes/class-scan.php:123
1216 +#: includes/class-scan.php:142
1002 1217 msgid "That does not look like a public URL the scanner can reach."
1003 1218 msgstr ""
1004 1219
1005 -#: includes/class-scan.php:134
1220 +#: includes/class-scan.php:153
1006 1221 msgid "A scan is already running for this site."
1007 1222 msgstr ""
1008 1223
1009 -#: includes/class-scan.php:173
1224 +#: includes/class-scan.php:193
1010 1225 msgid "The scanner is rate limited right now. Try again in a few minutes."
1011 1226 msgstr ""
1012 1227
1013 -#: includes/class-scan.php:185
1228 +#: includes/class-scan.php:205
1014 1229 #: assets/admin.js
1015 1230 msgid "The scan could not be started."
1016 1231 msgstr ""
1017 1232
1018 -#: includes/class-scan.php:221
1233 +#: includes/class-scan.php:241
1019 1234 msgid "That is not a valid scan id."
1020 1235 msgstr ""
1021 1236
1022 -#: includes/class-scan.php:251
1237 +#: includes/class-scan.php:271
1023 1238 msgid "The scan did not complete."
1024 1239 msgstr ""
1025 1240
1026 1241 #. translators: %s: transport error message.
1027 -#: includes/class-scan.php:436
1242 +#: includes/class-scan.php:501
1028 1243 #, php-format
1029 1244 msgid "Could not reach the scanner: %s"
1030 1245 msgstr ""
1031 1246
1032 -#: includes/class-scan.php:446
1247 +#: includes/class-scan.php:511
1033 1248 msgid "The scanner returned an unreadable response."
1034 1249 msgstr ""
1035 1250
1036 1251 #. translators: %d: HTTP status code.
@@ -1060,13 +1275,19 @@
1060 1275 #: includes/class-score.php:412
1061 1276 msgid "GTmetrix returned an unreadable response."
1062 1277 msgstr ""
1063 1278
1064 -#: includes/class-server.php:744
1279 +#. translators: %d: most URLs purged one by one.
1280 +#: includes/class-server-caches.php:574
1281 +#, php-format
1282 +msgid "Cleared the whole nginx cache: more than %d pages changed in one request, too many to purge one by one"
1283 +msgstr ""
1284 +
1285 +#: includes/class-server.php:746
1065 1286 msgid "an unreadable advanced-cache.php"
1066 1287 msgstr ""
1067 1288
1068 -#: includes/class-server.php:754
1289 +#: includes/class-server.php:756
1069 1290 msgid "an unidentified advanced-cache.php"
1070 1291 msgstr ""
1071 1292
1072 1293 #. translators: %s: setting key.
@@ -1083,8 +1304,9 @@
1083 1304 msgstr ""
1084 1305
1085 1306 #: includes/class-video-facade.php:153
1086 1307 #: includes/class-video-facade.php:199
1308 +#: includes/class-video-facade.php:309
1087 1309 msgid "Play video"
1088 1310 msgstr ""
1089 1311
1090 1312 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -1091,25 +1313,25 @@
1091 1313 msgid "AI Privacy"
1092 1314 msgstr ""
1093 1315
1094 1316 #: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1095 -msgid "Govern whether AI-powered features (Pro) may collect data from your visitors. The off-switch is here in Free because privacy is a fundamental right, not a paid feature."
1317 +msgid "Choose whether AI features may use visitor data, with or without Pro."
1096 1318 msgstr ""
1097 1319
1098 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1099 -msgid "Require consent before AI data collection"
1320 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1321 +msgid "Ask visitors for consent"
1100 1322 msgstr ""
1101 1323
1102 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1103 -msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made)."
1324 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:72
1325 +msgid "When on, AI features only record a visitor's data after they accept the consent banner. Turn it off only where the law does not require consent, as GDPR does."
1104 1326 msgstr ""
1105 1327
1106 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1328 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1107 1329 msgid "Consent banner text"
1108 1330 msgstr ""
1109 1331
1110 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1111 -msgid "Shown in the cookie consent banner. Keep it factual — what you collect (page navigation, performance metrics) and why."
1332 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:78
1333 +msgid "The text of the consent banner. Say plainly what you collect, such as page visits and speed data, and why."
1112 1334 msgstr ""
1113 1335
1114 1336 #: includes/modules/Bloat/BloatModule.php:38
1115 1337 msgid "Bloat Control"
@@ -1115,334 +1337,475 @@
1115 1337 msgid "Bloat Control"
1116 1338 msgstr ""
1117 1339
1118 1340 #: includes/modules/Bloat/BloatModule.php:40
1119 -msgid "Turn off WordPress defaults you do not use — saves bytes, requests, and attack surface."
1341 +msgid "Turns off WordPress features you do not use, so pages load less."
1120 1342 msgstr ""
1121 1343
1122 -#: includes/modules/Bloat/BloatModule.php:49
1123 -msgid "Disable Dashicons on Frontend"
1124 -msgstr ""
1125 -
1126 1344 #: includes/modules/Bloat/BloatModule.php:50
1127 -msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1345 +msgid "Disable emojis"
1128 1346 msgstr ""
1129 1347
1130 -#: includes/modules/Bloat/BloatModule.php:55
1131 -msgid "Disable oEmbed Discovery + wp-embed.min.js"
1348 +#: includes/modules/Bloat/BloatModule.php:51
1349 +msgid "Remove the emoji detection script and its inline styles from every page. Modern browsers draw emojis natively, so visitors still see them. Saves a script and an inline stylesheet per page."
1132 1350 msgstr ""
1133 1351
1134 1352 #: includes/modules/Bloat/BloatModule.php:56
1135 -msgid "Strip the auto-embed handlers + the embed script. Posts that paste a YouTube URL will no longer auto-render the player — embed it via a block instead. Saves a request per page."
1353 +msgid "Remove Dashicons for visitors"
1136 1354 msgstr ""
1137 1355
1138 -#: includes/modules/Bloat/BloatModule.php:61
1139 -msgid "Disable RSS Feeds"
1356 +#: includes/modules/Bloat/BloatModule.php:57
1357 +msgid "Removes the WordPress admin icon font for logged-out visitors. Most themes do not use it, and it saves about 45 KB."
1140 1358 msgstr ""
1141 1359
1142 1360 #: includes/modules/Bloat/BloatModule.php:62
1143 -msgid "Return a 404 on /feed/ and similar endpoints. Useful for sites that do not publish feeds and want to cut feed-fetcher traffic."
1361 +msgid "Disable auto-embeds"
1144 1362 msgstr ""
1145 1363
1146 -#: includes/modules/Bloat/BloatModule.php:67
1147 -msgid "Disable XML-RPC"
1364 +#: includes/modules/Bloat/BloatModule.php:63
1365 +msgid "Removes the embed script, saving one request per page. A pasted YouTube link no longer turns into a player, so use an embed block."
1148 1366 msgstr ""
1149 1367
1150 1368 #: includes/modules/Bloat/BloatModule.php:68
1151 -msgid "Disable the legacy xmlrpc.php endpoint. Cuts pingback brute-force noise; safe to disable unless you use a remote WP client (Jetpack, WordPress mobile app)."
1369 +msgid "Disable RSS feeds"
1152 1370 msgstr ""
1153 1371
1154 -#: includes/modules/Bloat/BloatModule.php:73
1155 -msgid "Strip jQuery Migrate on Frontend"
1372 +#: includes/modules/Bloat/BloatModule.php:69
1373 +msgid "Feed addresses such as /feed/ return \"not found\". Use this if your site has no feed readers."
1156 1374 msgstr ""
1157 1375
1158 1376 #: includes/modules/Bloat/BloatModule.php:74
1159 -msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1377 +msgid "Disable XML-RPC"
1160 1378 msgstr ""
1161 1379
1162 -#: includes/modules/Bloat/BloatModule.php:79
1163 -msgid "Restrict REST API to Logged-In Users"
1380 +#: includes/modules/Bloat/BloatModule.php:75
1381 +msgid "Turns off the old xmlrpc.php file that attackers often target. Leave this off if you use Jetpack or the WordPress mobile app."
1164 1382 msgstr ""
1165 1383
1166 1384 #: includes/modules/Bloat/BloatModule.php:80
1167 -msgid "Block /wp-json/ for anonymous requests. WooCommerce checkout, contact-form submissions, and many block-editor previews need anonymous REST — keep this off unless you know your site does not depend on it."
1385 +msgid "Remove jQuery Migrate"
1168 1386 msgstr ""
1169 1387
1170 -#: includes/modules/Bloat/BloatModule.php:180
1388 +#: includes/modules/Bloat/BloatModule.php:81
1389 +msgid "Removes a script that old themes and plugins need, from pages visitors see. Saves about 10 KB and is safe on current themes."
1390 +msgstr ""
1391 +
1392 +#: includes/modules/Bloat/BloatModule.php:86
1393 +msgid "Remove editor styles for visitors"
1394 +msgstr ""
1395 +
1396 +#: includes/modules/Bloat/BloatModule.php:87
1397 +msgid "Removes block editor CSS that some plugins load on public pages by mistake, which can add hundreds of KB. Block styles for visitors stay."
1398 +msgstr ""
1399 +
1400 +#: includes/modules/Bloat/BloatModule.php:92
1401 +msgid "Remove RSD link"
1402 +msgstr ""
1403 +
1404 +#: includes/modules/Bloat/BloatModule.php:93
1405 +msgid "Drop the Really Simple Discovery link from the page head. Only old desktop blogging clients read it."
1406 +msgstr ""
1407 +
1408 +#: includes/modules/Bloat/BloatModule.php:98
1409 +msgid "Remove shortlink"
1410 +msgstr ""
1411 +
1412 +#: includes/modules/Bloat/BloatModule.php:99
1413 +msgid "Drop the ?p=123 shortlink tag and header from posts and pages. The shortlinks keep working; they are just no longer advertised."
1414 +msgstr ""
1415 +
1416 +#: includes/modules/Bloat/BloatModule.php:104
1417 +msgid "Remove REST API links"
1418 +msgstr ""
1419 +
1420 +#: includes/modules/Bloat/BloatModule.php:105
1421 +msgid "Drop the /wp-json/ discovery link tag and Link header. The REST API itself stays on; to block it, use the setting below."
1422 +msgstr ""
1423 +
1424 +#: includes/modules/Bloat/BloatModule.php:110
1425 +msgid "Hide WordPress version"
1426 +msgstr ""
1427 +
1428 +#: includes/modules/Bloat/BloatModule.php:111
1429 +msgid "Remove the WordPress generator tag from pages and feeds, so it no longer states the WordPress version. Other plugins print their own tags; those stay. Script and style URLs still carry ?ver= numbers."
1430 +msgstr ""
1431 +
1432 +#: includes/modules/Bloat/BloatModule.php:116
1433 +msgid "Disable self-pingbacks"
1434 +msgstr ""
1435 +
1436 +#: includes/modules/Bloat/BloatModule.php:117
1437 +msgid "Stop WordPress from sending a pingback to your own site when a post links to another of your posts. Pingbacks to other sites are not affected."
1438 +msgstr ""
1439 +
1440 +#: includes/modules/Bloat/BloatModule.php:122
1441 +msgid "REST API for logged-in users only"
1442 +msgstr ""
1443 +
1444 +#: includes/modules/Bloat/BloatModule.php:123
1445 +msgid "Blocks /wp-json/ for logged-out visitors. This breaks WooCommerce checkout and many contact forms, so keep it off unless you are sure."
1446 +msgstr ""
1447 +
1448 +#: includes/modules/Bloat/BloatModule.php:393
1171 1449 msgid "Feeds are disabled."
1172 1450 msgstr ""
1173 1451
1174 -#: includes/modules/Bloat/BloatModule.php:229
1452 +#: includes/modules/Bloat/BloatModule.php:450
1175 1453 msgid "Anonymous REST access is disabled on this site."
1176 1454 msgstr ""
1177 1455
1178 1456 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
1179 -#: includes/modules/Migration/MigrationModule.php:551
1457 +#: includes/modules/Migration/MigrationModule.php:552
1180 1458 msgid "Browser Cache"
1181 1459 msgstr ""
1182 1460
1183 1461 #: includes/modules/BrowserCache/BrowserCacheModule.php:34
1184 -msgid "Tell browsers (and intermediate CDNs) how long to cache static assets and HTML."
1462 +msgid "Tells browsers and CDNs how long to keep your files and pages."
1185 1463 msgstr ""
1186 1464
1187 -#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1465 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1188 1466 msgid "Enable browser cache headers"
1189 1467 msgstr ""
1190 1468
1191 -#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1192 -msgid "On Apache/LiteSpeed this writes Cache-Control + Expires rules into .htaccess. On nginx it just stores the settings — you paste the snippet into your server block manually."
1469 +#: includes/modules/BrowserCache/BrowserCacheModule.php:45
1470 +msgid "On Apache and LiteSpeed, xSpeed adds the rules to .htaccess for you. On nginx, you copy the snippet into your server config."
1193 1471 msgstr ""
1194 1472
1195 -#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1196 -msgid "Static asset TTL (seconds)"
1473 +#: includes/modules/BrowserCache/BrowserCacheModule.php:52
1474 +msgid "File lifetime (seconds)"
1197 1475 msgstr ""
1198 1476
1199 -#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1200 -msgid "Cache lifetime for CSS, JS, fonts, images. Defaults to 1 year + immutable (the industry-standard \"fingerprinted assets never change\" pattern)."
1477 +#: includes/modules/BrowserCache/BrowserCacheModule.php:54
1478 +msgid "How long browsers keep CSS, JS, fonts and images. The default is 1 year, which suits files that change name when they change."
1201 1479 msgstr ""
1202 1480
1203 -#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1204 -msgid "HTML TTL (seconds)"
1481 +#: includes/modules/BrowserCache/BrowserCacheModule.php:62
1482 +msgid "Page lifetime (seconds)"
1205 1483 msgstr ""
1206 1484
1207 -#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1208 -msgid "Cache lifetime for the HTML document itself. Keep short (default 1h) so post edits roll out same-day."
1485 +#: includes/modules/BrowserCache/BrowserCacheModule.php:64
1486 +msgid "How long browsers keep the page itself. Keep it short (default 1 hour) so visitors see your edits the same day."
1209 1487 msgstr ""
1210 1488
1211 -#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1489 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1212 1490 msgid "Browser cache is enabled but not active on the server"
1213 1491 msgstr ""
1214 1492
1215 -#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1493 +#: includes/modules/BrowserCache/BrowserCacheModule.php:129
1216 1494 msgid "Browser-cache headers need to live in your nginx config, and the live response shows they are not being sent yet — so this is on in settings but doing nothing. Your settings are included in the unified server-block snippet on the Cache panel: paste it once into your nginx vhost (or container nginx config) and reload nginx."
1217 1495 msgstr ""
1218 1496
1219 -#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1220 -#: includes/modules/Gzip/GzipModule.php:163
1497 +#: includes/modules/BrowserCache/BrowserCacheModule.php:133
1498 +#: includes/modules/Gzip/GzipModule.php:164
1221 1499 msgid "Go to the snippet"
1222 1500 msgstr ""
1223 1501
1224 -#: includes/modules/Cache/CacheModule.php:130
1225 -#: includes/modules/Migration/MigrationModule.php:547
1502 +#: includes/modules/Cache/CacheModule.php:169
1503 +#: includes/modules/Migration/MigrationModule.php:548
1226 1504 msgid "Page Cache"
1227 1505 msgstr ""
1228 1506
1229 -#: includes/modules/Cache/CacheModule.php:132
1230 -msgid "Page caching for non-logged-in visitors."
1507 +#: includes/modules/Cache/CacheModule.php:171
1508 +msgid "Saves each page as a file and serves it to logged-out visitors."
1231 1509 msgstr ""
1232 1510
1233 -#: includes/modules/Cache/CacheModule.php:158
1234 -msgid "Cache Expiry (hours)"
1511 +#: includes/modules/Cache/CacheModule.php:198
1512 +msgid "Cache expiry (hours)"
1235 1513 msgstr ""
1236 1514
1237 -#: includes/modules/Cache/CacheModule.php:160
1238 -msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)."
1515 +#: includes/modules/Cache/CacheModule.php:200
1516 +msgid "How long a cached page is kept before xSpeed builds it again. 1 to 720 hours (30 days)."
1239 1517 msgstr ""
1240 1518
1241 -#: includes/modules/Cache/CacheModule.php:188
1519 +#: includes/modules/Cache/CacheModule.php:231
1242 1520 msgid "Excluded URLs"
1243 1521 msgstr ""
1244 1522
1245 -#: includes/modules/Cache/CacheModule.php:189
1246 -msgid "One pattern per line. Plain text matches anywhere in the URL (e.g. /cart). Use glob for anchored matches (/cart/* matches /cart/items but not /foo/cart/bar; *.pdf matches PDFs). Prefix with ~ for a raw regex (e.g. ~wp-.*\\.php)."
1523 +#: includes/modules/Cache/CacheModule.php:232
1524 +msgid "Pages whose URL matches a line here are never cached. Plain text matches anywhere (/cart). A pattern with * matches from the start of the path: /cart/* matches /cart/items but not /shop/cart/items. ~ starts a regex."
1247 1525 msgstr ""
1248 1526
1249 -#: includes/modules/Cache/CacheModule.php:198
1250 -msgid "Excluded Cookies"
1527 +#: includes/modules/Cache/CacheModule.php:241
1528 +msgid "Excluded cookies"
1251 1529 msgstr ""
1252 1530
1253 -#: includes/modules/Cache/CacheModule.php:199
1254 -msgid "Skip cache for any visitor whose request carries a cookie whose NAME matches one of these patterns. Plain text = \"contains\"; glob (woocommerce_*) and ~regex (~wordpress_[a-f0-9]+) supported. One per line."
1531 +#: includes/modules/Cache/CacheModule.php:242
1532 +msgid "Visitors with a cookie whose name matches a line here always get a fresh page. One per line; * and ~regex work."
1255 1533 msgstr ""
1256 1534
1257 -#: includes/modules/Cache/CacheModule.php:205
1258 -msgid "Bypass User Agents"
1535 +#: includes/modules/Cache/CacheModule.php:248
1536 +msgid "Excluded browsers and bots"
1259 1537 msgstr ""
1260 1538
1261 -#: includes/modules/Cache/CacheModule.php:206
1262 -msgid "Substring match against the visitor User-Agent. Matched UAs bypass cache (useful for screenshot bots, internal previews, monitoring). Glob + ~regex supported. One per line."
1539 +#: includes/modules/Cache/CacheModule.php:249
1540 +msgid "Visitors whose user agent contains a line here always get a fresh page. Useful for screenshot bots and uptime monitors."
1263 1541 msgstr ""
1264 1542
1265 -#: includes/modules/Cache/CacheModule.php:217
1266 -msgid "Ignored Query Parameters"
1543 +#: includes/modules/Cache/CacheModule.php:260
1544 +msgid "Ignored query parameters"
1267 1545 msgstr ""
1268 1546
1269 -#: includes/modules/Cache/CacheModule.php:218
1270 -msgid "Query keys removed from the URL before computing the cache key, so /post?utm_source=x and /post share a cache entry. Defaults cover the common analytics + ad + session params. Each entry matches a whole param name — plain text is an exact name, and glob (utm_*) or ~regex are anchored too, so \"ref\" does not also match \"preference\". One per line."
1547 +#: includes/modules/Cache/CacheModule.php:262
1548 +msgid "URL parameters to ignore, so /post?utm_source=x gets the same cached page as /post. Each line matches a whole parameter name."
1271 1549 msgstr ""
1272 1550
1273 -#: includes/modules/Cache/CacheModule.php:223
1274 -msgid "Purge After Updates"
1551 +#: includes/modules/Cache/CacheModule.php:267
1552 +msgid "Clear cache after updates"
1275 1553 msgstr ""
1276 1554
1277 -#: includes/modules/Cache/CacheModule.php:224
1278 -msgid "Clear the page cache when a plugin, theme or WordPress core is updated. Cached HTML is produced by the code being replaced, so leaving it in place serves pre-update markup — and links to minified assets that no longer exist — until the cache expires. Translation updates are ignored, since a language pack changes no markup a cached page depends on. Updates to xSpeed itself always purge, regardless of this setting."
1555 +#: includes/modules/Cache/CacheModule.php:268
1556 +msgid "Clear the page cache when a plugin, theme or WordPress is updated, so visitors never get old pages with broken asset links."
1279 1557 msgstr ""
1280 1558
1281 -#: includes/modules/Cache/CacheModule.php:229
1282 -msgid "Separate Mobile Cache"
1559 +#: includes/modules/Cache/CacheModule.php:273
1560 +msgid "Clear only the pages a change affects"
1283 1561 msgstr ""
1284 1562
1285 -#: includes/modules/Cache/CacheModule.php:230
1286 -msgid "Keep mobile and desktop responses in separate cache buckets. Turn on for AMP, mobile-specific themes (WPtouch / Jetpack mobile theme), or any setup that serves different HTML by device."
1563 +#: includes/modules/Cache/CacheModule.php:274
1564 +msgid "When you publish, edit or delete a post, clear that post, the pages that list it and its feeds instead of the whole site. Pages with a post grid from a page builder, a block plugin or the theme are noted as they are built and cleared when the change can affect their list; turn this off if a grid still shows an old list."
1287 1565 msgstr ""
1288 1566
1567 +#: includes/modules/Cache/CacheModule.php:275
1568 +msgid "Which pages are cleared"
1569 +msgstr ""
1570 +
1571 +#: includes/modules/Cache/CacheModule.php:276
1572 +msgid "The post, its old address if it moved, the home page, the blog page, its categories, tags and author pages with every page of each, the date archives, feeds, the posts next to it, pages that show a Latest Posts or Query Loop block, directly or in a synced pattern, and pages noted running a post grid of their own (a page builder, block plugin, related-posts or theme list) that the change can affect. If your theme shows a list that can be on any page, and the change alters it, xSpeed clears the whole site instead: a Recent Posts, Archives or Calendar widget, a post list block, or a latest-posts grid from a page builder or plugin (usually a new post, or an edit to one of the newest few it shows), a page list or menu (a page published, withdrawn, renamed or moved), or a Categories or Tag Cloud list (a post moved to other categories or tags)."
1573 +msgstr ""
1574 +
1575 +#: includes/modules/Cache/CacheModule.php:281
1576 +msgid "Separate mobile cache"
1577 +msgstr ""
1578 +
1579 +#: includes/modules/Cache/CacheModule.php:282
1580 +msgid "Keep a separate cached copy for phones. Turn on only if your theme or plugins show different pages on mobile."
1581 +msgstr ""
1582 +
1583 +#: includes/modules/Cache/CacheModule.php:314
1584 +msgid "CDN or proxy in front"
1585 +msgstr ""
1586 +
1587 +#: includes/modules/Cache/CacheModule.php:315
1588 +msgid "Tells your CDN or proxy not to store pages xSpeed does not cache. Leave on Detect automatically unless you know your provider."
1589 +msgstr ""
1590 +
1591 +#: includes/modules/Cache/CacheModule.php:317
1592 +msgid "Cache in front of this site"
1593 +msgstr ""
1594 +
1595 +#: includes/modules/Cache/CacheModule.php:318
1596 +msgid "Naming your provider narrows the headers to the one it reads. Detect automatically works it out per request and otherwise sends a set every cache ignores unless it understands it, so it is safe not to know. Off stops the edge lifetime and cache tags. When an add-on that manages the edge, such as a Cloudflare Enterprise add-on, is active, the \"don't store\" headers for logged-in, cart and search pages still go out. Run \"wp xspeed cache edge\" to see what was detected and what gets sent."
1597 +msgstr ""
1598 +
1599 +#: includes/modules/Cache/CacheModule.php:324
1600 +msgid "Custom CDN headers"
1601 +msgstr ""
1602 +
1603 +#: includes/modules/Cache/CacheModule.php:327
1604 +msgid "One header per line, as Name: value, for example \"Surrogate-Control: no-store\". Lines starting with # are ignored."
1605 +msgstr ""
1606 +
1607 +#: includes/modules/Cache/CacheModule.php:328
1608 +msgid "Custom edge headers"
1609 +msgstr ""
1610 +
1611 +#: includes/modules/Cache/CacheModule.php:329
1612 +msgid "These replace the headers xSpeed would have picked for your CDN. Two baselines are still added underneath: a Cache-Control, and \"X-Accel-Expires: 0\" for a page cache running in nginx on your own server. Name either one yourself and yours is used instead. Values containing $, % or a backslash are dropped — the same pairs go into nginx and Apache directives, where those cannot be escaped safely. Content-Length, Content-Encoding, Content-Type, Transfer-Encoding, Set-Cookie and Location are refused."
1613 +msgstr ""
1614 +
1615 +#: includes/modules/Cache/CacheModule.php:342
1616 +msgid "LiteSpeed static fast path"
1617 +msgstr ""
1618 +
1619 +#: includes/modules/Cache/CacheModule.php:344
1620 +msgid "LiteSpeed serves cached pages without running PHP, which is faster on slow hosts. These visits are not counted in the dashboard hit ratio."
1621 +msgstr ""
1622 +
1289 1623 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1290 1624 msgid "Advanced Cache"
1291 1625 msgstr ""
1292 1626
1293 1627 #: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1294 -msgid "Cache 404s, search, feeds, and the REST API, plus custom rules and maintenance bypass."
1628 +msgid "Caches more page types: 404s, search, feeds and the REST API."
1295 1629 msgstr ""
1296 1630
1297 1631 #: includes/modules/Cdn/CdnModule.php:30
1298 -msgid "Serve static assets (images, fonts, CSS, JS) from a pull-zone CDN host like BunnyCDN, KeyCDN, or your own."
1632 +msgid "Serve images, fonts, CSS and JS from a CDN such as BunnyCDN or KeyCDN."
1299 1633 msgstr ""
1300 1634
1301 -#: includes/modules/Cdn/CdnModule.php:39
1635 +#: includes/modules/Cdn/CdnModule.php:40
1302 1636 msgid "Enable CDN"
1303 1637 msgstr ""
1304 1638
1305 -#: includes/modules/Cdn/CdnModule.php:40
1306 -msgid "Rewrite static asset URLs to the CDN hostname below. Your CDN must be a pull-zone configured to fetch from this site."
1639 +#: includes/modules/Cdn/CdnModule.php:41
1640 +msgid "Load static files from the CDN address below. Set up the CDN to pull files from this site first."
1307 1641 msgstr ""
1308 1642
1309 -#: includes/modules/Cdn/CdnModule.php:45
1643 +#: includes/modules/Cdn/CdnModule.php:46
1310 1644 msgid "CDN URL"
1311 1645 msgstr ""
1312 1646
1313 -#: includes/modules/Cdn/CdnModule.php:46
1314 -msgid "CDN hostname, e.g. cdn.example.com. https:// and trailing slashes are stripped automatically."
1647 +#: includes/modules/Cdn/CdnModule.php:47
1648 +msgid "The CDN address, for example cdn.example.com. xSpeed removes https:// and any trailing slash."
1315 1649 msgstr ""
1316 1650
1317 -#: includes/modules/Cdn/CdnModule.php:53
1318 -msgid "Included File Extensions"
1651 +#: includes/modules/Cdn/CdnModule.php:54
1652 +msgid "File types to serve"
1319 1653 msgstr ""
1320 1654
1321 -#: includes/modules/Cdn/CdnModule.php:54
1322 -msgid "Only URLs ending in these extensions are rewritten. Defaults cover images, fonts, CSS, JS, and common media."
1655 +#: includes/modules/Cdn/CdnModule.php:55
1656 +msgid "Only files with these extensions load from the CDN. The defaults cover images, fonts, CSS, JS and common media."
1323 1657 msgstr ""
1324 1658
1325 -#: includes/modules/Cdn/CdnModule.php:61
1326 -msgid "Excluded Patterns"
1659 +#: includes/modules/Cdn/CdnModule.php:62
1660 +msgid "Excluded paths"
1327 1661 msgstr ""
1328 1662
1329 -#: includes/modules/Cdn/CdnModule.php:62
1330 -msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*"
1663 +#: includes/modules/Cdn/CdnModule.php:63
1664 +msgid "Files whose path matches a pattern load from your server, not the CDN. Use * as a wildcard, for example /private/* or *.pdf."
1331 1665 msgstr ""
1332 1666
1333 -#: includes/modules/Cloudflare/CloudflareModule.php:40
1667 +#: includes/modules/Cloudflare/CloudflareModule.php:77
1334 1668 msgid "Cloudflare"
1335 1669 msgstr ""
1336 1670
1337 -#: includes/modules/Cloudflare/CloudflareModule.php:42
1338 -msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1671 +#: includes/modules/Cloudflare/CloudflareModule.php:79
1672 +msgid "Clear the Cloudflare cache whenever xSpeed clears its own cache."
1339 1673 msgstr ""
1340 1674
1341 -#: includes/modules/Cloudflare/CloudflareModule.php:65
1342 -msgid "Enable Cloudflare integration"
1675 +#: includes/modules/Cloudflare/CloudflareModule.php:103
1676 +msgid "Connect Cloudflare"
1343 1677 msgstr ""
1344 1678
1345 -#: includes/modules/Cloudflare/CloudflareModule.php:66
1346 -msgid "Use the credentials below to verify your zone and run purges."
1679 +#: includes/modules/Cloudflare/CloudflareModule.php:104
1680 +msgid "Lets xSpeed clear the Cloudflare cache for your domain, using the details below."
1347 1681 msgstr ""
1348 1682
1349 -#: includes/modules/Cloudflare/CloudflareModule.php:76
1683 +#: includes/modules/Cloudflare/CloudflareModule.php:114
1350 1684 msgid "Authentication"
1351 1685 msgstr ""
1352 1686
1353 -#: includes/modules/Cloudflare/CloudflareModule.php:77
1354 -msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1687 +#: includes/modules/Cloudflare/CloudflareModule.php:115
1688 +msgid "An API token is safer and recommended. The older Global API Key also needs your account email."
1355 1689 msgstr ""
1356 1690
1357 -#: includes/modules/Cloudflare/CloudflareModule.php:83
1691 +#: includes/modules/Cloudflare/CloudflareModule.php:121
1358 1692 msgid "API Token"
1359 1693 msgstr ""
1360 1694
1361 -#: includes/modules/Cloudflare/CloudflareModule.php:84
1362 -msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1695 +#: includes/modules/Cloudflare/CloudflareModule.php:122
1696 +msgid "Create one at dash.cloudflare.com → My Profile → API Tokens. Give it the \"Zone → Cache Purge\" and \"Zone Settings\" permissions."
1363 1697 msgstr ""
1364 1698
1365 -#: includes/modules/Cloudflare/CloudflareModule.php:92
1366 -msgid "Account Email"
1699 +#: includes/modules/Cloudflare/CloudflareModule.php:130
1700 +msgid "Account email"
1367 1701 msgstr ""
1368 1702
1369 -#: includes/modules/Cloudflare/CloudflareModule.php:93
1370 -msgid "Only used when Authentication is set to Global API Key."
1703 +#: includes/modules/Cloudflare/CloudflareModule.php:131
1704 +msgid "The email address of your Cloudflare account."
1371 1705 msgstr ""
1372 1706
1373 -#: includes/modules/Cloudflare/CloudflareModule.php:99
1707 +#: includes/modules/Cloudflare/CloudflareModule.php:137
1374 1708 msgid "Global API Key"
1375 1709 msgstr ""
1376 1710
1377 -#: includes/modules/Cloudflare/CloudflareModule.php:100
1378 -msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1711 +#: includes/modules/Cloudflare/CloudflareModule.php:138
1712 +msgid "Find it at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1379 1713 msgstr ""
1380 1714
1381 -#: includes/modules/Cloudflare/CloudflareModule.php:106
1715 +#: includes/modules/Cloudflare/CloudflareModule.php:144
1382 1716 msgid "Zone ID"
1383 1717 msgstr ""
1384 1718
1385 -#: includes/modules/Cloudflare/CloudflareModule.php:107
1386 -msgid "The 32-character hex Zone ID from your domain overview page."
1719 +#: includes/modules/Cloudflare/CloudflareModule.php:145
1720 +msgid "The 32-character Zone ID shown on your domain overview page in Cloudflare."
1387 1721 msgstr ""
1388 1722
1389 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1390 -msgid "Auto-purge Cloudflare on xSpeed purge"
1723 +#: includes/modules/Cloudflare/CloudflareModule.php:151
1724 +msgid "Clear Cloudflare with xSpeed"
1391 1725 msgstr ""
1392 1726
1393 -#: includes/modules/Cloudflare/CloudflareModule.php:114
1394 -msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1727 +#: includes/modules/Cloudflare/CloudflareModule.php:152
1728 +msgid "Clear the Cloudflare cache each time xSpeed clears its own, for example after you save a post."
1395 1729 msgstr ""
1396 1730
1397 -#: includes/modules/Cloudflare/CloudflareModule.php:238
1731 +#. translators: %d: number of URLs that changed at once.
1732 +#: includes/modules/Cloudflare/CloudflareModule.php:489
1733 +#, php-format
1734 +msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1735 +msgstr ""
1736 +
1737 +#. translators: %d: number of URLs.
1738 +#: includes/modules/Cloudflare/CloudflareModule.php:550
1739 +#, php-format
1740 +msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1741 +msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1742 +msgstr[0] ""
1743 +msgstr[1] ""
1744 +
1745 +#. translators: %d: number of URLs purged.
1746 +#: includes/modules/Cloudflare/CloudflareModule.php:581
1747 +#, php-format
1748 +msgid "Purged %d URL from the Cloudflare edge cache"
1749 +msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1750 +msgstr[0] ""
1751 +msgstr[1] ""
1752 +
1753 +#. translators: 1: number of URLs, 2: failure reason.
1754 +#: includes/modules/Cloudflare/CloudflareModule.php:597
1755 +#, php-format
1756 +msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1757 +msgstr ""
1758 +
1759 +#: includes/modules/Cloudflare/CloudflareModule.php:599
1760 +#: includes/modules/Cloudflare/CloudflareModule.php:670
1761 +msgid "unknown error"
1762 +msgstr ""
1763 +
1764 +#: includes/modules/Cloudflare/CloudflareModule.php:615
1398 1765 msgid "the Cloudflare integration is switched off"
1399 1766 msgstr ""
1400 1767
1401 -#: includes/modules/Cloudflare/CloudflareModule.php:241
1768 +#: includes/modules/Cloudflare/CloudflareModule.php:622
1402 1769 msgid "no zone ID or API credentials are configured"
1403 1770 msgstr ""
1404 1771
1405 1772 #. translators: %s: what asked for the purge.
1406 -#: includes/modules/Cloudflare/CloudflareModule.php:277
1773 +#: includes/modules/Cloudflare/CloudflareModule.php:658
1407 1774 #, php-format
1408 1775 msgid "Purged the Cloudflare edge cache (%s)"
1409 1776 msgstr ""
1410 1777
1411 1778 #. translators: 1: what asked for the purge, 2: failure reason.
1412 -#: includes/modules/Cloudflare/CloudflareModule.php:287
1779 +#: includes/modules/Cloudflare/CloudflareModule.php:668
1413 1780 #, php-format
1414 1781 msgid "Cloudflare purge failed (%1$s): %2$s"
1415 1782 msgstr ""
1416 1783
1417 -#: includes/modules/Cloudflare/CloudflareModule.php:289
1418 -msgid "unknown error"
1419 -msgstr ""
1420 -
1421 -#: includes/modules/Cloudflare/CloudflareModule.php:359
1784 +#: includes/modules/Cloudflare/CloudflareModule.php:742
1422 1785 msgid "Cloudflare is not fully configured."
1423 1786 msgstr ""
1424 1787
1425 -#: includes/modules/Cloudflare/CloudflareModule.php:360
1788 +#: includes/modules/Cloudflare/CloudflareModule.php:743
1426 1789 msgid "Add your API token (or Global API Key + account email) and the Zone ID, then press Verify. Until then auto-purge does nothing."
1427 1790 msgstr ""
1428 1791
1429 -#: includes/modules/Cloudflare/CloudflareModule.php:373
1792 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1430 1793 msgid "Cloudflare purge is failing."
1431 1794 msgstr ""
1432 1795
1433 1796 #. translators: %s: the Cloudflare API error message, or empty.
1434 -#: includes/modules/Cloudflare/CloudflareModule.php:376
1797 +#: includes/modules/Cloudflare/CloudflareModule.php:759
1435 1798 #, php-format
1436 1799 msgid "The last edge purge was rejected by Cloudflare%s. Confirm the API token includes the \"Zone → Cache Purge\" permission for this zone — a token that can read the zone can still lack purge rights."
1437 1800 msgstr ""
1438 1801
1439 -#: includes/modules/Cloudflare/CloudflareModule.php:385
1802 +#: includes/modules/Cloudflare/CloudflareModule.php:768
1440 1803 msgid "Cloudflare credentials were rejected."
1441 1804 msgstr ""
1442 1805
1443 1806 #. translators: %s: the Cloudflare API error message, or empty.
1444 -#: includes/modules/Cloudflare/CloudflareModule.php:388
1807 +#: includes/modules/Cloudflare/CloudflareModule.php:771
1445 1808 #, php-format
1446 1809 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1447 1810 msgstr ""
1448 1811
@@ -1450,28 +1813,54 @@
1450 1813 msgid "Database"
1451 1814 msgstr ""
1452 1815
1453 1816 #: includes/modules/Database/DatabaseModule.php:32
1454 -msgid "Scan + clean WordPress bloat (revisions, spam, transients, orphan meta) and optimize tables."
1817 +msgid "Remove old revisions, spam and other leftovers, and optimize database tables."
1455 1818 msgstr ""
1456 1819
1457 -#: includes/modules/Database/DatabaseModule.php:49
1458 -msgid "Auto-Cleanup Schedule"
1820 +#: includes/modules/Database/DatabaseModule.php:50
1821 +msgid "Automatic cleanup"
1459 1822 msgstr ""
1460 1823
1461 -#: includes/modules/Database/DatabaseModule.php:50
1462 -msgid "How often to run cleanup automatically. Manual means cleanup only runs when you press the button."
1824 +#: includes/modules/Database/DatabaseModule.php:51
1825 +msgid "How often xSpeed cleans the database on its own. Manual means it only cleans when you press the button."
1463 1826 msgstr ""
1464 1827
1465 -#: includes/modules/Database/DatabaseModule.php:56
1466 -msgid "Auto-Cleanup Types"
1828 +#: includes/modules/Database/DatabaseModule.php:57
1829 +msgid "What to clean automatically"
1467 1830 msgstr ""
1468 1831
1469 -#: includes/modules/Database/DatabaseModule.php:57
1470 -msgid "Which cleanup categories run on the schedule above. Leave empty to keep auto-cleanup disabled even if a schedule is set."
1832 +#: includes/modules/Database/DatabaseModule.php:58
1833 +msgid "The items the scheduled cleanup removes. If you leave this empty, nothing is cleaned, even with a schedule set."
1471 1834 msgstr ""
1472 1835
1473 -#: includes/modules/Database/DatabaseModule.php:149
1836 +#: includes/modules/Database/DatabaseModule.php:70
1837 +msgid "Limit post revisions"
1838 +msgstr ""
1839 +
1840 +#: includes/modules/Database/DatabaseModule.php:71
1841 +msgid "Cap how many revisions WordPress keeps for each post. Cleanup removes revisions that already exist; this stops them piling up again."
1842 +msgstr ""
1843 +
1844 +#: includes/modules/Database/DatabaseModule.php:78
1845 +msgid "Revisions to keep"
1846 +msgstr ""
1847 +
1848 +#: includes/modules/Database/DatabaseModule.php:79
1849 +msgid "0 turns revisions off completely. Older revisions are trimmed the next time each post is saved; to remove the backlog now, clean Post Revisions above."
1850 +msgstr ""
1851 +
1852 +#: includes/modules/Database/DatabaseModule.php:134
1853 +msgid "The revision limit is set outside xSpeed"
1854 +msgstr ""
1855 +
1856 +#. translators: %s: value of WP_POST_REVISIONS, e.g. 5 or false.
1857 +#: includes/modules/Database/DatabaseModule.php:137
1858 +#, php-format
1859 +msgid "WP_POST_REVISIONS is set to %s, usually in wp-config.php, so Limit Post Revisions below has no effect. Remove that definition to manage the limit here."
1860 +msgstr ""
1861 +
1862 +#: includes/modules/Database/DatabaseModule.php:241
1474 1863 msgid "Provide at least one cleanup type."
1475 1864 msgstr ""
1476 1865
1477 1866 #: includes/modules/Fonts/FontsModule.php:35
@@ -1478,29 +1867,29 @@
1478 1867 msgid "Fonts"
1479 1868 msgstr ""
1480 1869
1481 1870 #: includes/modules/Fonts/FontsModule.php:37
1482 -msgid "Stop web fonts from blocking text. Adds display=swap to Google Fonts and preloads the fonts you mark critical."
1871 +msgid "Shows text right away while web fonts load, and preloads key fonts."
1483 1872 msgstr ""
1484 1873
1485 -#: includes/modules/Fonts/FontsModule.php:46
1486 -msgid "Add font-display: swap"
1874 +#: includes/modules/Fonts/FontsModule.php:47
1875 +msgid "Show text while fonts load"
1487 1876 msgstr ""
1488 1877
1489 -#: includes/modules/Fonts/FontsModule.php:47
1490 -msgid "Append display=swap to Google Fonts URLs so text renders immediately in a fallback face while the web font loads. Blocking values already on the URL (auto, block) are rewritten to swap; a deliberate non-blocking choice (fallback, optional) is left alone."
1878 +#: includes/modules/Fonts/FontsModule.php:48
1879 +msgid "Text in Google Fonts, and in fonts added to WordPress itself, shows at once in a standard font, then switches when the web font arrives."
1491 1880 msgstr ""
1492 1881
1493 -#: includes/modules/Fonts/FontsModule.php:53
1494 -msgid "Preload Font URLs"
1882 +#: includes/modules/Fonts/FontsModule.php:54
1883 +msgid "Fonts to preload"
1495 1884 msgstr ""
1496 1885
1497 -#: includes/modules/Fonts/FontsModule.php:54
1498 -msgid "One absolute font URL per line (woff2/woff/ttf/otf). Each becomes a <link rel=\"preload\" as=\"font\" crossorigin> in the head so the browser starts downloading before the CSS parses. Use only for fonts that render above the fold."
1886 +#: includes/modules/Fonts/FontsModule.php:55
1887 +msgid "One full font file URL per line (woff2, woff, ttf or otf). The browser fetches these first, so list only fonts used at the top of the page."
1499 1888 msgstr ""
1500 1889
1501 1890 #: includes/modules/Gzip/GzipModule.php:35
1502 -#: includes/modules/Migration/MigrationModule.php:553
1891 +#: includes/modules/Migration/MigrationModule.php:554
1503 1892 msgid "Compression"
1504 1893 msgstr ""
1505 1894
1506 1895 #: includes/modules/Gzip/GzipModule.php:36
@@ -1507,130 +1896,166 @@
1507 1896 msgid "GZIP"
1508 1897 msgstr ""
1509 1898
1510 1899 #: includes/modules/Gzip/GzipModule.php:38
1511 -msgid "Compress responses to reduce transfer size."
1900 +msgid "Compresses pages and files so they download faster."
1512 1901 msgstr ""
1513 1902
1514 -#: includes/modules/Gzip/GzipModule.php:52
1515 -msgid "Enable GZIP Compression"
1903 +#: includes/modules/Gzip/GzipModule.php:53
1904 +msgid "Enable Gzip compression"
1516 1905 msgstr ""
1517 1906
1518 -#: includes/modules/Gzip/GzipModule.php:74
1519 -msgid "Compress responses before sending them. We write the .htaccess rules automatically on this server."
1907 +#: includes/modules/Gzip/GzipModule.php:75
1908 +msgid "Compresses pages and files before sending them. xSpeed adds the .htaccess rules for you on this server."
1520 1909 msgstr ""
1521 1910
1522 -#: includes/modules/Gzip/GzipModule.php:77
1523 -msgid "Compress responses before sending them. nginx cannot be configured from WordPress, so the directives ship in the unified server-block snippet — see the notice below."
1911 +#: includes/modules/Gzip/GzipModule.php:78
1912 +msgid "Compresses pages and files before sending them. On nginx you add the rules to your server config yourself. See the notice below."
1524 1913 msgstr ""
1525 1914
1526 -#: includes/modules/Gzip/GzipModule.php:79
1527 -msgid "Compress responses before sending them. On this server the directives have to be added to your server config by hand — see the notice below."
1915 +#: includes/modules/Gzip/GzipModule.php:80
1916 +msgid "Compresses pages and files before sending them. On this server you add the rules to your server config yourself. See the notice below."
1528 1917 msgstr ""
1529 1918
1530 -#: includes/modules/Gzip/GzipModule.php:154
1919 +#: includes/modules/Gzip/GzipModule.php:155
1531 1920 msgid "GZIP requires server config on nginx"
1532 1921 msgstr ""
1533 1922
1534 -#: includes/modules/Gzip/GzipModule.php:155
1923 +#: includes/modules/Gzip/GzipModule.php:156
1535 1924 msgid "GZIP is being served by nginx"
1536 1925 msgstr ""
1537 1926
1538 -#: includes/modules/Gzip/GzipModule.php:157
1927 +#: includes/modules/Gzip/GzipModule.php:158
1539 1928 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). The directives are included in the unified server-block snippet on the Cache panel — copy + paste it once into your nginx vhost (or container nginx config) and reload nginx."
1540 1929 msgstr ""
1541 1930
1542 -#: includes/modules/Gzip/GzipModule.php:158
1931 +#: includes/modules/Gzip/GzipModule.php:159
1543 1932 msgid "Responses are compressed. xSpeed cannot configure nginx from WordPress, so these directives live in the unified server-block snippet on the Cache panel — that is where to re-copy them if your server config is ever rebuilt."
1544 1933 msgstr ""
1545 1934
1546 -#: includes/modules/Gzip/GzipModule.php:186
1935 +#: includes/modules/Gzip/GzipModule.php:187
1547 1936 msgid "GZIP enabled but not active on the server"
1548 1937 msgstr ""
1549 1938
1550 -#: includes/modules/Gzip/GzipModule.php:187
1939 +#: includes/modules/Gzip/GzipModule.php:188
1551 1940 msgid "xSpeed wrote the .htaccess rules but the response still isn't gzipped. Your server may have AllowOverride disabled, another caching plugin overriding, or mod_deflate missing. Ask your host to enable GZIP on Apache."
1552 1941 msgstr ""
1553 1942
1554 -#: includes/modules/Gzip/GzipModule.php:197
1943 +#: includes/modules/Gzip/GzipModule.php:198
1555 1944 msgid "GZIP requires server config on this server"
1556 1945 msgstr ""
1557 1946
1558 -#: includes/modules/Gzip/GzipModule.php:198
1947 +#: includes/modules/Gzip/GzipModule.php:199
1559 1948 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
1560 1949 msgstr ""
1561 1950
1562 -#: includes/modules/Health/HealthModule.php:66
1951 +#: includes/modules/Health/HealthModule.php:76
1563 1952 msgid "xSpeed static-rewrite cache"
1564 1953 msgstr ""
1565 1954
1566 -#: includes/modules/Health/HealthModule.php:81
1955 +#: includes/modules/Health/HealthModule.php:135
1567 1956 msgid "xSpeed static-rewrite cache is active"
1568 1957 msgstr ""
1569 1958
1570 -#: includes/modules/Health/HealthModule.php:84
1959 +#: includes/modules/Health/HealthModule.php:138
1571 1960 #: assets/admin.js
1572 1961 msgid "Performance"
1573 1962 msgstr ""
1574 1963
1575 -#: includes/modules/Health/HealthModule.php:87
1964 +#: includes/modules/Health/HealthModule.php:141
1576 1965 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1577 1966 msgstr ""
1578 1967
1579 -#: includes/modules/Health/HealthModule.php:93
1968 +#: includes/modules/Health/HealthModule.php:147
1580 1969 msgid "xSpeed cache is disabled"
1581 1970 msgstr ""
1582 1971
1583 -#: includes/modules/Health/HealthModule.php:95
1972 +#: includes/modules/Health/HealthModule.php:149
1584 1973 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1585 1974 msgstr ""
1586 1975
1587 -#: includes/modules/Health/HealthModule.php:108
1976 +#: includes/modules/Health/HealthModule.php:165
1977 +msgid "xSpeed is serving cache hits through PHP (LiteSpeed)"
1978 +msgstr ""
1979 +
1980 +#: includes/modules/Health/HealthModule.php:167
1981 +msgid "Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php), so every hit is visible and counted. LiteSpeed's .htaccess engine cannot tag or log statically served files, so this is the default. To serve hits straight from the web server with no PHP (at the cost of that tagging and counting), turn on LiteSpeed Static Fast Path in xSpeed's Cache settings."
1982 +msgstr ""
1983 +
1984 +#: includes/modules/Health/HealthModule.php:169
1588 1985 msgid "xSpeed is serving cache hits through PHP"
1589 1986 msgstr ""
1590 1987
1591 -#: includes/modules/Health/HealthModule.php:110
1988 +#: includes/modules/Health/HealthModule.php:171
1592 1989 msgid "Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php). The faster .htaccess fast path is off because Apache's mod_headers module is not loaded, without which a static hit could not be tagged or counted. Enable mod_headers (a2enmod headers on Debian/Ubuntu, then restart Apache) to shave roughly 20-30ms off each cache hit."
1593 1990 msgstr ""
1594 1991
1595 -#: includes/modules/Health/HealthModule.php:112
1992 +#: includes/modules/Health/HealthModule.php:173
1993 +#: includes/modules/Health/HealthModule.php:212
1596 1994 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1597 1995 msgstr ""
1598 1996
1599 -#: includes/modules/Health/HealthModule.php:114
1997 +#: includes/modules/Health/HealthModule.php:175
1998 +#: includes/modules/Health/HealthModule.php:214
1600 1999 msgid "Separate Mobile Cache is on, so cache hits are served by the PHP drop-in to keep per-device HTML correct. Turn Separate Mobile Cache off if your site serves the same HTML to every device to regain the faster static path."
1601 2000 msgstr ""
1602 2001
1603 -#: includes/modules/Health/HealthModule.php:116
2002 +#: includes/modules/Health/HealthModule.php:179
1604 2003 msgid "xSpeed .htaccess rewrite block is missing"
1605 2004 msgstr ""
1606 2005
1607 -#: includes/modules/Health/HealthModule.php:118
2006 +#: includes/modules/Health/HealthModule.php:181
1608 2007 msgid "Without the static-rewrite block, cache hits go through the PHP drop-in (~85ms TTFB) instead of the web server (~5-15ms). Toggle Enable Cache off and on in xSpeed to reinstall the block."
1609 2008 msgstr ""
1610 2009
1611 -#: includes/modules/Health/HealthModule.php:125
2010 +#: includes/modules/Health/HealthModule.php:206
2011 +msgid "xSpeed nginx static rewrite is active"
2012 +msgstr ""
2013 +
2014 +#: includes/modules/Health/HealthModule.php:208
2015 +msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
2016 +msgstr ""
2017 +
2018 +#: includes/modules/Health/HealthModule.php:218
2019 +msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
2020 +msgstr ""
2021 +
2022 +#: includes/modules/Health/HealthModule.php:220
2023 +msgid "Your nginx config is correct, but pages are not reaching the static cache, so hits are served by PHP. They contain nonces, and a static file is served with no PHP — nothing could ever refresh them, so every anonymous form on the page would break once they expire. Keeping these pages on PHP is deliberate."
2024 +msgstr ""
2025 +
2026 +#: includes/modules/Health/HealthModule.php:229
2027 +msgid "xSpeed could not verify the nginx static rewrite"
2028 +msgstr ""
2029 +
2030 +#. translators: %s: the reason the probe could not complete.
2031 +#: includes/modules/Health/HealthModule.php:234
2032 +#, php-format
2033 +msgid "The check itself did not complete, so this is not evidence that your config is wrong — if you have already pasted the snippet it may well be working. Reason: %s"
2034 +msgstr ""
2035 +
2036 +#: includes/modules/Health/HealthModule.php:242
1612 2037 msgid "xSpeed nginx server config required"
1613 2038 msgstr ""
1614 2039
1615 -#: includes/modules/Health/HealthModule.php:127
2040 +#: includes/modules/Health/HealthModule.php:244
1616 2041 msgid "xSpeed can't write nginx config from PHP. Paste this snippet into your site's server { } block, then reload nginx so cache hits serve without booting PHP:"
1617 2042 msgstr ""
1618 2043
1619 -#: includes/modules/Health/HealthModule.php:136
2044 +#: includes/modules/Health/HealthModule.php:253
1620 2045 msgid "xSpeed PHP drop-in cache active"
1621 2046 msgstr ""
1622 2047
1623 -#: includes/modules/Health/HealthModule.php:138
2048 +#: includes/modules/Health/HealthModule.php:255
1624 2049 msgid "Static-rewrite caching needs Apache, LiteSpeed, or nginx. The PHP drop-in is still serving cache hits at ~85ms TTFB on this server."
1625 2050 msgstr ""
1626 2051
1627 -#: includes/modules/Health/HealthModule.php:144
2052 +#: includes/modules/Health/HealthModule.php:261
1628 2053 msgid "Health"
1629 2054 msgstr ""
1630 2055
1631 -#: includes/modules/Health/HealthModule.php:146
1632 -msgid "Diagnostics, hit ratio, and recent cache activity."
2056 +#: includes/modules/Health/HealthModule.php:263
2057 +msgid "Checks for problems and shows how often visitors get cached pages."
1633 2058 msgstr ""
1634 2059
1635 2060 #: includes/modules/Heartbeat/HeartbeatModule.php:38
1636 2061 msgid "Heartbeat"
@@ -1636,41 +2061,41 @@
1636 2061 msgid "Heartbeat"
1637 2062 msgstr ""
1638 2063
1639 2064 #: includes/modules/Heartbeat/HeartbeatModule.php:40
1640 -msgid "Control the WordPress Heartbeat API per context."
2065 +msgid "Controls how often WordPress checks in with your server in the background."
1641 2066 msgstr ""
1642 2067
1643 -#: includes/modules/Heartbeat/HeartbeatModule.php:64
2068 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1644 2069 msgid "Dashboard"
1645 2070 msgstr ""
1646 2071
1647 -#: includes/modules/Heartbeat/HeartbeatModule.php:65
1648 -msgid "Heartbeat behavior on /wp-admin/ screens (autosave, notifications)."
2072 +#: includes/modules/Heartbeat/HeartbeatModule.php:66
2073 +msgid "Background checks on admin screens, used for notifications."
1649 2074 msgstr ""
1650 2075
1651 -#: includes/modules/Heartbeat/HeartbeatModule.php:72
2076 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1652 2077 msgid "Editor"
1653 2078 msgstr ""
1654 2079
1655 -#: includes/modules/Heartbeat/HeartbeatModule.php:73
1656 -msgid "Heartbeat in the post / block editor. Disable only if you do not need autosave or co-edit locks."
2080 +#: includes/modules/Heartbeat/HeartbeatModule.php:74
2081 +msgid "Background checks in the post editor. Disable only if you do not need autosave or the warning when someone else is editing."
1657 2082 msgstr ""
1658 2083
1659 -#: includes/modules/Heartbeat/HeartbeatModule.php:80
2084 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1660 2085 msgid "Frontend"
1661 2086 msgstr ""
1662 2087
1663 -#: includes/modules/Heartbeat/HeartbeatModule.php:81
1664 -msgid "Controls the Heartbeat API on the public site. Only takes effect when a plugin or theme actually loads heartbeat on the frontend (e.g. WooCommerce cart fragments, membership/notification plugins) — a default WordPress site loads none there, so this has no visible effect on such sites. Recommended: Disable, to stop the admin-ajax polling those plugins add."
2088 +#: includes/modules/Heartbeat/HeartbeatModule.php:82
2089 +msgid "Background checks on the public site, which only some plugins add. Disable is recommended, as it cuts extra requests to your server."
1665 2090 msgstr ""
1666 2091
1667 -#: includes/modules/Heartbeat/HeartbeatModule.php:88
1668 -msgid "Throttle Frequency"
2092 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
2093 +msgid "Throttle interval"
1669 2094 msgstr ""
1670 2095
1671 -#: includes/modules/Heartbeat/HeartbeatModule.php:89
1672 -msgid "Interval in seconds for contexts set to Throttle. 60 is a sane default; lower = faster sync but more requests."
2096 +#: includes/modules/Heartbeat/HeartbeatModule.php:91
2097 +msgid "Seconds between checks where you chose Throttle. 60 suits most sites; a lower number means more requests."
1673 2098 msgstr ""
1674 2099
1675 2100 #: includes/modules/Lazy/LazyModule.php:42
1676 2101 msgid "Media Optimization"
@@ -1680,67 +2105,83 @@
1680 2105 msgid "Lazy Loading"
1681 2106 msgstr ""
1682 2107
1683 2108 #: includes/modules/Lazy/LazyModule.php:45
1684 -msgid "Control how images, iframes, and videos load — lazy-loading, missing dimensions, and format optimization."
2109 +msgid "Loads images, videos and embeds only when visitors scroll to them."
1685 2110 msgstr ""
1686 2111
1687 -#: includes/modules/Lazy/LazyModule.php:59
1688 -msgid "Lazy-load Images"
1689 -msgstr ""
1690 -
1691 2112 #: includes/modules/Lazy/LazyModule.php:60
1692 -msgid "Add loading=\"lazy\" + decoding=\"async\" to <img> tags in post content. The first images on the page get loading=\"eager\" so the LCP image is not deferred."
2113 +msgid "Lazy-load images"
1693 2114 msgstr ""
1694 2115
1695 -#: includes/modules/Lazy/LazyModule.php:65
1696 -msgid "Lazy-load Iframes"
2116 +#: includes/modules/Lazy/LazyModule.php:61
2117 +msgid "Images load when the visitor scrolls near them. The first image on the page still loads right away."
1697 2118 msgstr ""
1698 2119
1699 2120 #: includes/modules/Lazy/LazyModule.php:66
1700 -msgid "Add loading=\"lazy\" to <iframe> tags. Useful for YouTube / Vimeo embeds + map widgets that pull a lot of bytes."
2121 +msgid "Lazy-load embeds"
1701 2122 msgstr ""
1702 2123
1703 -#: includes/modules/Lazy/LazyModule.php:71
1704 -msgid "Click-to-Play Video Facade"
2124 +#: includes/modules/Lazy/LazyModule.php:67
2125 +msgid "Embedded content such as YouTube videos and maps loads when the visitor scrolls near it."
1705 2126 msgstr ""
1706 2127
1707 2128 #: includes/modules/Lazy/LazyModule.php:72
1708 -msgid "Replace YouTube and Vimeo embeds — and self-hosted <video> tags that have a poster — with the poster image and a play button. The video only loads when a visitor clicks it, so a page with embeds no longer pays ~1MB of third-party JavaScript, or the full weight of a hosted video file, for visitors who never press play. Autoplaying videos are left alone. Falls back to the normal embed when JavaScript is off."
2129 +msgid "Click-to-play videos"
1709 2130 msgstr ""
1710 2131
1711 -#: includes/modules/Lazy/LazyModule.php:77
1712 -msgid "Lazy-load HTML5 Videos"
2132 +#: includes/modules/Lazy/LazyModule.php:73
2133 +msgid "Shows a preview image with a play button in place of YouTube, Vimeo and your own videos that have a poster image. The video loads only when clicked. Autoplaying videos are left alone."
1713 2134 msgstr ""
1714 2135
1715 2136 #: includes/modules/Lazy/LazyModule.php:78
1716 -msgid "Set preload=\"none\" on self-hosted <video> tags, overriding a player's own preload=\"auto\"/\"metadata\". Autoplaying videos are left alone — they need their bytes regardless. Browsers do not yet support loading=\"lazy\" on video; preload=\"none\" is the closest equivalent."
2137 +msgid "Lazy-load your own videos"
1717 2138 msgstr ""
1718 2139
1719 -#: includes/modules/Lazy/LazyModule.php:85
1720 -msgid "Eager-load First N Images"
2140 +#: includes/modules/Lazy/LazyModule.php:79
2141 +msgid "Videos uploaded to your site download only when played. An autoplaying video still plays by itself, but its file waits until the video is near the screen. Add data-skip-lazy to a video to leave it alone."
1721 2142 msgstr ""
1722 2143
1723 -#: includes/modules/Lazy/LazyModule.php:86
1724 -msgid "How many images at the top of the post get loading=\"eager\". 1 is usually right (the LCP hero image). 0 to lazy-load everything."
2144 +#: includes/modules/Lazy/LazyModule.php:84
2145 +msgid "Start autoplay videos after page load"
1725 2146 msgstr ""
1726 2147
2148 +#: includes/modules/Lazy/LazyModule.php:85
2149 +msgid "An autoplaying video, such as a hero background, waits until the page has finished loading, even when it is on screen from the start. Visitors see the poster first, and the video no longer competes with the page's images, styles and scripts. Needs \"Lazy-load your own videos\"."
2150 +msgstr ""
2151 +
1727 2152 #: includes/modules/Lazy/LazyModule.php:91
1728 -msgid "Add Missing Image Dimensions"
2153 +msgid "Lazy-load background images"
1729 2154 msgstr ""
1730 2155
1731 2156 #: includes/modules/Lazy/LazyModule.php:92
1732 -msgid "When an <img class=\"wp-image-N\"> has no width/height, look the values up from the media library and inject them. Prevents the page-layout shift that hurts CLS scores."
2157 +msgid "Hold back background images set in an element's inline style (a Cover or Group block, a page-builder section) until the element is near the screen. Uses a small script; visitors without JavaScript get every background as usual. The first N backgrounds on the page load straight away, like images. Backgrounds set in a stylesheet are not affected."
1733 2158 msgstr ""
1734 2159
1735 -#: includes/modules/Lazy/LazyModule.php:98
1736 -msgid "Excluded Images"
2160 +#: includes/modules/Lazy/LazyModule.php:99
2161 +msgid "Images to load right away"
1737 2162 msgstr ""
1738 2163
1739 -#: includes/modules/Lazy/LazyModule.php:99
1740 -msgid "Substring patterns that, if found anywhere in the <img> / <iframe> tag (typically a class or filename), exempt that element from lazy-loading. Useful for hero / logo / sprite images. Or add data-skip-lazy to the tag directly."
2164 +#: includes/modules/Lazy/LazyModule.php:100
2165 +msgid "How many images at the top of the page skip lazy loading. Only the first of them also loads at high priority, and images in hidden or closed sections are not counted. Lazy-loaded background images use the same number. 1 suits most sites; 0 lazy-loads every image."
1741 2166 msgstr ""
1742 2167
2168 +#: includes/modules/Lazy/LazyModule.php:114
2169 +msgid "Add missing image sizes"
2170 +msgstr ""
2171 +
2172 +#: includes/modules/Lazy/LazyModule.php:115
2173 +msgid "Adds width and height to images that lack them, using the media library. This stops the page from jumping as images load."
2174 +msgstr ""
2175 +
2176 +#: includes/modules/Lazy/LazyModule.php:121
2177 +msgid "Excluded images"
2178 +msgstr ""
2179 +
2180 +#: includes/modules/Lazy/LazyModule.php:122
2181 +msgid "Images, videos and embeds whose tag contains a line here, such as a class or file name, are never lazy-loaded. Useful for logos and hero images."
2182 +msgstr ""
2183 +
1743 2184 #. translators: %s: command name.
1744 2185 #: includes/modules/Mcp/Cli_Bridge.php:128
1745 2186 #, php-format
1746 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
@@ -1745,88 +2186,106 @@
1745 2186 #, php-format
1746 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
1747 2188 msgstr ""
1748 2189
1749 -#: includes/modules/Mcp/McpModule.php:111
2190 +#: includes/modules/Mcp/McpModule.php:159
1750 2191 #: assets/admin.js
1751 2192 msgid "MCP Server"
1752 2193 msgstr ""
1753 2194
1754 -#: includes/modules/Mcp/McpModule.php:113
1755 -msgid "Control this site's cache from Claude and other AI agents."
2195 +#: includes/modules/Mcp/McpModule.php:161
2196 +msgid "Let Claude or another AI assistant clear the cache, check stats and change settings."
1756 2197 msgstr ""
1757 2198
1758 -#: includes/modules/Mcp/McpModule.php:979
2199 +#: includes/modules/Mcp/McpModule.php:491
2200 +msgid "Another plugin now claims the site-wide OAuth discovery address, so xSpeed handed it over. Its own is /.well-known/oauth-protected-resource/xspeed/mcp — AI assistants already connected may ask for approval once more."
2201 +msgstr ""
2202 +
2203 +#: includes/modules/Mcp/McpModule.php:1404
2204 +msgid "Disconnecting is blocked while this site depends on the hub connection."
2205 +msgstr ""
2206 +
2207 +#: includes/modules/Mcp/McpModule.php:1454
1759 2208 msgid "Invalid or expired attach request."
1760 2209 msgstr ""
1761 2210
1762 -#: includes/modules/Mcp/McpModule.php:1093
2211 +#: includes/modules/Mcp/McpModule.php:1570
1763 2212 msgid "You must be an administrator to authorize an AI agent to control this site."
1764 2213 msgstr ""
1765 2214
1766 -#: includes/modules/Mcp/McpModule.php:1100
2215 +#: includes/modules/Mcp/McpModule.php:1577
1767 2216 msgid "Security check failed. Please try connecting again."
1768 2217 msgstr ""
1769 2218
1770 -#: includes/modules/Mcp/McpModule.php:1227
2219 +#: includes/modules/Mcp/McpModule.php:1673
2220 +#: includes/modules/Mcp/McpModule.php:1692
2221 +msgid "The MCP tool payload is too large."
2222 +msgstr ""
2223 +
2224 +#: includes/modules/Mcp/McpModule.php:1767
1771 2225 msgid "Read-only — inspect cache status and settings."
1772 2226 msgstr ""
1773 2227
1774 -#: includes/modules/Mcp/McpModule.php:1228
2228 +#: includes/modules/Mcp/McpModule.php:1768
1775 2229 msgid "Read & write — purge caches, toggle caching, and change settings."
1776 2230 msgstr ""
1777 2231
1778 -#: includes/modules/Mcp/McpModule.php:1229
2232 +#: includes/modules/Mcp/McpModule.php:1769
1779 2233 msgid "An AI agent"
1780 2234 msgstr ""
1781 2235
1782 -#: includes/modules/Mcp/McpModule.php:1248
2236 +#: includes/modules/Mcp/McpModule.php:1788
1783 2237 msgid "Authorize AI access"
1784 2238 msgstr ""
1785 2239
1786 -#: includes/modules/Mcp/McpModule.php:1259
2240 +#: includes/modules/Mcp/McpModule.php:1790
1787 2241 msgid "Connect to xSpeed"
1788 2242 msgstr ""
1789 2243
1790 2244 #. translators: %s: AI client name.
1791 -#: includes/modules/Mcp/McpModule.php:1261
2245 +#: includes/modules/Mcp/McpModule.php:1792
1792 2246 #, php-format
1793 2247 msgid "%s wants to manage the cache on this site."
1794 2248 msgstr ""
1795 2249
1796 -#: includes/modules/Mcp/McpModule.php:1262
2250 +#: includes/modules/Mcp/McpModule.php:1793
2251 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:205
1797 2252 msgid "Site"
1798 2253 msgstr ""
1799 2254
1800 -#: includes/modules/Mcp/McpModule.php:1263
2255 +#: includes/modules/Mcp/McpModule.php:1794
2256 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:210
1801 2257 msgid "Signed in as"
1802 2258 msgstr ""
1803 2259
1804 -#: includes/modules/Mcp/McpModule.php:1264
2260 +#: includes/modules/Mcp/McpModule.php:1795
2261 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:211
1805 2262 msgid "Access"
1806 2263 msgstr ""
1807 2264
1808 -#: includes/modules/Mcp/McpModule.php:1269
2265 +#: includes/modules/Mcp/McpModule.php:1800
2266 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:219
1809 2267 msgid "Deny"
1810 2268 msgstr ""
1811 2269
1812 -#: includes/modules/Mcp/McpModule.php:1270
2270 +#: includes/modules/Mcp/McpModule.php:1801
2271 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:220
1813 2272 msgid "Approve"
1814 2273 msgstr ""
1815 2274
1816 -#: includes/modules/Mcp/McpModule.php:1280
2275 +#: includes/modules/Mcp/McpModule.php:1811
1817 2276 msgid "Authorization error"
1818 2277 msgstr ""
1819 2278
1820 -#: includes/modules/Mcp/McpModule.php:1283
2279 +#: includes/modules/Mcp/McpModule.php:1814
1821 2280 msgid "Could not authorize"
1822 2281 msgstr ""
1823 2282
1824 -#: includes/modules/Mcp/McpModule.php:1513
2283 +#: includes/modules/Mcp/McpModule.php:2044
1825 2284 msgid "An AI assistant is connected to this site. This module counts as on whenever a connection token exists, rather than having its own on/off setting."
1826 2285 msgstr ""
1827 2286
1828 -#: includes/modules/Mcp/McpModule.php:1514
2287 +#: includes/modules/Mcp/McpModule.php:2045
1829 2288 msgid "No AI assistant is connected. This module counts as on once you connect one."
1830 2289 msgstr ""
1831 2290
1832 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1832,206 +2291,274 @@
1832 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
1833 2292 msgid "Too many failed attempts. Try again later."
1834 2293 msgstr ""
1835 2294
1836 -#: includes/modules/Mcp/Mcp_Hub.php:771
2295 +#: includes/modules/Mcp/Mcp_Hub.php:983
1837 2296 msgid "Connect this site to xSpeed Hub to run a free speed test."
1838 2297 msgstr ""
1839 2298
1840 -#: includes/modules/Mcp/Mcp_Hub.php:797
2299 +#: includes/modules/Mcp/Mcp_Hub.php:1013
1841 2300 msgid "Could not reach xSpeed Hub. Please try again."
1842 2301 msgstr ""
1843 2302
1844 -#: includes/modules/Mcp/Mcp_Hub.php:820
2303 +#: includes/modules/Mcp/Mcp_Hub.php:1036
1845 2304 #: assets/admin.js
1846 2305 msgid "The test could not be started."
1847 2306 msgstr ""
1848 2307
1849 -#: includes/modules/Mcp/Mcp_OAuth.php:213
2308 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:132
2309 +#: assets/admin.js
2310 +msgid "Connect to xSpeed Hub"
2311 +msgstr ""
2312 +
2313 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:154
2314 +msgid "Not allowed"
2315 +msgstr ""
2316 +
2317 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:155
2318 +msgid "Only an administrator of this site can connect it to xSpeed Hub. Sign in as an administrator and start again from the Hub."
2319 +msgstr ""
2320 +
2321 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:171
2322 +msgid "This link is not valid"
2323 +msgstr ""
2324 +
2325 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:172
2326 +msgid "Start again from xSpeed Hub: Add site, then Connect with WordPress."
2327 +msgstr ""
2328 +
2329 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:206
2330 +msgid "Connecting to"
2331 +msgstr ""
2332 +
2333 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:208
2334 +msgid "Hub account"
2335 +msgstr ""
2336 +
2337 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:211
2338 +msgid "Purge caches, change settings and run speed tests on this site."
2339 +msgstr ""
2340 +
2341 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:224
2342 +msgid "Connect this site to xSpeed Hub"
2343 +msgstr ""
2344 +
2345 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:225
2346 +msgid "xSpeed Hub lets you and your AI tools manage this site’s cache alongside your other sites."
2347 +msgstr ""
2348 +
2349 +#: includes/modules/Mcp/Mcp_OAuth.php:261
1850 2350 msgid "Too many client registrations. Try again later."
1851 2351 msgstr ""
1852 2352
1853 2353 #. translators: %d: maximum number of redirect URIs.
1854 -#: includes/modules/Mcp/Mcp_OAuth.php:229
2354 +#: includes/modules/Mcp/Mcp_OAuth.php:277
1855 2355 #, php-format
1856 2356 msgid "At most %d redirect_uris are allowed."
1857 2357 msgstr ""
1858 2358
1859 -#: includes/modules/Mcp/Mcp_OAuth.php:241
2359 +#: includes/modules/Mcp/Mcp_OAuth.php:289
1860 2360 msgid "At least one valid redirect_uri is required."
1861 2361 msgstr ""
1862 2362
1863 -#: includes/modules/Mcp/Mcp_OAuth.php:278
2363 +#: includes/modules/Mcp/Mcp_OAuth.php:326
1864 2364 msgid "Client registration limit reached."
1865 2365 msgstr ""
1866 2366
1867 -#: includes/modules/Mcp/Mcp_OAuth.php:297
2367 +#: includes/modules/Mcp/Mcp_OAuth.php:345
1868 2368 msgid "The client registration could not be stored."
1869 2369 msgstr ""
1870 2370
1871 -#: includes/modules/Mcp/Mcp_OAuth.php:336
2371 +#: includes/modules/Mcp/Mcp_OAuth.php:384
1872 2372 msgid "Unknown client_id."
1873 2373 msgstr ""
1874 2374
1875 -#: includes/modules/Mcp/Mcp_OAuth.php:340
2375 +#: includes/modules/Mcp/Mcp_OAuth.php:388
1876 2376 msgid "redirect_uri does not match a registered value."
1877 2377 msgstr ""
1878 2378
1879 -#: includes/modules/Mcp/Mcp_OAuth.php:343
2379 +#: includes/modules/Mcp/Mcp_OAuth.php:391
1880 2380 msgid "Only response_type=code is supported."
1881 2381 msgstr ""
1882 2382
1883 -#: includes/modules/Mcp/Mcp_OAuth.php:347
2383 +#: includes/modules/Mcp/Mcp_OAuth.php:395
1884 2384 msgid "PKCE with code_challenge_method=S256 is required."
1885 2385 msgstr ""
1886 2386
1887 -#: includes/modules/Mcp/Mcp_Pairing.php:408
2387 +#: includes/modules/Mcp/Mcp_Pairing.php:474
1888 2388 msgid "No active MCP connection to change. Connect first."
1889 2389 msgstr ""
1890 2390
1891 2391 #. translators: %s: tool name.
1892 -#: includes/modules/Mcp/Mcp_Tools.php:931
2392 +#: includes/modules/Mcp/Mcp_Tools.php:996
2393 +#: includes/modules/Mcp/Mcp_Tools.php:1034
1893 2394 #, php-format
1894 2395 msgid "Unknown tool: %s"
1895 2396 msgstr ""
1896 2397
1897 2398 #. translators: %s: tool name.
1898 -#: includes/modules/Mcp/Mcp_Tools.php:959
2399 +#: includes/modules/Mcp/Mcp_Tools.php:1055
1899 2400 #, php-format
1900 2401 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
1901 2402 msgstr ""
1902 2403
1903 2404 #. translators: %s: comma-separated list of valid purge types.
1904 -#: includes/modules/Mcp/Mcp_Tools.php:1240
2405 +#: includes/modules/Mcp/Mcp_Tools.php:1439
1905 2406 #, php-format
1906 2407 msgid "Invalid purge type. Expected one of: %s"
1907 2408 msgstr ""
1908 2409
1909 -#: includes/modules/Mcp/Mcp_Tools.php:1249
1910 -#: includes/modules/Mcp/Mcp_Tools.php:2261
2410 +#: includes/modules/Mcp/Mcp_Tools.php:1448
2411 +#: includes/modules/Mcp/Mcp_Tools.php:2798
1911 2412 msgid "AI assistant"
1912 2413 msgstr ""
1913 2414
1914 -#: includes/modules/Mcp/Mcp_Tools.php:1298
2415 +#: includes/modules/Mcp/Mcp_Tools.php:1497
1915 2416 msgid "The \"enabled\" parameter is required (true or false)."
1916 2417 msgstr ""
1917 2418
1918 -#: includes/modules/Mcp/Mcp_Tools.php:1378
1919 -#: includes/modules/Mcp/Mcp_Tools.php:1432
2419 +#: includes/modules/Mcp/Mcp_Tools.php:1577
2420 +#: includes/modules/Mcp/Mcp_Tools.php:1631
1920 2421 msgid "The \"module\" parameter is required."
1921 2422 msgstr ""
1922 2423
1923 2424 #. translators: %s: module slug.
1924 -#: includes/modules/Mcp/Mcp_Tools.php:1387
1925 -#: includes/modules/Mcp/Mcp_Tools.php:1448
2425 +#: includes/modules/Mcp/Mcp_Tools.php:1586
2426 +#: includes/modules/Mcp/Mcp_Tools.php:1647
1926 2427 #, php-format
1927 2428 msgid "Unknown module \"%s\"."
1928 2429 msgstr ""
1929 2430
1930 -#: includes/modules/Mcp/Mcp_Tools.php:1439
2431 +#: includes/modules/Mcp/Mcp_Tools.php:1638
1931 2432 msgid "The \"values\" parameter must be an object of setting keys."
1932 2433 msgstr ""
1933 2434
1934 2435 #. translators: 1: comma-separated field names, 2: module slug.
1935 -#: includes/modules/Mcp/Mcp_Tools.php:1467
2436 +#: includes/modules/Mcp/Mcp_Tools.php:1666
1936 2437 #, php-format
1937 2438 msgid "Writing credential fields (%1$s) on \"%2$s\" needs the \"configure\" scope, which is off by default. Reconnect the MCP client granting the configure scope, or set these credentials from the xSpeed dashboard."
1938 2439 msgstr ""
1939 2440
1940 2441 #. translators: %s: module slug.
1941 -#: includes/modules/Mcp/Mcp_Tools.php:1499
2442 +#: includes/modules/Mcp/Mcp_Tools.php:1698
1942 2443 #, php-format
1943 2444 msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
1944 2445 msgstr ""
1945 2446
1946 2447 #. translators: %s: module slug.
1947 -#: includes/modules/Mcp/Mcp_Tools.php:1509
2448 +#: includes/modules/Mcp/Mcp_Tools.php:1708
1948 2449 #, php-format
1949 2450 msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
1950 2451 msgstr ""
1951 2452
1952 2453 #. translators: 1: setting key, 2: wp-config.php constant name.
1953 -#: includes/modules/Mcp/Mcp_Tools.php:1578
2454 +#: includes/modules/Mcp/Mcp_Tools.php:1777
1954 2455 #, php-format
1955 2456 msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
1956 2457 msgstr ""
1957 2458
1958 2459 #. translators: 1: setting key, 2: module slug.
1959 -#: includes/modules/Mcp/Mcp_Tools.php:1586
2460 +#: includes/modules/Mcp/Mcp_Tools.php:1785
1960 2461 #, php-format
1961 2462 msgid "\"%1$s\" is not a setting of module \"%2$s\""
1962 2463 msgstr ""
1963 2464
1964 2465 #. translators: %s: comma-separated setting names.
1965 -#: includes/modules/Mcp/Mcp_Tools.php:1598
2466 +#: includes/modules/Mcp/Mcp_Tools.php:1797
1966 2467 #, php-format
1967 2468 msgid " — did you mean: %s?"
1968 2469 msgstr ""
1969 2470
1970 2471 #. translators: %s: setting key.
1971 -#: includes/modules/Mcp/Mcp_Tools.php:1608
2472 +#: includes/modules/Mcp/Mcp_Tools.php:1807
1972 2473 #, php-format
1973 2474 msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
1974 2475 msgstr ""
1975 2476
1976 2477 #. translators: 1: module slug, 2: reasons.
1977 -#: includes/modules/Mcp/Mcp_Tools.php:1617
2478 +#: includes/modules/Mcp/Mcp_Tools.php:1816
1978 2479 #, php-format
1979 2480 msgid "Refused to update %1$s — nothing was written. %2$s"
1980 2481 msgstr ""
1981 2482
1982 -#: includes/modules/Mcp/Mcp_Tools.php:1653
2483 +#: includes/modules/Mcp/Mcp_Tools.php:1852
1983 2484 msgid "The \"command\" parameter is required."
1984 2485 msgstr ""
1985 2486
1986 -#: includes/modules/Mcp/Mcp_Tools.php:1704
2487 +#: includes/modules/Mcp/Mcp_Tools.php:1903
1987 2488 msgid "This preview deletes nothing. To delete what is listed, call clean_database with this confirm_token. It expires in 5 minutes and stops working if the database changes."
1988 2489 msgstr ""
1989 2490
1990 -#: includes/modules/Mcp/Mcp_Tools.php:1798
2491 +#: includes/modules/Mcp/Mcp_Tools.php:2145
2492 +msgid "That confirm_token is unknown or has expired (they last 5 minutes). Ask for a fresh one by making the same call without a confirm_token."
2493 +msgstr ""
2494 +
2495 +#: includes/modules/Mcp/Mcp_Tools.php:2154
2496 +msgid "The database changed since that scan, so the preview no longer describes what would be deleted. Run scan_database again and confirm against the new result."
2497 +msgstr ""
2498 +
2499 +#: includes/modules/Mcp/Mcp_Tools.php:2155
2500 +msgid "That confirm_token was issued for a different action, so it does not authorise this one. Repeat this exact call without a confirm_token to get one that does."
2501 +msgstr ""
2502 +
2503 +#: includes/modules/Mcp/Mcp_Tools.php:2204
1991 2504 msgid "This permanently deletes content and cannot be undone. Call scan_database first to see exactly what would be removed, then pass the confirm_token it returns."
1992 2505 msgstr ""
1993 2506
1994 -#: includes/modules/Mcp/Mcp_Tools.php:1809
1995 -msgid "That confirm_token is unknown or has expired (they last 5 minutes). Run scan_database again and use the fresh token."
2507 +#. translators: %s: the confirm_token to send back.
2508 +#: includes/modules/Mcp/Mcp_Tools.php:2218
2509 +#, php-format
2510 +msgid "Call run_command again with the same command plus confirm_token: %s"
1996 2511 msgstr ""
1997 2512
1998 -#: includes/modules/Mcp/Mcp_Tools.php:1817
1999 -msgid "The database changed since that scan, so the preview no longer describes what would be deleted. Run scan_database again and confirm against the new result."
2513 +#. translators: 1: tool name, 2: action value, 3: the confirm_token to send back.
2514 +#: includes/modules/Mcp/Mcp_Tools.php:2223
2515 +#, php-format
2516 +msgid "Call %1$s again with action: %2$s plus confirm_token: %3$s"
2000 2517 msgstr ""
2001 2518
2002 -#: includes/modules/Mcp/Mcp_Tools.php:2081
2003 -#: includes/modules/Mcp/Mcp_Tools.php:2121
2519 +#. translators: 1: canonical "<command> <action>", 2: how to repeat the call.
2520 +#: includes/modules/Mcp/Mcp_Tools.php:2233
2521 +#, php-format
2522 +msgid "\"%1$s\" is destructive and cannot be undone, so it needs a second, deliberate call. %2$s — the token is single use and expires in 5 minutes."
2523 +msgstr ""
2524 +
2525 +#: includes/modules/Mcp/Mcp_Tools.php:2611
2526 +#: includes/modules/Mcp/Mcp_Tools.php:2651
2004 2527 msgid "The enabled argument is required."
2005 2528 msgstr ""
2006 2529
2007 -#: includes/modules/Mcp/Mcp_Tools.php:2085
2008 -#: includes/modules/Mcp/Mcp_Tools.php:2125
2530 +#: includes/modules/Mcp/Mcp_Tools.php:2615
2531 +#: includes/modules/Mcp/Mcp_Tools.php:2655
2009 2532 msgid "The enabled argument must be true or false."
2010 2533 msgstr ""
2011 2534
2012 -#: includes/modules/Mcp/Mcp_Tools.php:2139
2535 +#: includes/modules/Mcp/Mcp_Tools.php:2676
2013 2536 msgid "The action argument must be \"list\" or \"clear\"."
2014 2537 msgstr ""
2015 2538
2016 -#: includes/modules/Mcp/Mcp_Tools.php:2178
2539 +#: includes/modules/Mcp/Mcp_Tools.php:2715
2017 2540 msgid "External scores are not available on this site."
2018 2541 msgstr ""
2019 2542
2020 -#: includes/modules/Mcp/Mcp_Tools.php:2259
2543 +#: includes/modules/Mcp/Mcp_Tools.php:2796
2021 2544 msgid "The url argument is required."
2022 2545 msgstr ""
2023 2546
2547 +#: includes/modules/Mcp/Mcp_Tools.php:2937
2548 +msgid "The url argument must be a page on this site, as a full http(s) URL or a path starting with /."
2549 +msgstr ""
2550 +
2024 2551 #: includes/modules/Migration/MigrationModule.php:30
2025 2552 msgid "Migration"
2026 2553 msgstr ""
2027 2554
2028 2555 #: includes/modules/Migration/MigrationModule.php:32
2029 -msgid "Import settings from WP Rocket, W3 Total Cache, or WP Super Cache."
2556 +msgid "Import settings from WP Rocket, W3 Total Cache, WP Super Cache or LiteSpeed Cache."
2030 2557 msgstr ""
2031 2558
2032 2559 #. translators: %d: number of detected caching plugins.
2033 -#: includes/modules/Migration/MigrationModule.php:210
2560 +#: includes/modules/Migration/MigrationModule.php:211
2034 2561 #, php-format
2035 2562 msgid "Migrate to %1$s — %2$d caching plugin detected"
2036 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2037 2564 msgstr[0] ""
@@ -2036,32 +2563,32 @@
2036 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2037 2564 msgstr[0] ""
2038 2565 msgstr[1] ""
2039 2566
2040 -#: includes/modules/Migration/MigrationModule.php:265
2567 +#: includes/modules/Migration/MigrationModule.php:266
2041 2568 msgid "Speed guarantee"
2042 2569 msgstr ""
2043 2570
2044 -#: includes/modules/Migration/MigrationModule.php:310
2571 +#: includes/modules/Migration/MigrationModule.php:311
2045 2572 msgid "Dismiss this notice"
2046 2573 msgstr ""
2047 2574
2048 -#: includes/modules/Migration/MigrationModule.php:331
2575 +#: includes/modules/Migration/MigrationModule.php:332
2049 2576 msgid "Guaranteed faster load times — or we'll tune it for you, free."
2050 2577 msgstr ""
2051 2578
2052 -#: includes/modules/Migration/MigrationModule.php:332
2579 +#: includes/modules/Migration/MigrationModule.php:333
2053 2580 msgid "Faster load times, without configuring anything by hand."
2054 2581 msgstr ""
2055 2582
2056 2583 #. translators: %s: brand name, e.g. xSpeed Cache.
2057 -#: includes/modules/Migration/MigrationModule.php:345
2584 +#: includes/modules/Migration/MigrationModule.php:346
2058 2585 #, php-format
2059 2586 msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2060 2587 msgstr ""
2061 2588
2062 2589 #. translators: 1: detected plugin name, 2: number of settings.
2063 -#: includes/modules/Migration/MigrationModule.php:355
2590 +#: includes/modules/Migration/MigrationModule.php:356
2064 2591 #, php-format
2065 2592 msgid "%1$s detected · %2$d setting ready to import"
2066 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2067 2594 msgstr[0] ""
@@ -2066,30 +2593,30 @@
2066 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2067 2594 msgstr[0] ""
2068 2595 msgstr[1] ""
2069 2596
2070 -#: includes/modules/Migration/MigrationModule.php:375
2597 +#: includes/modules/Migration/MigrationModule.php:376
2071 2598 msgid "Prefer we handle it? Book a call"
2072 2599 msgstr ""
2073 2600
2074 2601 #. translators: %s: brand name.
2075 -#: includes/modules/Migration/MigrationModule.php:383
2602 +#: includes/modules/Migration/MigrationModule.php:384
2076 2603 #, php-format
2077 2604 msgid "Migrate to %s"
2078 2605 msgstr ""
2079 2606
2080 2607 #. translators: %s: detected plugin name.
2081 -#: includes/modules/Migration/MigrationModule.php:399
2608 +#: includes/modules/Migration/MigrationModule.php:400
2082 2609 #, php-format
2083 2610 msgid "Migrating deactivates %s"
2084 2611 msgstr ""
2085 2612
2086 -#: includes/modules/Migration/MigrationModule.php:404
2613 +#: includes/modules/Migration/MigrationModule.php:405
2087 2614 msgid "View migration details"
2088 2615 msgstr ""
2089 2616
2090 2617 #. translators: %d: number of settings imported.
2091 -#: includes/modules/Migration/MigrationModule.php:422
2618 +#: includes/modules/Migration/MigrationModule.php:423
2092 2619 #, php-format
2093 2620 msgid "imports %d setting"
2094 2621 msgid_plural "imports %d settings"
2095 2622 msgstr[0] ""
@@ -2094,323 +2621,337 @@
2094 2621 msgid_plural "imports %d settings"
2095 2622 msgstr[0] ""
2096 2623 msgstr[1] ""
2097 2624
2098 -#: includes/modules/Migration/MigrationModule.php:428
2625 +#: includes/modules/Migration/MigrationModule.php:429
2099 2626 msgid "Migrate"
2100 2627 msgstr ""
2101 2628
2102 -#: includes/modules/Migration/MigrationModule.php:548
2103 -#: includes/modules/Minify/MinifyModule.php:35
2629 +#: includes/modules/Migration/MigrationModule.php:549
2630 +#: includes/modules/Minify/MinifyModule.php:37
2104 2631 msgid "Minify"
2105 2632 msgstr ""
2106 2633
2107 -#: includes/modules/Migration/MigrationModule.php:549
2634 +#: includes/modules/Migration/MigrationModule.php:550
2108 2635 msgid "Lazy Load"
2109 2636 msgstr ""
2110 2637
2111 -#: includes/modules/Migration/MigrationModule.php:550
2638 +#: includes/modules/Migration/MigrationModule.php:551
2112 2639 #: includes/modules/Preloader/PreloaderModule.php:32
2113 2640 msgid "Preloader"
2114 2641 msgstr ""
2115 2642
2116 -#: includes/modules/Migration/MigrationModule.php:552
2117 -#: includes/modules/ObjectCache/ObjectCacheModule.php:32
2643 +#: includes/modules/Migration/MigrationModule.php:553
2644 +#: includes/modules/ObjectCache/ObjectCacheModule.php:33
2118 2645 msgid "Object Cache"
2119 2646 msgstr ""
2120 2647
2121 -#: includes/modules/Migration/MigrationModule.php:554
2648 +#: includes/modules/Migration/MigrationModule.php:555
2122 2649 msgid "Bloat Removal"
2123 2650 msgstr ""
2124 2651
2125 -#: includes/modules/Migration/MigrationModule.php:579
2652 +#: includes/modules/Migration/MigrationModule.php:580
2126 2653 msgid "You do not have permission to migrate settings."
2127 2654 msgstr ""
2128 2655
2129 -#: includes/modules/Migration/MigrationModule.php:585
2656 +#: includes/modules/Migration/MigrationModule.php:586
2130 2657 msgid "No source selected."
2131 2658 msgstr ""
2132 2659
2133 -#: includes/modules/Migration/MigrationModule.php:617
2660 +#: includes/modules/Migration/MigrationModule.php:618
2134 2661 msgid "it could not be enabled"
2135 2662 msgstr ""
2136 2663
2137 -#: includes/modules/Migration/MigrationModule.php:702
2664 +#: includes/modules/Migration/MigrationModule.php:703
2138 2665 msgid "Migrating…"
2139 2666 msgstr ""
2140 2667
2141 -#: includes/modules/Migration/MigrationModule.php:719
2668 +#: includes/modules/Migration/MigrationModule.php:720
2142 2669 msgid "Migration failed."
2143 2670 msgstr ""
2144 2671
2145 -#: includes/modules/Migration/MigrationModule.php:722
2672 +#: includes/modules/Migration/MigrationModule.php:723
2146 2673 msgid "the source plugin"
2147 2674 msgstr ""
2148 2675
2149 -#: includes/modules/Migration/MigrationModule.php:723
2676 +#: includes/modules/Migration/MigrationModule.php:724
2150 2677 msgid "Review imported settings"
2151 2678 msgstr ""
2152 2679
2153 -#: includes/modules/Migration/MigrationModule.php:734
2154 -#: includes/modules/Migration/MigrationModule.php:745
2155 -#: includes/modules/Migration/MigrationModule.php:753
2680 +#: includes/modules/Migration/MigrationModule.php:735
2681 +#: includes/modules/Migration/MigrationModule.php:746
2682 +#: includes/modules/Migration/MigrationModule.php:754
2156 2683 msgid "settings are now running in xSpeed."
2157 2684 msgstr ""
2158 2685
2159 -#: includes/modules/Migration/MigrationModule.php:736
2160 -#: includes/modules/Migration/MigrationModule.php:746
2686 +#: includes/modules/Migration/MigrationModule.php:737
2687 +#: includes/modules/Migration/MigrationModule.php:747
2161 2688 msgid "It has been switched off, so the two page caches cannot conflict."
2162 2689 msgstr ""
2163 2690
2164 -#: includes/modules/Migration/MigrationModule.php:737
2691 +#: includes/modules/Migration/MigrationModule.php:738
2165 2692 msgid "It is still active — switch it off when you are ready."
2166 2693 msgstr ""
2167 2694
2168 -#: includes/modules/Migration/MigrationModule.php:738
2695 +#: includes/modules/Migration/MigrationModule.php:739
2169 2696 msgid "Skipped:"
2170 2697 msgstr ""
2171 2698
2172 -#: includes/modules/Migration/MigrationModule.php:754
2699 +#: includes/modules/Migration/MigrationModule.php:755
2173 2700 msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2174 2701 msgstr ""
2175 2702
2176 -#: includes/modules/Migration/MigrationModule.php:763
2703 +#: includes/modules/Migration/MigrationModule.php:764
2177 2704 msgid "Migration could not finish."
2178 2705 msgstr ""
2179 2706
2180 -#: includes/modules/Migration/MigrationModule.php:764
2707 +#: includes/modules/Migration/MigrationModule.php:765
2181 2708 msgid "Nothing was changed — you can try again."
2182 2709 msgstr ""
2183 2710
2184 2711 #. translators: %s: source plugin label.
2185 -#: includes/modules/Migration/MigrationModule.php:997
2712 +#: includes/modules/Migration/MigrationModule.php:998
2186 2713 #, php-format
2187 2714 msgid "%s is activated across the whole network, so only a network administrator can switch it off. Your settings were imported — ask a network administrator to deactivate it."
2188 2715 msgstr ""
2189 2716
2190 2717 #. translators: %s: source plugin label.
2191 -#: includes/modules/Migration/MigrationModule.php:1002
2718 +#: includes/modules/Migration/MigrationModule.php:1003
2192 2719 #, php-format
2193 2720 msgid "Your account can change settings but not switch plugins off, so %s is still active. Your settings were imported — ask an administrator to deactivate it."
2194 2721 msgstr ""
2195 2722
2196 -#: includes/modules/Minify/MinifyModule.php:34
2723 +#: includes/modules/Minify/MinifyModule.php:36
2197 2724 msgid "CSS & JavaScript"
2198 2725 msgstr ""
2199 2726
2200 -#: includes/modules/Minify/MinifyModule.php:37
2201 -msgid "Strip whitespace and rewrite enqueued CSS / JS."
2727 +#: includes/modules/Minify/MinifyModule.php:39
2728 +msgid "Makes HTML, CSS and JavaScript files smaller and loads scripts later."
2202 2729 msgstr ""
2203 2730
2204 -#: includes/modules/Minify/MinifyModule.php:50
2731 +#: includes/modules/Minify/MinifyModule.php:53
2205 2732 msgid "Minify HTML"
2206 2733 msgstr ""
2207 2734
2208 -#: includes/modules/Minify/MinifyModule.php:55
2209 -msgid "Strip whitespace and comments from HTML output, including inline <style> and <script> blocks. Safe on most themes. Applies to cached (logged-out) responses — view the page in a private window to see the result."
2735 +#: includes/modules/Minify/MinifyModule.php:58
2736 +msgid "Removes spaces and comments from your pages. Safe on most themes. Only logged-out visitors see it, so check in a private window."
2210 2737 msgstr ""
2211 2738
2212 -#: includes/modules/Minify/MinifyModule.php:60
2739 +#: includes/modules/Minify/MinifyModule.php:63
2213 2740 msgid "Minify CSS"
2214 2741 msgstr ""
2215 2742
2216 -#: includes/modules/Minify/MinifyModule.php:61
2217 -msgid "Compress and rewrite enqueued local stylesheets. External CSS is left untouched."
2743 +#: includes/modules/Minify/MinifyModule.php:64
2744 +msgid "Makes your site's own CSS files smaller. CSS from other domains is left alone."
2218 2745 msgstr ""
2219 2746
2220 -#: includes/modules/Minify/MinifyModule.php:66
2747 +#: includes/modules/Minify/MinifyModule.php:69
2221 2748 msgid "Minify JavaScript"
2222 2749 msgstr ""
2223 2750
2224 -#: includes/modules/Minify/MinifyModule.php:67
2225 -msgid "Compress enqueued local scripts. Disable if you hit script-loading conflicts on the frontend."
2751 +#: includes/modules/Minify/MinifyModule.php:70
2752 +msgid "Makes your site's own JavaScript files smaller. Turn off if a script on your site stops working."
2226 2753 msgstr ""
2227 2754
2228 -#: includes/modules/Minify/MinifyModule.php:72
2755 +#: includes/modules/Minify/MinifyModule.php:75
2229 2756 msgid "Defer JavaScript"
2230 2757 msgstr ""
2231 2758
2232 -#: includes/modules/Minify/MinifyModule.php:73
2233 -msgid "Add defer=\"defer\" to enqueued script tags so they execute after HTML parsing. jQuery + its hard dependencies are skipped automatically."
2759 +#: includes/modules/Minify/MinifyModule.php:76
2760 +msgid "Runs scripts after the page has loaded, so content shows sooner. jQuery and scripts that need it are skipped."
2234 2761 msgstr ""
2235 2762
2236 -#: includes/modules/Minify/MinifyModule.php:78
2237 -msgid "Delay JavaScript Until Interaction"
2763 +#: includes/modules/Minify/MinifyModule.php:81
2764 +msgid "Delay JavaScript"
2238 2765 msgstr ""
2239 2766
2240 -#: includes/modules/Minify/MinifyModule.php:79
2241 -msgid "Postpone script loading until the visitor scrolls, moves the mouse, taps, or presses a key. Drastically improves first paint on script-heavy pages; can break above-the-fold scripted UI — test before leaving on."
2767 +#: includes/modules/Minify/MinifyModule.php:82
2768 +msgid "Scripts load only when the visitor scrolls, taps or types. Pages show much sooner, but test menus and sliders. Cookie consent banners still load first."
2242 2769 msgstr ""
2243 2770
2244 -#: includes/modules/Minify/MinifyModule.php:84
2245 -msgid "Load CSS Asynchronously"
2771 +#: includes/modules/Minify/MinifyModule.php:87
2772 +msgid "Load CSS without blocking"
2246 2773 msgstr ""
2247 2774
2248 -#: includes/modules/Minify/MinifyModule.php:85
2249 -msgid "Rewrite stylesheet link tags to load non-blocking via the print-then-all pattern. Pairs well with critical-CSS workflows; can cause a flash of unstyled content if the theme has no critical CSS."
2775 +#: includes/modules/Minify/MinifyModule.php:88
2776 +msgid "On pages that have critical CSS, the page shows before the rest of its CSS finishes loading. Pages without critical CSS keep loading their CSS normally, because deferring it makes the page show unstyled and then jump."
2250 2777 msgstr ""
2251 2778
2252 -#: includes/modules/Minify/MinifyModule.php:90
2253 -msgid "Remove Asset Query Strings"
2779 +#: includes/modules/Minify/MinifyModule.php:93
2780 +msgid "Remove version from file URLs"
2254 2781 msgstr ""
2255 2782
2256 -#: includes/modules/Minify/MinifyModule.php:91
2257 -msgid "Strip ?ver=X.Y from enqueued CSS / JS URLs. Some CDN caches and proxies cache better when query strings are absent. Files under wp-content/uploads keep their version — page builders and consent plugins rewrite generated CSS there in place, and ?ver is what tells browsers to refetch it. Plugin, theme and core assets are still stripped: with Browser Cache on, an update reaches returning visitors only when their browser cache expires."
2783 +#: includes/modules/Minify/MinifyModule.php:94
2784 +msgid "Removes ?ver= from CSS and JS links, which some CDNs cache better. After a plugin update, returning visitors may keep old files until their browser cache expires."
2258 2785 msgstr ""
2259 2786
2260 -#: includes/modules/Minify/MinifyModule.php:97
2261 -msgid "Defer / Delay Exclusions"
2787 +#: includes/modules/Minify/MinifyModule.php:101
2788 +msgid "Scripts to never defer or delay"
2262 2789 msgstr ""
2263 2790
2264 -#: includes/modules/Minify/MinifyModule.php:98
2265 -msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). One per line."
2791 +#: includes/modules/Minify/MinifyModule.php:102
2792 +msgid "Script handles or parts of script URLs, one per line. jQuery is listed because most themes need it early; cookie consent banners are skipped on their own."
2266 2793 msgstr ""
2267 2794
2268 -#: includes/modules/Minify/MinifyModule.php:112
2269 -msgid "Delay Only These Scripts"
2795 +#: includes/modules/Minify/MinifyModule.php:116
2796 +msgid "Delay only these scripts"
2270 2797 msgstr ""
2271 2798
2272 -#: includes/modules/Minify/MinifyModule.php:113
2273 -msgid "Script handles OR URL substrings. When non-empty, matching scripts are delayed, plus the known third-party tags xSpeed recognises on its own (analytics, tag managers, chat widgets, review embeds, error trackers) — so a heavy vendor script is postponed even when it is not listed here. Leave empty to delay all scripts (minus the exclusions above). Handles are the more reliable selector — a URL substring has to match the script's original URL, and minification rewrites that to a hashed cache path. One per line."
2799 +#: includes/modules/Minify/MinifyModule.php:117
2800 +msgid "Script handles or parts of script URLs, one per line. Leave empty to delay all scripts; otherwise only these, plus known trackers and chat widgets, are delayed."
2274 2801 msgstr ""
2275 2802
2276 -#: includes/modules/Minify/MinifyModule.php:121
2277 -msgid "Delay Failsafe Timeout (ms)"
2803 +#: includes/modules/Minify/MinifyModule.php:118
2804 +msgid "Consent banners and Delay JS"
2278 2805 msgstr ""
2279 2806
2280 -#: includes/modules/Minify/MinifyModule.php:123
2281 -msgid "Load delayed scripts automatically after this many milliseconds when the visitor never interacts. Set to 0 for interaction-only, with no timer: a timer that fires inside a lab tool's measurement window loads the \"delayed\" scripts anyway and inflates the reported TTI. Keep a non-zero value if a delayed script must eventually run for visitors who never scroll, tap, or type."
2807 +#. translators: %s: comma-separated list of consent plugins, each followed by the word to type in parentheses.
2808 +#: includes/modules/Minify/MinifyModule.php:121
2809 +#, php-format
2810 +msgid "These consent banners load straight away, even with Delay JS on: %s. To delay one on purpose, add the word in parentheses, or the script handle, to this list. An entry that only matches part of the address, such as /plugins/ or .js, never delays a banner, and an entry in Scripts to never defer or delay always wins."
2282 2811 msgstr ""
2283 2812
2284 2813 #: includes/modules/Minify/MinifyModule.php:129
2285 -msgid "Combine CSS Files"
2814 +msgid "Smart delay"
2286 2815 msgstr ""
2287 2816
2288 2817 #: includes/modules/Minify/MinifyModule.php:130
2289 -msgid "Concatenate enqueued local stylesheets into a single file (with @import and url(…) paths resolved). External CSS is left alone. Pairs poorly with HTTP/2 push — only enable on HTTP/1.1 hosts."
2818 +msgid "Also delays scripts that code on the page depends on, which helps page builder sites most. The riskiest setting here, so test menus and sliders."
2290 2819 msgstr ""
2291 2820
2292 -#: includes/modules/Minify/MinifyModule.php:135
2293 -msgid "Combine JavaScript Files"
2821 +#: includes/modules/Minify/MinifyModule.php:138
2822 +msgid "Delay timeout (ms)"
2294 2823 msgstr ""
2295 2824
2296 -#: includes/modules/Minify/MinifyModule.php:136
2297 -msgid "Concatenate enqueued local scripts into a single file. External scripts + scripts marked async / deferred are left alone. Disable if you hit dependency-order issues; the combiner respects WordPress enqueue order but inline scripts attached via wp_add_inline_script can shift behavior."
2825 +#: includes/modules/Minify/MinifyModule.php:140
2826 +msgid "Load delayed scripts after this long if the visitor does nothing. Set 0 to wait for a scroll, tap or key press only."
2298 2827 msgstr ""
2299 2828
2300 -#: includes/modules/Minify/MinifyModule.php:273
2829 +#: includes/modules/Minify/MinifyModule.php:147
2830 +msgid "Combine CSS files"
2831 +msgstr ""
2832 +
2833 +#: includes/modules/Minify/MinifyModule.php:148
2834 +msgid "Joins your site's own CSS files into one. This helps only on old HTTP/1.1 servers, so leave it off on most hosts."
2835 +msgstr ""
2836 +
2837 +#: includes/modules/Minify/MinifyModule.php:154
2838 +msgid "Combine JavaScript files"
2839 +msgstr ""
2840 +
2841 +#: includes/modules/Minify/MinifyModule.php:155
2842 +msgid "Joins your site's own scripts into one file. Turn off if a script stops working after you enable it."
2843 +msgstr ""
2844 +
2845 +#: includes/modules/Minify/MinifyModule.php:293
2301 2846 msgid "HTML minification is paused because WP_DEBUG is enabled in wp-config.php. Readable HTML is usually what you want while debugging, so xSpeed leaves the markup alone. Cached pages are served un-minified until WP_DEBUG is turned off."
2302 2847 msgstr ""
2303 2848
2304 -#: includes/modules/Minify/MinifyModule.php:274
2849 +#: includes/modules/Minify/MinifyModule.php:294
2305 2850 msgid "HTML minification is paused because a plugin or theme is returning true from the xspeed_skip_minify filter. Cached pages are served un-minified until that filter stops suppressing it."
2306 2851 msgstr ""
2307 2852
2308 -#: includes/modules/Minify/MinifyModule.php:279
2853 +#: includes/modules/Minify/MinifyModule.php:299
2309 2854 msgid "HTML minification is on but currently paused"
2310 2855 msgstr ""
2311 2856
2312 -#: includes/modules/ObjectCache/ObjectCacheModule.php:34
2313 -msgid "Configure a persistent object cache (Redis / Memcached) and generate a paste-ready wp-config.php snippet."
2857 +#: includes/modules/ObjectCache/ObjectCacheModule.php:35
2858 +msgid "Stores database query results in Redis or Memcached so pages build faster."
2314 2859 msgstr ""
2315 2860
2316 -#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2317 -msgid "Backend"
2861 +#: includes/modules/ObjectCache/ObjectCacheModule.php:63
2862 +msgid "Cache server"
2318 2863 msgstr ""
2319 2864
2320 -#: includes/modules/ObjectCache/ObjectCacheModule.php:62
2321 -msgid "Which cache server you intend to use. Affects the generated wp-config snippet."
2865 +#: includes/modules/ObjectCache/ObjectCacheModule.php:64
2866 +msgid "The cache server your host provides. Ask your host if you are not sure."
2322 2867 msgstr ""
2323 2868
2324 -#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2325 -msgid "Redis Host"
2869 +#: includes/modules/ObjectCache/ObjectCacheModule.php:70
2870 +msgid "Redis host"
2326 2871 msgstr ""
2327 2872
2328 -#: includes/modules/ObjectCache/ObjectCacheModule.php:69
2329 -msgid "Hostname or IP of the Redis server. Use 127.0.0.1 for a local socket on the same machine as PHP."
2873 +#: includes/modules/ObjectCache/ObjectCacheModule.php:71
2874 +msgid "Address of the Redis server. Use 127.0.0.1 when Redis runs on the same server as your site."
2330 2875 msgstr ""
2331 2876
2332 -#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2333 -msgid "Redis Port"
2877 +#: includes/modules/ObjectCache/ObjectCacheModule.php:80
2878 +msgid "Redis port"
2334 2879 msgstr ""
2335 2880
2336 -#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2337 -msgid "Default Redis port is 6379."
2881 +#: includes/modules/ObjectCache/ObjectCacheModule.php:81
2882 +msgid "The default Redis port is 6379."
2338 2883 msgstr ""
2339 2884
2340 -#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2341 -msgid "Redis User"
2885 +#: includes/modules/ObjectCache/ObjectCacheModule.php:95
2886 +msgid "Redis username"
2342 2887 msgstr ""
2343 2888
2344 -#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2345 -msgid "Optional. Set this only if your host provisioned a dedicated Redis ACL user (Redis 6+) — e.g. some managed hosts issue a Redis User alongside the password. Leave blank to authenticate as the default user (legacy password-only Redis)."
2889 +#: includes/modules/ObjectCache/ObjectCacheModule.php:96
2890 +msgid "Only needed if your host gave you a Redis username along with the password. Leave blank otherwise."
2346 2891 msgstr ""
2347 2892
2348 -#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2349 -msgid "Redis Password"
2893 +#: includes/modules/ObjectCache/ObjectCacheModule.php:105
2894 +msgid "Leave blank if your Redis server has no password."
2350 2895 msgstr ""
2351 2896
2352 -#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2353 -msgid "Leave blank if your Redis server runs without auth."
2897 +#: includes/modules/ObjectCache/ObjectCacheModule.php:114
2898 +msgid "Redis database"
2354 2899 msgstr ""
2355 2900
2356 -#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2357 -msgid "Redis Database"
2901 +#: includes/modules/ObjectCache/ObjectCacheModule.php:115
2902 +msgid "Database number, 0 to 15. If several sites share one Redis server, give each site its own number."
2358 2903 msgstr ""
2359 2904
2360 -#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2361 -msgid "Redis logical DB number (0-15). Use a dedicated DB per site if Redis is shared."
2905 +#: includes/modules/ObjectCache/ObjectCacheModule.php:144
2906 +msgid "Memcached host"
2362 2907 msgstr ""
2363 2908
2364 -#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2365 -msgid "Memcached Host"
2909 +#: includes/modules/ObjectCache/ObjectCacheModule.php:145
2910 +msgid "Address of the Memcached server. Use 127.0.0.1 when it runs on the same server as your site."
2366 2911 msgstr ""
2367 2912
2368 -#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2369 -msgid "Used when Backend = Memcached."
2913 +#: includes/modules/ObjectCache/ObjectCacheModule.php:167
2914 +msgid "Memcached port"
2370 2915 msgstr ""
2371 2916
2372 -#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2373 -msgid "Memcached Port"
2917 +#: includes/modules/ObjectCache/ObjectCacheModule.php:168
2918 +msgid "The default Memcached port is 11211."
2374 2919 msgstr ""
2375 2920
2376 -#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2377 -msgid "Default Memcached port is 11211."
2921 +#: includes/modules/ObjectCache/ObjectCacheModule.php:196
2922 +msgid "Cache key prefix"
2378 2923 msgstr ""
2379 2924
2380 -#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2381 -msgid "Cache Key Prefix"
2925 +#: includes/modules/ObjectCache/ObjectCacheModule.php:197
2926 +msgid "Leave blank and xSpeed picks a unique prefix for this site. Some managed Redis hosts, such as xCloud, give you a key to paste here, or nothing gets saved."
2382 2927 msgstr ""
2383 2928
2384 -#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2385 -msgid "Unique salt for this site's cache keys. Leave blank and xSpeed derives one automatically for this install, so sites sharing a Redis/Memcached server never collide. On ACL/namespaced Redis (e.g. xCloud), set this to the host's \"Redis Object Cache Key\" — otherwise cache writes are denied (NOPERM) and nothing persists."
2929 +#: includes/modules/ObjectCache/ObjectCacheModule.php:207
2930 +msgid "Connection timeout (seconds)"
2386 2931 msgstr ""
2387 2932
2388 -#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2389 -msgid "Connection Timeout (seconds)"
2933 +#: includes/modules/ObjectCache/ObjectCacheModule.php:209
2934 +msgid "How long to wait for the cache server. Keep it at 1 or 2 seconds so a broken cache server never holds up a page."
2390 2935 msgstr ""
2391 2936
2392 -#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2393 -msgid "How long to wait for a connection. Keep low (1-2s) so a misconfigured cache never stalls the page."
2937 +#: includes/modules/ObjectCache/ObjectCacheModule.php:216
2938 +msgid "Persistent connections"
2394 2939 msgstr ""
2395 2940
2396 -#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2397 -msgid "Persistent Connections"
2941 +#: includes/modules/ObjectCache/ObjectCacheModule.php:217
2942 +msgid "Keep the connection open between page loads. Turn off only if your cache server reports too many idle connections."
2398 2943 msgstr ""
2399 2944
2400 -#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2401 -msgid "Reuse the connection across PHP requests when supported. Generally a win unless the cache server complains about idle connections."
2402 -msgstr ""
2403 -
2404 -#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2945 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1053
2405 2946 msgid "The object cache drop-in is installed and storing data. This is measured from the running cache, not from the settings on this page."
2406 2947 msgstr ""
2407 2948
2408 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2949 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1056
2409 2950 msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2410 2951 msgstr ""
2411 2952
2412 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2953 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1058
2413 2954 msgid "No object cache is running. Entering a host below does not switch it on by itself -- the drop-in has to be installed and connect successfully."
2414 2955 msgstr ""
2415 2956
2416 2957 #: includes/modules/Preloader/PreloaderModule.php:33
@@ -2417,63 +2958,85 @@
2417 2958 msgid "Crawl Now"
2418 2959 msgstr ""
2419 2960
2420 2961 #: includes/modules/Preloader/PreloaderModule.php:35
2421 -msgid "Crawl the sitemap to warm cache so visitors never hit a cold MISS."
2962 +msgid "Visits your pages ahead of time so visitors get fast cached pages."
2422 2963 msgstr ""
2423 2964
2424 -#: includes/modules/Preloader/PreloaderModule.php:48
2425 -msgid "Enable Preloader"
2965 +#: includes/modules/Preloader/PreloaderModule.php:62
2966 +msgid "Your server is blocking the xSpeed cache warmer"
2426 2967 msgstr ""
2427 2968
2428 -#: includes/modules/Preloader/PreloaderModule.php:49
2429 -msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2969 +#. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2970 +#: includes/modules/Preloader/PreloaderModule.php:65
2971 +#, php-format
2972 +msgid "A warm request was refused with HTTP %1$d, which is how a firewall answers when it judges a request by its user-agent. Pages are not being warmed, so the first visitor to each new page waits for an uncached render. Allow the user-agent \"%2$s\" in your server's bad-bot rules — on xCloud this is the 8G firewall — or change it with the xspeed_preloader_user_agent filter. This notice clears itself once a warm gets through."
2430 2973 msgstr ""
2431 2974
2432 -#: includes/modules/Preloader/PreloaderModule.php:61
2975 +#: includes/modules/Preloader/PreloaderModule.php:79
2976 +msgid "xSpeed visits every page in your sitemap on the schedule below, so each page is cached before a visitor asks for it."
2977 +msgstr ""
2978 +
2979 +#: includes/modules/Preloader/PreloaderModule.php:91
2433 2980 msgid "Schedule"
2434 2981 msgstr ""
2435 2982
2436 -#: includes/modules/Preloader/PreloaderModule.php:62
2437 -msgid "How often to start a fresh crawl. Manual means you trigger it from the dashboard."
2983 +#: includes/modules/Preloader/PreloaderModule.php:92
2984 +msgid "How often to visit all pages again. Manual means you start it from the dashboard."
2438 2985 msgstr ""
2439 2986
2440 -#: includes/modules/Preloader/PreloaderModule.php:70
2441 -msgid "Batch Size"
2987 +#: includes/modules/Preloader/PreloaderModule.php:100
2988 +msgid "Pages per run"
2442 2989 msgstr ""
2443 2990
2444 -#: includes/modules/Preloader/PreloaderModule.php:71
2445 -msgid "URLs warmed per cron tick. Higher = faster crawl, more load on the origin."
2991 +#: includes/modules/Preloader/PreloaderModule.php:101
2992 +msgid "How many pages are cached on each run. A higher number finishes sooner but puts more load on your server."
2446 2993 msgstr ""
2447 2994
2448 -#: includes/modules/Preloader/PreloaderModule.php:77
2995 +#: includes/modules/Preloader/PreloaderModule.php:108
2449 2996 msgid "Sitemap URL (optional)"
2450 2997 msgstr ""
2451 2998
2452 -#: includes/modules/Preloader/PreloaderModule.php:78
2453 -msgid "Override the auto-detected WordPress core sitemap (/wp-sitemap.xml). Leave blank for default."
2999 +#: includes/modules/Preloader/PreloaderModule.php:109
3000 +msgid "Use a different sitemap than the WordPress one (/wp-sitemap.xml). Leave blank for the default."
2454 3001 msgstr ""
2455 3002
2456 -#: includes/modules/Preloader/PreloaderModule.php:84
3003 +#: includes/modules/Preloader/PreloaderModule.php:115
2457 3004 msgid "Warm new content immediately"
2458 3005 msgstr ""
2459 3006
2460 -#: includes/modules/Preloader/PreloaderModule.php:85
2461 -msgid "When a post or page is published, fetch it once so the first visitor sees a cache HIT, not a cold MISS."
3007 +#: includes/modules/Preloader/PreloaderModule.php:116
3008 +msgid "Cache a post or page as soon as you publish it, so the first visitor gets the fast cached page."
2462 3009 msgstr ""
2463 3010
2464 -#: includes/modules/Preloader/PreloaderModule.php:91
3011 +#: includes/modules/Preloader/PreloaderModule.php:122
2465 3012 msgid "Re-warm after comments"
2466 3013 msgstr ""
2467 3014
2468 -#: includes/modules/Preloader/PreloaderModule.php:92
2469 -msgid "Re-warm a page after a comment is posted (Cache purges the page on comment; this fetches it back into cache)."
3015 +#: includes/modules/Preloader/PreloaderModule.php:123
3016 +msgid "A new comment clears the page from the cache. This caches the page again right away."
2470 3017 msgstr ""
2471 3018
2472 -#: includes/modules/Preloader/PreloaderModule.php:268
3019 +#: includes/modules/Preloader/PreloaderModule.php:299
2473 3020 msgid "Enable the preloader before starting a crawl."
2474 3021 msgstr ""
2475 3022
3023 +#: includes/modules/Privacy/PrivacyModule.php:47
3024 +msgid "Privacy & usage data"
3025 +msgstr ""
3026 +
3027 +#: includes/modules/Privacy/PrivacyModule.php:49
3028 +msgid "Change the usage data choice you made in the setup wizard."
3029 +msgstr ""
3030 +
3031 +#: includes/modules/Privacy/PrivacyModule.php:59
3032 +msgid "Share usage data"
3033 +msgstr ""
3034 +
3035 +#: includes/modules/Privacy/PrivacyModule.php:60
3036 +msgid "Sends your WordPress and PHP versions, theme, plugins, server type and the features you use, never page content. Turn it off to stop all sending."
3037 +msgstr ""
3038 +
2476 3039 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2477 3040 msgid "Resource Hints"
2478 3041 msgstr ""
2479 3042
@@ -2481,143 +3044,142 @@
2481 3044 msgid "Hints"
2482 3045 msgstr ""
2483 3046
2484 3047 #: includes/modules/ResourceHints/ResourceHintsModule.php:63
2485 -msgid "Preload the LCP hero image and preconnect to font hosts so the largest element paints sooner."
3048 +msgid "Tells the browser to fetch the main image and fonts early."
2486 3049 msgstr ""
2487 3050
2488 -#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2489 -msgid "Enable Resource Hints"
2490 -msgstr ""
2491 -
2492 3051 #: includes/modules/ResourceHints/ResourceHintsModule.php:78
2493 -msgid "Master switch for the LCP-image preload + preconnect resource hints. On by default — these are safe, no-config optimizations that help every theme."
3052 +msgid "Enable resource hints"
2494 3053 msgstr ""
2495 3054
2496 -#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2497 -msgid "Preload LCP Image"
3055 +#: includes/modules/ResourceHints/ResourceHintsModule.php:79
3056 +msgid "Turns on all the hints below. They are safe on every theme, so this is on by default."
2498 3057 msgstr ""
2499 3058
2500 3059 #: includes/modules/ResourceHints/ResourceHintsModule.php:84
2501 -msgid "Detect the largest above-the-fold image and emit a <link rel=\"preload\" as=\"image\" fetchpriority=\"high\"> in the head, plus fetchpriority=\"high\" on the image. This is the highest-impact fix for Largest Contentful Paint — it beats any lazy-load the theme applied."
3060 +msgid "Preload the main image"
2502 3061 msgstr ""
2503 3062
2504 -#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2505 -msgid "Images to Preload"
3063 +#: includes/modules/ResourceHints/ResourceHintsModule.php:85
3064 +msgid "Finds the largest image at the top of the page and tells the browser to fetch it first. This usually gives the biggest LCP gain."
2506 3065 msgstr ""
2507 3066
2508 -#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2509 -msgid "How many of the first images on the page to preload. 1 is right for most sites (the single hero). Raise it only if the fold shows a small gallery."
3067 +#: includes/modules/ResourceHints/ResourceHintsModule.php:93
3068 +msgid "Images to preload"
2510 3069 msgstr ""
2511 3070
2512 -#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2513 -msgid "Exclude From Preload"
3071 +#: includes/modules/ResourceHints/ResourceHintsModule.php:94
3072 +msgid "How many images at the top of the page to preload. 1 suits most sites; raise it only if the top shows a small gallery."
2514 3073 msgstr ""
2515 3074
2516 -#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2517 -msgid "Substring patterns (filename or class) that, if found in an <img>, exempt it from being treated as the LCP image. Useful for tracking pixels, spacers, or a decorative first image that is not the hero."
3075 +#: includes/modules/ResourceHints/ResourceHintsModule.php:102
3076 +msgid "Excluded from preload"
2518 3077 msgstr ""
2519 3078
2520 -#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2521 -msgid "Always Preload These Images"
3079 +#: includes/modules/ResourceHints/ResourceHintsModule.php:103
3080 +msgid "Images whose tag contains a line here, such as a file name or class, are never picked as the main image. Useful for tracking pixels and spacers."
2522 3081 msgstr ""
2523 3082
2524 -#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2525 -msgid "Image URLs (full or site-relative) to preload with high priority on every page. This is the escape hatch for an LCP image the detector cannot see — most often a hero section's CSS background-image, which carries none of the signals the automatic pick reads. Keep it to one or two images: preloading many hands them all top network priority and the page itself loses. The first three entries are used."
3083 +#: includes/modules/ResourceHints/ResourceHintsModule.php:110
3084 +msgid "Always preload these images"
2526 3085 msgstr ""
2527 3086
2528 3087 #: includes/modules/ResourceHints/ResourceHintsModule.php:111
2529 -msgid "Preconnect to Font Hosts"
3088 +msgid "Image URLs to fetch first on every page, such as a hero background set in CSS. Keep it to one or two; only the first three are used."
2530 3089 msgstr ""
2531 3090
2532 -#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2533 -msgid "When Google Fonts are detected, emit <link rel=\"preconnect\"> to fonts.googleapis.com and fonts.gstatic.com so the DNS + TLS handshake happens ahead of the font request instead of on the critical path."
3091 +#: includes/modules/ResourceHints/ResourceHintsModule.php:117
3092 +msgid "Connect early to Google Fonts"
2534 3093 msgstr ""
2535 3094
2536 3095 #: includes/modules/ResourceHints/ResourceHintsModule.php:118
2537 -msgid "Extra Preconnect Hosts"
3096 +msgid "When the page uses Google Fonts, the browser connects to Google's servers early, so fonts arrive sooner."
2538 3097 msgstr ""
2539 3098
2540 -#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2541 -msgid "One origin per line (e.g. https://cdn.example.com) to preconnect in addition to the auto-detected font hosts. Use for a CDN or third-party origin that serves above-the-fold assets."
3099 +#: includes/modules/ResourceHints/ResourceHintsModule.php:125
3100 +msgid "Other domains to connect early"
2542 3101 msgstr ""
2543 3102
3103 +#: includes/modules/ResourceHints/ResourceHintsModule.php:126
3104 +msgid "One address per line, such as https://cdn.example.com. Use for a CDN or other domain that serves files at the top of the page."
3105 +msgstr ""
3106 +
2544 3107 #: includes/modules/Score/ScoreModule.php:58
2545 3108 msgid "Speed Test"
2546 3109 msgstr ""
2547 3110
2548 3111 #: includes/modules/Score/ScoreModule.php:64
2549 -msgid "Run a PageSpeed Insights or GTmetrix audit from the dashboard and keep the history next to your TTFB benchmark."
3112 +msgid "Run a PageSpeed Insights or GTmetrix test and keep a history of the scores."
2550 3113 msgstr ""
2551 3114
2552 -#: includes/modules/Score/ScoreModule.php:77
3115 +#: includes/modules/Score/ScoreModule.php:78
2553 3116 msgid "Allow speed tests"
2554 3117 msgstr ""
2555 3118
2556 -#: includes/modules/Score/ScoreModule.php:83
2557 -msgid "Turns on automatically the first time you run a speed test — the button press is the consent. Switch it off to stop every feature, including optimize runs, from contacting a score provider."
3119 +#: includes/modules/Score/ScoreModule.php:84
3120 +msgid "Turns on the first time you run a speed test. Switch it off and no feature, not even an optimize run, contacts a test provider."
2558 3121 msgstr ""
2559 3122
2560 -#: includes/modules/Score/ScoreModule.php:98
2561 -#: assets/admin.js
2562 -msgid "Provider"
3123 +#: includes/modules/Score/ScoreModule.php:99
3124 +msgid "Test provider"
2563 3125 msgstr ""
2564 3126
2565 -#: includes/modules/Score/ScoreModule.php:99
2566 -msgid "PageSpeed Insights works without an API key. GTmetrix requires one."
3127 +#: includes/modules/Score/ScoreModule.php:100
3128 +msgid "PageSpeed Insights works without an API key. GTmetrix needs one."
2567 3129 msgstr ""
2568 3130
2569 -#: includes/modules/Score/ScoreModule.php:104
3131 +#: includes/modules/Score/ScoreModule.php:105
2570 3132 msgid "PageSpeed API key (optional)"
2571 3133 msgstr ""
2572 3134
2573 -#: includes/modules/Score/ScoreModule.php:105
2574 -msgid "Only needed if you hit Google's anonymous rate limit. Free from cloud.google.com."
3135 +#: includes/modules/Score/ScoreModule.php:106
3136 +msgid "Only needed if Google starts refusing tests without a key. You can get a free key at cloud.google.com."
2575 3137 msgstr ""
2576 3138
2577 -#: includes/modules/Score/ScoreModule.php:117
3139 +#: includes/modules/Score/ScoreModule.php:119
2578 3140 msgid "GTmetrix API key"
2579 3141 msgstr ""
2580 3142
2581 -#: includes/modules/Score/ScoreModule.php:118
2582 -msgid "Required — GTmetrix has no anonymous mode. Found in your GTmetrix account settings."
3143 +#: includes/modules/Score/ScoreModule.php:120
3144 +msgid "GTmetrix does not run tests without a key. Find it in your GTmetrix account settings."
2583 3145 msgstr ""
2584 3146
2585 -#: includes/modules/Score/ScoreModule.php:127
3147 +#: includes/modules/Score/ScoreModule.php:129
2586 3148 msgid "URL to test"
2587 3149 msgstr ""
2588 3150
2589 -#: includes/modules/Score/ScoreModule.php:128
3151 +#: includes/modules/Score/ScoreModule.php:130
2590 3152 msgid "Leave empty to test your home page."
2591 3153 msgstr ""
2592 3154
2593 -#: includes/modules/Score/ScoreModule.php:134
2594 -msgid "Strategy"
3155 +#: includes/modules/Score/ScoreModule.php:136
3156 +msgid "Device"
2595 3157 msgstr ""
2596 3158
2597 -#: includes/modules/Score/ScoreModule.php:135
2598 -msgid "PageSpeed Insights only. Mobile is what Google ranks on."
3159 +#: includes/modules/Score/ScoreModule.php:137
3160 +msgid "Test as a phone or a desktop visitor. Google ranks sites on the mobile result."
2599 3161 msgstr ""
2600 3162
2601 -#: includes/modules/Score/ScoreModule.php:334
2602 -#: includes/modules/Score/ScoreModule.php:380
3163 +#: includes/modules/Score/ScoreModule.php:339
3164 +#: includes/modules/Score/ScoreModule.php:385
2603 3165 msgid "Hub-run speed tests are not enabled on this site."
2604 3166 msgstr ""
2605 3167
2606 -#: includes/modules/Score/ScoreModule.php:443
3168 +#: includes/modules/Score/ScoreModule.php:448
2607 3169 msgid "No URL to test."
2608 3170 msgstr ""
2609 3171
2610 -#: includes/modules/Score/ScoreModule.php:540
3172 +#: includes/modules/Score/ScoreModule.php:545
2611 3173 msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2612 3174 msgstr ""
2613 3175
2614 -#: includes/modules/Score/ScoreModule.php:619
3176 +#: includes/modules/Score/ScoreModule.php:624
2615 3177 msgid "The audit did not produce a result."
2616 3178 msgstr ""
2617 3179
2618 3180 #. translators: %s: module slug.
2619 -#: includes/modules/Settings/SettingsModule.php:320
3181 +#: includes/modules/Settings/SettingsModule.php:324
2620 3182 #, php-format
2621 3183 msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2622 3184 msgstr ""
2623 3185
@@ -2628,16 +3190,56 @@
2628 3190 #: includes/modules/Support/SupportModule.php:30
2629 3191 msgid "Open a support ticket with a one-click system snapshot already attached."
2630 3192 msgstr ""
2631 3193
2632 -#: includes/modules/Support/SupportModule.php:40
3194 +#: includes/modules/Support/SupportModule.php:41
2633 3195 msgid "Support URL"
2634 3196 msgstr ""
2635 3197
2636 -#: includes/modules/Support/SupportModule.php:41
2637 -msgid "Where the \"Open ticket\" button takes the user."
3198 +#: includes/modules/Support/SupportModule.php:42
3199 +msgid "The page the \"Open ticket\" button opens. Leave the default to reach xSpeed support."
2638 3200 msgstr ""
2639 3201
3202 +#: includes/modules/TurboRender/TurboRenderModule.php:105
3203 +msgid "Turbo Render"
3204 +msgstr ""
3205 +
3206 +#: includes/modules/TurboRender/TurboRenderModule.php:107
3207 +msgid "Shows the top of each page first and the rest as visitors scroll."
3208 +msgstr ""
3209 +
3210 +#: includes/modules/TurboRender/TurboRenderModule.php:117
3211 +msgid "Render as visitors scroll"
3212 +msgstr ""
3213 +
3214 +#: includes/modules/TurboRender/TurboRenderModule.php:118
3215 +msgid "The browser draws what visitors see first and draws lower sections just before they scroll to them. Your content does not change."
3216 +msgstr ""
3217 +
3218 +#: includes/modules/TurboRender/TurboRenderModule.php:125
3219 +msgid "Sections to render immediately"
3220 +msgstr ""
3221 +
3222 +#: includes/modules/TurboRender/TurboRenderModule.php:126
3223 +msgid "How many sections at the top are drawn right away. The default of 2 suits most pages; raise it if a section near the top appears late."
3224 +msgstr ""
3225 +
3226 +#: includes/modules/TurboRender/TurboRenderModule.php:132
3227 +msgid "Section classes"
3228 +msgstr ""
3229 +
3230 +#: includes/modules/TurboRender/TurboRenderModule.php:133
3231 +msgid "CSS classes that mark a section. The defaults cover the main page builders, and other themes are detected on their own."
3232 +msgstr ""
3233 +
3234 +#: includes/modules/TurboRender/TurboRenderModule.php:140
3235 +msgid "Excluded classes"
3236 +msgstr ""
3237 +
3238 +#: includes/modules/TurboRender/TurboRenderModule.php:141
3239 +msgid "Sections with any of these classes are always drawn right away. Add one here if part of a section gets cut off where it overlaps the next."
3240 +msgstr ""
3241 +
2640 3242 #: xspeed.php:220
2641 3243 msgid "is missing files and could not start, so no new pages are being cached. Pages already in the cache are still being served, and while the plugin is in this state nothing clears them automatically. Deactivating xSpeed empties the cache; reinstalling the plugin restores it. Deactivating alone will not repair the installation."
2642 3244 msgstr ""
2643 3245
@@ -2653,8 +3255,13 @@
2653 3255 #: assets/admin.js
2654 3256 msgid "“clear the cache on my store,” “warm up the homepage,” “how fast is my blog?”"
2655 3257 msgstr ""
2656 3258
3259 +#. Source: src/components/CfeOfferCard.tsx:44
3260 +#: assets/admin.js
3261 +msgid "/domain/mo"
3262 +msgstr ""
3263 +
2657 3264 #. Source: src/components/score/ScorePanel.tsx:96
2658 3265 #. Source: src/components/score/SpeedTestCard.tsx:135
2659 3266 #: assets/admin.js
2660 3267 msgid "%1$d of %2$d left"
@@ -2664,8 +3271,13 @@
2664 3271 #: assets/admin.js
2665 3272 msgid "%s currently owns the page-cache file. xSpeed will replace it and serve the cached pages itself."
2666 3273 msgstr ""
2667 3274
3275 +#. Source: src/components/purgeOutcome.ts:45
3276 +#: assets/admin.js
3277 +msgid "%s: %s"
3278 +msgstr ""
3279 +
2668 3280 #. Source: src/components/health/HealthCard.tsx:172
2669 3281 #: assets/admin.js
2670 3282 msgid "24-hour cache request volume"
2671 3283 msgstr ""
@@ -2679,9 +3291,9 @@
2679 3291 #: assets/admin.js
2680 3292 msgid "7 days"
2681 3293 msgstr ""
2682 3294
2683 -#. Source: src/components/score/ScanCard.tsx:185
3295 +#. Source: src/components/score/ScanCard.tsx:198
2684 3296 #: assets/admin.js
2685 3297 msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2686 3298 msgstr ""
2687 3299
@@ -2689,9 +3301,9 @@
2689 3301 #: assets/admin.js
2690 3302 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2691 3303 msgstr ""
2692 3304
2693 -#. Source: src/components/cache/CacheHero.tsx:243
3305 +#. Source: src/components/cache/CacheHero.tsx:245
2694 3306 #: assets/admin.js
2695 3307 msgid "Absorbed"
2696 3308 msgstr ""
2697 3309
@@ -2699,24 +3311,25 @@
2699 3311 #: assets/admin.js
2700 3312 msgid "Action"
2701 3313 msgstr ""
2702 3314
2703 -#. Source: src/components/Sidebar.tsx:424
2704 -#. Source: src/components/Sidebar.tsx:442
3315 +#. Source: src/components/Sidebar.tsx:522
3316 +#. Source: src/components/Sidebar.tsx:543
3317 +#. Source: src/upsell/LockedPanel.tsx:62
2705 3318 #. Source: src/upsell/ProOverview.tsx:73
2706 3319 #: assets/admin.js
2707 3320 msgid "Activate License"
2708 3321 msgstr ""
2709 3322
2710 -#. Source: src/upsell/LockedPanel.tsx:104
2711 -#. Source: src/upsell/LockedSection.tsx:87
2712 -#. Source: src/upsell/ProDemo.tsx:91
3323 +#. Source: src/upsell/LockedPanel.tsx:165
3324 +#. Source: src/upsell/LockedSection.tsx:88
3325 +#. Source: src/upsell/ProDemo.tsx:92
2713 3326 #: assets/admin.js
2714 3327 msgid "Activate your license"
2715 3328 msgstr ""
2716 3329
2717 -#. Source: src/upsell/LockedPanel.tsx:151
2718 -#. Source: src/upsell/LockedPanel.tsx:40
3330 +#. Source: src/upsell/LockedPanel.tsx:101
3331 +#. Source: src/upsell/LockedPanel.tsx:212
2719 3332 #: assets/admin.js
2720 3333 msgid "Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged."
2721 3334 msgstr ""
2722 3335
@@ -2724,9 +3337,9 @@
2724 3337 #: assets/admin.js
2725 3338 msgid "Add site form"
2726 3339 msgstr ""
2727 3340
2728 -#. Source: src/components/cache/StatDrilldown.tsx:197
3341 +#. Source: src/components/cache/StatDrilldown.tsx:192
2729 3342 #: assets/admin.js
2730 3343 msgid "Address not recorded"
2731 3344 msgstr ""
2732 3345
@@ -2734,9 +3347,9 @@
2734 3347 #: assets/admin.js
2735 3348 msgid "After"
2736 3349 msgstr ""
2737 3350
2738 -#. Source: src/components/cache/StatDrilldown.tsx:168
3351 +#. Source: src/components/cache/StatDrilldown.tsx:163
2739 3352 #: assets/admin.js
2740 3353 msgid "Age"
2741 3354 msgstr ""
2742 3355
@@ -2751,14 +3364,29 @@
2751 3364 #: assets/admin.js
2752 3365 msgid "AI connection active"
2753 3366 msgstr ""
2754 3367
2755 -#. Source: src/components/overview/Recommendations.tsx:181
3368 +#. Source: src/upsell/LockedPanel.tsx:80
2756 3369 #: assets/admin.js
3370 +msgid "Already bought both? Enter your license keys"
3371 +msgstr ""
3372 +
3373 +#. Source: src/components/TopBar.tsx:199
3374 +#: assets/admin.js
3375 +msgid "Already empty"
3376 +msgstr ""
3377 +
3378 +#. Source: src/components/purgeOutcome.ts:57
3379 +#: assets/admin.js
3380 +msgid "Also cleared: %s."
3381 +msgstr ""
3382 +
3383 +#. Source: src/components/overview/Recommendations.tsx:190
3384 +#: assets/admin.js
2757 3385 msgid "Also worth a look"
2758 3386 msgstr ""
2759 3387
2760 -#. Source: src/components/cache/CacheHero.tsx:236
3388 +#. Source: src/components/cache/CacheHero.tsx:231
2761 3389 #: assets/admin.js
2762 3390 msgid "An edge cache (Cloudflare) is in front, so this hit ratio is origin-layer only — hits served at the edge never reach the origin and aren’t counted here."
2763 3391 msgstr ""
2764 3392
@@ -2782,9 +3410,9 @@
2782 3410 msgid "Another plugin owns the page cache on this site, so xSpeed is serving nothing."
2783 3411 msgstr ""
2784 3412
2785 3413 #. Source: src/components/cache/NextBestAction.tsx:122
2786 -#. Source: src/components/overview/Recommendations.tsx:96
3414 +#. Source: src/components/overview/Recommendations.tsx:101
2787 3415 #: assets/admin.js
2788 3416 msgid "Applied"
2789 3417 msgstr ""
2790 3418
@@ -2797,24 +3425,29 @@
2797 3425 #: assets/admin.js
2798 3426 msgid "Apply"
2799 3427 msgstr ""
2800 3428
3429 +#. Source: src/components/score/ScanCard.tsx:85
3430 +#: assets/admin.js
3431 +msgid "Assets"
3432 +msgstr ""
3433 +
2801 3434 #. Source: src/upsell/ProAudit.tsx:46
2802 3435 #: assets/admin.js
2803 3436 msgid "Audit failed"
2804 3437 msgstr ""
2805 3438
2806 -#. Source: src/components/cache/StatDrilldown.tsx:330
3439 +#. Source: src/components/cache/StatDrilldown.tsx:325
2807 3440 #: assets/admin.js
2808 3441 msgid "Automatic cleanup has not run yet — first sweep in %s."
2809 3442 msgstr ""
2810 3443
2811 -#. Source: src/components/cache/StatDrilldown.tsx:322
3444 +#. Source: src/components/cache/StatDrilldown.tsx:317
2812 3445 #: assets/admin.js
2813 3446 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2814 3447 msgstr ""
2815 3448
2816 -#. Source: src/components/overview/MetricGrid.tsx:47
3449 +#. Source: src/components/overview/MetricGrid.tsx:57
2817 3450 #: assets/admin.js
2818 3451 msgid "Avg saved"
2819 3452 msgstr ""
2820 3453
@@ -2827,50 +3460,69 @@
2827 3460 #: assets/admin.js
2828 3461 msgid "Benchmark failed"
2829 3462 msgstr ""
2830 3463
2831 -#. Source: src/components/cache/TrendCharts.tsx:258
3464 +#. Source: src/components/cache/TrendCharts.tsx:263
2832 3465 #: assets/admin.js
2833 3466 msgid "Benchmark trend"
2834 3467 msgstr ""
2835 3468
2836 -#. Source: src/components/cache/TrendCharts.tsx:134
3469 +#. Source: src/components/cache/TrendCharts.tsx:139
2837 3470 #: assets/admin.js
2838 3471 msgid "Benchmark: cached vs uncached (ms)"
2839 3472 msgstr ""
2840 3473
2841 -#. Source: src/components/overview/Recommendations.tsx:230
3474 +#. Source: src/components/overview/Recommendations.tsx:239
2842 3475 #: assets/admin.js
2843 3476 msgid "Book"
2844 3477 msgstr ""
2845 3478
2846 -#. Source: src/components/overview/Recommendations.tsx:221
3479 +#. Source: src/components/overview/Recommendations.tsx:230
2847 3480 #: assets/admin.js
2848 3481 msgid "Book a free setup review with our team."
2849 3482 msgstr ""
2850 3483
2851 -#. Source: src/components/cache/CacheHero.tsx:247
3484 +#. Source: src/components/cache/CacheHero.tsx:249
2852 3485 #: assets/admin.js
2853 -msgid "bot / 404 requests in 24h — excluded from the hit ratio."
3486 +msgid "bot, 404 and cache-warming requests in 24h — excluded from the hit ratio."
2854 3487 msgstr ""
2855 3488
2856 -#. Source: src/components/TopBar.tsx:77
3489 +#. Source: src/components/TopBar.tsx:84
2857 3490 #: assets/admin.js
2858 3491 msgid "Breadcrumb"
2859 3492 msgstr ""
2860 3493
2861 -#. Source: src/components/overview/FeatureMap.tsx:104
3494 +#. Source: src/components/overview/FeatureMap.tsx:114
2862 3495 #: assets/admin.js
2863 3496 msgid "Browse all"
2864 3497 msgstr ""
2865 3498
2866 -#. Source: src/components/sidebarGroups.ts:69
3499 +#. Source: src/components/sidebarGroups.ts:82
2867 3500 #: assets/admin.js
2868 3501 msgid "Cache"
2869 3502 msgstr ""
2870 3503
2871 -#. Source: src/App.tsx:309
3504 +#. Source: src/components/purgeOutcome.ts:84
2872 3505 #: assets/admin.js
3506 +msgid "Cache cleared: %d file (%s)."
3507 +msgid_plural "Cache cleared: %d files (%s)."
3508 +msgstr[0] ""
3509 +msgstr[1] ""
3510 +
3511 +#. Source: src/components/purgeOutcome.ts:91
3512 +#: assets/admin.js
3513 +msgid "Cache cleared: %d file."
3514 +msgid_plural "Cache cleared: %d files."
3515 +msgstr[0] ""
3516 +msgstr[1] ""
3517 +
3518 +#. Source: src/components/purgeOutcome.ts:80
3519 +#: assets/admin.js
3520 +msgid "Cache cleared."
3521 +msgstr ""
3522 +
3523 +#. Source: src/App.tsx:347
3524 +#: assets/admin.js
2873 3525 msgid "Cache could not be enabled."
2874 3526 msgstr ""
2875 3527
2876 3528 #. Source: src/components/health/HealthHero.tsx:28
@@ -2877,19 +3529,19 @@
2877 3529 #: assets/admin.js
2878 3530 msgid "Cache coverage"
2879 3531 msgstr ""
2880 3532
2881 -#. Source: src/App.tsx:321
3533 +#. Source: src/App.tsx:359
2882 3534 #: assets/admin.js
2883 3535 msgid "Cache disabled"
2884 3536 msgstr ""
2885 3537
2886 -#. Source: src/App.tsx:321
3538 +#. Source: src/App.tsx:359
2887 3539 #: assets/admin.js
2888 3540 msgid "Cache enabled"
2889 3541 msgstr ""
2890 3542
2891 -#. Source: src/App.tsx:315
3543 +#. Source: src/App.tsx:353
2892 3544 #: assets/admin.js
2893 3545 msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health."
2894 3546 msgstr ""
2895 3547
@@ -2922,15 +3574,20 @@
2922 3574 #: assets/admin.js
2923 3575 msgid "Cache optimized"
2924 3576 msgstr ""
2925 3577
2926 -#. Source: src/App.tsx:339
3578 +#. Source: src/components/purgeOutcome.ts:53
2927 3579 #: assets/admin.js
3580 +msgid "Cache partly cleared."
3581 +msgstr ""
3582 +
3583 +#. Source: src/components/purgeOutcome.ts:29
3584 +#: assets/admin.js
2928 3585 msgid "Cache purged"
2929 3586 msgstr ""
2930 3587
2931 3588 #. Source: src/components/health/HealthHero.tsx:30
2932 -#. Source: src/components/overview/MetricGrid.tsx:46
3589 +#. Source: src/components/overview/MetricGrid.tsx:56
2933 3590 #: assets/admin.js
2934 3591 msgid "Cache size"
2935 3592 msgstr ""
2936 3593
@@ -2943,16 +3600,16 @@
2943 3600 #: assets/admin.js
2944 3601 msgid "Cache, compression & more"
2945 3602 msgstr ""
2946 3603
2947 -#. Source: src/components/cache/TrendCharts.tsx:270
3604 +#. Source: src/components/cache/TrendCharts.tsx:275
2948 3605 #: assets/admin.js
2949 3606 msgid "cached"
2950 3607 msgstr ""
2951 3608
2952 -#. Source: src/components/cache/StatDrilldown.tsx:145
3609 +#. Source: src/components/cache/StatDrilldown.tsx:140
2953 3610 #. Source: src/components/health/HealthHero.tsx:29
2954 -#. Source: src/components/overview/MetricGrid.tsx:45
3611 +#. Source: src/components/overview/MetricGrid.tsx:55
2955 3612 #: assets/admin.js
2956 3613 msgid "Cached pages"
2957 3614 msgstr ""
2958 3615
@@ -2971,16 +3628,16 @@
2971 3628 msgid "Caching — loading"
2972 3629 msgstr ""
2973 3630
2974 3631 #. Source: src/components/CacheSwitch.tsx:261
2975 -#. Source: src/components/cache/CacheHero.tsx:182
3632 +#. Source: src/components/cache/CacheHero.tsx:177
2976 3633 #: assets/admin.js
2977 3634 msgid "Cancel"
2978 3635 msgstr ""
2979 3636
2980 -#. Source: src/components/sidebarGroups.ts:85
3637 +#. Source: src/components/sidebarGroups.ts:98
2981 3638 #: assets/admin.js
2982 -msgid "CDN and Cloudflare edge delivery."
3639 +msgid "CDN, your own Cloudflare zone and Cloudflare Enterprise."
2983 3640 msgstr ""
2984 3641
2985 3642 #. Source: src/components/score/ScorePanel.tsx:661
2986 3643 #: assets/admin.js
@@ -2996,9 +3653,9 @@
2996 3653 #: assets/admin.js
2997 3654 msgid "Checking your AI connection…"
2998 3655 msgstr ""
2999 3656
3000 -#. Source: src/components/overview/ScoreCard.tsx:195
3657 +#. Source: src/components/overview/ScoreCard.tsx:199
3001 3658 #: assets/admin.js
3002 3659 msgid "Checking your score"
3003 3660 msgstr ""
3004 3661
@@ -3011,22 +3668,46 @@
3011 3668 #: assets/admin.js
3012 3669 msgid "Clear"
3013 3670 msgstr ""
3014 3671
3672 +#. Source: src/components/TopBar.tsx:197
3673 +#: assets/admin.js
3674 +msgid "Cleared"
3675 +msgstr ""
3676 +
3677 +#. Source: src/components/purgeOutcome.ts:62
3678 +#: assets/admin.js
3679 +msgid "Cleared: %s."
3680 +msgstr ""
3681 +
3015 3682 #. Source: src/components/cache/CacheBenchmark.tsx:126
3016 3683 #: assets/admin.js
3017 3684 msgid "Click \"Run benchmark\" to compare load times."
3018 3685 msgstr ""
3019 3686
3020 -#. Source: src/components/Sidebar.tsx:219
3021 -#. Source: src/components/Sidebar.tsx:266
3687 +#. Source: src/components/Sidebar.tsx:275
3688 +#. Source: src/components/Sidebar.tsx:323
3022 3689 #: assets/admin.js
3023 3690 msgid "Close navigation"
3024 3691 msgstr ""
3025 3692
3026 -#. Source: src/components/Sidebar.tsx:284
3027 -#. Source: src/components/Sidebar.tsx:289
3693 +#. Source: src/components/CfeOfferCard.tsx:111
3694 +#. Source: src/components/CfeOfferCard.tsx:137
3695 +#. Source: src/components/CfeOfferCard.tsx:199
3696 +#. Source: src/components/CfeOfferCard.tsx:210
3697 +#. Source: src/components/CfeOfferCard.tsx:87
3028 3698 #: assets/admin.js
3699 +msgid "Cloudflare Enterprise"
3700 +msgstr ""
3701 +
3702 +#. Source: src/components/CfeOfferCard.tsx:184
3703 +#: assets/admin.js
3704 +msgid "Cloudflare Enterprise add-on"
3705 +msgstr ""
3706 +
3707 +#. Source: src/components/Sidebar.tsx:341
3708 +#. Source: src/components/Sidebar.tsx:346
3709 +#: assets/admin.js
3029 3710 msgid "Collapse sidebar"
3030 3711 msgstr ""
3031 3712
3032 3713 #. Source: src/components/CommandPalette.tsx:172
@@ -3038,9 +3719,9 @@
3038 3719 #: assets/admin.js
3039 3720 msgid "Compare"
3040 3721 msgstr ""
3041 3722
3042 -#. Source: src/upsell/LockedPanel.tsx:125
3723 +#. Source: src/upsell/LockedPanel.tsx:186
3043 3724 #: assets/admin.js
3044 3725 msgid "Compare plans"
3045 3726 msgstr ""
3046 3727
@@ -3063,8 +3744,13 @@
3063 3744 #: assets/admin.js
3064 3745 msgid "Connect"
3065 3746 msgstr ""
3066 3747
3748 +#. Source: src/components/sidebarGroups.ts:123
3749 +#: assets/admin.js
3750 +msgid "Connect an AI agent to this site, and control what AI features may use."
3751 +msgstr ""
3752 +
3067 3753 #. Source: src/components/TopBar.tsx:142
3068 3754 #: assets/admin.js
3069 3755 msgid "Connect Hub"
3070 3756 msgstr ""
@@ -3078,24 +3764,19 @@
3078 3764 #: assets/admin.js
3079 3765 msgid "Connect this site to your free xSpeed Hub — then manage caching here and on every other site straight from ChatGPT, Claude, or any AI assistant. Free, forever."
3080 3766 msgstr ""
3081 3767
3082 -#. Source: src/components/overview/HubCard.tsx:126
3768 +#. Source: src/components/overview/HubCard.tsx:168
3083 3769 #: assets/admin.js
3084 3770 msgid "Connect to control caching remotely, drive it from AI agents, and manage all your sites in one place."
3085 3771 msgstr ""
3086 3772
3087 -#. Source: src/components/overview/HubCard.tsx:133
3088 -#. Source: src/components/overview/HubCard.tsx:140
3773 +#. Source: src/components/overview/HubCard.tsx:175
3774 +#. Source: src/components/overview/HubCard.tsx:182
3089 3775 #: assets/admin.js
3090 3776 msgid "Connect to Hub"
3091 3777 msgstr ""
3092 3778
3093 -#. Source: src/onboarding/steps/Connect.tsx:195
3094 -#: assets/admin.js
3095 -msgid "Connect to xSpeed Hub"
3096 -msgstr ""
3097 -
3098 3779 #. Source: src/components/overview/AiControlCard.tsx:325
3099 3780 #: assets/admin.js
3100 3781 msgid "Connect with MCP"
3101 3782 msgstr ""
@@ -3104,9 +3785,9 @@
3104 3785 #: assets/admin.js
3105 3786 msgid "Connect your AI agent through MCP — then just ask it to analyze and optimize your site."
3106 3787 msgstr ""
3107 3788
3108 -#. Source: src/components/overview/HubCard.tsx:104
3789 +#. Source: src/components/overview/HubCard.tsx:146
3109 3790 #: assets/admin.js
3110 3791 msgid "Connected"
3111 3792 msgstr ""
3112 3793
@@ -3114,9 +3795,9 @@
3114 3795 #: assets/admin.js
3115 3796 msgid "Connected — starting your test…"
3116 3797 msgstr ""
3117 3798
3118 -#. Source: src/components/overview/HubCard.tsx:113
3799 +#. Source: src/components/overview/HubCard.tsx:155
3119 3800 #: assets/admin.js
3120 3801 msgid "Connected as"
3121 3802 msgstr ""
3122 3803
@@ -3129,9 +3810,9 @@
3129 3810 #: assets/admin.js
3130 3811 msgid "Connected to xSpeed Hub"
3131 3812 msgstr ""
3132 3813
3133 -#. Source: src/components/score/ScanCard.tsx:221
3814 +#. Source: src/components/score/ScanCard.tsx:234
3134 3815 #: assets/admin.js
3135 3816 msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3136 3817 msgstr ""
3137 3818
@@ -3144,14 +3825,14 @@
3144 3825 #: assets/admin.js
3145 3826 msgid "Control and optimize your site with AI"
3146 3827 msgstr ""
3147 3828
3148 -#. Source: src/components/overview/HubCard.tsx:113
3829 +#. Source: src/components/overview/HubCard.tsx:155
3149 3830 #: assets/admin.js
3150 3831 msgid "Control caching remotely and from AI agents."
3151 3832 msgstr ""
3152 3833
3153 -#. Source: src/components/overview/HubCard.tsx:114
3834 +#. Source: src/components/overview/HubCard.tsx:156
3154 3835 #: assets/admin.js
3155 3836 msgid "Control caching remotely, drive it from AI agents, and manage your sites in one place."
3156 3837 msgstr ""
3157 3838
@@ -3159,14 +3840,19 @@
3159 3840 #: assets/admin.js
3160 3841 msgid "Control xSpeed with AI"
3161 3842 msgstr ""
3162 3843
3844 +#. Source: src/components/score/ScanCard.tsx:81
3845 +#: assets/admin.js
3846 +msgid "Core Web Vitals"
3847 +msgstr ""
3848 +
3163 3849 #. Source: src/components/overview/McpSessionDemo.tsx:230
3164 3850 #: assets/admin.js
3165 3851 msgid "Core Web Vitals checked"
3166 3852 msgstr ""
3167 3853
3168 -#. Source: src/components/overview/Recommendations.tsx:98
3854 +#. Source: src/components/overview/Recommendations.tsx:103
3169 3855 #: assets/admin.js
3170 3856 msgid "Could not apply that fix"
3171 3857 msgstr ""
3172 3858
@@ -3179,9 +3865,9 @@
3179 3865 #: assets/admin.js
3180 3866 msgid "Could not check the test status."
3181 3867 msgstr ""
3182 3868
3183 -#. Source: src/components/sidebarGroups.ts:99
3869 +#. Source: src/components/sidebarGroups.ts:112
3184 3870 #: assets/admin.js
3185 3871 msgid "Database cleanup, migration and logs."
3186 3872 msgstr ""
3187 3873
@@ -3189,19 +3875,34 @@
3189 3875 #: assets/admin.js
3190 3876 msgid "Defined in wp-config.php as"
3191 3877 msgstr ""
3192 3878
3193 -#. Source: src/components/overview/ScoreCard.tsx:185
3879 +#. Source: src/components/overview/ScoreCard.tsx:189
3194 3880 #: assets/admin.js
3195 3881 msgid "desktop"
3196 3882 msgstr ""
3197 3883
3198 -#. Source: src/components/overview/ScoreCard.tsx:90
3199 -#. Source: src/components/score/ScanCard.tsx:281
3884 +#. Source: src/components/overview/ScoreCard.tsx:91
3885 +#. Source: src/components/score/ScanCard.tsx:298
3200 3886 #: assets/admin.js
3201 3887 msgid "Desktop"
3202 3888 msgstr ""
3203 3889
3890 +#. Source: src/components/settings/HubCard.tsx:372
3891 +#: assets/admin.js
3892 +msgid "Disconnect"
3893 +msgstr ""
3894 +
3895 +#. Source: src/components/settings/HubCard.tsx:352
3896 +#: assets/admin.js
3897 +msgid "Disconnect this site from xSpeed Hub?"
3898 +msgstr ""
3899 +
3900 +#. Source: src/components/settings/HubCard.tsx:169
3901 +#: assets/admin.js
3902 +msgid "Disconnect was refused. Check what stops working, then confirm again."
3903 +msgstr ""
3904 +
3204 3905 #. Source: src/components/FieldSuggestionStrip.tsx:132
3205 3906 #: assets/admin.js
3206 3907 msgid "Dismiss"
3207 3908 msgstr ""
@@ -3211,13 +3912,23 @@
3211 3912 #: assets/admin.js
3212 3913 msgid "Dismiss banner"
3213 3914 msgstr ""
3214 3915
3916 +#. Source: src/components/CfeOfferCard.tsx:92
3917 +#: assets/admin.js
3918 +msgid "Dismiss the Cloudflare Enterprise offer"
3919 +msgstr ""
3920 +
3215 3921 #. Source: src/components/overview/OverviewFooter.tsx:24
3216 3922 #: assets/admin.js
3217 3923 msgid "Documentation"
3218 3924 msgstr ""
3219 3925
3926 +#. Source: src/upsell/PurchasePath.tsx:96
3927 +#: assets/admin.js
3928 +msgid "Done"
3929 +msgstr ""
3930 +
3220 3931 #. Source: src/components/cache/NextBestAction.tsx:85
3221 3932 #: assets/admin.js
3222 3933 msgid "Every deterministic check passes — your configuration looks healthy."
3223 3934 msgstr ""
@@ -3241,10 +3952,10 @@
3241 3952 #: assets/admin.js
3242 3953 msgid "Example session"
3243 3954 msgstr ""
3244 3955
3245 -#. Source: src/components/Sidebar.tsx:284
3246 -#. Source: src/components/Sidebar.tsx:289
3956 +#. Source: src/components/Sidebar.tsx:341
3957 +#. Source: src/components/Sidebar.tsx:346
3247 3958 #: assets/admin.js
3248 3959 msgid "Expand sidebar"
3249 3960 msgstr ""
3250 3961
@@ -3252,19 +3963,19 @@
3252 3963 #: assets/admin.js
3253 3964 msgid "failed"
3254 3965 msgstr ""
3255 3966
3256 -#. Source: src/App.tsx:325
3967 +#. Source: src/App.tsx:363
3257 3968 #: assets/admin.js
3258 3969 msgid "Failed to disable cache"
3259 3970 msgstr ""
3260 3971
3261 -#. Source: src/App.tsx:325
3972 +#. Source: src/App.tsx:363
3262 3973 #: assets/admin.js
3263 3974 msgid "Failed to enable cache"
3264 3975 msgstr ""
3265 3976
3266 -#. Source: src/App.tsx:273
3977 +#. Source: src/App.tsx:302
3267 3978 #: assets/admin.js
3268 3979 msgid "Failed to load"
3269 3980 msgstr ""
3270 3981
@@ -3277,9 +3988,9 @@
3277 3988 #: assets/admin.js
3278 3989 msgid "faster per page"
3279 3990 msgstr ""
3280 3991
3281 -#. Source: src/components/overview/FeatureMap.tsx:104
3992 +#. Source: src/components/overview/FeatureMap.tsx:114
3282 3993 #: assets/admin.js
3283 3994 msgid "features"
3284 3995 msgstr ""
3285 3996
@@ -3302,18 +4013,28 @@
3302 4013 #: assets/admin.js
3303 4014 msgid "from wp-config.php"
3304 4015 msgstr ""
3305 4016
3306 -#. Source: src/components/score/ScanCard.tsx:358
4017 +#. Source: src/components/score/ScanCard.tsx:375
3307 4018 #: assets/admin.js
3308 4019 msgid "Full report"
3309 4020 msgstr ""
3310 4021
4022 +#. Source: src/components/CfeOfferCard.tsx:59
4023 +#: assets/admin.js
4024 +msgid "Get it"
4025 +msgstr ""
4026 +
3311 4027 #. Source: src/onboarding/steps/Connect.tsx:170
3312 4028 #: assets/admin.js
3313 4029 msgid "Get more over time"
3314 4030 msgstr ""
3315 4031
4032 +#. Source: src/upsell/LockedPanel.tsx:69
4033 +#: assets/admin.js
4034 +msgid "Get Pro"
4035 +msgstr ""
4036 +
3316 4037 #. Source: src/onboarding/steps/Connect.tsx:134
3317 4038 #. Source: src/onboarding/steps/Connect.tsx:81
3318 4039 #: assets/admin.js
3319 4040 msgid "Go to Dashboard"
@@ -3318,20 +4039,20 @@
3318 4039 #: assets/admin.js
3319 4040 msgid "Go to Dashboard"
3320 4041 msgstr ""
3321 4042
3322 -#. Source: src/onboarding/OnboardingApp.tsx:161
4043 +#. Source: src/onboarding/OnboardingApp.tsx:165
3323 4044 #: assets/admin.js
3324 4045 msgid "Go to the dashboard"
3325 4046 msgstr ""
3326 4047
3327 -#. Source: src/components/overview/ScoreCard.tsx:277
4048 +#. Source: src/components/overview/ScoreCard.tsx:281
3328 4049 #: assets/admin.js
3329 4050 msgid "good"
3330 4051 msgstr ""
3331 4052
3332 -#. Source: src/components/score/ScanCard.tsx:261
3333 -#. Source: src/components/score/ScanCard.tsx:302
4053 +#. Source: src/components/score/ScanCard.tsx:278
4054 +#. Source: src/components/score/ScanCard.tsx:319
3334 4055 #: assets/admin.js
3335 4056 msgid "Grade"
3336 4057 msgstr ""
3337 4058
@@ -3339,9 +4060,9 @@
3339 4060 #: assets/admin.js
3340 4061 msgid "GTmetrix test"
3341 4062 msgstr ""
3342 4063
3343 -#. Source: src/components/sidebarGroups.ts:90
4064 +#. Source: src/components/sidebarGroups.ts:103
3344 4065 #: assets/admin.js
3345 4066 msgid "Health & insights"
3346 4067 msgstr ""
3347 4068
@@ -3364,31 +4085,36 @@
3364 4085 #: assets/admin.js
3365 4086 msgid "Hide"
3366 4087 msgstr ""
3367 4088
3368 -#. Source: src/components/cache/TrendCharts.tsx:120
3369 -#. Source: src/components/health/HealthHero.tsx:37
3370 -#. Source: src/components/overview/MetricGrid.tsx:44
4089 +#. Source: src/components/cache/TrendCharts.tsx:125
4090 +#. Source: src/components/health/HealthHero.tsx:42
4091 +#. Source: src/components/overview/MetricGrid.tsx:45
3371 4092 #: assets/admin.js
3372 4093 msgid "Hit ratio"
3373 4094 msgstr ""
3374 4095
3375 -#. Source: src/components/cache/CacheHero.tsx:222
4096 +#. Source: src/components/cache/CacheHero.tsx:217
3376 4097 #: assets/admin.js
3377 4098 msgid "Hit Ratio · 24h"
3378 4099 msgstr ""
3379 4100
3380 -#. Source: src/components/cache/CacheHero.tsx:222
4101 +#. Source: src/components/cache/CacheHero.tsx:217
3381 4102 #: assets/admin.js
3382 4103 msgid "Hit Ratio · 24h · origin"
3383 4104 msgstr ""
3384 4105
4106 +#. Source: src/components/health/HealthHero.tsx:42
4107 +#: assets/admin.js
4108 +msgid "Hit ratio (PHP-served only)"
4109 +msgstr ""
4110 +
3385 4111 #. Source: src/components/cache/TrendCharts.tsx:83
3386 4112 #: assets/admin.js
3387 4113 msgid "Hit ratio and benchmark history, with your settings changes marked."
3388 4114 msgstr ""
3389 4115
3390 -#. Source: src/components/cache/TrendCharts.tsx:222
4116 +#. Source: src/components/cache/TrendCharts.tsx:227
3391 4117 #: assets/admin.js
3392 4118 msgid "Hit ratio trend"
3393 4119 msgstr ""
3394 4120
@@ -3411,11 +4137,11 @@
3411 4137 #: assets/admin.js
3412 4138 msgid "Hub connected"
3413 4139 msgstr ""
3414 4140
3415 -#. Source: src/components/sidebarGroups.ts:106
4141 +#. Source: src/components/settings/HubCard.tsx:369
3416 4142 #: assets/admin.js
3417 -msgid "Hub, MCP access, AI provider and privacy."
4143 +msgid "I understand what stops working when this site disconnects."
3418 4144 msgstr ""
3419 4145
3420 4146 #. Source: src/onboarding/steps/Connect.tsx:132
3421 4147 #: assets/admin.js
@@ -3436,9 +4162,9 @@
3436 4162 #: assets/admin.js
3437 4163 msgid "It takes a few seconds."
3438 4164 msgstr ""
3439 4165
3440 -#. Source: src/components/cache/CacheHero.tsx:225
4166 +#. Source: src/components/cache/CacheHero.tsx:220
3441 4167 #: assets/admin.js
3442 4168 msgid "jump to the hit-ratio trend"
3443 4169 msgstr ""
3444 4170
@@ -3456,14 +4182,14 @@
3456 4182 #: assets/admin.js
3457 4183 msgid "Just say what you want"
3458 4184 msgstr ""
3459 4185
3460 -#. Source: src/components/overview/MetricGrid.tsx:51
4186 +#. Source: src/components/overview/MetricGrid.tsx:61
3461 4187 #: assets/admin.js
3462 4188 msgid "Key metrics"
3463 4189 msgstr ""
3464 4190
3465 -#. Source: src/components/overview/MetricGrid.tsx:44
4191 +#. Source: src/components/overview/MetricGrid.tsx:53
3466 4192 #: assets/admin.js
3467 4193 msgid "last 24 hours"
3468 4194 msgstr ""
3469 4195
@@ -3476,9 +4202,9 @@
3476 4202 #: assets/admin.js
3477 4203 msgid "Last purged"
3478 4204 msgstr ""
3479 4205
3480 -#. Source: src/components/cache/TrendCharts.tsx:236
4206 +#. Source: src/components/cache/TrendCharts.tsx:241
3481 4207 #: assets/admin.js
3482 4208 msgid "Latest"
3483 4209 msgstr ""
3484 4210
@@ -3486,31 +4212,41 @@
3486 4212 #: assets/admin.js
3487 4213 msgid "Learn more about Pro"
3488 4214 msgstr ""
3489 4215
3490 -#. Source: src/upsell/LockedSection.tsx:69
3491 -#. Source: src/upsell/ProDemo.tsx:59
4216 +#. Source: src/upsell/LockedSection.tsx:70
4217 +#. Source: src/upsell/ProDemo.tsx:60
3492 4218 #: assets/admin.js
3493 4219 msgid "License"
3494 4220 msgstr ""
3495 4221
3496 -#. Source: src/components/sidebarGroups.ts:113
4222 +#. Source: src/upsell/LockedPanel.tsx:61
3497 4223 #: assets/admin.js
4224 +msgid "License not active"
4225 +msgstr ""
4226 +
4227 +#. Source: src/components/sidebarGroups.ts:131
4228 +#: assets/admin.js
3498 4229 msgid "License, branding, multisite and support."
3499 4230 msgstr ""
3500 4231
3501 -#. Source: src/components/overview/ScoreCard.tsx:205
4232 +#. Source: src/components/overview/ScoreCard.tsx:209
3502 4233 #: assets/admin.js
3503 4234 msgid "Lighthouse performance, from your latest xSpeed Scan."
3504 4235 msgstr ""
3505 4236
3506 -#. Source: src/components/score/ScanCard.tsx:284
4237 +#. Source: src/components/score/ScanCard.tsx:301
3507 4238 #: assets/admin.js
3508 4239 msgid "Lighthouse performance, out of 100"
3509 4240 msgstr ""
3510 4241
3511 -#. Source: src/App.tsx:384
3512 -#. Source: src/components/GroupLanding.tsx:67
4242 +#. Source: src/components/cache/CacheHero.tsx:238
4243 +#: assets/admin.js
4244 +msgid "LiteSpeed Static Fast Path is on: cache hits are served by the web server with no PHP, carry no X-XSpeed-Cache header, and are not counted here — so a low ratio reflects the trade you chose, not a broken cache."
4245 +msgstr ""
4246 +
4247 +#. Source: src/App.tsx:485
4248 +#. Source: src/components/GroupLanding.tsx:79
3513 4249 #. Source: src/components/LogsView.tsx:35
3514 4250 #: assets/admin.js
3515 4251 msgid "Logs"
3516 4252 msgstr ""
@@ -3550,10 +4286,10 @@
3550 4286 #: assets/admin.js
3551 4287 msgid "Manage xSpeed through conversation"
3552 4288 msgstr ""
3553 4289
3554 -#. Source: src/components/Sidebar.tsx:395
3555 -#. Source: src/components/Sidebar.tsx:402
4290 +#. Source: src/components/Sidebar.tsx:493
4291 +#. Source: src/components/Sidebar.tsx:500
3556 4292 #: assets/admin.js
3557 4293 msgid "Manage your license"
3558 4294 msgstr ""
3559 4295
@@ -3561,9 +4297,9 @@
3561 4297 #: assets/admin.js
3562 4298 msgid "MCP is connected and ready — your AI agent can purge, tune and benchmark this site."
3563 4299 msgstr ""
3564 4300
3565 -#. Source: src/components/overview/ScoreCard.tsx:210
4301 +#. Source: src/components/overview/ScoreCard.tsx:214
3566 4302 #: assets/admin.js
3567 4303 msgid "Measured on your home page by an external audit."
3568 4304 msgstr ""
3569 4305
@@ -3576,33 +4312,33 @@
3576 4312 #: assets/admin.js
3577 4313 msgid "min"
3578 4314 msgstr ""
3579 4315
3580 -#. Source: src/components/sidebarGroups.ts:78
4316 +#. Source: src/components/sidebarGroups.ts:91
3581 4317 #: assets/admin.js
3582 4318 msgid "Minify, compress, lazy-load, fonts and hints."
3583 4319 msgstr ""
3584 4320
3585 -#. Source: src/components/overview/ScoreCard.tsx:185
3586 -#. Source: src/components/score/ScanCard.tsx:294
4321 +#. Source: src/components/overview/ScoreCard.tsx:189
4322 +#. Source: src/components/score/ScanCard.tsx:311
3587 4323 #: assets/admin.js
3588 4324 msgid "mobile"
3589 4325 msgstr ""
3590 4326
3591 -#. Source: src/components/overview/ScoreCard.tsx:91
3592 -#. Source: src/components/score/ScanCard.tsx:281
4327 +#. Source: src/components/overview/ScoreCard.tsx:92
4328 +#. Source: src/components/score/ScanCard.tsx:298
3593 4329 #: assets/admin.js
3594 4330 msgid "Mobile"
3595 4331 msgstr ""
3596 4332
3597 -#. Source: src/components/Sidebar.tsx:334
3598 -#. Source: src/components/Sidebar.tsx:370
4333 +#. Source: src/components/Sidebar.tsx:407
4334 +#. Source: src/components/Sidebar.tsx:443
3599 4335 #: assets/admin.js
3600 4336 msgid "module on"
3601 4337 msgstr ""
3602 4338
3603 -#. Source: src/components/Sidebar.tsx:335
3604 -#. Source: src/components/Sidebar.tsx:371
4339 +#. Source: src/components/Sidebar.tsx:408
4340 +#. Source: src/components/Sidebar.tsx:444
3605 4341 #: assets/admin.js
3606 4342 msgid "modules on"
3607 4343 msgstr ""
3608 4344
@@ -3610,9 +4346,9 @@
3610 4346 #: assets/admin.js
3611 4347 msgid "more after this"
3612 4348 msgstr ""
3613 4349
3614 -#. Source: src/components/overview/HubCard.tsx:148
4350 +#. Source: src/components/overview/HubCard.tsx:190
3615 4351 #: assets/admin.js
3616 4352 msgid "More options"
3617 4353 msgstr ""
3618 4354
@@ -3620,9 +4356,9 @@
3620 4356 #: assets/admin.js
3621 4357 msgid "Negligible difference — page is cheap to render or cache is cold."
3622 4358 msgstr ""
3623 4359
3624 -#. Source: src/components/sidebarGroups.ts:83
4360 +#. Source: src/components/sidebarGroups.ts:96
3625 4361 #: assets/admin.js
3626 4362 msgid "Network"
3627 4363 msgstr ""
3628 4364
@@ -3630,9 +4366,9 @@
3630 4366 #: assets/admin.js
3631 4367 msgid "never"
3632 4368 msgstr ""
3633 4369
3634 -#. Source: src/components/overview/ScoreCard.tsx:181
4370 +#. Source: src/components/overview/ScoreCard.tsx:185
3635 4371 #: assets/admin.js
3636 4372 msgid "Never scanned"
3637 4373 msgstr ""
3638 4374
@@ -3671,13 +4407,18 @@
3671 4407 #: assets/admin.js
3672 4408 msgid "no change"
3673 4409 msgstr ""
3674 4410
3675 -#. Source: src/components/overview/ScoreCard.tsx:181
4411 +#. Source: src/components/overview/ScoreCard.tsx:185
3676 4412 #: assets/admin.js
3677 4413 msgid "No completed scan"
3678 4414 msgstr ""
3679 4415
4416 +#. Source: src/upsell/LockedPanel.tsx:71
4417 +#: assets/admin.js
4418 +msgid "No license key"
4419 +msgstr ""
4420 +
3680 4421 #. Source: src/onboarding/steps/Connect.tsx:164
3681 4422 #: assets/admin.js
3682 4423 msgid "no logging into each dashboard separately."
3683 4424 msgstr ""
@@ -3686,14 +4427,14 @@
3686 4427 #: assets/admin.js
3687 4428 msgid "No matches"
3688 4429 msgstr ""
3689 4430
3690 -#. Source: src/components/overview/ScoreCard.tsx:224
4431 +#. Source: src/components/overview/ScoreCard.tsx:228
3691 4432 #: assets/admin.js
3692 4433 msgid "No performance score measured yet"
3693 4434 msgstr ""
3694 4435
3695 -#. Source: src/components/cache/StatDrilldown.tsx:343
4436 +#. Source: src/components/cache/StatDrilldown.tsx:338
3696 4437 #: assets/admin.js
3697 4438 msgid "No purges recorded yet."
3698 4439 msgstr ""
3699 4440
@@ -3711,9 +4452,9 @@
3711 4452 #: assets/admin.js
3712 4453 msgid "No score measured yet"
3713 4454 msgstr ""
3714 4455
3715 -#. Source: src/components/overview/ScoreCard.tsx:196
4456 +#. Source: src/components/overview/ScoreCard.tsx:200
3716 4457 #: assets/admin.js
3717 4458 msgid "No score yet"
3718 4459 msgstr ""
3719 4460
@@ -3721,14 +4462,30 @@
3721 4462 #: assets/admin.js
3722 4463 msgid "No tests left this month."
3723 4464 msgstr ""
3724 4465
4466 +#. Source: src/components/GroupLanding.tsx:38
4467 +#. Source: src/components/ModuleHeader.tsx:51
4468 +#: assets/admin.js
4469 +msgid "Not in use"
4470 +msgstr ""
4471 +
4472 +#. Source: src/components/ModulePanel.tsx:121
4473 +#: assets/admin.js
4474 +msgid "Not in use on this site"
4475 +msgstr ""
4476 +
4477 +#. Source: src/upsell/LockedPanel.tsx:68
4478 +#: assets/admin.js
4479 +msgid "Not installed"
4480 +msgstr ""
4481 +
3725 4482 #. Source: src/components/score/ConnectHubModal.tsx:142
3726 4483 #: assets/admin.js
3727 4484 msgid "Not now"
3728 4485 msgstr ""
3729 4486
3730 -#. Source: src/components/cache/StatDrilldown.tsx:149
4487 +#. Source: src/components/cache/StatDrilldown.tsx:144
3731 4488 #: assets/admin.js
3732 4489 msgid "Nothing cached yet. Visit a page as a logged-out visitor to warm the cache."
3733 4490 msgstr ""
3734 4491
@@ -3736,14 +4493,14 @@
3736 4493 #: assets/admin.js
3737 4494 msgid "Nothing is sent anywhere until you press this."
3738 4495 msgstr ""
3739 4496
3740 -#. Source: src/components/cache/StatDrilldown.tsx:252
4497 +#. Source: src/components/cache/StatDrilldown.tsx:247
3741 4498 #: assets/admin.js
3742 4499 msgid "Nothing on disk yet."
3743 4500 msgstr ""
3744 4501
3745 -#. Source: src/components/overview/ScoreCard.tsx:271
4502 +#. Source: src/components/overview/ScoreCard.tsx:275
3746 4503 #: assets/admin.js
3747 4504 msgid "now"
3748 4505 msgstr ""
3749 4506
@@ -3751,14 +4508,14 @@
3751 4508 #: assets/admin.js
3752 4509 msgid "Now unlocked"
3753 4510 msgstr ""
3754 4511
3755 -#. Source: src/components/GroupLanding.tsx:92
3756 -#. Source: src/components/Sidebar.tsx:334
3757 -#. Source: src/components/Sidebar.tsx:335
3758 -#. Source: src/components/Sidebar.tsx:370
3759 -#. Source: src/components/Sidebar.tsx:371
3760 -#. Source: src/components/cache/StatDrilldown.tsx:216
4512 +#. Source: src/components/GroupLanding.tsx:106
4513 +#. Source: src/components/Sidebar.tsx:407
4514 +#. Source: src/components/Sidebar.tsx:408
4515 +#. Source: src/components/Sidebar.tsx:443
4516 +#. Source: src/components/Sidebar.tsx:444
4517 +#. Source: src/components/cache/StatDrilldown.tsx:211
3761 4518 #: assets/admin.js
3762 4519 msgid "of"
3763 4520 msgstr ""
3764 4521
@@ -3771,23 +4528,23 @@
3771 4528 #: assets/admin.js
3772 4529 msgid "of combined wait time"
3773 4530 msgstr ""
3774 4531
3775 -#. Source: src/components/GroupLanding.tsx:42
3776 -#. Source: src/components/ModuleHeader.tsx:33
3777 -#. Source: src/components/overview/FeatureMap.tsx:51
4532 +#. Source: src/components/GroupLanding.tsx:54
4533 +#. Source: src/components/ModuleHeader.tsx:67
4534 +#. Source: src/components/overview/FeatureMap.tsx:60
3778 4535 #: assets/admin.js
3779 4536 msgid "Off"
3780 4537 msgstr ""
3781 4538
3782 -#. Source: src/components/GroupLanding.tsx:92
4539 +#. Source: src/components/GroupLanding.tsx:106
3783 4540 #: assets/admin.js
3784 4541 msgid "on"
3785 4542 msgstr ""
3786 4543
3787 -#. Source: src/components/GroupLanding.tsx:38
3788 -#. Source: src/components/ModuleHeader.tsx:29
3789 -#. Source: src/components/overview/FeatureMap.tsx:46
4544 +#. Source: src/components/GroupLanding.tsx:50
4545 +#. Source: src/components/ModuleHeader.tsx:63
4546 +#. Source: src/components/overview/FeatureMap.tsx:55
3790 4547 #: assets/admin.js
3791 4548 msgid "On"
3792 4549 msgstr ""
3793 4550
@@ -3796,9 +4553,9 @@
3796 4553 msgid "On a managed host (xCloud, Cloudways and similar), changing it in their control panel is usually the better route. You can revert at any time."
3797 4554 msgstr ""
3798 4555
3799 4556 #. Source: src/components/health/HealthHero.tsx:30
3800 -#. Source: src/components/overview/MetricGrid.tsx:46
4557 +#. Source: src/components/overview/MetricGrid.tsx:56
3801 4558 #: assets/admin.js
3802 4559 msgid "on disk"
3803 4560 msgstr ""
3804 4561
@@ -3806,9 +4563,9 @@
3806 4563 #: assets/admin.js
3807 4564 msgid "on your xSpeed Hub account."
3808 4565 msgstr ""
3809 4566
3810 -#. Source: src/onboarding/OnboardingApp.tsx:152
4567 +#. Source: src/onboarding/OnboardingApp.tsx:156
3811 4568 #: assets/admin.js
3812 4569 msgid "Onboarding data unavailable"
3813 4570 msgstr ""
3814 4571
@@ -3816,9 +4573,9 @@
3816 4573 #: assets/admin.js
3817 4574 msgid "One AI connection controls the cache on every site you connect"
3818 4575 msgstr ""
3819 4576
3820 -#. Source: src/components/overview/HubCard.tsx:118
4577 +#. Source: src/components/overview/HubCard.tsx:160
3821 4578 #: assets/admin.js
3822 4579 msgid "Open Hub dashboard"
3823 4580 msgstr ""
3824 4581
@@ -3826,9 +4583,9 @@
3826 4583 #: assets/admin.js
3827 4584 msgid "Open MCP"
3828 4585 msgstr ""
3829 4586
3830 -#. Source: src/components/TopBar.tsx:84
4587 +#. Source: src/components/TopBar.tsx:91
3831 4588 #: assets/admin.js
3832 4589 msgid "Open navigation"
3833 4590 msgstr ""
3834 4591
@@ -3836,9 +4593,9 @@
3836 4593 #: assets/admin.js
3837 4594 msgid "Open the full report"
3838 4595 msgstr ""
3839 4596
3840 -#. Source: src/components/sidebarGroups.ts:76
4597 +#. Source: src/components/sidebarGroups.ts:89
3841 4598 #: assets/admin.js
3842 4599 msgid "Optimization"
3843 4600 msgstr ""
3844 4601
@@ -3852,29 +4609,29 @@
3852 4609 msgid "Optimize my site for better PageSpeed."
3853 4610 msgstr ""
3854 4611
3855 4612 #. Source: src/components/ScoreRing.tsx:61
3856 -#. Source: src/components/overview/ScoreCard.tsx:225
4613 +#. Source: src/components/overview/ScoreCard.tsx:229
3857 4614 #: assets/admin.js
3858 4615 msgid "out of 100"
3859 4616 msgstr ""
3860 4617
3861 -#. Source: src/components/overview/ScoreCard.tsx:209
4618 +#. Source: src/components/overview/ScoreCard.tsx:213
3862 4619 #: assets/admin.js
3863 4620 msgid "Over a month old — may not reflect the site now."
3864 4621 msgstr ""
3865 4622
3866 -#. Source: src/components/cache/StatDrilldown.tsx:166
4623 +#. Source: src/components/cache/StatDrilldown.tsx:161
3867 4624 #: assets/admin.js
3868 4625 msgid "Page"
3869 4626 msgstr ""
3870 4627
3871 -#. Source: src/components/sidebarGroups.ts:71
4628 +#. Source: src/components/sidebarGroups.ts:84
3872 4629 #: assets/admin.js
3873 4630 msgid "Page, object and browser caching, plus preload."
3874 4631 msgstr ""
3875 4632
3876 -#. Source: src/components/cache/StatDrilldown.tsx:283
4633 +#. Source: src/components/cache/StatDrilldown.tsx:278
3877 4634 #: assets/admin.js
3878 4635 msgid "Pages without one are compressed by the server when requested."
3879 4636 msgstr ""
3880 4637
@@ -3887,15 +4644,20 @@
3887 4644 #: assets/admin.js
3888 4645 msgid "PageSpeed & Core Web Vitals"
3889 4646 msgstr ""
3890 4647
3891 -#. Source: src/components/score/ScanCard.tsx:314
4648 +#. Source: src/components/score/ScanCard.tsx:331
3892 4649 #: assets/admin.js
3893 4650 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
3894 4651 msgstr ""
3895 4652
3896 -#. Source: src/components/migration/MigrationPanel.tsx:795
4653 +#. Source: src/components/TopBar.tsx:201
3897 4654 #: assets/admin.js
4655 +msgid "Partly cleared"
4656 +msgstr ""
4657 +
4658 +#. Source: src/components/migration/MigrationPanel.tsx:800
4659 +#: assets/admin.js
3898 4660 msgid "Paste an xSpeed profile JSON here, or choose a .json file below."
3899 4661 msgstr ""
3900 4662
3901 4663 #. Source: src/onboarding/steps/Connect.tsx:226
@@ -3902,16 +4664,16 @@
3902 4664 #: assets/admin.js
3903 4665 msgid "Paste this site’s URL + token into the"
3904 4666 msgstr ""
3905 4667
3906 -#. Source: src/components/overview/MetricGrid.tsx:47
4668 +#. Source: src/components/overview/MetricGrid.tsx:57
3907 4669 #: assets/admin.js
3908 4670 msgid "per page load"
3909 4671 msgstr ""
3910 4672
3911 4673 #. Source: src/components/ScoreRing.tsx:61
3912 -#. Source: src/components/overview/ScoreCard.tsx:225
3913 -#. Source: src/components/overview/ScoreCard.tsx:254
4674 +#. Source: src/components/overview/ScoreCard.tsx:229
4675 +#. Source: src/components/overview/ScoreCard.tsx:258
3914 4676 #. Source: src/components/score/ScorePanel.tsx:442
3915 4677 #: assets/admin.js
3916 4678 msgid "Performance score"
3917 4679 msgstr ""
@@ -3925,8 +4687,13 @@
3925 4687 #: assets/admin.js
3926 4688 msgid "Performance score and Core Web Vitals."
3927 4689 msgstr ""
3928 4690
4691 +#. Source: src/components/overview/MetricGrid.tsx:52
4692 +#: assets/admin.js
4693 +msgid "PHP-served only — static fast path hits are not counted"
4694 +msgstr ""
4695 +
3929 4696 #. Source: src/components/score/ScorePanel.tsx:713
3930 4697 #: assets/admin.js
3931 4698 msgid "Pick one more run to compare."
3932 4699 msgstr ""
@@ -3935,10 +4702,15 @@
3935 4702 #: assets/admin.js
3936 4703 msgid "Pick two runs to compare them."
3937 4704 msgstr ""
3938 4705
3939 -#. Source: src/components/cache/StatDrilldown.tsx:282
4706 +#. Source: src/components/score/ScanCard.tsx:87
3940 4707 #: assets/admin.js
4708 +msgid "Platform"
4709 +msgstr ""
4710 +
4711 +#. Source: src/components/cache/StatDrilldown.tsx:277
4712 +#: assets/admin.js
3941 4713 msgid "Precompressed copies on disk:"
3942 4714 msgstr ""
3943 4715
3944 4716 #. Source: src/components/CommandPalette.tsx:59
@@ -3945,46 +4717,65 @@
3945 4717 #: assets/admin.js
3946 4718 msgid "Preload"
3947 4719 msgstr ""
3948 4720
3949 -#. Source: src/App.tsx:354
4721 +#. Source: src/App.tsx:439
3950 4722 #: assets/admin.js
3951 4723 msgid "Preload could not start"
3952 4724 msgstr ""
3953 4725
3954 -#. Source: src/App.tsx:352
4726 +#. Source: src/App.tsx:438
3955 4727 #: assets/admin.js
3956 -msgid "Preload started"
4728 +msgid "Preload could not start: %s"
3957 4729 msgstr ""
3958 4730
3959 -#. Source: src/upsell/ProDemo.tsx:117
4731 +#. Source: src/App.tsx:426
3960 4732 #: assets/admin.js
4733 +msgid "Preload found no pages to warm"
4734 +msgstr ""
4735 +
4736 +#. Source: src/App.tsx:425
4737 +#: assets/admin.js
4738 +msgid "Preload found no pages to warm: %s"
4739 +msgstr ""
4740 +
4741 +#. Source: src/App.tsx:415
4742 +#: assets/admin.js
4743 +msgid "Preloading %d page"
4744 +msgid_plural "Preloading %d pages"
4745 +msgstr[0] ""
4746 +msgstr[1] ""
4747 +
4748 +#. Source: src/upsell/ProDemo.tsx:118
4749 +#: assets/admin.js
3961 4750 msgid "Preview"
3962 4751 msgstr ""
3963 4752
3964 -#. Source: src/components/Sidebar.tsx:300
4753 +#. Source: src/components/Sidebar.tsx:357
3965 4754 #: assets/admin.js
3966 4755 msgid "Primary"
3967 4756 msgstr ""
3968 4757
3969 -#. Source: src/components/GroupLanding.tsx:32
3970 -#. Source: src/components/ModuleHeader.tsx:23
3971 -#. Source: src/components/overview/FeatureMap.tsx:38
3972 -#. Source: src/upsell/LockedSection.tsx:69
4758 +#. Source: src/components/GroupLanding.tsx:44
4759 +#. Source: src/components/ModuleHeader.tsx:57
4760 +#. Source: src/components/Tabs.tsx:97
4761 +#. Source: src/components/migration/MigrationPanel.tsx:650
4762 +#. Source: src/components/overview/FeatureMap.tsx:47
4763 +#. Source: src/upsell/LockedSection.tsx:70
3973 4764 #. Source: src/upsell/ProAudit.tsx:66
3974 -#. Source: src/upsell/ProDemo.tsx:59
4765 +#. Source: src/upsell/ProDemo.tsx:60
3975 4766 #. Source: src/upsell/ProTeaser.tsx:45
3976 4767 #: assets/admin.js
3977 4768 msgid "Pro"
3978 4769 msgstr ""
3979 4770
3980 -#. Source: src/upsell/LockedPanel.tsx:82
4771 +#. Source: src/upsell/LockedPanel.tsx:143
3981 4772 #. Source: src/upsell/ProOverview.tsx:40
3982 4773 #: assets/admin.js
3983 4774 msgid "Pro — license needed"
3984 4775 msgstr ""
3985 4776
3986 -#. Source: src/upsell/LockedPanel.tsx:82
4777 +#. Source: src/upsell/LockedPanel.tsx:143
3987 4778 #: assets/admin.js
3988 4779 msgid "Pro feature"
3989 4780 msgstr ""
3990 4781
@@ -3997,44 +4788,60 @@
3997 4788 #: assets/admin.js
3998 4789 msgid "Pro layers deeper optimization, real-user insight, and automation on top of the cache you already run. Nothing you have set up changes."
3999 4790 msgstr ""
4000 4791
4001 -#. Source: src/components/Sidebar.tsx:395
4002 -#. Source: src/components/Sidebar.tsx:411
4792 +#. Source: src/components/Sidebar.tsx:493
4793 +#. Source: src/components/Sidebar.tsx:509
4003 4794 #. Source: src/upsell/ProOverview.tsx:38
4004 4795 #: assets/admin.js
4005 4796 msgid "Pro Licensed"
4006 4797 msgstr ""
4007 4798
4008 -#. Source: src/upsell/LockedPanel.tsx:152
4009 -#. Source: src/upsell/LockedPanel.tsx:41
4799 +#. Source: src/upsell/LockedPanel.tsx:102
4800 +#. Source: src/upsell/LockedPanel.tsx:213
4010 4801 #: assets/admin.js
4011 4802 msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged."
4012 4803 msgstr ""
4013 4804
4014 -#. Source: src/components/migration/MigrationPanel.tsx:797
4805 +#. Source: src/components/migration/MigrationPanel.tsx:802
4015 4806 #: assets/admin.js
4016 4807 msgid "Profile JSON to import"
4017 4808 msgstr ""
4018 4809
4019 -#. Source: src/components/score/ScanCard.tsx:95
4810 +#. Source: src/components/score/ScorePanel.tsx:727
4020 4811 #: assets/admin.js
4812 +msgid "Provider"
4813 +msgstr ""
4814 +
4815 +#. Source: src/components/score/ScanCard.tsx:108
4816 +#: assets/admin.js
4021 4817 msgid "pts"
4022 4818 msgstr ""
4023 4819
4024 4820 #. Source: src/components/CommandPalette.tsx:58
4025 -#. Source: src/components/TopBar.tsx:134
4821 +#. Source: src/components/TopBar.tsx:204
4026 4822 #: assets/admin.js
4027 4823 msgid "Purge all"
4028 4824 msgstr ""
4029 4825
4030 -#. Source: src/App.tsx:341
4826 +#. Source: src/App.tsx:386
4827 +#. Source: src/components/TopBar.tsx:203
4031 4828 #: assets/admin.js
4032 4829 msgid "Purge failed"
4033 4830 msgstr ""
4034 4831
4035 -#. Source: src/components/cache/StatDrilldown.tsx:336
4832 +#. Source: src/App.tsx:386
4036 4833 #: assets/admin.js
4834 +msgid "Purge failed: %s"
4835 +msgstr ""
4836 +
4837 +#. Source: src/components/purgeOutcome.ts:54
4838 +#: assets/admin.js
4839 +msgid "Purge failed."
4840 +msgstr ""
4841 +
4842 +#. Source: src/components/cache/StatDrilldown.tsx:331
4843 +#: assets/admin.js
4037 4844 msgid "Purge history"
4038 4845 msgstr ""
4039 4846
4040 4847 #. Source: src/onboarding/steps/Connect.tsx:94
@@ -4041,9 +4848,9 @@
4041 4848 #: assets/admin.js
4042 4849 msgid "Purge, benchmark, preload and tune settings by asking your AI"
4043 4850 msgstr ""
4044 4851
4045 -#. Source: src/components/score/ScanCard.tsx:329
4852 +#. Source: src/components/score/ScanCard.tsx:346
4046 4853 #: assets/admin.js
4047 4854 msgid "ranked by points recovered"
4048 4855 msgstr ""
4049 4856
@@ -4057,9 +4864,9 @@
4057 4864 #: assets/admin.js
4058 4865 msgid "read-only call"
4059 4866 msgstr ""
4060 4867
4061 -#. Source: src/components/overview/ScoreCard.tsx:202
4868 +#. Source: src/components/overview/ScoreCard.tsx:206
4062 4869 #: assets/admin.js
4063 4870 msgid "Reading your latest result."
4064 4871 msgstr ""
4065 4872
@@ -4078,20 +4885,20 @@
4078 4885 #: assets/admin.js
4079 4886 msgid "Recent cache and settings activity on this site."
4080 4887 msgstr ""
4081 4888
4082 -#. Source: src/components/GroupLanding.tsx:67
4889 +#. Source: src/components/GroupLanding.tsx:79
4083 4890 #: assets/admin.js
4084 4891 msgid "Recent cache and settings activity."
4085 4892 msgstr ""
4086 4893
4087 -#. Source: src/components/cache/TrendCharts.tsx:148
4894 +#. Source: src/components/cache/TrendCharts.tsx:153
4088 4895 #: assets/admin.js
4089 4896 msgid "Recent changes"
4090 4897 msgstr ""
4091 4898
4092 -#. Source: src/components/overview/Recommendations.tsx:116
4093 -#. Source: src/components/overview/Recommendations.tsx:120
4899 +#. Source: src/components/overview/Recommendations.tsx:124
4900 +#. Source: src/components/overview/Recommendations.tsx:128
4094 4901 #: assets/admin.js
4095 4902 msgid "Recommended for your site"
4096 4903 msgstr ""
4097 4904
@@ -4099,9 +4906,9 @@
4099 4906 #: assets/admin.js
4100 4907 msgid "Recommended:"
4101 4908 msgstr ""
4102 4909
4103 -#. Source: src/components/cache/StatDrilldown.tsx:109
4910 +#. Source: src/components/cache/StatDrilldown.tsx:104
4104 4911 #: assets/admin.js
4105 4912 msgid "Refresh"
4106 4913 msgstr ""
4107 4914
@@ -4109,13 +4916,18 @@
4109 4916 #: assets/admin.js
4110 4917 msgid "Refresh activity log"
4111 4918 msgstr ""
4112 4919
4113 -#. Source: src/components/cache/TrendCharts.tsx:108
4920 +#. Source: src/components/cache/TrendCharts.tsx:113
4114 4921 #: assets/admin.js
4115 4922 msgid "Refresh trends"
4116 4923 msgstr ""
4117 4924
4925 +#. Source: src/components/MissingPanel.tsx:34
4926 +#: assets/admin.js
4927 +msgid "Reload the page. If it happens again, update xSpeed and xSpeed Cache Pro to their latest versions."
4928 +msgstr ""
4929 +
4118 4930 #. Source: src/components/SecretField.tsx:116
4119 4931 #: assets/admin.js
4120 4932 msgid "Remove"
4121 4933 msgstr ""
@@ -4149,9 +4961,9 @@
4149 4961 #: assets/admin.js
4150 4962 msgid "Review us on WordPress.org"
4151 4963 msgstr ""
4152 4964
4153 -#. Source: src/components/overview/ScoreCard.tsx:198
4965 +#. Source: src/components/overview/ScoreCard.tsx:202
4154 4966 #: assets/admin.js
4155 4967 msgid "Room to go faster"
4156 4968 msgstr ""
4157 4969
@@ -4164,10 +4976,10 @@
4164 4976 #: assets/admin.js
4165 4977 msgid "Run a GTmetrix test on this site"
4166 4978 msgstr ""
4167 4979
4168 -#. Source: src/components/overview/ScoreCard.tsx:295
4169 -#. Source: src/components/score/ScanCard.tsx:197
4980 +#. Source: src/components/overview/ScoreCard.tsx:299
4981 +#. Source: src/components/score/ScanCard.tsx:210
4170 4982 #: assets/admin.js
4171 4983 msgid "Run a scan"
4172 4984 msgstr ""
4173 4985
@@ -4195,9 +5007,9 @@
4195 5007 #: assets/admin.js
4196 5008 msgid "Run test"
4197 5009 msgstr ""
4198 5010
4199 -#. Source: src/components/cache/TrendCharts.tsx:139
5011 +#. Source: src/components/cache/TrendCharts.tsx:144
4200 5012 #: assets/admin.js
4201 5013 msgid "Run the benchmark at least twice to see a trend."
4202 5014 msgstr ""
4203 5015
@@ -4235,14 +5047,14 @@
4235 5047 #: assets/admin.js
4236 5048 msgid "Saving changes…"
4237 5049 msgstr ""
4238 5050
4239 -#. Source: src/components/score/ScanCard.tsx:197
5051 +#. Source: src/components/score/ScanCard.tsx:210
4240 5052 #: assets/admin.js
4241 5053 msgid "Scan again"
4242 5054 msgstr ""
4243 5055
4244 -#. Source: src/components/score/ScanCard.tsx:197
5056 +#. Source: src/components/score/ScanCard.tsx:210
4245 5057 #: assets/admin.js
4246 5058 msgid "Scanning…"
4247 5059 msgstr ""
4248 5060
@@ -4250,9 +5062,9 @@
4250 5062 #: assets/admin.js
4251 5063 msgid "Scans your current settings + 24h cache stats and shows exactly which Pro features would help."
4252 5064 msgstr ""
4253 5065
4254 -#. Source: src/components/overview/ScoreCard.tsx:229
5066 +#. Source: src/components/overview/ScoreCard.tsx:233
4255 5067 #. Source: src/components/score/ScorePanel.tsx:728
4256 5068 #: assets/admin.js
4257 5069 msgid "Score"
4258 5070 msgstr ""
@@ -4261,15 +5073,15 @@
4261 5073 #: assets/admin.js
4262 5074 msgid "score out of 100"
4263 5075 msgstr ""
4264 5076
4265 -#. Source: src/components/overview/ScoreCard.tsx:98
5077 +#. Source: src/components/overview/ScoreCard.tsx:99
4266 5078 #: assets/admin.js
4267 5079 msgid "Score strategy"
4268 5080 msgstr ""
4269 5081
4270 -#. Source: src/components/TopBar.tsx:110
4271 -#. Source: src/components/TopBar.tsx:115
5082 +#. Source: src/components/TopBar.tsx:117
5083 +#. Source: src/components/TopBar.tsx:122
4272 5084 #: assets/admin.js
4273 5085 msgid "Search"
4274 5086 msgstr ""
4275 5087
@@ -4287,19 +5099,30 @@
4287 5099 #: assets/admin.js
4288 5100 msgid "See everything it does."
4289 5101 msgstr ""
4290 5102
4291 -#. Source: src/components/overview/ScoreCard.tsx:206
5103 +#. Source: src/components/overview/ScoreCard.tsx:210
4292 5104 #: assets/admin.js
4293 5105 msgid "See how this site performs for real visitors."
4294 5106 msgstr ""
4295 5107
5108 +#. Source: src/components/CfeOfferCard.tsx:139
5109 +#. Source: src/components/CfeOfferCard.tsx:212
5110 +#: assets/admin.js
5111 +msgid "Serve your whole site from Cloudflare’s network."
5112 +msgstr ""
5113 +
4296 5114 #. Source: src/components/health/HealthHero.tsx:29
4297 -#. Source: src/components/overview/MetricGrid.tsx:45
5115 +#. Source: src/components/overview/MetricGrid.tsx:55
4298 5116 #: assets/admin.js
4299 5117 msgid "served without PHP"
4300 5118 msgstr ""
4301 5119
5120 +#. Source: src/components/score/ScanCard.tsx:83
5121 +#: assets/admin.js
5122 +msgid "Server & caching"
5123 +msgstr ""
5124 +
4302 5125 #. Source: src/components/RewriteAlert.tsx:106
4303 5126 #: assets/admin.js
4304 5127 msgid "Server config missing — cache running on PHP fallback"
4305 5128 msgstr ""
@@ -4323,34 +5146,34 @@
4323 5146 #: assets/admin.js
4324 5147 msgid "Show"
4325 5148 msgstr ""
4326 5149
4327 -#. Source: src/components/overview/FeatureMap.tsx:104
5150 +#. Source: src/components/overview/FeatureMap.tsx:114
4328 5151 #: assets/admin.js
4329 5152 msgid "Show less"
4330 5153 msgstr ""
4331 5154
4332 -#. Source: src/components/cache/CacheHero.tsx:219
5155 +#. Source: src/components/cache/CacheHero.tsx:214
4333 5156 #: assets/admin.js
4334 5157 msgid "show what cleared the cache and why"
4335 5158 msgstr ""
4336 5159
4337 -#. Source: src/components/cache/CacheHero.tsx:212
5160 +#. Source: src/components/cache/CacheHero.tsx:207
4338 5161 #: assets/admin.js
4339 5162 msgid "show what is taking the space"
4340 5163 msgstr ""
4341 5164
4342 -#. Source: src/components/cache/CacheHero.tsx:205
5165 +#. Source: src/components/cache/CacheHero.tsx:200
4343 5166 #: assets/admin.js
4344 5167 msgid "show which pages are cached"
4345 5168 msgstr ""
4346 5169
4347 -#. Source: src/components/cache/StatDrilldown.tsx:216
5170 +#. Source: src/components/cache/StatDrilldown.tsx:211
4348 5171 #: assets/admin.js
4349 5172 msgid "Showing"
4350 5173 msgstr ""
4351 5174
4352 -#. Source: src/components/overview/ScoreCard.tsx:208
5175 +#. Source: src/components/overview/ScoreCard.tsx:212
4353 5176 #: assets/admin.js
4354 5177 msgid "Showing your last completed scan."
4355 5178 msgstr ""
4356 5179
@@ -4358,14 +5181,14 @@
4358 5181 #: assets/admin.js
4359 5182 msgid "Site URL"
4360 5183 msgstr ""
4361 5184
4362 -#. Source: src/components/cache/StatDrilldown.tsx:167
5185 +#. Source: src/components/cache/StatDrilldown.tsx:162
4363 5186 #: assets/admin.js
4364 5187 msgid "Size"
4365 5188 msgstr ""
4366 5189
4367 -#. Source: src/components/sidebarGroups.ts:92
5190 +#. Source: src/components/sidebarGroups.ts:105
4368 5191 #: assets/admin.js
4369 5192 msgid "Speed score, diagnostics and analytics."
4370 5193 msgstr ""
4371 5194
@@ -4378,9 +5201,9 @@
4378 5201 #: assets/admin.js
4379 5202 msgid "Static rewrite may not be available on this host"
4380 5203 msgstr ""
4381 5204
4382 -#. Source: src/components/cache/StatDrilldown.tsx:169
5205 +#. Source: src/components/cache/StatDrilldown.tsx:164
4383 5206 #: assets/admin.js
4384 5207 msgid "Stored"
4385 5208 msgstr ""
4386 5209
@@ -4388,14 +5211,14 @@
4388 5211 #: assets/admin.js
4389 5212 msgid "succeeded"
4390 5213 msgstr ""
4391 5214
4392 -#. Source: src/components/TopBar.tsx:148
5215 +#. Source: src/components/TopBar.tsx:150
4393 5216 #: assets/admin.js
4394 5217 msgid "Switch to dark mode"
4395 5218 msgstr ""
4396 5219
4397 -#. Source: src/components/TopBar.tsx:148
5220 +#. Source: src/components/TopBar.tsx:150
4398 5221 #: assets/admin.js
4399 5222 msgid "Switch to light mode"
4400 5223 msgstr ""
4401 5224
@@ -4408,9 +5231,9 @@
4408 5231 #: assets/admin.js
4409 5232 msgid "Take over the page cache from %s?"
4410 5233 msgstr ""
4411 5234
4412 -#. Source: src/components/cache/TrendCharts.tsx:240
5235 +#. Source: src/components/cache/TrendCharts.tsx:245
4413 5236 #: assets/admin.js
4414 5237 msgid "target ≥80%"
4415 5238 msgstr ""
4416 5239
@@ -4429,15 +5252,30 @@
4429 5252 #: assets/admin.js
4430 5253 msgid "Testing…"
4431 5254 msgstr ""
4432 5255
4433 -#. Source: src/components/overview/ScoreCard.tsx:207
5256 +#. Source: src/components/purgeOutcome.ts:70
4434 5257 #: assets/admin.js
5258 +msgid "The cache was already empty, so there was nothing to clear."
5259 +msgstr ""
5260 +
5261 +#. Source: src/components/overview/ScoreCard.tsx:211
5262 +#: assets/admin.js
4435 5263 msgid "The last scan did not complete."
4436 5264 msgstr ""
4437 5265
4438 -#. Source: src/components/cache/StatDrilldown.tsx:156
5266 +#. Source: src/components/purgeOutcome.ts:78
4439 5267 #: assets/admin.js
5268 +msgid "The page cache was already empty."
5269 +msgstr ""
5270 +
5271 +#. Source: src/components/purgeOutcome.ts:63
5272 +#: assets/admin.js
5273 +msgid "There was nothing to clear."
5274 +msgstr ""
5275 +
5276 +#. Source: src/components/cache/StatDrilldown.tsx:151
5277 +#: assets/admin.js
4440 5278 msgid "This cache is large enough that the scan stopped early — the list below is a recent sample, not every page."
4441 5279 msgstr ""
4442 5280
4443 5281 #. Source: src/components/SecretField.tsx:93
@@ -4444,18 +5282,28 @@
4444 5282 #: assets/admin.js
4445 5283 msgid "This credential is defined in wp-config.php and cannot be changed here."
4446 5284 msgstr ""
4447 5285
4448 -#. Source: src/components/score/ScanCard.tsx:222
5286 +#. Source: src/components/score/ScanCard.tsx:235
4449 5287 #: assets/admin.js
4450 5288 msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4451 5289 msgstr ""
4452 5290
5291 +#. Source: src/components/MissingPanel.tsx:33
5292 +#: assets/admin.js
5293 +msgid "This screen did not load."
5294 +msgstr ""
5295 +
4453 5296 #. Source: src/components/score/ConnectHubModal.tsx:127
4454 5297 #: assets/admin.js
4455 5298 msgid "This site looks local, so it may not be reachable for testing. Your own GTmetrix API key works either way — see the settings below."
4456 5299 msgstr ""
4457 5300
5301 +#. Source: src/components/settings/HubCard.tsx:361
5302 +#: assets/admin.js
5303 +msgid "This tells the hub to drop your account\\u2019s link to this site, then clears it here. Other admins who connected keep theirs, and caching on this site is unaffected. To cut the hub off completely, Rotate the token above so its stored copy stops working."
5304 +msgstr ""
5305 +
4458 5306 #. Source: src/components/OverrideConfirm.tsx:31
4459 5307 #: assets/admin.js
4460 5308 msgid "This value comes from"
4461 5309 msgstr ""
@@ -4465,9 +5313,9 @@
4465 5313 msgid "Token"
4466 5314 msgstr ""
4467 5315
4468 5316 #. Source: src/components/LogsView.tsx:34
4469 -#. Source: src/components/sidebarGroups.ts:97
5317 +#. Source: src/components/sidebarGroups.ts:110
4470 5318 #: assets/admin.js
4471 5319 msgid "Tools"
4472 5320 msgstr ""
4473 5321
@@ -4475,9 +5323,9 @@
4475 5323 #: assets/admin.js
4476 5324 msgid "Trends"
4477 5325 msgstr ""
4478 5326
4479 -#. Source: src/components/cache/TrendCharts.tsx:126
5327 +#. Source: src/components/cache/TrendCharts.tsx:131
4480 5328 #: assets/admin.js
4481 5329 msgid "Trends appear after a couple of days of traffic. The daily series is being collected now."
4482 5330 msgstr ""
4483 5331
@@ -4505,9 +5353,9 @@
4505 5353 #: assets/admin.js
4506 5354 msgid "Turn on the page cache to start serving pages instantly."
4507 5355 msgstr ""
4508 5356
4509 -#. Source: src/components/cache/TrendCharts.tsx:273
5357 +#. Source: src/components/cache/TrendCharts.tsx:278
4510 5358 #: assets/admin.js
4511 5359 msgid "uncached"
4512 5360 msgstr ""
4513 5361
@@ -4515,14 +5363,14 @@
4515 5363 #: assets/admin.js
4516 5364 msgid "Under a minute"
4517 5365 msgstr ""
4518 5366
4519 -#. Source: src/components/Sidebar.tsx:424
4520 -#. Source: src/components/Sidebar.tsx:442
4521 -#. Source: src/upsell/LockedPanel.tsx:116
4522 -#. Source: src/upsell/LockedSection.tsx:97
5367 +#. Source: src/components/Sidebar.tsx:522
5368 +#. Source: src/components/Sidebar.tsx:543
5369 +#. Source: src/upsell/LockedPanel.tsx:177
5370 +#. Source: src/upsell/LockedSection.tsx:98
4523 5371 #. Source: src/upsell/ProAudit.tsx:113
4524 -#. Source: src/upsell/ProDemo.tsx:101
5372 +#. Source: src/upsell/ProDemo.tsx:102
4525 5373 #. Source: src/upsell/ProOverview.tsx:83
4526 5374 #: assets/admin.js
4527 5375 msgid "Upgrade to Pro"
4528 5376 msgstr ""
@@ -4531,9 +5379,9 @@
4531 5379 #: assets/admin.js
4532 5380 msgid "Use the host value"
4533 5381 msgstr ""
4534 5382
4535 -#. Source: src/components/overview/ScoreCard.tsx:295
5383 +#. Source: src/components/overview/ScoreCard.tsx:299
4536 5384 #: assets/admin.js
4537 5385 msgid "View details"
4538 5386 msgstr ""
4539 5387
@@ -4551,14 +5399,14 @@
4551 5399 #: assets/admin.js
4552 5400 msgid "Waiting for connection…"
4553 5401 msgstr ""
4554 5402
4555 -#. Source: src/components/overview/Recommendations.tsx:218
5403 +#. Source: src/components/overview/Recommendations.tsx:227
4556 5404 #: assets/admin.js
4557 5405 msgid "Want a hand?"
4558 5406 msgstr ""
4559 5407
4560 -#. Source: src/onboarding/OnboardingApp.tsx:155
5408 +#. Source: src/onboarding/OnboardingApp.tsx:159
4561 5409 #: assets/admin.js
4562 5410 msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard."
4563 5411 msgstr ""
4564 5412
@@ -4566,14 +5414,14 @@
4566 5414 #: assets/admin.js
4567 5415 msgid "We couldn't read this site's AI connection status. Open MCP to check."
4568 5416 msgstr ""
4569 5417
4570 -#. Source: src/upsell/LockedPanel.tsx:139
5418 +#. Source: src/upsell/LockedPanel.tsx:200
4571 5419 #: assets/admin.js
4572 5420 msgid "What this adds"
4573 5421 msgstr ""
4574 5422
4575 -#. Source: src/components/score/ScanCard.tsx:327
5423 +#. Source: src/components/score/ScanCard.tsx:344
4576 5424 #: assets/admin.js
4577 5425 msgid "What to fix next"
4578 5426 msgstr ""
4579 5427
@@ -4591,19 +5439,19 @@
4591 5439 #: assets/admin.js
4592 5440 msgid "When"
4593 5441 msgstr ""
4594 5442
4595 -#. Source: src/components/cache/StatDrilldown.tsx:248
5443 +#. Source: src/components/cache/StatDrilldown.tsx:243
4596 5444 #: assets/admin.js
4597 5445 msgid "Where the cache size goes"
4598 5446 msgstr ""
4599 5447
4600 -#. Source: src/components/ModuleHeader.tsx:55
5448 +#. Source: src/components/ModuleHeader.tsx:102
4601 5449 #: assets/admin.js
4602 5450 msgid "Why this is off"
4603 5451 msgstr ""
4604 5452
4605 -#. Source: src/components/ModuleHeader.tsx:55
5453 +#. Source: src/components/ModuleHeader.tsx:102
4606 5454 #: assets/admin.js
4607 5455 msgid "Why this is on"
4608 5456 msgstr ""
4609 5457
@@ -4621,12 +5469,17 @@
4621 5469 #: assets/admin.js
4622 5470 msgid "write call"
4623 5471 msgstr ""
4624 5472
4625 -#. Source: src/components/overview/HubCard.tsx:79
4626 -#. Source: src/components/overview/HubCard.tsx:95
4627 -#. Source: src/components/overview/HubCard.tsx:99
5473 +#. Source: src/components/PartnerMark.tsx:28
4628 5474 #: assets/admin.js
5475 +msgid "xSpeed Cache and Cloudflare"
5476 +msgstr ""
5477 +
5478 +#. Source: src/components/overview/HubCard.tsx:137
5479 +#. Source: src/components/overview/HubCard.tsx:141
5480 +#. Source: src/components/overview/HubCard.tsx:82
5481 +#: assets/admin.js
4629 5482 msgid "xSpeed Hub"
4630 5483 msgstr ""
4631 5484
4632 5485 #. Source: src/onboarding/steps/Connect.tsx:140
@@ -4643,22 +5496,22 @@
4643 5496 #: assets/admin.js
4644 5497 msgid "xSpeed Pro is installed — activate your license to unlock every feature below. Your current settings stay exactly as they are."
4645 5498 msgstr ""
4646 5499
4647 -#. Source: src/upsell/LockedPanel.tsx:96
5500 +#. Source: src/upsell/LockedPanel.tsx:157
4648 5501 #: assets/admin.js
4649 5502 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
4650 5503 msgstr ""
4651 5504
4652 -#. Source: src/components/score/ScanCard.tsx:173
4653 -#. Source: src/components/score/ScanCard.tsx:183
4654 -#. Source: src/components/score/ScanCard.tsx:304
5505 +#. Source: src/components/score/ScanCard.tsx:186
5506 +#. Source: src/components/score/ScanCard.tsx:196
5507 +#. Source: src/components/score/ScanCard.tsx:321
4655 5508 #. Source: src/components/score/ScorePanel.tsx:426
4656 5509 #: assets/admin.js
4657 5510 msgid "xSpeed Scan"
4658 5511 msgstr ""
4659 5512
4660 -#. Source: src/components/score/ScanCard.tsx:264
5513 +#. Source: src/components/score/ScanCard.tsx:281
4661 5514 #: assets/admin.js
4662 5515 msgid "xSpeed Scan, out of 100"
4663 5516 msgstr ""
4664 5517
@@ -4676,9 +5529,9 @@
4676 5529 #: assets/admin.js
4677 5530 msgid "You're all set"
4678 5531 msgstr ""
4679 5532
4680 -#. Source: src/components/overview/Recommendations.tsx:131
5533 +#. Source: src/components/overview/Recommendations.tsx:139
4681 5534 #: assets/admin.js
4682 5535 msgid "You're all set — no recommendations right now."
4683 5536 msgstr ""
4684 5537
@@ -4716,15 +5569,15 @@
4716 5569 #: assets/admin.js
4717 5570 msgid "Your Hub is home base for all your sites. Once connected, you can:"
4718 5571 msgstr ""
4719 5572
4720 -#. Source: src/components/overview/FeatureMap.tsx:92
4721 -#. Source: src/components/overview/FeatureMap.tsx:95
5573 +#. Source: src/components/overview/FeatureMap.tsx:102
5574 +#. Source: src/components/overview/FeatureMap.tsx:105
4722 5575 #: assets/admin.js
4723 5576 msgid "Your setup"
4724 5577 msgstr ""
4725 5578
4726 -#. Source: src/components/overview/ScoreCard.tsx:197
5579 +#. Source: src/components/overview/ScoreCard.tsx:201
4727 5580 #: assets/admin.js
4728 5581 msgid "Your site is fast"
4729 5582 msgstr ""
4730 5583