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 +1345 -891 1.3.6 → 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.6\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-28T10:41:59+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:8804
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:8818
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:4170
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:5123
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:5127
163 +#: includes/class-cache.php:7255
143 164 msgid "Purge Page / Static Cache"
144 165 msgstr ""
145 166
146 -#: includes/class-cache.php:5131
167 +#: includes/class-cache.php:7259
147 168 msgid "Purge CSS / JS Cache"
148 169 msgstr ""
149 170
150 -#: includes/class-cache.php:5135
171 +#: includes/class-cache.php:7263
151 172 msgid "Purge Object Cache"
152 173 msgstr ""
153 174
154 -#: includes/class-cache.php:5139
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:5386
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:5392
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:5630
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:5637
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:5640
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:5710
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:5716
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:5790
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:5793
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:5823
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:5880
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:5881
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:5883
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:5898
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:5990
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:6005
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:6006
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:6023
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:6041
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:6042
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:6053
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:6057
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:8296
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:8303
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:8358
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:8365
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:8368
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:8369
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:8370
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:8371
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:8372
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:8373
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:8374
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:8376
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:8887
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:260
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:268
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:275
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:741
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:754
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
@@ -769,59 +959,63 @@
769 959 #: assets/admin.js
770 960 msgid "the purge was refused"
771 961 msgstr ""
772 962
773 -#: includes/class-purge-runner.php:246
774 -msgid "Page cache (HTML, static, REST, minified assets)"
963 +#: includes/class-purge-runner.php:248
964 +msgid "Page cache (HTML, static, REST)"
775 965 msgstr ""
776 966
777 -#: includes/class-purge-runner.php:257
967 +#: includes/class-purge-runner.php:259
778 968 msgid "Object cache"
779 969 msgstr ""
780 970
781 -#: includes/class-purge-runner.php:263
971 +#: includes/class-purge-runner.php:265
782 972 msgid "Cloudflare edge"
783 973 msgstr ""
784 974
785 -#: 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
786 980 #: includes/modules/Cdn/CdnModule.php:28
787 -#: includes/modules/Migration/MigrationModule.php:555
981 +#: includes/modules/Migration/MigrationModule.php:556
788 982 msgid "CDN"
789 983 msgstr ""
790 984
791 985 #. translators: 1: what asked for the purge, 2: number of files removed.
792 -#: includes/class-purge-runner.php:335
986 +#: includes/class-purge-runner.php:351
793 987 #, php-format
794 988 msgid "Cache purged (%1$s) — %2$d file(s) removed"
795 989 msgstr ""
796 990
797 -#: includes/class-purge-runner.php:359
991 +#: includes/class-purge-runner.php:375
798 992 msgid "the object cache engine is unavailable"
799 993 msgstr ""
800 994
801 -#: includes/class-purge-runner.php:363
995 +#: includes/class-purge-runner.php:379
802 996 msgid "no persistent object cache drop-in is in use"
803 997 msgstr ""
804 998
805 -#: includes/class-purge-runner.php:366
999 +#: includes/class-purge-runner.php:382
806 1000 msgid "the drop-in is installed but is not persisting anything"
807 1001 msgstr ""
808 1002
809 1003 #. translators: %s: what asked for the purge.
810 -#: includes/class-purge-runner.php:388
1004 +#: includes/class-purge-runner.php:404
811 1005 #, php-format
812 1006 msgid "Purged object cache (%s)"
813 1007 msgstr ""
814 1008
815 -#: includes/class-purge-runner.php:398
1009 +#: includes/class-purge-runner.php:414
816 1010 msgid "the backend refused the flush"
817 1011 msgstr ""
818 1012
819 -#: includes/class-purge-runner.php:410
1013 +#: includes/class-purge-runner.php:426
820 1014 msgid "the Cloudflare module is not available"
821 1015 msgstr ""
822 1016
823 -#: includes/class-purge-runner.php:434
1017 +#: includes/class-purge-runner.php:450
824 1018 msgid "no CDN with a purge API is configured — xSpeed's CDN module rewrites asset URLs and holds no cache of its own"
825 1019 msgstr ""
826 1020
827 1021 #: includes/class-purge-ui.php:263
@@ -832,14 +1026,23 @@
832 1026 msgid "That URL is not on this site."
833 1027 msgstr ""
834 1028
835 1029 #: includes/class-purge-ui.php:292
836 -#: includes/class-purge-ui.php:697
1030 +#: includes/class-purge-ui.php:649
1031 +#: includes/class-purge-ui.php:665
837 1032 msgid "admin"
838 1033 msgstr ""
839 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 +
840 1043 #. translators: 1: URL path of the post, 2: number of OTHER pages also cleared.
841 -#: includes/class-purge-ui.php:414
1044 +#: includes/class-purge-ui.php:434
842 1045 #, php-format
843 1046 msgid "%1$s and %2$d page that lists it"
844 1047 msgid_plural "%1$s and %2$d pages that list it"
845 1048 msgstr[0] ""
@@ -844,16 +1047,22 @@
844 1047 msgid_plural "%1$s and %2$d pages that list it"
845 1048 msgstr[0] ""
846 1049 msgstr[1] ""
847 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 +
848 1057 #. translators: %s: what was purged.
849 -#: includes/class-purge-ui.php:428
1058 +#: includes/class-purge-ui.php:458
850 1059 #, php-format
851 1060 msgid "xSpeed: %s was not cached, so there was nothing to clear."
852 1061 msgstr ""
853 1062
854 1063 #. translators: 1: what was purged, 2: number of files removed.
855 -#: includes/class-purge-ui.php:435
1064 +#: includes/class-purge-ui.php:465
856 1065 #, php-format
857 1066 msgid "xSpeed: cleared the cache for %1$s (%2$d file)."
858 1067 msgid_plural "xSpeed: cleared the cache for %1$s (%2$d files)."
859 1068 msgstr[0] ""
@@ -858,140 +1067,145 @@
858 1067 msgid_plural "xSpeed: cleared the cache for %1$s (%2$d files)."
859 1068 msgstr[0] ""
860 1069 msgstr[1] ""
861 1070
862 -#: includes/class-purge-ui.php:497
1071 +#: includes/class-purge-ui.php:547
863 1072 msgid "cleared"
864 1073 msgstr ""
865 1074
866 -#: includes/class-purge-ui.php:498
1075 +#: includes/class-purge-ui.php:548
867 1076 msgid "was not cached"
868 1077 msgstr ""
869 1078
870 -#: includes/class-purge-ui.php:533
1079 +#: includes/class-purge-ui.php:583
871 1080 msgid "Purge this post"
872 1081 msgstr ""
873 1082
874 -#: includes/class-purge-ui.php:543
1083 +#: includes/class-purge-ui.php:593
875 1084 msgid "Purge this URL"
876 1085 msgstr ""
877 1086
878 -#: includes/class-purge-ui.php:684
1087 +#: includes/class-purge-ui.php:689
879 1088 msgid "That post does not exist."
880 1089 msgstr ""
881 1090
882 -#: includes/class-recommendations.php:47
1091 +#: includes/class-recommendations.php:61
883 1092 msgid "Enable page caching"
884 1093 msgstr ""
885 1094
886 -#: includes/class-recommendations.php:48
1095 +#: includes/class-recommendations.php:62
887 1096 msgid "Caching is off, so every visit renders the full page. Turning it on is the single biggest speed win."
888 1097 msgstr ""
889 1098
890 -#: includes/class-recommendations.php:58
1099 +#: includes/class-recommendations.php:72
891 1100 msgid "Go to Cache settings"
892 1101 msgstr ""
893 1102
894 -#: includes/class-recommendations.php:74
1103 +#: includes/class-recommendations.php:88
895 1104 msgid "Raise Cache Expiry to match your preload schedule"
896 1105 msgstr ""
897 1106
898 1107 #. translators: 1: current expiry hours, 2: preload interval hours.
899 -#: includes/class-recommendations.php:77
1108 +#: includes/class-recommendations.php:91
900 1109 #, php-format
901 1110 msgid "Pages expire after %1$dh but the preloader only re-warms them every %2$dh — most visits hit a cold cache."
902 1111 msgstr ""
903 1112
904 1113 #. translators: %d: recommended expiry in hours.
905 -#: includes/class-recommendations.php:87
1114 +#: includes/class-recommendations.php:101
906 1115 #, php-format
907 1116 msgid "Raise expiry to %dh"
908 1117 msgstr ""
909 1118
910 -#: includes/class-recommendations.php:99
1119 +#: includes/class-recommendations.php:113
911 1120 msgid "A plugin"
912 1121 msgstr ""
913 1122
914 -#: includes/class-recommendations.php:103
1123 +#: includes/class-recommendations.php:117
915 1124 msgid "A plugin is blocking CDN edge caching"
916 1125 msgstr ""
917 1126
918 1127 #. translators: 1: plugin name, 2: cookie name.
919 -#: includes/class-recommendations.php:106
1128 +#: includes/class-recommendations.php:120
920 1129 #, php-format
921 1130 msgid "%1$s sets the \"%2$s\" cookie on anonymous pages, which makes CDNs skip their edge cache for all HTML."
922 1131 msgstr ""
923 1132
924 -#: includes/class-recommendations.php:114
1133 +#: includes/class-recommendations.php:128
925 1134 msgid "See details in Health"
926 1135 msgstr ""
927 1136
928 -#: includes/class-recommendations.php:124
1137 +#: includes/class-recommendations.php:138
929 1138 msgid "Apply the nginx server snippet"
930 1139 msgstr ""
931 1140
932 -#: includes/class-recommendations.php:125
1141 +#: includes/class-recommendations.php:139
933 1142 msgid "nginx can serve cache hits directly (~5-15ms TTFB, PHP bypassed) once the snippet is in your server block."
934 1143 msgstr ""
935 1144
936 -#: includes/class-recommendations.php:128
1145 +#: includes/class-recommendations.php:142
937 1146 msgid "Get the snippet"
938 1147 msgstr ""
939 1148
940 -#: includes/class-recommendations.php:138
1149 +#: includes/class-recommendations.php:152
941 1150 msgid "Turn on the preloader"
942 1151 msgstr ""
943 1152
944 1153 #. translators: %d: hit ratio percent.
945 -#: includes/class-recommendations.php:141
1154 +#: includes/class-recommendations.php:155
946 1155 #, php-format
947 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."
948 1157 msgstr ""
949 1158
950 -#: includes/class-recommendations.php:148
1159 +#: includes/class-recommendations.php:162
1160 +#: includes/modules/Preloader/PreloaderModule.php:78
951 1161 msgid "Enable preloader"
952 1162 msgstr ""
953 1163
954 -#: includes/class-recommendations.php:158
1164 +#: includes/class-recommendations.php:172
955 1165 msgid "Object cache is configured but not persisting"
956 1166 msgstr ""
957 1167
958 -#: includes/class-recommendations.php:159
1168 +#: includes/class-recommendations.php:173
959 1169 msgid "The backend is not connected, so every request falls back to the database. Run the connection test to see why."
960 1170 msgstr ""
961 1171
962 -#: includes/class-recommendations.php:162
1172 +#: includes/class-recommendations.php:176
963 1173 msgid "Test the connection"
964 1174 msgstr ""
965 1175
966 -#: includes/class-recommendations.php:173
1176 +#: includes/class-recommendations.php:187
967 1177 msgid "Finish connecting Cloudflare"
968 1178 msgstr ""
969 1179
970 -#: includes/class-recommendations.php:174
1180 +#: includes/class-recommendations.php:188
971 1181 msgid "The Cloudflare module is on but has no verified credentials or zone, so edge purges cannot work."
972 1182 msgstr ""
973 1183
974 -#: includes/class-recommendations.php:177
1184 +#: includes/class-recommendations.php:191
975 1185 msgid "Open Cloudflare settings"
976 1186 msgstr ""
977 1187
978 -#: includes/class-recommendations.php:251
1188 +#: includes/class-recommendations.php:419
979 1189 msgid "This recommendation links to a settings screen; it has no one-click fix."
980 1190 msgstr ""
981 1191
982 -#: includes/class-recommendations.php:284
1192 +#: includes/class-recommendations.php:452
983 1193 msgid "Unknown or no-longer-applicable recommendation."
984 1194 msgstr ""
985 1195
986 -#: includes/class-rest-api.php:352
1196 +#: includes/class-rest-api.php:382
987 1197 msgid "The id argument is required."
988 1198 msgstr ""
989 1199
990 -#: includes/class-rest-api.php:479
1200 +#: includes/class-rest-api.php:515
991 1201 msgid "dashboard"
992 1202 msgstr ""
993 1203
1204 +#: includes/class-rest-api.php:619
1205 +msgid "That is not a rules marker this site could have generated."
1206 +msgstr ""
1207 +
994 1208 #: includes/class-rest-manager.php:83
995 1209 msgid "No route was found matching the URL and request method."
996 1210 msgstr ""
997 1211
@@ -998,40 +1212,40 @@
998 1212 #: includes/class-rest-manager.php:145
999 1213 msgid "The request could not be completed due to a server error."
1000 1214 msgstr ""
1001 1215
1002 -#: includes/class-scan.php:123
1216 +#: includes/class-scan.php:142
1003 1217 msgid "That does not look like a public URL the scanner can reach."
1004 1218 msgstr ""
1005 1219
1006 -#: includes/class-scan.php:134
1220 +#: includes/class-scan.php:153
1007 1221 msgid "A scan is already running for this site."
1008 1222 msgstr ""
1009 1223
1010 -#: includes/class-scan.php:173
1224 +#: includes/class-scan.php:193
1011 1225 msgid "The scanner is rate limited right now. Try again in a few minutes."
1012 1226 msgstr ""
1013 1227
1014 -#: includes/class-scan.php:185
1228 +#: includes/class-scan.php:205
1015 1229 #: assets/admin.js
1016 1230 msgid "The scan could not be started."
1017 1231 msgstr ""
1018 1232
1019 -#: includes/class-scan.php:221
1233 +#: includes/class-scan.php:241
1020 1234 msgid "That is not a valid scan id."
1021 1235 msgstr ""
1022 1236
1023 -#: includes/class-scan.php:251
1237 +#: includes/class-scan.php:271
1024 1238 msgid "The scan did not complete."
1025 1239 msgstr ""
1026 1240
1027 1241 #. translators: %s: transport error message.
1028 -#: includes/class-scan.php:436
1242 +#: includes/class-scan.php:501
1029 1243 #, php-format
1030 1244 msgid "Could not reach the scanner: %s"
1031 1245 msgstr ""
1032 1246
1033 -#: includes/class-scan.php:446
1247 +#: includes/class-scan.php:511
1034 1248 msgid "The scanner returned an unreadable response."
1035 1249 msgstr ""
1036 1250
1037 1251 #. translators: %d: HTTP status code.
@@ -1061,13 +1275,19 @@
1061 1275 #: includes/class-score.php:412
1062 1276 msgid "GTmetrix returned an unreadable response."
1063 1277 msgstr ""
1064 1278
1065 -#: 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
1066 1286 msgid "an unreadable advanced-cache.php"
1067 1287 msgstr ""
1068 1288
1069 -#: includes/class-server.php:754
1289 +#: includes/class-server.php:756
1070 1290 msgid "an unidentified advanced-cache.php"
1071 1291 msgstr ""
1072 1292
1073 1293 #. translators: %s: setting key.
@@ -1093,25 +1313,25 @@
1093 1313 msgid "AI Privacy"
1094 1314 msgstr ""
1095 1315
1096 1316 #: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1097 -msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro."
1317 +msgid "Choose whether AI features may use visitor data, with or without Pro."
1098 1318 msgstr ""
1099 1319
1100 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1101 -msgid "Require consent before AI data collection"
1320 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1321 +msgid "Ask visitors for consent"
1102 1322 msgstr ""
1103 1323
1104 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1105 -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): privacy is a fundamental right, not a paid feature."
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."
1106 1326 msgstr ""
1107 1327
1108 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1328 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1109 1329 msgid "Consent banner text"
1110 1330 msgstr ""
1111 1331
1112 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1113 -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."
1114 1334 msgstr ""
1115 1335
1116 1336 #: includes/modules/Bloat/BloatModule.php:38
1117 1337 msgid "Bloat Control"
@@ -1117,272 +1337,288 @@
1117 1337 msgid "Bloat Control"
1118 1338 msgstr ""
1119 1339
1120 1340 #: includes/modules/Bloat/BloatModule.php:40
1121 -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."
1122 1342 msgstr ""
1123 1343
1124 -#: includes/modules/Bloat/BloatModule.php:49
1125 -msgid "Disable Emojis"
1344 +#: includes/modules/Bloat/BloatModule.php:50
1345 +msgid "Disable emojis"
1126 1346 msgstr ""
1127 1347
1128 -#: includes/modules/Bloat/BloatModule.php:50
1348 +#: includes/modules/Bloat/BloatModule.php:51
1129 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."
1130 1350 msgstr ""
1131 1351
1132 -#: includes/modules/Bloat/BloatModule.php:55
1133 -msgid "Disable Dashicons on Frontend"
1134 -msgstr ""
1135 -
1136 1352 #: includes/modules/Bloat/BloatModule.php:56
1137 -msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1353 +msgid "Remove Dashicons for visitors"
1138 1354 msgstr ""
1139 1355
1140 -#: includes/modules/Bloat/BloatModule.php:61
1141 -msgid "Disable oEmbed Discovery + wp-embed.min.js"
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."
1142 1358 msgstr ""
1143 1359
1144 1360 #: includes/modules/Bloat/BloatModule.php:62
1145 -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."
1361 +msgid "Disable auto-embeds"
1146 1362 msgstr ""
1147 1363
1148 -#: includes/modules/Bloat/BloatModule.php:67
1149 -msgid "Disable RSS Feeds"
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."
1150 1366 msgstr ""
1151 1367
1152 1368 #: includes/modules/Bloat/BloatModule.php:68
1153 -msgid "Return a 404 on /feed/ and similar endpoints. Useful for sites that do not publish feeds and want to cut feed-fetcher traffic."
1369 +msgid "Disable RSS feeds"
1154 1370 msgstr ""
1155 1371
1156 -#: includes/modules/Bloat/BloatModule.php:73
1157 -msgid "Disable XML-RPC"
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."
1158 1374 msgstr ""
1159 1375
1160 1376 #: includes/modules/Bloat/BloatModule.php:74
1161 -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)."
1377 +msgid "Disable XML-RPC"
1162 1378 msgstr ""
1163 1379
1164 -#: includes/modules/Bloat/BloatModule.php:79
1165 -msgid "Strip jQuery Migrate on Frontend"
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."
1166 1382 msgstr ""
1167 1383
1168 1384 #: includes/modules/Bloat/BloatModule.php:80
1169 -msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1385 +msgid "Remove jQuery Migrate"
1170 1386 msgstr ""
1171 1387
1172 -#: includes/modules/Bloat/BloatModule.php:85
1173 -msgid "Strip Block-Editor Styles on Frontend"
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."
1174 1390 msgstr ""
1175 1391
1176 1392 #: includes/modules/Bloat/BloatModule.php:86
1177 -msgid "Drop editor-only stylesheets (wp-editor, wp-components, and friends) from anonymous pages. A plugin that enqueues them on the frontend usually does so by accident — they can add hundreds of KB of render-blocking CSS. Frontend block styles (wp-block-library) are never touched."
1393 +msgid "Remove editor styles for visitors"
1178 1394 msgstr ""
1179 1395
1180 -#: includes/modules/Bloat/BloatModule.php:91
1181 -msgid "Remove RSD Link"
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."
1182 1398 msgstr ""
1183 1399
1184 1400 #: includes/modules/Bloat/BloatModule.php:92
1401 +msgid "Remove RSD link"
1402 +msgstr ""
1403 +
1404 +#: includes/modules/Bloat/BloatModule.php:93
1185 1405 msgid "Drop the Really Simple Discovery link from the page head. Only old desktop blogging clients read it."
1186 1406 msgstr ""
1187 1407
1188 -#: includes/modules/Bloat/BloatModule.php:97
1189 -msgid "Remove Shortlink"
1408 +#: includes/modules/Bloat/BloatModule.php:98
1409 +msgid "Remove shortlink"
1190 1410 msgstr ""
1191 1411
1192 -#: includes/modules/Bloat/BloatModule.php:98
1412 +#: includes/modules/Bloat/BloatModule.php:99
1193 1413 msgid "Drop the ?p=123 shortlink tag and header from posts and pages. The shortlinks keep working; they are just no longer advertised."
1194 1414 msgstr ""
1195 1415
1196 -#: includes/modules/Bloat/BloatModule.php:103
1197 -msgid "Remove REST API Links"
1416 +#: includes/modules/Bloat/BloatModule.php:104
1417 +msgid "Remove REST API links"
1198 1418 msgstr ""
1199 1419
1200 -#: includes/modules/Bloat/BloatModule.php:104
1420 +#: includes/modules/Bloat/BloatModule.php:105
1201 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."
1202 1422 msgstr ""
1203 1423
1204 -#: includes/modules/Bloat/BloatModule.php:109
1205 -msgid "Hide WordPress Version"
1424 +#: includes/modules/Bloat/BloatModule.php:110
1425 +msgid "Hide WordPress version"
1206 1426 msgstr ""
1207 1427
1208 -#: includes/modules/Bloat/BloatModule.php:110
1428 +#: includes/modules/Bloat/BloatModule.php:111
1209 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."
1210 1430 msgstr ""
1211 1431
1212 -#: includes/modules/Bloat/BloatModule.php:115
1213 -msgid "Disable Self-Pingbacks"
1432 +#: includes/modules/Bloat/BloatModule.php:116
1433 +msgid "Disable self-pingbacks"
1214 1434 msgstr ""
1215 1435
1216 -#: includes/modules/Bloat/BloatModule.php:116
1436 +#: includes/modules/Bloat/BloatModule.php:117
1217 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."
1218 1438 msgstr ""
1219 1439
1220 -#: includes/modules/Bloat/BloatModule.php:121
1221 -msgid "Restrict REST API to Logged-In Users"
1440 +#: includes/modules/Bloat/BloatModule.php:122
1441 +msgid "REST API for logged-in users only"
1222 1442 msgstr ""
1223 1443
1224 -#: includes/modules/Bloat/BloatModule.php:122
1225 -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."
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."
1226 1446 msgstr ""
1227 1447
1228 -#: includes/modules/Bloat/BloatModule.php:380
1448 +#: includes/modules/Bloat/BloatModule.php:393
1229 1449 msgid "Feeds are disabled."
1230 1450 msgstr ""
1231 1451
1232 -#: includes/modules/Bloat/BloatModule.php:429
1452 +#: includes/modules/Bloat/BloatModule.php:450
1233 1453 msgid "Anonymous REST access is disabled on this site."
1234 1454 msgstr ""
1235 1455
1236 1456 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
1237 -#: includes/modules/Migration/MigrationModule.php:551
1457 +#: includes/modules/Migration/MigrationModule.php:552
1238 1458 msgid "Browser Cache"
1239 1459 msgstr ""
1240 1460
1241 1461 #: includes/modules/BrowserCache/BrowserCacheModule.php:34
1242 -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."
1243 1463 msgstr ""
1244 1464
1245 -#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1465 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1246 1466 msgid "Enable browser cache headers"
1247 1467 msgstr ""
1248 1468
1249 -#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1250 -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."
1251 1471 msgstr ""
1252 1472
1253 -#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1254 -msgid "Static asset TTL (seconds)"
1473 +#: includes/modules/BrowserCache/BrowserCacheModule.php:52
1474 +msgid "File lifetime (seconds)"
1255 1475 msgstr ""
1256 1476
1257 -#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1258 -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."
1259 1479 msgstr ""
1260 1480
1261 -#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1262 -msgid "HTML TTL (seconds)"
1481 +#: includes/modules/BrowserCache/BrowserCacheModule.php:62
1482 +msgid "Page lifetime (seconds)"
1263 1483 msgstr ""
1264 1484
1265 -#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1266 -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."
1267 1487 msgstr ""
1268 1488
1269 -#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1489 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1270 1490 msgid "Browser cache is enabled but not active on the server"
1271 1491 msgstr ""
1272 1492
1273 -#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1493 +#: includes/modules/BrowserCache/BrowserCacheModule.php:129
1274 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."
1275 1495 msgstr ""
1276 1496
1277 -#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1278 -#: includes/modules/Gzip/GzipModule.php:163
1497 +#: includes/modules/BrowserCache/BrowserCacheModule.php:133
1498 +#: includes/modules/Gzip/GzipModule.php:164
1279 1499 msgid "Go to the snippet"
1280 1500 msgstr ""
1281 1501
1282 -#: includes/modules/Cache/CacheModule.php:130
1283 -#: includes/modules/Migration/MigrationModule.php:547
1502 +#: includes/modules/Cache/CacheModule.php:169
1503 +#: includes/modules/Migration/MigrationModule.php:548
1284 1504 msgid "Page Cache"
1285 1505 msgstr ""
1286 1506
1287 -#: includes/modules/Cache/CacheModule.php:132
1288 -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."
1289 1509 msgstr ""
1290 1510
1291 -#: includes/modules/Cache/CacheModule.php:158
1292 -msgid "Cache Expiry (hours)"
1511 +#: includes/modules/Cache/CacheModule.php:198
1512 +msgid "Cache expiry (hours)"
1293 1513 msgstr ""
1294 1514
1295 -#: includes/modules/Cache/CacheModule.php:160
1296 -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)."
1297 1517 msgstr ""
1298 1518
1299 -#: includes/modules/Cache/CacheModule.php:190
1519 +#: includes/modules/Cache/CacheModule.php:231
1300 1520 msgid "Excluded URLs"
1301 1521 msgstr ""
1302 1522
1303 -#: includes/modules/Cache/CacheModule.php:191
1304 -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."
1305 1525 msgstr ""
1306 1526
1307 -#: includes/modules/Cache/CacheModule.php:200
1308 -msgid "Excluded Cookies"
1527 +#: includes/modules/Cache/CacheModule.php:241
1528 +msgid "Excluded cookies"
1309 1529 msgstr ""
1310 1530
1311 -#: includes/modules/Cache/CacheModule.php:201
1312 -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."
1313 1533 msgstr ""
1314 1534
1315 -#: includes/modules/Cache/CacheModule.php:207
1316 -msgid "Bypass User Agents"
1535 +#: includes/modules/Cache/CacheModule.php:248
1536 +msgid "Excluded browsers and bots"
1317 1537 msgstr ""
1318 1538
1319 -#: includes/modules/Cache/CacheModule.php:208
1320 -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."
1321 1541 msgstr ""
1322 1542
1323 -#: includes/modules/Cache/CacheModule.php:219
1324 -msgid "Ignored Query Parameters"
1543 +#: includes/modules/Cache/CacheModule.php:260
1544 +msgid "Ignored query parameters"
1325 1545 msgstr ""
1326 1546
1327 -#: includes/modules/Cache/CacheModule.php:220
1328 -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."
1329 1549 msgstr ""
1330 1550
1331 -#: includes/modules/Cache/CacheModule.php:225
1332 -msgid "Purge After Updates"
1551 +#: includes/modules/Cache/CacheModule.php:267
1552 +msgid "Clear cache after updates"
1333 1553 msgstr ""
1334 1554
1335 -#: includes/modules/Cache/CacheModule.php:226
1336 -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."
1337 1557 msgstr ""
1338 1558
1339 -#: includes/modules/Cache/CacheModule.php:231
1340 -msgid "Separate Mobile Cache"
1559 +#: includes/modules/Cache/CacheModule.php:273
1560 +msgid "Clear only the pages a change affects"
1341 1561 msgstr ""
1342 1562
1343 -#: includes/modules/Cache/CacheModule.php:232
1344 -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."
1345 1565 msgstr ""
1346 1566
1347 -#: includes/modules/Cache/CacheModule.php:264
1348 -msgid "Cache In Front Of This Site"
1567 +#: includes/modules/Cache/CacheModule.php:275
1568 +msgid "Which pages are cleared"
1349 1569 msgstr ""
1350 1570
1351 -#: includes/modules/Cache/CacheModule.php:265
1352 -msgid "Ask a CDN or proxy in front of your site not to store pages xSpeed refused to cache. Leave it on Detect automatically unless you know what is in front of you; the marked providers ignore origin headers until you configure them to respect it."
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)."
1353 1573 msgstr ""
1354 1574
1355 -#: includes/modules/Cache/CacheModule.php:266
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
1356 1592 msgid "Cache in front of this site"
1357 1593 msgstr ""
1358 1594
1359 -#: includes/modules/Cache/CacheModule.php:267
1360 -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. Run \"wp xspeed cache edge\" to see what was detected and what gets sent."
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."
1361 1597 msgstr ""
1362 1598
1363 -#: includes/modules/Cache/CacheModule.php:273
1364 -msgid "Custom Edge Headers"
1599 +#: includes/modules/Cache/CacheModule.php:324
1600 +msgid "Custom CDN headers"
1365 1601 msgstr ""
1366 1602
1367 -#: includes/modules/Cache/CacheModule.php:275
1368 -msgid "One header per line, as Name: value — for example \"Surrogate-Control: no-store\". Lines starting with # are ignored."
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."
1369 1605 msgstr ""
1370 1606
1371 -#: includes/modules/Cache/CacheModule.php:276
1607 +#: includes/modules/Cache/CacheModule.php:328
1372 1608 msgid "Custom edge headers"
1373 1609 msgstr ""
1374 1610
1375 -#: includes/modules/Cache/CacheModule.php:277
1611 +#: includes/modules/Cache/CacheModule.php:329
1376 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."
1377 1613 msgstr ""
1378 1614
1379 -#: includes/modules/Cache/CacheModule.php:290
1380 -msgid "LiteSpeed Static Fast Path"
1615 +#: includes/modules/Cache/CacheModule.php:342
1616 +msgid "LiteSpeed static fast path"
1381 1617 msgstr ""
1382 1618
1383 -#: includes/modules/Cache/CacheModule.php:291
1384 -msgid "Serve cache hits straight from the web server via .htaccess instead of the PHP drop-in. No PHP runs on a hit, so the saving depends on how quickly PHP answers on this host — a few milliseconds on a fast server, far more where PHP is the bottleneck. The trade: LiteSpeed cannot add the X-XSpeed-Cache header to statically served pages, and those hits are not counted in the dashboard hit ratio. Leave off to keep every hit visibly tagged and counted."
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."
1385 1621 msgstr ""
1386 1622
1387 1623 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1388 1624 msgid "Advanced Cache"
@@ -1388,45 +1624,45 @@
1388 1624 msgid "Advanced Cache"
1389 1625 msgstr ""
1390 1626
1391 1627 #: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1392 -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."
1393 1629 msgstr ""
1394 1630
1395 1631 #: includes/modules/Cdn/CdnModule.php:30
1396 -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."
1397 1633 msgstr ""
1398 1634
1399 -#: includes/modules/Cdn/CdnModule.php:39
1635 +#: includes/modules/Cdn/CdnModule.php:40
1400 1636 msgid "Enable CDN"
1401 1637 msgstr ""
1402 1638
1403 -#: includes/modules/Cdn/CdnModule.php:40
1404 -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."
1405 1641 msgstr ""
1406 1642
1407 -#: includes/modules/Cdn/CdnModule.php:45
1643 +#: includes/modules/Cdn/CdnModule.php:46
1408 1644 msgid "CDN URL"
1409 1645 msgstr ""
1410 1646
1411 -#: includes/modules/Cdn/CdnModule.php:46
1412 -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."
1413 1649 msgstr ""
1414 1650
1415 -#: includes/modules/Cdn/CdnModule.php:53
1416 -msgid "Included File Extensions"
1651 +#: includes/modules/Cdn/CdnModule.php:54
1652 +msgid "File types to serve"
1417 1653 msgstr ""
1418 1654
1419 -#: includes/modules/Cdn/CdnModule.php:54
1420 -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."
1421 1657 msgstr ""
1422 1658
1423 -#: includes/modules/Cdn/CdnModule.php:61
1424 -msgid "Excluded Patterns"
1659 +#: includes/modules/Cdn/CdnModule.php:62
1660 +msgid "Excluded paths"
1425 1661 msgstr ""
1426 1662
1427 -#: includes/modules/Cdn/CdnModule.php:62
1428 -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."
1429 1665 msgstr ""
1430 1666
1431 1667 #: includes/modules/Cloudflare/CloudflareModule.php:77
1432 1668 msgid "Cloudflare"
@@ -1432,75 +1668,75 @@
1432 1668 msgid "Cloudflare"
1433 1669 msgstr ""
1434 1670
1435 1671 #: includes/modules/Cloudflare/CloudflareModule.php:79
1436 -msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1672 +msgid "Clear the Cloudflare cache whenever xSpeed clears its own cache."
1437 1673 msgstr ""
1438 1674
1439 -#: includes/modules/Cloudflare/CloudflareModule.php:102
1440 -msgid "Enable Cloudflare integration"
1441 -msgstr ""
1442 -
1443 1675 #: includes/modules/Cloudflare/CloudflareModule.php:103
1444 -msgid "Use the credentials below to verify your zone and run purges."
1676 +msgid "Connect Cloudflare"
1445 1677 msgstr ""
1446 1678
1447 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1448 -msgid "Authentication"
1679 +#: includes/modules/Cloudflare/CloudflareModule.php:104
1680 +msgid "Lets xSpeed clear the Cloudflare cache for your domain, using the details below."
1449 1681 msgstr ""
1450 1682
1451 1683 #: includes/modules/Cloudflare/CloudflareModule.php:114
1452 -msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1684 +msgid "Authentication"
1453 1685 msgstr ""
1454 1686
1455 -#: includes/modules/Cloudflare/CloudflareModule.php:120
1456 -msgid "API Token"
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."
1457 1689 msgstr ""
1458 1690
1459 1691 #: includes/modules/Cloudflare/CloudflareModule.php:121
1460 -msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1692 +msgid "API Token"
1461 1693 msgstr ""
1462 1694
1463 -#: includes/modules/Cloudflare/CloudflareModule.php:129
1464 -msgid "Account Email"
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."
1465 1697 msgstr ""
1466 1698
1467 1699 #: includes/modules/Cloudflare/CloudflareModule.php:130
1468 -msgid "Only used when Authentication is set to Global API Key."
1700 +msgid "Account email"
1469 1701 msgstr ""
1470 1702
1471 -#: includes/modules/Cloudflare/CloudflareModule.php:136
1472 -msgid "Global API Key"
1703 +#: includes/modules/Cloudflare/CloudflareModule.php:131
1704 +msgid "The email address of your Cloudflare account."
1473 1705 msgstr ""
1474 1706
1475 1707 #: includes/modules/Cloudflare/CloudflareModule.php:137
1476 -msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1708 +msgid "Global API Key"
1477 1709 msgstr ""
1478 1710
1479 -#: includes/modules/Cloudflare/CloudflareModule.php:143
1480 -msgid "Zone ID"
1711 +#: includes/modules/Cloudflare/CloudflareModule.php:138
1712 +msgid "Find it at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1481 1713 msgstr ""
1482 1714
1483 1715 #: includes/modules/Cloudflare/CloudflareModule.php:144
1484 -msgid "The 32-character hex Zone ID from your domain overview page."
1716 +msgid "Zone ID"
1485 1717 msgstr ""
1486 1718
1487 -#: includes/modules/Cloudflare/CloudflareModule.php:150
1488 -msgid "Auto-purge Cloudflare on xSpeed purge"
1719 +#: includes/modules/Cloudflare/CloudflareModule.php:145
1720 +msgid "The 32-character Zone ID shown on your domain overview page in Cloudflare."
1489 1721 msgstr ""
1490 1722
1491 1723 #: includes/modules/Cloudflare/CloudflareModule.php:151
1492 -msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1724 +msgid "Clear Cloudflare with xSpeed"
1493 1725 msgstr ""
1494 1726
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."
1729 +msgstr ""
1730 +
1495 1731 #. translators: %d: number of URLs that changed at once.
1496 -#: includes/modules/Cloudflare/CloudflareModule.php:480
1732 +#: includes/modules/Cloudflare/CloudflareModule.php:489
1497 1733 #, php-format
1498 1734 msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1499 1735 msgstr ""
1500 1736
1501 1737 #. translators: %d: number of URLs.
1502 -#: includes/modules/Cloudflare/CloudflareModule.php:541
1738 +#: includes/modules/Cloudflare/CloudflareModule.php:550
1503 1739 #, php-format
1504 1740 msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1505 1741 msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1506 1742 msgstr[0] ""
@@ -1506,9 +1742,9 @@
1506 1742 msgstr[0] ""
1507 1743 msgstr[1] ""
1508 1744
1509 1745 #. translators: %d: number of URLs purged.
1510 -#: includes/modules/Cloudflare/CloudflareModule.php:572
1746 +#: includes/modules/Cloudflare/CloudflareModule.php:581
1511 1747 #, php-format
1512 1748 msgid "Purged %d URL from the Cloudflare edge cache"
1513 1749 msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1514 1750 msgstr[0] ""
@@ -1514,62 +1750,62 @@
1514 1750 msgstr[0] ""
1515 1751 msgstr[1] ""
1516 1752
1517 1753 #. translators: 1: number of URLs, 2: failure reason.
1518 -#: includes/modules/Cloudflare/CloudflareModule.php:588
1754 +#: includes/modules/Cloudflare/CloudflareModule.php:597
1519 1755 #, php-format
1520 1756 msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1521 1757 msgstr ""
1522 1758
1523 -#: includes/modules/Cloudflare/CloudflareModule.php:590
1524 -#: includes/modules/Cloudflare/CloudflareModule.php:657
1759 +#: includes/modules/Cloudflare/CloudflareModule.php:599
1760 +#: includes/modules/Cloudflare/CloudflareModule.php:670
1525 1761 msgid "unknown error"
1526 1762 msgstr ""
1527 1763
1528 -#: includes/modules/Cloudflare/CloudflareModule.php:606
1764 +#: includes/modules/Cloudflare/CloudflareModule.php:615
1529 1765 msgid "the Cloudflare integration is switched off"
1530 1766 msgstr ""
1531 1767
1532 -#: includes/modules/Cloudflare/CloudflareModule.php:609
1768 +#: includes/modules/Cloudflare/CloudflareModule.php:622
1533 1769 msgid "no zone ID or API credentials are configured"
1534 1770 msgstr ""
1535 1771
1536 1772 #. translators: %s: what asked for the purge.
1537 -#: includes/modules/Cloudflare/CloudflareModule.php:645
1773 +#: includes/modules/Cloudflare/CloudflareModule.php:658
1538 1774 #, php-format
1539 1775 msgid "Purged the Cloudflare edge cache (%s)"
1540 1776 msgstr ""
1541 1777
1542 1778 #. translators: 1: what asked for the purge, 2: failure reason.
1543 -#: includes/modules/Cloudflare/CloudflareModule.php:655
1779 +#: includes/modules/Cloudflare/CloudflareModule.php:668
1544 1780 #, php-format
1545 1781 msgid "Cloudflare purge failed (%1$s): %2$s"
1546 1782 msgstr ""
1547 1783
1548 -#: includes/modules/Cloudflare/CloudflareModule.php:727
1784 +#: includes/modules/Cloudflare/CloudflareModule.php:742
1549 1785 msgid "Cloudflare is not fully configured."
1550 1786 msgstr ""
1551 1787
1552 -#: includes/modules/Cloudflare/CloudflareModule.php:728
1788 +#: includes/modules/Cloudflare/CloudflareModule.php:743
1553 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."
1554 1790 msgstr ""
1555 1791
1556 -#: includes/modules/Cloudflare/CloudflareModule.php:741
1792 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1557 1793 msgid "Cloudflare purge is failing."
1558 1794 msgstr ""
1559 1795
1560 1796 #. translators: %s: the Cloudflare API error message, or empty.
1561 -#: includes/modules/Cloudflare/CloudflareModule.php:744
1797 +#: includes/modules/Cloudflare/CloudflareModule.php:759
1562 1798 #, php-format
1563 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."
1564 1800 msgstr ""
1565 1801
1566 -#: includes/modules/Cloudflare/CloudflareModule.php:753
1802 +#: includes/modules/Cloudflare/CloudflareModule.php:768
1567 1803 msgid "Cloudflare credentials were rejected."
1568 1804 msgstr ""
1569 1805
1570 1806 #. translators: %s: the Cloudflare API error message, or empty.
1571 -#: includes/modules/Cloudflare/CloudflareModule.php:756
1807 +#: includes/modules/Cloudflare/CloudflareModule.php:771
1572 1808 #, php-format
1573 1809 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1574 1810 msgstr ""
1575 1811
@@ -1577,54 +1813,54 @@
1577 1813 msgid "Database"
1578 1814 msgstr ""
1579 1815
1580 1816 #: includes/modules/Database/DatabaseModule.php:32
1581 -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."
1582 1818 msgstr ""
1583 1819
1584 -#: includes/modules/Database/DatabaseModule.php:49
1585 -msgid "Auto-Cleanup Schedule"
1820 +#: includes/modules/Database/DatabaseModule.php:50
1821 +msgid "Automatic cleanup"
1586 1822 msgstr ""
1587 1823
1588 -#: includes/modules/Database/DatabaseModule.php:50
1589 -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."
1590 1826 msgstr ""
1591 1827
1592 -#: includes/modules/Database/DatabaseModule.php:56
1593 -msgid "Auto-Cleanup Types"
1828 +#: includes/modules/Database/DatabaseModule.php:57
1829 +msgid "What to clean automatically"
1594 1830 msgstr ""
1595 1831
1596 -#: includes/modules/Database/DatabaseModule.php:57
1597 -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."
1598 1834 msgstr ""
1599 1835
1600 -#: includes/modules/Database/DatabaseModule.php:62
1601 -msgid "Limit Post Revisions"
1836 +#: includes/modules/Database/DatabaseModule.php:70
1837 +msgid "Limit post revisions"
1602 1838 msgstr ""
1603 1839
1604 -#: includes/modules/Database/DatabaseModule.php:63
1840 +#: includes/modules/Database/DatabaseModule.php:71
1605 1841 msgid "Cap how many revisions WordPress keeps for each post. Cleanup removes revisions that already exist; this stops them piling up again."
1606 1842 msgstr ""
1607 1843
1608 -#: includes/modules/Database/DatabaseModule.php:70
1609 -msgid "Revisions to Keep"
1844 +#: includes/modules/Database/DatabaseModule.php:78
1845 +msgid "Revisions to keep"
1610 1846 msgstr ""
1611 1847
1612 -#: includes/modules/Database/DatabaseModule.php:71
1613 -msgid "Used when Limit Post Revisions is on. 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."
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."
1614 1850 msgstr ""
1615 1851
1616 -#: includes/modules/Database/DatabaseModule.php:125
1852 +#: includes/modules/Database/DatabaseModule.php:134
1617 1853 msgid "The revision limit is set outside xSpeed"
1618 1854 msgstr ""
1619 1855
1620 1856 #. translators: %s: value of WP_POST_REVISIONS, e.g. 5 or false.
1621 -#: includes/modules/Database/DatabaseModule.php:128
1857 +#: includes/modules/Database/DatabaseModule.php:137
1622 1858 #, php-format
1623 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."
1624 1860 msgstr ""
1625 1861
1626 -#: includes/modules/Database/DatabaseModule.php:232
1862 +#: includes/modules/Database/DatabaseModule.php:241
1627 1863 msgid "Provide at least one cleanup type."
1628 1864 msgstr ""
1629 1865
1630 1866 #: includes/modules/Fonts/FontsModule.php:35
@@ -1631,29 +1867,29 @@
1631 1867 msgid "Fonts"
1632 1868 msgstr ""
1633 1869
1634 1870 #: includes/modules/Fonts/FontsModule.php:37
1635 -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."
1636 1872 msgstr ""
1637 1873
1638 -#: includes/modules/Fonts/FontsModule.php:46
1639 -msgid "Add font-display: swap"
1874 +#: includes/modules/Fonts/FontsModule.php:47
1875 +msgid "Show text while fonts load"
1640 1876 msgstr ""
1641 1877
1642 -#: includes/modules/Fonts/FontsModule.php:47
1643 -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."
1644 1880 msgstr ""
1645 1881
1646 -#: includes/modules/Fonts/FontsModule.php:53
1647 -msgid "Preload Font URLs"
1882 +#: includes/modules/Fonts/FontsModule.php:54
1883 +msgid "Fonts to preload"
1648 1884 msgstr ""
1649 1885
1650 -#: includes/modules/Fonts/FontsModule.php:54
1651 -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."
1652 1888 msgstr ""
1653 1889
1654 1890 #: includes/modules/Gzip/GzipModule.php:35
1655 -#: includes/modules/Migration/MigrationModule.php:553
1891 +#: includes/modules/Migration/MigrationModule.php:554
1656 1892 msgid "Compression"
1657 1893 msgstr ""
1658 1894
1659 1895 #: includes/modules/Gzip/GzipModule.php:36
@@ -1660,166 +1896,166 @@
1660 1896 msgid "GZIP"
1661 1897 msgstr ""
1662 1898
1663 1899 #: includes/modules/Gzip/GzipModule.php:38
1664 -msgid "Compress responses to reduce transfer size."
1900 +msgid "Compresses pages and files so they download faster."
1665 1901 msgstr ""
1666 1902
1667 -#: includes/modules/Gzip/GzipModule.php:52
1668 -msgid "Enable GZIP Compression"
1903 +#: includes/modules/Gzip/GzipModule.php:53
1904 +msgid "Enable Gzip compression"
1669 1905 msgstr ""
1670 1906
1671 -#: includes/modules/Gzip/GzipModule.php:74
1672 -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."
1673 1909 msgstr ""
1674 1910
1675 -#: includes/modules/Gzip/GzipModule.php:77
1676 -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."
1677 1913 msgstr ""
1678 1914
1679 -#: includes/modules/Gzip/GzipModule.php:79
1680 -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."
1681 1917 msgstr ""
1682 1918
1683 -#: includes/modules/Gzip/GzipModule.php:154
1919 +#: includes/modules/Gzip/GzipModule.php:155
1684 1920 msgid "GZIP requires server config on nginx"
1685 1921 msgstr ""
1686 1922
1687 -#: includes/modules/Gzip/GzipModule.php:155
1923 +#: includes/modules/Gzip/GzipModule.php:156
1688 1924 msgid "GZIP is being served by nginx"
1689 1925 msgstr ""
1690 1926
1691 -#: includes/modules/Gzip/GzipModule.php:157
1927 +#: includes/modules/Gzip/GzipModule.php:158
1692 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."
1693 1929 msgstr ""
1694 1930
1695 -#: includes/modules/Gzip/GzipModule.php:158
1931 +#: includes/modules/Gzip/GzipModule.php:159
1696 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."
1697 1933 msgstr ""
1698 1934
1699 -#: includes/modules/Gzip/GzipModule.php:186
1935 +#: includes/modules/Gzip/GzipModule.php:187
1700 1936 msgid "GZIP enabled but not active on the server"
1701 1937 msgstr ""
1702 1938
1703 -#: includes/modules/Gzip/GzipModule.php:187
1939 +#: includes/modules/Gzip/GzipModule.php:188
1704 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."
1705 1941 msgstr ""
1706 1942
1707 -#: includes/modules/Gzip/GzipModule.php:197
1943 +#: includes/modules/Gzip/GzipModule.php:198
1708 1944 msgid "GZIP requires server config on this server"
1709 1945 msgstr ""
1710 1946
1711 -#: includes/modules/Gzip/GzipModule.php:198
1947 +#: includes/modules/Gzip/GzipModule.php:199
1712 1948 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
1713 1949 msgstr ""
1714 1950
1715 -#: includes/modules/Health/HealthModule.php:66
1951 +#: includes/modules/Health/HealthModule.php:76
1716 1952 msgid "xSpeed static-rewrite cache"
1717 1953 msgstr ""
1718 1954
1719 -#: includes/modules/Health/HealthModule.php:125
1955 +#: includes/modules/Health/HealthModule.php:135
1720 1956 msgid "xSpeed static-rewrite cache is active"
1721 1957 msgstr ""
1722 1958
1723 -#: includes/modules/Health/HealthModule.php:128
1959 +#: includes/modules/Health/HealthModule.php:138
1724 1960 #: assets/admin.js
1725 1961 msgid "Performance"
1726 1962 msgstr ""
1727 1963
1728 -#: includes/modules/Health/HealthModule.php:131
1964 +#: includes/modules/Health/HealthModule.php:141
1729 1965 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1730 1966 msgstr ""
1731 1967
1732 -#: includes/modules/Health/HealthModule.php:137
1968 +#: includes/modules/Health/HealthModule.php:147
1733 1969 msgid "xSpeed cache is disabled"
1734 1970 msgstr ""
1735 1971
1736 -#: includes/modules/Health/HealthModule.php:139
1972 +#: includes/modules/Health/HealthModule.php:149
1737 1973 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1738 1974 msgstr ""
1739 1975
1740 -#: includes/modules/Health/HealthModule.php:155
1976 +#: includes/modules/Health/HealthModule.php:165
1741 1977 msgid "xSpeed is serving cache hits through PHP (LiteSpeed)"
1742 1978 msgstr ""
1743 1979
1744 -#: includes/modules/Health/HealthModule.php:157
1980 +#: includes/modules/Health/HealthModule.php:167
1745 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."
1746 1982 msgstr ""
1747 1983
1748 -#: includes/modules/Health/HealthModule.php:159
1984 +#: includes/modules/Health/HealthModule.php:169
1749 1985 msgid "xSpeed is serving cache hits through PHP"
1750 1986 msgstr ""
1751 1987
1752 -#: includes/modules/Health/HealthModule.php:161
1988 +#: includes/modules/Health/HealthModule.php:171
1753 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."
1754 1990 msgstr ""
1755 1991
1756 -#: includes/modules/Health/HealthModule.php:163
1757 -#: includes/modules/Health/HealthModule.php:202
1992 +#: includes/modules/Health/HealthModule.php:173
1993 +#: includes/modules/Health/HealthModule.php:212
1758 1994 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1759 1995 msgstr ""
1760 1996
1761 -#: includes/modules/Health/HealthModule.php:165
1762 -#: includes/modules/Health/HealthModule.php:204
1997 +#: includes/modules/Health/HealthModule.php:175
1998 +#: includes/modules/Health/HealthModule.php:214
1763 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."
1764 2000 msgstr ""
1765 2001
1766 -#: includes/modules/Health/HealthModule.php:169
2002 +#: includes/modules/Health/HealthModule.php:179
1767 2003 msgid "xSpeed .htaccess rewrite block is missing"
1768 2004 msgstr ""
1769 2005
1770 -#: includes/modules/Health/HealthModule.php:171
2006 +#: includes/modules/Health/HealthModule.php:181
1771 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."
1772 2008 msgstr ""
1773 2009
1774 -#: includes/modules/Health/HealthModule.php:196
2010 +#: includes/modules/Health/HealthModule.php:206
1775 2011 msgid "xSpeed nginx static rewrite is active"
1776 2012 msgstr ""
1777 2013
1778 -#: includes/modules/Health/HealthModule.php:198
2014 +#: includes/modules/Health/HealthModule.php:208
1779 2015 msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
1780 2016 msgstr ""
1781 2017
1782 -#: includes/modules/Health/HealthModule.php:208
2018 +#: includes/modules/Health/HealthModule.php:218
1783 2019 msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
1784 2020 msgstr ""
1785 2021
1786 -#: includes/modules/Health/HealthModule.php:210
2022 +#: includes/modules/Health/HealthModule.php:220
1787 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."
1788 2024 msgstr ""
1789 2025
1790 -#: includes/modules/Health/HealthModule.php:219
2026 +#: includes/modules/Health/HealthModule.php:229
1791 2027 msgid "xSpeed could not verify the nginx static rewrite"
1792 2028 msgstr ""
1793 2029
1794 2030 #. translators: %s: the reason the probe could not complete.
1795 -#: includes/modules/Health/HealthModule.php:224
2031 +#: includes/modules/Health/HealthModule.php:234
1796 2032 #, php-format
1797 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"
1798 2034 msgstr ""
1799 2035
1800 -#: includes/modules/Health/HealthModule.php:232
2036 +#: includes/modules/Health/HealthModule.php:242
1801 2037 msgid "xSpeed nginx server config required"
1802 2038 msgstr ""
1803 2039
1804 -#: includes/modules/Health/HealthModule.php:234
2040 +#: includes/modules/Health/HealthModule.php:244
1805 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:"
1806 2042 msgstr ""
1807 2043
1808 -#: includes/modules/Health/HealthModule.php:243
2044 +#: includes/modules/Health/HealthModule.php:253
1809 2045 msgid "xSpeed PHP drop-in cache active"
1810 2046 msgstr ""
1811 2047
1812 -#: includes/modules/Health/HealthModule.php:245
2048 +#: includes/modules/Health/HealthModule.php:255
1813 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."
1814 2050 msgstr ""
1815 2051
1816 -#: includes/modules/Health/HealthModule.php:251
2052 +#: includes/modules/Health/HealthModule.php:261
1817 2053 msgid "Health"
1818 2054 msgstr ""
1819 2055
1820 -#: includes/modules/Health/HealthModule.php:253
1821 -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."
1822 2058 msgstr ""
1823 2059
1824 2060 #: includes/modules/Heartbeat/HeartbeatModule.php:38
1825 2061 msgid "Heartbeat"
@@ -1825,41 +2061,41 @@
1825 2061 msgid "Heartbeat"
1826 2062 msgstr ""
1827 2063
1828 2064 #: includes/modules/Heartbeat/HeartbeatModule.php:40
1829 -msgid "Control the WordPress Heartbeat API per context."
2065 +msgid "Controls how often WordPress checks in with your server in the background."
1830 2066 msgstr ""
1831 2067
1832 -#: includes/modules/Heartbeat/HeartbeatModule.php:64
2068 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1833 2069 msgid "Dashboard"
1834 2070 msgstr ""
1835 2071
1836 -#: includes/modules/Heartbeat/HeartbeatModule.php:65
1837 -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."
1838 2074 msgstr ""
1839 2075
1840 -#: includes/modules/Heartbeat/HeartbeatModule.php:72
2076 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1841 2077 msgid "Editor"
1842 2078 msgstr ""
1843 2079
1844 -#: includes/modules/Heartbeat/HeartbeatModule.php:73
1845 -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."
1846 2082 msgstr ""
1847 2083
1848 -#: includes/modules/Heartbeat/HeartbeatModule.php:80
2084 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1849 2085 msgid "Frontend"
1850 2086 msgstr ""
1851 2087
1852 -#: includes/modules/Heartbeat/HeartbeatModule.php:81
1853 -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."
1854 2090 msgstr ""
1855 2091
1856 -#: includes/modules/Heartbeat/HeartbeatModule.php:88
1857 -msgid "Throttle Frequency"
2092 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
2093 +msgid "Throttle interval"
1858 2094 msgstr ""
1859 2095
1860 -#: includes/modules/Heartbeat/HeartbeatModule.php:89
1861 -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."
1862 2098 msgstr ""
1863 2099
1864 2100 #: includes/modules/Lazy/LazyModule.php:42
1865 2101 msgid "Media Optimization"
@@ -1869,75 +2105,83 @@
1869 2105 msgid "Lazy Loading"
1870 2106 msgstr ""
1871 2107
1872 2108 #: includes/modules/Lazy/LazyModule.php:45
1873 -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."
1874 2110 msgstr ""
1875 2111
1876 -#: includes/modules/Lazy/LazyModule.php:59
1877 -msgid "Lazy-load Images"
1878 -msgstr ""
1879 -
1880 2112 #: includes/modules/Lazy/LazyModule.php:60
1881 -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"
1882 2114 msgstr ""
1883 2115
1884 -#: includes/modules/Lazy/LazyModule.php:65
1885 -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."
1886 2118 msgstr ""
1887 2119
1888 2120 #: includes/modules/Lazy/LazyModule.php:66
1889 -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"
1890 2122 msgstr ""
1891 2123
1892 -#: includes/modules/Lazy/LazyModule.php:71
1893 -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."
1894 2126 msgstr ""
1895 2127
1896 2128 #: includes/modules/Lazy/LazyModule.php:72
1897 -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"
1898 2130 msgstr ""
1899 2131
1900 -#: includes/modules/Lazy/LazyModule.php:77
1901 -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."
1902 2134 msgstr ""
1903 2135
1904 2136 #: includes/modules/Lazy/LazyModule.php:78
1905 -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"
1906 2138 msgstr ""
1907 2139
1908 -#: includes/modules/Lazy/LazyModule.php:83
1909 -msgid "Lazy-load Background 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."
1910 2142 msgstr ""
1911 2143
1912 2144 #: includes/modules/Lazy/LazyModule.php:84
1913 -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."
2145 +msgid "Start autoplay videos after page load"
1914 2146 msgstr ""
1915 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 +
1916 2152 #: includes/modules/Lazy/LazyModule.php:91
1917 -msgid "Eager-load First N Images"
2153 +msgid "Lazy-load background images"
1918 2154 msgstr ""
1919 2155
1920 2156 #: includes/modules/Lazy/LazyModule.php:92
1921 -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. Lazy-loaded background images use the same number."
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."
1922 2158 msgstr ""
1923 2159
1924 -#: includes/modules/Lazy/LazyModule.php:97
1925 -msgid "Add Missing Image Dimensions"
2160 +#: includes/modules/Lazy/LazyModule.php:99
2161 +msgid "Images to load right away"
1926 2162 msgstr ""
1927 2163
1928 -#: includes/modules/Lazy/LazyModule.php:98
1929 -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."
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."
1930 2166 msgstr ""
1931 2167
1932 -#: includes/modules/Lazy/LazyModule.php:104
1933 -msgid "Excluded Images"
2168 +#: includes/modules/Lazy/LazyModule.php:114
2169 +msgid "Add missing image sizes"
1934 2170 msgstr ""
1935 2171
1936 -#: includes/modules/Lazy/LazyModule.php:105
1937 -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."
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."
1938 2174 msgstr ""
1939 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 +
1940 2184 #. translators: %s: command name.
1941 2185 #: includes/modules/Mcp/Cli_Bridge.php:128
1942 2186 #, php-format
1943 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
@@ -1942,92 +2186,106 @@
1942 2186 #, php-format
1943 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
1944 2188 msgstr ""
1945 2189
1946 -#: includes/modules/Mcp/McpModule.php:149
2190 +#: includes/modules/Mcp/McpModule.php:159
1947 2191 #: assets/admin.js
1948 2192 msgid "MCP Server"
1949 2193 msgstr ""
1950 2194
1951 -#: includes/modules/Mcp/McpModule.php:151
1952 -msgid "Let Claude or another AI agent run this site — purge, check stats, change settings. This is the only thing you connect an AI to, and it is free with no API key."
2195 +#: includes/modules/Mcp/McpModule.php:161
2196 +msgid "Let Claude or another AI assistant clear the cache, check stats and change settings."
1953 2197 msgstr ""
1954 2198
1955 -#: includes/modules/Mcp/McpModule.php:440
2199 +#: includes/modules/Mcp/McpModule.php:491
1956 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."
1957 2201 msgstr ""
1958 2202
1959 -#: includes/modules/Mcp/McpModule.php:1307
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
1960 2208 msgid "Invalid or expired attach request."
1961 2209 msgstr ""
1962 2210
1963 -#: includes/modules/Mcp/McpModule.php:1423
2211 +#: includes/modules/Mcp/McpModule.php:1570
1964 2212 msgid "You must be an administrator to authorize an AI agent to control this site."
1965 2213 msgstr ""
1966 2214
1967 -#: includes/modules/Mcp/McpModule.php:1430
2215 +#: includes/modules/Mcp/McpModule.php:1577
1968 2216 msgid "Security check failed. Please try connecting again."
1969 2217 msgstr ""
1970 2218
1971 -#: includes/modules/Mcp/McpModule.php:1557
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
1972 2225 msgid "Read-only — inspect cache status and settings."
1973 2226 msgstr ""
1974 2227
1975 -#: includes/modules/Mcp/McpModule.php:1558
2228 +#: includes/modules/Mcp/McpModule.php:1768
1976 2229 msgid "Read & write — purge caches, toggle caching, and change settings."
1977 2230 msgstr ""
1978 2231
1979 -#: includes/modules/Mcp/McpModule.php:1559
2232 +#: includes/modules/Mcp/McpModule.php:1769
1980 2233 msgid "An AI agent"
1981 2234 msgstr ""
1982 2235
1983 -#: includes/modules/Mcp/McpModule.php:1578
2236 +#: includes/modules/Mcp/McpModule.php:1788
1984 2237 msgid "Authorize AI access"
1985 2238 msgstr ""
1986 2239
1987 -#: includes/modules/Mcp/McpModule.php:1589
2240 +#: includes/modules/Mcp/McpModule.php:1790
1988 2241 msgid "Connect to xSpeed"
1989 2242 msgstr ""
1990 2243
1991 2244 #. translators: %s: AI client name.
1992 -#: includes/modules/Mcp/McpModule.php:1591
2245 +#: includes/modules/Mcp/McpModule.php:1792
1993 2246 #, php-format
1994 2247 msgid "%s wants to manage the cache on this site."
1995 2248 msgstr ""
1996 2249
1997 -#: includes/modules/Mcp/McpModule.php:1592
2250 +#: includes/modules/Mcp/McpModule.php:1793
2251 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:205
1998 2252 msgid "Site"
1999 2253 msgstr ""
2000 2254
2001 -#: includes/modules/Mcp/McpModule.php:1593
2255 +#: includes/modules/Mcp/McpModule.php:1794
2256 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:210
2002 2257 msgid "Signed in as"
2003 2258 msgstr ""
2004 2259
2005 -#: includes/modules/Mcp/McpModule.php:1594
2260 +#: includes/modules/Mcp/McpModule.php:1795
2261 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:211
2006 2262 msgid "Access"
2007 2263 msgstr ""
2008 2264
2009 -#: includes/modules/Mcp/McpModule.php:1599
2265 +#: includes/modules/Mcp/McpModule.php:1800
2266 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:219
2010 2267 msgid "Deny"
2011 2268 msgstr ""
2012 2269
2013 -#: includes/modules/Mcp/McpModule.php:1600
2270 +#: includes/modules/Mcp/McpModule.php:1801
2271 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:220
2014 2272 msgid "Approve"
2015 2273 msgstr ""
2016 2274
2017 -#: includes/modules/Mcp/McpModule.php:1610
2275 +#: includes/modules/Mcp/McpModule.php:1811
2018 2276 msgid "Authorization error"
2019 2277 msgstr ""
2020 2278
2021 -#: includes/modules/Mcp/McpModule.php:1613
2279 +#: includes/modules/Mcp/McpModule.php:1814
2022 2280 msgid "Could not authorize"
2023 2281 msgstr ""
2024 2282
2025 -#: includes/modules/Mcp/McpModule.php:1843
2283 +#: includes/modules/Mcp/McpModule.php:2044
2026 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."
2027 2285 msgstr ""
2028 2286
2029 -#: includes/modules/Mcp/McpModule.php:1844
2287 +#: includes/modules/Mcp/McpModule.php:2045
2030 2288 msgid "No AI assistant is connected. This module counts as on once you connect one."
2031 2289 msgstr ""
2032 2290
2033 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -2033,21 +2291,62 @@
2033 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
2034 2292 msgid "Too many failed attempts. Try again later."
2035 2293 msgstr ""
2036 2294
2037 -#: includes/modules/Mcp/Mcp_Hub.php:771
2295 +#: includes/modules/Mcp/Mcp_Hub.php:983
2038 2296 msgid "Connect this site to xSpeed Hub to run a free speed test."
2039 2297 msgstr ""
2040 2298
2041 -#: includes/modules/Mcp/Mcp_Hub.php:797
2299 +#: includes/modules/Mcp/Mcp_Hub.php:1013
2042 2300 msgid "Could not reach xSpeed Hub. Please try again."
2043 2301 msgstr ""
2044 2302
2045 -#: includes/modules/Mcp/Mcp_Hub.php:820
2303 +#: includes/modules/Mcp/Mcp_Hub.php:1036
2046 2304 #: assets/admin.js
2047 2305 msgid "The test could not be started."
2048 2306 msgstr ""
2049 2307
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 +
2050 2349 #: includes/modules/Mcp/Mcp_OAuth.php:261
2051 2350 msgid "Too many client registrations. Try again later."
2052 2351 msgstr ""
2053 2352
@@ -2084,155 +2383,182 @@
2084 2383 #: includes/modules/Mcp/Mcp_OAuth.php:395
2085 2384 msgid "PKCE with code_challenge_method=S256 is required."
2086 2385 msgstr ""
2087 2386
2088 -#: includes/modules/Mcp/Mcp_Pairing.php:451
2387 +#: includes/modules/Mcp/Mcp_Pairing.php:474
2089 2388 msgid "No active MCP connection to change. Connect first."
2090 2389 msgstr ""
2091 2390
2092 2391 #. translators: %s: tool name.
2093 -#: includes/modules/Mcp/Mcp_Tools.php:931
2392 +#: includes/modules/Mcp/Mcp_Tools.php:996
2393 +#: includes/modules/Mcp/Mcp_Tools.php:1034
2094 2394 #, php-format
2095 2395 msgid "Unknown tool: %s"
2096 2396 msgstr ""
2097 2397
2098 2398 #. translators: %s: tool name.
2099 -#: includes/modules/Mcp/Mcp_Tools.php:959
2399 +#: includes/modules/Mcp/Mcp_Tools.php:1055
2100 2400 #, php-format
2101 2401 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
2102 2402 msgstr ""
2103 2403
2104 2404 #. translators: %s: comma-separated list of valid purge types.
2105 -#: includes/modules/Mcp/Mcp_Tools.php:1240
2405 +#: includes/modules/Mcp/Mcp_Tools.php:1439
2106 2406 #, php-format
2107 2407 msgid "Invalid purge type. Expected one of: %s"
2108 2408 msgstr ""
2109 2409
2110 -#: includes/modules/Mcp/Mcp_Tools.php:1249
2111 -#: includes/modules/Mcp/Mcp_Tools.php:2261
2410 +#: includes/modules/Mcp/Mcp_Tools.php:1448
2411 +#: includes/modules/Mcp/Mcp_Tools.php:2798
2112 2412 msgid "AI assistant"
2113 2413 msgstr ""
2114 2414
2115 -#: includes/modules/Mcp/Mcp_Tools.php:1298
2415 +#: includes/modules/Mcp/Mcp_Tools.php:1497
2116 2416 msgid "The \"enabled\" parameter is required (true or false)."
2117 2417 msgstr ""
2118 2418
2119 -#: includes/modules/Mcp/Mcp_Tools.php:1378
2120 -#: includes/modules/Mcp/Mcp_Tools.php:1432
2419 +#: includes/modules/Mcp/Mcp_Tools.php:1577
2420 +#: includes/modules/Mcp/Mcp_Tools.php:1631
2121 2421 msgid "The \"module\" parameter is required."
2122 2422 msgstr ""
2123 2423
2124 2424 #. translators: %s: module slug.
2125 -#: includes/modules/Mcp/Mcp_Tools.php:1387
2126 -#: includes/modules/Mcp/Mcp_Tools.php:1448
2425 +#: includes/modules/Mcp/Mcp_Tools.php:1586
2426 +#: includes/modules/Mcp/Mcp_Tools.php:1647
2127 2427 #, php-format
2128 2428 msgid "Unknown module \"%s\"."
2129 2429 msgstr ""
2130 2430
2131 -#: includes/modules/Mcp/Mcp_Tools.php:1439
2431 +#: includes/modules/Mcp/Mcp_Tools.php:1638
2132 2432 msgid "The \"values\" parameter must be an object of setting keys."
2133 2433 msgstr ""
2134 2434
2135 2435 #. translators: 1: comma-separated field names, 2: module slug.
2136 -#: includes/modules/Mcp/Mcp_Tools.php:1467
2436 +#: includes/modules/Mcp/Mcp_Tools.php:1666
2137 2437 #, php-format
2138 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."
2139 2439 msgstr ""
2140 2440
2141 2441 #. translators: %s: module slug.
2142 -#: includes/modules/Mcp/Mcp_Tools.php:1499
2442 +#: includes/modules/Mcp/Mcp_Tools.php:1698
2143 2443 #, php-format
2144 2444 msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
2145 2445 msgstr ""
2146 2446
2147 2447 #. translators: %s: module slug.
2148 -#: includes/modules/Mcp/Mcp_Tools.php:1509
2448 +#: includes/modules/Mcp/Mcp_Tools.php:1708
2149 2449 #, php-format
2150 2450 msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
2151 2451 msgstr ""
2152 2452
2153 2453 #. translators: 1: setting key, 2: wp-config.php constant name.
2154 -#: includes/modules/Mcp/Mcp_Tools.php:1578
2454 +#: includes/modules/Mcp/Mcp_Tools.php:1777
2155 2455 #, php-format
2156 2456 msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
2157 2457 msgstr ""
2158 2458
2159 2459 #. translators: 1: setting key, 2: module slug.
2160 -#: includes/modules/Mcp/Mcp_Tools.php:1586
2460 +#: includes/modules/Mcp/Mcp_Tools.php:1785
2161 2461 #, php-format
2162 2462 msgid "\"%1$s\" is not a setting of module \"%2$s\""
2163 2463 msgstr ""
2164 2464
2165 2465 #. translators: %s: comma-separated setting names.
2166 -#: includes/modules/Mcp/Mcp_Tools.php:1598
2466 +#: includes/modules/Mcp/Mcp_Tools.php:1797
2167 2467 #, php-format
2168 2468 msgid " — did you mean: %s?"
2169 2469 msgstr ""
2170 2470
2171 2471 #. translators: %s: setting key.
2172 -#: includes/modules/Mcp/Mcp_Tools.php:1608
2472 +#: includes/modules/Mcp/Mcp_Tools.php:1807
2173 2473 #, php-format
2174 2474 msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
2175 2475 msgstr ""
2176 2476
2177 2477 #. translators: 1: module slug, 2: reasons.
2178 -#: includes/modules/Mcp/Mcp_Tools.php:1617
2478 +#: includes/modules/Mcp/Mcp_Tools.php:1816
2179 2479 #, php-format
2180 2480 msgid "Refused to update %1$s — nothing was written. %2$s"
2181 2481 msgstr ""
2182 2482
2183 -#: includes/modules/Mcp/Mcp_Tools.php:1653
2483 +#: includes/modules/Mcp/Mcp_Tools.php:1852
2184 2484 msgid "The \"command\" parameter is required."
2185 2485 msgstr ""
2186 2486
2187 -#: includes/modules/Mcp/Mcp_Tools.php:1704
2487 +#: includes/modules/Mcp/Mcp_Tools.php:1903
2188 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."
2189 2489 msgstr ""
2190 2490
2191 -#: 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
2192 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."
2193 2505 msgstr ""
2194 2506
2195 -#: includes/modules/Mcp/Mcp_Tools.php:1809
2196 -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"
2197 2511 msgstr ""
2198 2512
2199 -#: includes/modules/Mcp/Mcp_Tools.php:1817
2200 -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"
2201 2517 msgstr ""
2202 2518
2203 -#: includes/modules/Mcp/Mcp_Tools.php:2081
2204 -#: 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
2205 2527 msgid "The enabled argument is required."
2206 2528 msgstr ""
2207 2529
2208 -#: includes/modules/Mcp/Mcp_Tools.php:2085
2209 -#: includes/modules/Mcp/Mcp_Tools.php:2125
2530 +#: includes/modules/Mcp/Mcp_Tools.php:2615
2531 +#: includes/modules/Mcp/Mcp_Tools.php:2655
2210 2532 msgid "The enabled argument must be true or false."
2211 2533 msgstr ""
2212 2534
2213 -#: includes/modules/Mcp/Mcp_Tools.php:2139
2535 +#: includes/modules/Mcp/Mcp_Tools.php:2676
2214 2536 msgid "The action argument must be \"list\" or \"clear\"."
2215 2537 msgstr ""
2216 2538
2217 -#: includes/modules/Mcp/Mcp_Tools.php:2178
2539 +#: includes/modules/Mcp/Mcp_Tools.php:2715
2218 2540 msgid "External scores are not available on this site."
2219 2541 msgstr ""
2220 2542
2221 -#: includes/modules/Mcp/Mcp_Tools.php:2259
2543 +#: includes/modules/Mcp/Mcp_Tools.php:2796
2222 2544 msgid "The url argument is required."
2223 2545 msgstr ""
2224 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 +
2225 2551 #: includes/modules/Migration/MigrationModule.php:30
2226 2552 msgid "Migration"
2227 2553 msgstr ""
2228 2554
2229 2555 #: includes/modules/Migration/MigrationModule.php:32
2230 -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."
2231 2557 msgstr ""
2232 2558
2233 2559 #. translators: %d: number of detected caching plugins.
2234 -#: includes/modules/Migration/MigrationModule.php:210
2560 +#: includes/modules/Migration/MigrationModule.php:211
2235 2561 #, php-format
2236 2562 msgid "Migrate to %1$s — %2$d caching plugin detected"
2237 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2238 2564 msgstr[0] ""
@@ -2237,32 +2563,32 @@
2237 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2238 2564 msgstr[0] ""
2239 2565 msgstr[1] ""
2240 2566
2241 -#: includes/modules/Migration/MigrationModule.php:265
2567 +#: includes/modules/Migration/MigrationModule.php:266
2242 2568 msgid "Speed guarantee"
2243 2569 msgstr ""
2244 2570
2245 -#: includes/modules/Migration/MigrationModule.php:310
2571 +#: includes/modules/Migration/MigrationModule.php:311
2246 2572 msgid "Dismiss this notice"
2247 2573 msgstr ""
2248 2574
2249 -#: includes/modules/Migration/MigrationModule.php:331
2575 +#: includes/modules/Migration/MigrationModule.php:332
2250 2576 msgid "Guaranteed faster load times — or we'll tune it for you, free."
2251 2577 msgstr ""
2252 2578
2253 -#: includes/modules/Migration/MigrationModule.php:332
2579 +#: includes/modules/Migration/MigrationModule.php:333
2254 2580 msgid "Faster load times, without configuring anything by hand."
2255 2581 msgstr ""
2256 2582
2257 2583 #. translators: %s: brand name, e.g. xSpeed Cache.
2258 -#: includes/modules/Migration/MigrationModule.php:345
2584 +#: includes/modules/Migration/MigrationModule.php:346
2259 2585 #, php-format
2260 2586 msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2261 2587 msgstr ""
2262 2588
2263 2589 #. translators: 1: detected plugin name, 2: number of settings.
2264 -#: includes/modules/Migration/MigrationModule.php:355
2590 +#: includes/modules/Migration/MigrationModule.php:356
2265 2591 #, php-format
2266 2592 msgid "%1$s detected · %2$d setting ready to import"
2267 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2268 2594 msgstr[0] ""
@@ -2267,30 +2593,30 @@
2267 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2268 2594 msgstr[0] ""
2269 2595 msgstr[1] ""
2270 2596
2271 -#: includes/modules/Migration/MigrationModule.php:375
2597 +#: includes/modules/Migration/MigrationModule.php:376
2272 2598 msgid "Prefer we handle it? Book a call"
2273 2599 msgstr ""
2274 2600
2275 2601 #. translators: %s: brand name.
2276 -#: includes/modules/Migration/MigrationModule.php:383
2602 +#: includes/modules/Migration/MigrationModule.php:384
2277 2603 #, php-format
2278 2604 msgid "Migrate to %s"
2279 2605 msgstr ""
2280 2606
2281 2607 #. translators: %s: detected plugin name.
2282 -#: includes/modules/Migration/MigrationModule.php:399
2608 +#: includes/modules/Migration/MigrationModule.php:400
2283 2609 #, php-format
2284 2610 msgid "Migrating deactivates %s"
2285 2611 msgstr ""
2286 2612
2287 -#: includes/modules/Migration/MigrationModule.php:404
2613 +#: includes/modules/Migration/MigrationModule.php:405
2288 2614 msgid "View migration details"
2289 2615 msgstr ""
2290 2616
2291 2617 #. translators: %d: number of settings imported.
2292 -#: includes/modules/Migration/MigrationModule.php:422
2618 +#: includes/modules/Migration/MigrationModule.php:423
2293 2619 #, php-format
2294 2620 msgid "imports %d setting"
2295 2621 msgid_plural "imports %d settings"
2296 2622 msgstr[0] ""
@@ -2295,341 +2621,337 @@
2295 2621 msgid_plural "imports %d settings"
2296 2622 msgstr[0] ""
2297 2623 msgstr[1] ""
2298 2624
2299 -#: includes/modules/Migration/MigrationModule.php:428
2625 +#: includes/modules/Migration/MigrationModule.php:429
2300 2626 msgid "Migrate"
2301 2627 msgstr ""
2302 2628
2303 -#: includes/modules/Migration/MigrationModule.php:548
2304 -#: includes/modules/Minify/MinifyModule.php:36
2629 +#: includes/modules/Migration/MigrationModule.php:549
2630 +#: includes/modules/Minify/MinifyModule.php:37
2305 2631 msgid "Minify"
2306 2632 msgstr ""
2307 2633
2308 -#: includes/modules/Migration/MigrationModule.php:549
2634 +#: includes/modules/Migration/MigrationModule.php:550
2309 2635 msgid "Lazy Load"
2310 2636 msgstr ""
2311 2637
2312 -#: includes/modules/Migration/MigrationModule.php:550
2638 +#: includes/modules/Migration/MigrationModule.php:551
2313 2639 #: includes/modules/Preloader/PreloaderModule.php:32
2314 2640 msgid "Preloader"
2315 2641 msgstr ""
2316 2642
2317 -#: includes/modules/Migration/MigrationModule.php:552
2318 -#: includes/modules/ObjectCache/ObjectCacheModule.php:32
2643 +#: includes/modules/Migration/MigrationModule.php:553
2644 +#: includes/modules/ObjectCache/ObjectCacheModule.php:33
2319 2645 msgid "Object Cache"
2320 2646 msgstr ""
2321 2647
2322 -#: includes/modules/Migration/MigrationModule.php:554
2648 +#: includes/modules/Migration/MigrationModule.php:555
2323 2649 msgid "Bloat Removal"
2324 2650 msgstr ""
2325 2651
2326 -#: includes/modules/Migration/MigrationModule.php:579
2652 +#: includes/modules/Migration/MigrationModule.php:580
2327 2653 msgid "You do not have permission to migrate settings."
2328 2654 msgstr ""
2329 2655
2330 -#: includes/modules/Migration/MigrationModule.php:585
2656 +#: includes/modules/Migration/MigrationModule.php:586
2331 2657 msgid "No source selected."
2332 2658 msgstr ""
2333 2659
2334 -#: includes/modules/Migration/MigrationModule.php:617
2660 +#: includes/modules/Migration/MigrationModule.php:618
2335 2661 msgid "it could not be enabled"
2336 2662 msgstr ""
2337 2663
2338 -#: includes/modules/Migration/MigrationModule.php:702
2664 +#: includes/modules/Migration/MigrationModule.php:703
2339 2665 msgid "Migrating…"
2340 2666 msgstr ""
2341 2667
2342 -#: includes/modules/Migration/MigrationModule.php:719
2668 +#: includes/modules/Migration/MigrationModule.php:720
2343 2669 msgid "Migration failed."
2344 2670 msgstr ""
2345 2671
2346 -#: includes/modules/Migration/MigrationModule.php:722
2672 +#: includes/modules/Migration/MigrationModule.php:723
2347 2673 msgid "the source plugin"
2348 2674 msgstr ""
2349 2675
2350 -#: includes/modules/Migration/MigrationModule.php:723
2676 +#: includes/modules/Migration/MigrationModule.php:724
2351 2677 msgid "Review imported settings"
2352 2678 msgstr ""
2353 2679
2354 -#: includes/modules/Migration/MigrationModule.php:734
2355 -#: includes/modules/Migration/MigrationModule.php:745
2356 -#: 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
2357 2683 msgid "settings are now running in xSpeed."
2358 2684 msgstr ""
2359 2685
2360 -#: includes/modules/Migration/MigrationModule.php:736
2361 -#: includes/modules/Migration/MigrationModule.php:746
2686 +#: includes/modules/Migration/MigrationModule.php:737
2687 +#: includes/modules/Migration/MigrationModule.php:747
2362 2688 msgid "It has been switched off, so the two page caches cannot conflict."
2363 2689 msgstr ""
2364 2690
2365 -#: includes/modules/Migration/MigrationModule.php:737
2691 +#: includes/modules/Migration/MigrationModule.php:738
2366 2692 msgid "It is still active — switch it off when you are ready."
2367 2693 msgstr ""
2368 2694
2369 -#: includes/modules/Migration/MigrationModule.php:738
2695 +#: includes/modules/Migration/MigrationModule.php:739
2370 2696 msgid "Skipped:"
2371 2697 msgstr ""
2372 2698
2373 -#: includes/modules/Migration/MigrationModule.php:754
2699 +#: includes/modules/Migration/MigrationModule.php:755
2374 2700 msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2375 2701 msgstr ""
2376 2702
2377 -#: includes/modules/Migration/MigrationModule.php:763
2703 +#: includes/modules/Migration/MigrationModule.php:764
2378 2704 msgid "Migration could not finish."
2379 2705 msgstr ""
2380 2706
2381 -#: includes/modules/Migration/MigrationModule.php:764
2707 +#: includes/modules/Migration/MigrationModule.php:765
2382 2708 msgid "Nothing was changed — you can try again."
2383 2709 msgstr ""
2384 2710
2385 2711 #. translators: %s: source plugin label.
2386 -#: includes/modules/Migration/MigrationModule.php:997
2712 +#: includes/modules/Migration/MigrationModule.php:998
2387 2713 #, php-format
2388 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."
2389 2715 msgstr ""
2390 2716
2391 2717 #. translators: %s: source plugin label.
2392 -#: includes/modules/Migration/MigrationModule.php:1002
2718 +#: includes/modules/Migration/MigrationModule.php:1003
2393 2719 #, php-format
2394 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."
2395 2721 msgstr ""
2396 2722
2397 -#: includes/modules/Minify/MinifyModule.php:35
2723 +#: includes/modules/Minify/MinifyModule.php:36
2398 2724 msgid "CSS & JavaScript"
2399 2725 msgstr ""
2400 2726
2401 -#: includes/modules/Minify/MinifyModule.php:38
2402 -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."
2403 2729 msgstr ""
2404 2730
2405 -#: includes/modules/Minify/MinifyModule.php:51
2731 +#: includes/modules/Minify/MinifyModule.php:53
2406 2732 msgid "Minify HTML"
2407 2733 msgstr ""
2408 2734
2409 -#: includes/modules/Minify/MinifyModule.php:56
2410 -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."
2411 2737 msgstr ""
2412 2738
2413 -#: includes/modules/Minify/MinifyModule.php:61
2739 +#: includes/modules/Minify/MinifyModule.php:63
2414 2740 msgid "Minify CSS"
2415 2741 msgstr ""
2416 2742
2417 -#: includes/modules/Minify/MinifyModule.php:62
2418 -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."
2419 2745 msgstr ""
2420 2746
2421 -#: includes/modules/Minify/MinifyModule.php:67
2747 +#: includes/modules/Minify/MinifyModule.php:69
2422 2748 msgid "Minify JavaScript"
2423 2749 msgstr ""
2424 2750
2425 -#: includes/modules/Minify/MinifyModule.php:68
2426 -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."
2427 2753 msgstr ""
2428 2754
2429 -#: includes/modules/Minify/MinifyModule.php:73
2755 +#: includes/modules/Minify/MinifyModule.php:75
2430 2756 msgid "Defer JavaScript"
2431 2757 msgstr ""
2432 2758
2433 -#: includes/modules/Minify/MinifyModule.php:74
2434 -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."
2435 2761 msgstr ""
2436 2762
2437 -#: includes/modules/Minify/MinifyModule.php:79
2438 -msgid "Delay JavaScript Until Interaction"
2763 +#: includes/modules/Minify/MinifyModule.php:81
2764 +msgid "Delay JavaScript"
2439 2765 msgstr ""
2440 2766
2441 -#: includes/modules/Minify/MinifyModule.php:80
2442 -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. Cookie-consent banners (CookieYes, Complianz, Cookiebot, NotificationX, Cookie Notice, Borlabs, Real Cookie Banner and others) are not delayed, so the visitor is still asked before anything else runs. To delay one on purpose, name it in Delay Only These Scripts."
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."
2443 2769 msgstr ""
2444 2770
2445 -#: includes/modules/Minify/MinifyModule.php:85
2446 -msgid "Load CSS Asynchronously"
2771 +#: includes/modules/Minify/MinifyModule.php:87
2772 +msgid "Load CSS without blocking"
2447 2773 msgstr ""
2448 2774
2449 -#: includes/modules/Minify/MinifyModule.php:86
2450 -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."
2451 2777 msgstr ""
2452 2778
2453 -#: includes/modules/Minify/MinifyModule.php:91
2454 -msgid "Remove Asset Query Strings"
2779 +#: includes/modules/Minify/MinifyModule.php:93
2780 +msgid "Remove version from file URLs"
2455 2781 msgstr ""
2456 2782
2457 -#: includes/modules/Minify/MinifyModule.php:92
2458 -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."
2459 2785 msgstr ""
2460 2786
2461 -#: includes/modules/Minify/MinifyModule.php:98
2462 -msgid "Defer / Delay Exclusions"
2787 +#: includes/modules/Minify/MinifyModule.php:101
2788 +msgid "Scripts to never defer or delay"
2463 2789 msgstr ""
2464 2790
2465 -#: includes/modules/Minify/MinifyModule.php:99
2466 -msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). Cookie-consent banners are skipped without being listed here. An entry here also wins over the same script in Delay Only These Scripts. 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."
2467 2793 msgstr ""
2468 2794
2469 -#: includes/modules/Minify/MinifyModule.php:113
2470 -msgid "Delay Only These Scripts"
2795 +#: includes/modules/Minify/MinifyModule.php:116
2796 +msgid "Delay only these scripts"
2471 2797 msgstr ""
2472 2798
2473 -#: includes/modules/Minify/MinifyModule.php:114
2474 -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. Cookie-consent banners are only delayed when an entry names one, for example notificationx or cookiebot. A broad entry such as /plugins/ does not delay them. 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."
2475 2801 msgstr ""
2476 2802
2477 -#: includes/modules/Minify/MinifyModule.php:115
2803 +#: includes/modules/Minify/MinifyModule.php:118
2478 2804 msgid "Consent banners and Delay JS"
2479 2805 msgstr ""
2480 2806
2481 2807 #. translators: %s: comma-separated list of consent plugins, each followed by the word to type in parentheses.
2482 -#: includes/modules/Minify/MinifyModule.php:118
2808 +#: includes/modules/Minify/MinifyModule.php:121
2483 2809 #, php-format
2484 -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 Defer / Delay Exclusions always wins."
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."
2485 2811 msgstr ""
2486 2812
2487 -#: includes/modules/Minify/MinifyModule.php:126
2488 -msgid "Smart Delay (Carry Inline Snippets)"
2813 +#: includes/modules/Minify/MinifyModule.php:129
2814 +msgid "Smart delay"
2489 2815 msgstr ""
2490 2816
2491 -#: includes/modules/Minify/MinifyModule.php:127
2492 -msgid "Normally a script is left running at load when inline code on the page depends on it — on builder pages that keeps most scripts eager even with Delay JavaScript on. Smart Delay postpones those scripts anyway and parks their inline snippets with them; everything replays in page order on the first interaction. The most aggressive setting on this page: test menus, sliders, and toggles before leaving it on. Exclusions above still win, and consent banners still run first."
2817 +#: includes/modules/Minify/MinifyModule.php:130
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."
2493 2819 msgstr ""
2494 2820
2495 -#: includes/modules/Minify/MinifyModule.php:135
2496 -msgid "Delay Failsafe Timeout (ms)"
2821 +#: includes/modules/Minify/MinifyModule.php:138
2822 +msgid "Delay timeout (ms)"
2497 2823 msgstr ""
2498 2824
2499 -#: includes/modules/Minify/MinifyModule.php:137
2500 -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."
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."
2501 2827 msgstr ""
2502 2828
2503 -#: includes/modules/Minify/MinifyModule.php:143
2504 -msgid "Combine CSS Files"
2829 +#: includes/modules/Minify/MinifyModule.php:147
2830 +msgid "Combine CSS files"
2505 2831 msgstr ""
2506 2832
2507 -#: includes/modules/Minify/MinifyModule.php:144
2508 -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."
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."
2509 2835 msgstr ""
2510 2836
2511 -#: includes/modules/Minify/MinifyModule.php:149
2512 -msgid "Combine JavaScript Files"
2837 +#: includes/modules/Minify/MinifyModule.php:154
2838 +msgid "Combine JavaScript files"
2513 2839 msgstr ""
2514 2840
2515 -#: includes/modules/Minify/MinifyModule.php:150
2516 -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."
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."
2517 2843 msgstr ""
2518 2844
2519 -#: includes/modules/Minify/MinifyModule.php:287
2845 +#: includes/modules/Minify/MinifyModule.php:293
2520 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."
2521 2847 msgstr ""
2522 2848
2523 -#: includes/modules/Minify/MinifyModule.php:288
2849 +#: includes/modules/Minify/MinifyModule.php:294
2524 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."
2525 2851 msgstr ""
2526 2852
2527 -#: includes/modules/Minify/MinifyModule.php:293
2853 +#: includes/modules/Minify/MinifyModule.php:299
2528 2854 msgid "HTML minification is on but currently paused"
2529 2855 msgstr ""
2530 2856
2531 -#: includes/modules/ObjectCache/ObjectCacheModule.php:34
2532 -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."
2533 2859 msgstr ""
2534 2860
2535 -#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2536 -msgid "Backend"
2861 +#: includes/modules/ObjectCache/ObjectCacheModule.php:63
2862 +msgid "Cache server"
2537 2863 msgstr ""
2538 2864
2539 -#: includes/modules/ObjectCache/ObjectCacheModule.php:62
2540 -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."
2541 2867 msgstr ""
2542 2868
2543 -#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2544 -msgid "Redis Host"
2869 +#: includes/modules/ObjectCache/ObjectCacheModule.php:70
2870 +msgid "Redis host"
2545 2871 msgstr ""
2546 2872
2547 -#: includes/modules/ObjectCache/ObjectCacheModule.php:69
2548 -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."
2549 2875 msgstr ""
2550 2876
2551 -#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2552 -msgid "Redis Port"
2877 +#: includes/modules/ObjectCache/ObjectCacheModule.php:80
2878 +msgid "Redis port"
2553 2879 msgstr ""
2554 2880
2555 -#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2556 -msgid "Default Redis port is 6379."
2881 +#: includes/modules/ObjectCache/ObjectCacheModule.php:81
2882 +msgid "The default Redis port is 6379."
2557 2883 msgstr ""
2558 2884
2559 -#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2560 -msgid "Redis User"
2885 +#: includes/modules/ObjectCache/ObjectCacheModule.php:95
2886 +msgid "Redis username"
2561 2887 msgstr ""
2562 2888
2563 -#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2564 -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."
2565 2891 msgstr ""
2566 2892
2567 -#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2568 -msgid "Redis Password"
2893 +#: includes/modules/ObjectCache/ObjectCacheModule.php:105
2894 +msgid "Leave blank if your Redis server has no password."
2569 2895 msgstr ""
2570 2896
2571 -#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2572 -msgid "Leave blank if your Redis server runs without auth."
2897 +#: includes/modules/ObjectCache/ObjectCacheModule.php:114
2898 +msgid "Redis database"
2573 2899 msgstr ""
2574 2900
2575 -#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2576 -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."
2577 2903 msgstr ""
2578 2904
2579 -#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2580 -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"
2581 2907 msgstr ""
2582 2908
2583 -#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2584 -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."
2585 2911 msgstr ""
2586 2912
2587 -#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2588 -msgid "Used when Backend = Memcached."
2913 +#: includes/modules/ObjectCache/ObjectCacheModule.php:167
2914 +msgid "Memcached port"
2589 2915 msgstr ""
2590 2916
2591 -#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2592 -msgid "Memcached Port"
2917 +#: includes/modules/ObjectCache/ObjectCacheModule.php:168
2918 +msgid "The default Memcached port is 11211."
2593 2919 msgstr ""
2594 2920
2595 -#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2596 -msgid "Default Memcached port is 11211."
2921 +#: includes/modules/ObjectCache/ObjectCacheModule.php:196
2922 +msgid "Cache key prefix"
2597 2923 msgstr ""
2598 2924
2599 -#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2600 -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."
2601 2927 msgstr ""
2602 2928
2603 -#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2604 -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)"
2605 2931 msgstr ""
2606 2932
2607 -#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2608 -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."
2609 2935 msgstr ""
2610 2936
2611 -#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2612 -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"
2613 2939 msgstr ""
2614 2940
2615 -#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2616 -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."
2617 2943 msgstr ""
2618 2944
2619 -#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2620 -msgid "Reuse the connection across PHP requests when supported. Generally a win unless the cache server complains about idle connections."
2621 -msgstr ""
2622 -
2623 -#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2945 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1053
2624 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."
2625 2947 msgstr ""
2626 2948
2627 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2949 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1056
2628 2950 msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2629 2951 msgstr ""
2630 2952
2631 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2953 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1058
2632 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."
2633 2955 msgstr ""
2634 2956
2635 2957 #: includes/modules/Preloader/PreloaderModule.php:33
@@ -2636,70 +2958,66 @@
2636 2958 msgid "Crawl Now"
2637 2959 msgstr ""
2638 2960
2639 2961 #: includes/modules/Preloader/PreloaderModule.php:35
2640 -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."
2641 2963 msgstr ""
2642 2964
2643 -#: includes/modules/Preloader/PreloaderModule.php:61
2965 +#: includes/modules/Preloader/PreloaderModule.php:62
2644 2966 msgid "Your server is blocking the xSpeed cache warmer"
2645 2967 msgstr ""
2646 2968
2647 2969 #. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2648 -#: includes/modules/Preloader/PreloaderModule.php:64
2970 +#: includes/modules/Preloader/PreloaderModule.php:65
2649 2971 #, php-format
2650 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."
2651 2973 msgstr ""
2652 2974
2653 -#: includes/modules/Preloader/PreloaderModule.php:77
2654 -msgid "Enable Preloader"
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."
2655 2977 msgstr ""
2656 2978
2657 -#: includes/modules/Preloader/PreloaderModule.php:78
2658 -msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2659 -msgstr ""
2660 -
2661 -#: includes/modules/Preloader/PreloaderModule.php:90
2979 +#: includes/modules/Preloader/PreloaderModule.php:91
2662 2980 msgid "Schedule"
2663 2981 msgstr ""
2664 2982
2665 -#: includes/modules/Preloader/PreloaderModule.php:91
2666 -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."
2667 2985 msgstr ""
2668 2986
2669 -#: includes/modules/Preloader/PreloaderModule.php:99
2670 -msgid "Batch Size"
2987 +#: includes/modules/Preloader/PreloaderModule.php:100
2988 +msgid "Pages per run"
2671 2989 msgstr ""
2672 2990
2673 -#: includes/modules/Preloader/PreloaderModule.php:100
2674 -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."
2675 2993 msgstr ""
2676 2994
2677 -#: includes/modules/Preloader/PreloaderModule.php:106
2995 +#: includes/modules/Preloader/PreloaderModule.php:108
2678 2996 msgid "Sitemap URL (optional)"
2679 2997 msgstr ""
2680 2998
2681 -#: includes/modules/Preloader/PreloaderModule.php:107
2682 -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."
2683 3001 msgstr ""
2684 3002
2685 -#: includes/modules/Preloader/PreloaderModule.php:113
3003 +#: includes/modules/Preloader/PreloaderModule.php:115
2686 3004 msgid "Warm new content immediately"
2687 3005 msgstr ""
2688 3006
2689 -#: includes/modules/Preloader/PreloaderModule.php:114
2690 -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."
2691 3009 msgstr ""
2692 3010
2693 -#: includes/modules/Preloader/PreloaderModule.php:120
3011 +#: includes/modules/Preloader/PreloaderModule.php:122
2694 3012 msgid "Re-warm after comments"
2695 3013 msgstr ""
2696 3014
2697 -#: includes/modules/Preloader/PreloaderModule.php:121
2698 -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."
2699 3017 msgstr ""
2700 3018
2701 -#: includes/modules/Preloader/PreloaderModule.php:297
3019 +#: includes/modules/Preloader/PreloaderModule.php:299
2702 3020 msgid "Enable the preloader before starting a crawl."
2703 3021 msgstr ""
2704 3022
2705 3023 #: includes/modules/Privacy/PrivacyModule.php:47
@@ -2706,17 +3024,17 @@
2706 3024 msgid "Privacy & usage data"
2707 3025 msgstr ""
2708 3026
2709 3027 #: includes/modules/Privacy/PrivacyModule.php:49
2710 -msgid "Control the usage analytics you were asked about in the setup wizard."
3028 +msgid "Change the usage data choice you made in the setup wizard."
2711 3029 msgstr ""
2712 3030
2713 -#: includes/modules/Privacy/PrivacyModule.php:58
3031 +#: includes/modules/Privacy/PrivacyModule.php:59
2714 3032 msgid "Share usage data"
2715 3033 msgstr ""
2716 3034
2717 -#: includes/modules/Privacy/PrivacyModule.php:59
2718 -msgid "Share a few basics — WordPress & PHP version, active theme & plugins, server type, and which features you enable. Never page content. Turning this off stops all collection and clears the scheduled send."
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."
2719 3037 msgstr ""
2720 3038
2721 3039 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2722 3040 msgid "Resource Hints"
@@ -2726,143 +3044,142 @@
2726 3044 msgid "Hints"
2727 3045 msgstr ""
2728 3046
2729 3047 #: includes/modules/ResourceHints/ResourceHintsModule.php:63
2730 -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."
2731 3049 msgstr ""
2732 3050
2733 -#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2734 -msgid "Enable Resource Hints"
2735 -msgstr ""
2736 -
2737 3051 #: includes/modules/ResourceHints/ResourceHintsModule.php:78
2738 -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"
2739 3053 msgstr ""
2740 3054
2741 -#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2742 -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."
2743 3057 msgstr ""
2744 3058
2745 3059 #: includes/modules/ResourceHints/ResourceHintsModule.php:84
2746 -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"
2747 3061 msgstr ""
2748 3062
2749 -#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2750 -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."
2751 3065 msgstr ""
2752 3066
2753 -#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2754 -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"
2755 3069 msgstr ""
2756 3070
2757 -#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2758 -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."
2759 3073 msgstr ""
2760 3074
2761 -#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2762 -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"
2763 3077 msgstr ""
2764 3078
2765 -#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2766 -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."
2767 3081 msgstr ""
2768 3082
2769 -#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2770 -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"
2771 3085 msgstr ""
2772 3086
2773 3087 #: includes/modules/ResourceHints/ResourceHintsModule.php:111
2774 -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."
2775 3089 msgstr ""
2776 3090
2777 -#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2778 -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"
2779 3093 msgstr ""
2780 3094
2781 3095 #: includes/modules/ResourceHints/ResourceHintsModule.php:118
2782 -msgid "Extra Preconnect Hosts"
3096 +msgid "When the page uses Google Fonts, the browser connects to Google's servers early, so fonts arrive sooner."
2783 3097 msgstr ""
2784 3098
2785 -#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2786 -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"
2787 3101 msgstr ""
2788 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 +
2789 3107 #: includes/modules/Score/ScoreModule.php:58
2790 3108 msgid "Speed Test"
2791 3109 msgstr ""
2792 3110
2793 3111 #: includes/modules/Score/ScoreModule.php:64
2794 -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."
2795 3113 msgstr ""
2796 3114
2797 -#: includes/modules/Score/ScoreModule.php:77
3115 +#: includes/modules/Score/ScoreModule.php:78
2798 3116 msgid "Allow speed tests"
2799 3117 msgstr ""
2800 3118
2801 -#: includes/modules/Score/ScoreModule.php:83
2802 -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."
2803 3121 msgstr ""
2804 3122
2805 -#: includes/modules/Score/ScoreModule.php:98
2806 -#: assets/admin.js
2807 -msgid "Provider"
3123 +#: includes/modules/Score/ScoreModule.php:99
3124 +msgid "Test provider"
2808 3125 msgstr ""
2809 3126
2810 -#: includes/modules/Score/ScoreModule.php:99
2811 -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."
2812 3129 msgstr ""
2813 3130
2814 -#: includes/modules/Score/ScoreModule.php:104
3131 +#: includes/modules/Score/ScoreModule.php:105
2815 3132 msgid "PageSpeed API key (optional)"
2816 3133 msgstr ""
2817 3134
2818 -#: includes/modules/Score/ScoreModule.php:105
2819 -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."
2820 3137 msgstr ""
2821 3138
2822 -#: includes/modules/Score/ScoreModule.php:117
3139 +#: includes/modules/Score/ScoreModule.php:119
2823 3140 msgid "GTmetrix API key"
2824 3141 msgstr ""
2825 3142
2826 -#: includes/modules/Score/ScoreModule.php:118
2827 -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."
2828 3145 msgstr ""
2829 3146
2830 -#: includes/modules/Score/ScoreModule.php:127
3147 +#: includes/modules/Score/ScoreModule.php:129
2831 3148 msgid "URL to test"
2832 3149 msgstr ""
2833 3150
2834 -#: includes/modules/Score/ScoreModule.php:128
3151 +#: includes/modules/Score/ScoreModule.php:130
2835 3152 msgid "Leave empty to test your home page."
2836 3153 msgstr ""
2837 3154
2838 -#: includes/modules/Score/ScoreModule.php:134
2839 -msgid "Strategy"
3155 +#: includes/modules/Score/ScoreModule.php:136
3156 +msgid "Device"
2840 3157 msgstr ""
2841 3158
2842 -#: includes/modules/Score/ScoreModule.php:135
2843 -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."
2844 3161 msgstr ""
2845 3162
2846 -#: includes/modules/Score/ScoreModule.php:334
2847 -#: includes/modules/Score/ScoreModule.php:380
3163 +#: includes/modules/Score/ScoreModule.php:339
3164 +#: includes/modules/Score/ScoreModule.php:385
2848 3165 msgid "Hub-run speed tests are not enabled on this site."
2849 3166 msgstr ""
2850 3167
2851 -#: includes/modules/Score/ScoreModule.php:443
3168 +#: includes/modules/Score/ScoreModule.php:448
2852 3169 msgid "No URL to test."
2853 3170 msgstr ""
2854 3171
2855 -#: includes/modules/Score/ScoreModule.php:540
3172 +#: includes/modules/Score/ScoreModule.php:545
2856 3173 msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2857 3174 msgstr ""
2858 3175
2859 -#: includes/modules/Score/ScoreModule.php:619
3176 +#: includes/modules/Score/ScoreModule.php:624
2860 3177 msgid "The audit did not produce a result."
2861 3178 msgstr ""
2862 3179
2863 3180 #. translators: %s: module slug.
2864 -#: includes/modules/Settings/SettingsModule.php:320
3181 +#: includes/modules/Settings/SettingsModule.php:324
2865 3182 #, php-format
2866 3183 msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2867 3184 msgstr ""
2868 3185
@@ -2873,54 +3190,54 @@
2873 3190 #: includes/modules/Support/SupportModule.php:30
2874 3191 msgid "Open a support ticket with a one-click system snapshot already attached."
2875 3192 msgstr ""
2876 3193
2877 -#: includes/modules/Support/SupportModule.php:40
3194 +#: includes/modules/Support/SupportModule.php:41
2878 3195 msgid "Support URL"
2879 3196 msgstr ""
2880 3197
2881 -#: includes/modules/Support/SupportModule.php:41
2882 -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."
2883 3200 msgstr ""
2884 3201
2885 -#: includes/modules/TurboRender/TurboRenderModule.php:89
3202 +#: includes/modules/TurboRender/TurboRenderModule.php:105
2886 3203 msgid "Turbo Render"
2887 3204 msgstr ""
2888 3205
2889 -#: includes/modules/TurboRender/TurboRenderModule.php:91
2890 -msgid "Paints the top of your page first and brings the rest in as visitors scroll. Every section still loads in full."
3206 +#: includes/modules/TurboRender/TurboRenderModule.php:107
3207 +msgid "Shows the top of each page first and the rest as visitors scroll."
2891 3208 msgstr ""
2892 3209
2893 -#: includes/modules/TurboRender/TurboRenderModule.php:100
3210 +#: includes/modules/TurboRender/TurboRenderModule.php:117
2894 3211 msgid "Render as visitors scroll"
2895 3212 msgstr ""
2896 3213
2897 -#: includes/modules/TurboRender/TurboRenderModule.php:101
2898 -msgid "Lets the browser spend its first moments on what visitors actually see, then render the lower sections just before they scroll into view. The content of your page is unchanged — it simply arrives in a smarter order."
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."
2899 3216 msgstr ""
2900 3217
2901 -#: includes/modules/TurboRender/TurboRenderModule.php:108
3218 +#: includes/modules/TurboRender/TurboRenderModule.php:125
2902 3219 msgid "Sections to render immediately"
2903 3220 msgstr ""
2904 3221
2905 -#: includes/modules/TurboRender/TurboRenderModule.php:109
2906 -msgid "How many sections at the top of the page are rendered right away, before any deferring begins. The default of 2 suits most layouts. Increase it if a section near the top of your page appears a moment late."
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."
2907 3224 msgstr ""
2908 3225
2909 -#: includes/modules/TurboRender/TurboRenderModule.php:114
3226 +#: includes/modules/TurboRender/TurboRenderModule.php:132
2910 3227 msgid "Section classes"
2911 3228 msgstr ""
2912 3229
2913 -#: includes/modules/TurboRender/TurboRenderModule.php:115
2914 -msgid "Tells xSpeed which parts of your page count as sections. The defaults cover Elementor, Divi, Bricks, Oxygen, and Beaver Builder — and when none of them match, xSpeed falls back to your page's own top-level sections automatically. Add a class here only if you want to target something specific."
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."
2915 3232 msgstr ""
2916 3233
2917 -#: includes/modules/TurboRender/TurboRenderModule.php:120
3234 +#: includes/modules/TurboRender/TurboRenderModule.php:140
2918 3235 msgid "Excluded classes"
2919 3236 msgstr ""
2920 3237
2921 -#: includes/modules/TurboRender/TurboRenderModule.php:121
2922 -msgid "Sections with any of these classes always render right away. Use this when a design overlaps its neighbours — a card that hangs over the section below it gets cut off at the boundary when either section is deferred."
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."
2923 3240 msgstr ""
2924 3241
2925 3242 #: xspeed.php:220
2926 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."
@@ -2938,8 +3255,13 @@
2938 3255 #: assets/admin.js
2939 3256 msgid "“clear the cache on my store,” “warm up the homepage,” “how fast is my blog?”"
2940 3257 msgstr ""
2941 3258
3259 +#. Source: src/components/CfeOfferCard.tsx:44
3260 +#: assets/admin.js
3261 +msgid "/domain/mo"
3262 +msgstr ""
3263 +
2942 3264 #. Source: src/components/score/ScorePanel.tsx:96
2943 3265 #. Source: src/components/score/SpeedTestCard.tsx:135
2944 3266 #: assets/admin.js
2945 3267 msgid "%1$d of %2$d left"
@@ -2969,9 +3291,9 @@
2969 3291 #: assets/admin.js
2970 3292 msgid "7 days"
2971 3293 msgstr ""
2972 3294
2973 -#. Source: src/components/score/ScanCard.tsx:185
3295 +#. Source: src/components/score/ScanCard.tsx:198
2974 3296 #: assets/admin.js
2975 3297 msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2976 3298 msgstr ""
2977 3299
@@ -2989,16 +3311,17 @@
2989 3311 #: assets/admin.js
2990 3312 msgid "Action"
2991 3313 msgstr ""
2992 3314
2993 -#. Source: src/components/Sidebar.tsx:424
2994 -#. Source: src/components/Sidebar.tsx:445
3315 +#. Source: src/components/Sidebar.tsx:522
3316 +#. Source: src/components/Sidebar.tsx:543
3317 +#. Source: src/upsell/LockedPanel.tsx:62
2995 3318 #. Source: src/upsell/ProOverview.tsx:73
2996 3319 #: assets/admin.js
2997 3320 msgid "Activate License"
2998 3321 msgstr ""
2999 3322
3000 -#. Source: src/upsell/LockedPanel.tsx:104
3323 +#. Source: src/upsell/LockedPanel.tsx:165
3001 3324 #. Source: src/upsell/LockedSection.tsx:88
3002 3325 #. Source: src/upsell/ProDemo.tsx:92
3003 3326 #: assets/admin.js
3004 3327 msgid "Activate your license"
@@ -3003,10 +3326,10 @@
3003 3326 #: assets/admin.js
3004 3327 msgid "Activate your license"
3005 3328 msgstr ""
3006 3329
3007 -#. Source: src/upsell/LockedPanel.tsx:151
3008 -#. Source: src/upsell/LockedPanel.tsx:40
3330 +#. Source: src/upsell/LockedPanel.tsx:101
3331 +#. Source: src/upsell/LockedPanel.tsx:212
3009 3332 #: assets/admin.js
3010 3333 msgid "Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged."
3011 3334 msgstr ""
3012 3335
@@ -3041,10 +3364,15 @@
3041 3364 #: assets/admin.js
3042 3365 msgid "AI connection active"
3043 3366 msgstr ""
3044 3367
3045 -#. Source: src/components/TopBar.tsx:175
3368 +#. Source: src/upsell/LockedPanel.tsx:80
3046 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
3047 3375 msgid "Already empty"
3048 3376 msgstr ""
3049 3377
3050 3378 #. Source: src/components/purgeOutcome.ts:57
@@ -3051,9 +3379,9 @@
3051 3379 #: assets/admin.js
3052 3380 msgid "Also cleared: %s."
3053 3381 msgstr ""
3054 3382
3055 -#. Source: src/components/overview/Recommendations.tsx:184
3383 +#. Source: src/components/overview/Recommendations.tsx:190
3056 3384 #: assets/admin.js
3057 3385 msgid "Also worth a look"
3058 3386 msgstr ""
3059 3387
@@ -3082,9 +3410,9 @@
3082 3410 msgid "Another plugin owns the page cache on this site, so xSpeed is serving nothing."
3083 3411 msgstr ""
3084 3412
3085 3413 #. Source: src/components/cache/NextBestAction.tsx:122
3086 -#. Source: src/components/overview/Recommendations.tsx:96
3414 +#. Source: src/components/overview/Recommendations.tsx:101
3087 3415 #: assets/admin.js
3088 3416 msgid "Applied"
3089 3417 msgstr ""
3090 3418
@@ -3097,8 +3425,13 @@
3097 3425 #: assets/admin.js
3098 3426 msgid "Apply"
3099 3427 msgstr ""
3100 3428
3429 +#. Source: src/components/score/ScanCard.tsx:85
3430 +#: assets/admin.js
3431 +msgid "Assets"
3432 +msgstr ""
3433 +
3101 3434 #. Source: src/upsell/ProAudit.tsx:46
3102 3435 #: assets/admin.js
3103 3436 msgid "Audit failed"
3104 3437 msgstr ""
@@ -3137,14 +3470,14 @@
3137 3470 #: assets/admin.js
3138 3471 msgid "Benchmark: cached vs uncached (ms)"
3139 3472 msgstr ""
3140 3473
3141 -#. Source: src/components/overview/Recommendations.tsx:233
3474 +#. Source: src/components/overview/Recommendations.tsx:239
3142 3475 #: assets/admin.js
3143 3476 msgid "Book"
3144 3477 msgstr ""
3145 3478
3146 -#. Source: src/components/overview/Recommendations.tsx:224
3479 +#. Source: src/components/overview/Recommendations.tsx:230
3147 3480 #: assets/admin.js
3148 3481 msgid "Book a free setup review with our team."
3149 3482 msgstr ""
3150 3483
@@ -3149,22 +3482,22 @@
3149 3482 msgstr ""
3150 3483
3151 3484 #. Source: src/components/cache/CacheHero.tsx:249
3152 3485 #: assets/admin.js
3153 -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."
3154 3487 msgstr ""
3155 3488
3156 -#. Source: src/components/TopBar.tsx:81
3489 +#. Source: src/components/TopBar.tsx:84
3157 3490 #: assets/admin.js
3158 3491 msgid "Breadcrumb"
3159 3492 msgstr ""
3160 3493
3161 -#. Source: src/components/overview/FeatureMap.tsx:104
3494 +#. Source: src/components/overview/FeatureMap.tsx:114
3162 3495 #: assets/admin.js
3163 3496 msgid "Browse all"
3164 3497 msgstr ""
3165 3498
3166 -#. Source: src/components/sidebarGroups.ts:79
3499 +#. Source: src/components/sidebarGroups.ts:82
3167 3500 #: assets/admin.js
3168 3501 msgid "Cache"
3169 3502 msgstr ""
3170 3503
@@ -3186,9 +3519,9 @@
3186 3519 #: assets/admin.js
3187 3520 msgid "Cache cleared."
3188 3521 msgstr ""
3189 3522
3190 -#. Source: src/App.tsx:331
3523 +#. Source: src/App.tsx:347
3191 3524 #: assets/admin.js
3192 3525 msgid "Cache could not be enabled."
3193 3526 msgstr ""
3194 3527
@@ -3196,19 +3529,19 @@
3196 3529 #: assets/admin.js
3197 3530 msgid "Cache coverage"
3198 3531 msgstr ""
3199 3532
3200 -#. Source: src/App.tsx:343
3533 +#. Source: src/App.tsx:359
3201 3534 #: assets/admin.js
3202 3535 msgid "Cache disabled"
3203 3536 msgstr ""
3204 3537
3205 -#. Source: src/App.tsx:343
3538 +#. Source: src/App.tsx:359
3206 3539 #: assets/admin.js
3207 3540 msgid "Cache enabled"
3208 3541 msgstr ""
3209 3542
3210 -#. Source: src/App.tsx:337
3543 +#. Source: src/App.tsx:353
3211 3544 #: assets/admin.js
3212 3545 msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health."
3213 3546 msgstr ""
3214 3547
@@ -3300,11 +3633,11 @@
3300 3633 #: assets/admin.js
3301 3634 msgid "Cancel"
3302 3635 msgstr ""
3303 3636
3304 -#. Source: src/components/sidebarGroups.ts:95
3637 +#. Source: src/components/sidebarGroups.ts:98
3305 3638 #: assets/admin.js
3306 -msgid "CDN and Cloudflare edge delivery."
3639 +msgid "CDN, your own Cloudflare zone and Cloudflare Enterprise."
3307 3640 msgstr ""
3308 3641
3309 3642 #. Source: src/components/score/ScorePanel.tsx:661
3310 3643 #: assets/admin.js
@@ -3320,9 +3653,9 @@
3320 3653 #: assets/admin.js
3321 3654 msgid "Checking your AI connection…"
3322 3655 msgstr ""
3323 3656
3324 -#. Source: src/components/overview/ScoreCard.tsx:195
3657 +#. Source: src/components/overview/ScoreCard.tsx:199
3325 3658 #: assets/admin.js
3326 3659 msgid "Checking your score"
3327 3660 msgstr ""
3328 3661
@@ -3335,9 +3668,9 @@
3335 3668 #: assets/admin.js
3336 3669 msgid "Clear"
3337 3670 msgstr ""
3338 3671
3339 -#. Source: src/components/TopBar.tsx:173
3672 +#. Source: src/components/TopBar.tsx:197
3340 3673 #: assets/admin.js
3341 3674 msgid "Cleared"
3342 3675 msgstr ""
3343 3676
@@ -3350,17 +3683,31 @@
3350 3683 #: assets/admin.js
3351 3684 msgid "Click \"Run benchmark\" to compare load times."
3352 3685 msgstr ""
3353 3686
3354 -#. Source: src/components/Sidebar.tsx:219
3355 -#. Source: src/components/Sidebar.tsx:266
3687 +#. Source: src/components/Sidebar.tsx:275
3688 +#. Source: src/components/Sidebar.tsx:323
3356 3689 #: assets/admin.js
3357 3690 msgid "Close navigation"
3358 3691 msgstr ""
3359 3692
3360 -#. Source: src/components/Sidebar.tsx:284
3361 -#. 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
3362 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
3363 3710 msgid "Collapse sidebar"
3364 3711 msgstr ""
3365 3712
3366 3713 #. Source: src/components/CommandPalette.tsx:172
@@ -3372,9 +3719,9 @@
3372 3719 #: assets/admin.js
3373 3720 msgid "Compare"
3374 3721 msgstr ""
3375 3722
3376 -#. Source: src/upsell/LockedPanel.tsx:125
3723 +#. Source: src/upsell/LockedPanel.tsx:186
3377 3724 #: assets/admin.js
3378 3725 msgid "Compare plans"
3379 3726 msgstr ""
3380 3727
@@ -3397,14 +3744,14 @@
3397 3744 #: assets/admin.js
3398 3745 msgid "Connect"
3399 3746 msgstr ""
3400 3747
3401 -#. Source: src/components/sidebarGroups.ts:120
3748 +#. Source: src/components/sidebarGroups.ts:123
3402 3749 #: assets/admin.js
3403 3750 msgid "Connect an AI agent to this site, and control what AI features may use."
3404 3751 msgstr ""
3405 3752
3406 -#. Source: src/components/TopBar.tsx:138
3753 +#. Source: src/components/TopBar.tsx:142
3407 3754 #: assets/admin.js
3408 3755 msgid "Connect Hub"
3409 3756 msgstr ""
3410 3757
@@ -3417,24 +3764,19 @@
3417 3764 #: assets/admin.js
3418 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."
3419 3766 msgstr ""
3420 3767
3421 -#. Source: src/components/overview/HubCard.tsx:126
3768 +#. Source: src/components/overview/HubCard.tsx:168
3422 3769 #: assets/admin.js
3423 3770 msgid "Connect to control caching remotely, drive it from AI agents, and manage all your sites in one place."
3424 3771 msgstr ""
3425 3772
3426 -#. Source: src/components/overview/HubCard.tsx:133
3427 -#. Source: src/components/overview/HubCard.tsx:140
3773 +#. Source: src/components/overview/HubCard.tsx:175
3774 +#. Source: src/components/overview/HubCard.tsx:182
3428 3775 #: assets/admin.js
3429 3776 msgid "Connect to Hub"
3430 3777 msgstr ""
3431 3778
3432 -#. Source: src/onboarding/steps/Connect.tsx:195
3433 -#: assets/admin.js
3434 -msgid "Connect to xSpeed Hub"
3435 -msgstr ""
3436 -
3437 3779 #. Source: src/components/overview/AiControlCard.tsx:325
3438 3780 #: assets/admin.js
3439 3781 msgid "Connect with MCP"
3440 3782 msgstr ""
@@ -3443,9 +3785,9 @@
3443 3785 #: assets/admin.js
3444 3786 msgid "Connect your AI agent through MCP — then just ask it to analyze and optimize your site."
3445 3787 msgstr ""
3446 3788
3447 -#. Source: src/components/overview/HubCard.tsx:104
3789 +#. Source: src/components/overview/HubCard.tsx:146
3448 3790 #: assets/admin.js
3449 3791 msgid "Connected"
3450 3792 msgstr ""
3451 3793
@@ -3453,9 +3795,9 @@
3453 3795 #: assets/admin.js
3454 3796 msgid "Connected — starting your test…"
3455 3797 msgstr ""
3456 3798
3457 -#. Source: src/components/overview/HubCard.tsx:113
3799 +#. Source: src/components/overview/HubCard.tsx:155
3458 3800 #: assets/admin.js
3459 3801 msgid "Connected as"
3460 3802 msgstr ""
3461 3803
@@ -3468,9 +3810,9 @@
3468 3810 #: assets/admin.js
3469 3811 msgid "Connected to xSpeed Hub"
3470 3812 msgstr ""
3471 3813
3472 -#. Source: src/components/score/ScanCard.tsx:221
3814 +#. Source: src/components/score/ScanCard.tsx:234
3473 3815 #: assets/admin.js
3474 3816 msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3475 3817 msgstr ""
3476 3818
@@ -3483,14 +3825,14 @@
3483 3825 #: assets/admin.js
3484 3826 msgid "Control and optimize your site with AI"
3485 3827 msgstr ""
3486 3828
3487 -#. Source: src/components/overview/HubCard.tsx:113
3829 +#. Source: src/components/overview/HubCard.tsx:155
3488 3830 #: assets/admin.js
3489 3831 msgid "Control caching remotely and from AI agents."
3490 3832 msgstr ""
3491 3833
3492 -#. Source: src/components/overview/HubCard.tsx:114
3834 +#. Source: src/components/overview/HubCard.tsx:156
3493 3835 #: assets/admin.js
3494 3836 msgid "Control caching remotely, drive it from AI agents, and manage your sites in one place."
3495 3837 msgstr ""
3496 3838
@@ -3498,14 +3840,19 @@
3498 3840 #: assets/admin.js
3499 3841 msgid "Control xSpeed with AI"
3500 3842 msgstr ""
3501 3843
3844 +#. Source: src/components/score/ScanCard.tsx:81
3845 +#: assets/admin.js
3846 +msgid "Core Web Vitals"
3847 +msgstr ""
3848 +
3502 3849 #. Source: src/components/overview/McpSessionDemo.tsx:230
3503 3850 #: assets/admin.js
3504 3851 msgid "Core Web Vitals checked"
3505 3852 msgstr ""
3506 3853
3507 -#. Source: src/components/overview/Recommendations.tsx:98
3854 +#. Source: src/components/overview/Recommendations.tsx:103
3508 3855 #: assets/admin.js
3509 3856 msgid "Could not apply that fix"
3510 3857 msgstr ""
3511 3858
@@ -3518,9 +3865,9 @@
3518 3865 #: assets/admin.js
3519 3866 msgid "Could not check the test status."
3520 3867 msgstr ""
3521 3868
3522 -#. Source: src/components/sidebarGroups.ts:109
3869 +#. Source: src/components/sidebarGroups.ts:112
3523 3870 #: assets/admin.js
3524 3871 msgid "Database cleanup, migration and logs."
3525 3872 msgstr ""
3526 3873
@@ -3528,19 +3875,34 @@
3528 3875 #: assets/admin.js
3529 3876 msgid "Defined in wp-config.php as"
3530 3877 msgstr ""
3531 3878
3532 -#. Source: src/components/overview/ScoreCard.tsx:185
3879 +#. Source: src/components/overview/ScoreCard.tsx:189
3533 3880 #: assets/admin.js
3534 3881 msgid "desktop"
3535 3882 msgstr ""
3536 3883
3537 -#. Source: src/components/overview/ScoreCard.tsx:90
3538 -#. Source: src/components/score/ScanCard.tsx:281
3884 +#. Source: src/components/overview/ScoreCard.tsx:91
3885 +#. Source: src/components/score/ScanCard.tsx:298
3539 3886 #: assets/admin.js
3540 3887 msgid "Desktop"
3541 3888 msgstr ""
3542 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 +
3543 3905 #. Source: src/components/FieldSuggestionStrip.tsx:132
3544 3906 #: assets/admin.js
3545 3907 msgid "Dismiss"
3546 3908 msgstr ""
@@ -3550,13 +3912,23 @@
3550 3912 #: assets/admin.js
3551 3913 msgid "Dismiss banner"
3552 3914 msgstr ""
3553 3915
3916 +#. Source: src/components/CfeOfferCard.tsx:92
3917 +#: assets/admin.js
3918 +msgid "Dismiss the Cloudflare Enterprise offer"
3919 +msgstr ""
3920 +
3554 3921 #. Source: src/components/overview/OverviewFooter.tsx:24
3555 3922 #: assets/admin.js
3556 3923 msgid "Documentation"
3557 3924 msgstr ""
3558 3925
3926 +#. Source: src/upsell/PurchasePath.tsx:96
3927 +#: assets/admin.js
3928 +msgid "Done"
3929 +msgstr ""
3930 +
3559 3931 #. Source: src/components/cache/NextBestAction.tsx:85
3560 3932 #: assets/admin.js
3561 3933 msgid "Every deterministic check passes — your configuration looks healthy."
3562 3934 msgstr ""
@@ -3580,10 +3952,10 @@
3580 3952 #: assets/admin.js
3581 3953 msgid "Example session"
3582 3954 msgstr ""
3583 3955
3584 -#. Source: src/components/Sidebar.tsx:284
3585 -#. Source: src/components/Sidebar.tsx:289
3956 +#. Source: src/components/Sidebar.tsx:341
3957 +#. Source: src/components/Sidebar.tsx:346
3586 3958 #: assets/admin.js
3587 3959 msgid "Expand sidebar"
3588 3960 msgstr ""
3589 3961
@@ -3591,19 +3963,19 @@
3591 3963 #: assets/admin.js
3592 3964 msgid "failed"
3593 3965 msgstr ""
3594 3966
3595 -#. Source: src/App.tsx:347
3967 +#. Source: src/App.tsx:363
3596 3968 #: assets/admin.js
3597 3969 msgid "Failed to disable cache"
3598 3970 msgstr ""
3599 3971
3600 -#. Source: src/App.tsx:347
3972 +#. Source: src/App.tsx:363
3601 3973 #: assets/admin.js
3602 3974 msgid "Failed to enable cache"
3603 3975 msgstr ""
3604 3976
3605 -#. Source: src/App.tsx:286
3977 +#. Source: src/App.tsx:302
3606 3978 #: assets/admin.js
3607 3979 msgid "Failed to load"
3608 3980 msgstr ""
3609 3981
@@ -3616,9 +3988,9 @@
3616 3988 #: assets/admin.js
3617 3989 msgid "faster per page"
3618 3990 msgstr ""
3619 3991
3620 -#. Source: src/components/overview/FeatureMap.tsx:104
3992 +#. Source: src/components/overview/FeatureMap.tsx:114
3621 3993 #: assets/admin.js
3622 3994 msgid "features"
3623 3995 msgstr ""
3624 3996
@@ -3641,18 +4013,28 @@
3641 4013 #: assets/admin.js
3642 4014 msgid "from wp-config.php"
3643 4015 msgstr ""
3644 4016
3645 -#. Source: src/components/score/ScanCard.tsx:358
4017 +#. Source: src/components/score/ScanCard.tsx:375
3646 4018 #: assets/admin.js
3647 4019 msgid "Full report"
3648 4020 msgstr ""
3649 4021
4022 +#. Source: src/components/CfeOfferCard.tsx:59
4023 +#: assets/admin.js
4024 +msgid "Get it"
4025 +msgstr ""
4026 +
3650 4027 #. Source: src/onboarding/steps/Connect.tsx:170
3651 4028 #: assets/admin.js
3652 4029 msgid "Get more over time"
3653 4030 msgstr ""
3654 4031
4032 +#. Source: src/upsell/LockedPanel.tsx:69
4033 +#: assets/admin.js
4034 +msgid "Get Pro"
4035 +msgstr ""
4036 +
3655 4037 #. Source: src/onboarding/steps/Connect.tsx:134
3656 4038 #. Source: src/onboarding/steps/Connect.tsx:81
3657 4039 #: assets/admin.js
3658 4040 msgid "Go to Dashboard"
@@ -3662,15 +4044,15 @@
3662 4044 #: assets/admin.js
3663 4045 msgid "Go to the dashboard"
3664 4046 msgstr ""
3665 4047
3666 -#. Source: src/components/overview/ScoreCard.tsx:277
4048 +#. Source: src/components/overview/ScoreCard.tsx:281
3667 4049 #: assets/admin.js
3668 4050 msgid "good"
3669 4051 msgstr ""
3670 4052
3671 -#. Source: src/components/score/ScanCard.tsx:261
3672 -#. Source: src/components/score/ScanCard.tsx:302
4053 +#. Source: src/components/score/ScanCard.tsx:278
4054 +#. Source: src/components/score/ScanCard.tsx:319
3673 4055 #: assets/admin.js
3674 4056 msgid "Grade"
3675 4057 msgstr ""
3676 4058
@@ -3678,9 +4060,9 @@
3678 4060 #: assets/admin.js
3679 4061 msgid "GTmetrix test"
3680 4062 msgstr ""
3681 4063
3682 -#. Source: src/components/sidebarGroups.ts:100
4064 +#. Source: src/components/sidebarGroups.ts:103
3683 4065 #: assets/admin.js
3684 4066 msgid "Health & insights"
3685 4067 msgstr ""
3686 4068
@@ -3750,13 +4132,18 @@
3750 4132 #: assets/admin.js
3751 4133 msgid "hrs"
3752 4134 msgstr ""
3753 4135
3754 -#. Source: src/components/TopBar.tsx:138
4136 +#. Source: src/components/TopBar.tsx:142
3755 4137 #: assets/admin.js
3756 4138 msgid "Hub connected"
3757 4139 msgstr ""
3758 4140
4141 +#. Source: src/components/settings/HubCard.tsx:369
4142 +#: assets/admin.js
4143 +msgid "I understand what stops working when this site disconnects."
4144 +msgstr ""
4145 +
3759 4146 #. Source: src/onboarding/steps/Connect.tsx:132
3760 4147 #: assets/admin.js
3761 4148 msgid "I'll connect later"
3762 4149 msgstr ""
@@ -3831,19 +4218,24 @@
3831 4218 #: assets/admin.js
3832 4219 msgid "License"
3833 4220 msgstr ""
3834 4221
3835 -#. Source: src/components/sidebarGroups.ts:128
4222 +#. Source: src/upsell/LockedPanel.tsx:61
3836 4223 #: assets/admin.js
4224 +msgid "License not active"
4225 +msgstr ""
4226 +
4227 +#. Source: src/components/sidebarGroups.ts:131
4228 +#: assets/admin.js
3837 4229 msgid "License, branding, multisite and support."
3838 4230 msgstr ""
3839 4231
3840 -#. Source: src/components/overview/ScoreCard.tsx:205
4232 +#. Source: src/components/overview/ScoreCard.tsx:209
3841 4233 #: assets/admin.js
3842 4234 msgid "Lighthouse performance, from your latest xSpeed Scan."
3843 4235 msgstr ""
3844 4236
3845 -#. Source: src/components/score/ScanCard.tsx:284
4237 +#. Source: src/components/score/ScanCard.tsx:301
3846 4238 #: assets/admin.js
3847 4239 msgid "Lighthouse performance, out of 100"
3848 4240 msgstr ""
3849 4241
@@ -3851,10 +4243,10 @@
3851 4243 #: assets/admin.js
3852 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."
3853 4245 msgstr ""
3854 4246
3855 -#. Source: src/App.tsx:456
3856 -#. Source: src/components/GroupLanding.tsx:67
4247 +#. Source: src/App.tsx:485
4248 +#. Source: src/components/GroupLanding.tsx:79
3857 4249 #. Source: src/components/LogsView.tsx:35
3858 4250 #: assets/admin.js
3859 4251 msgid "Logs"
3860 4252 msgstr ""
@@ -3894,10 +4286,10 @@
3894 4286 #: assets/admin.js
3895 4287 msgid "Manage xSpeed through conversation"
3896 4288 msgstr ""
3897 4289
3898 -#. Source: src/components/Sidebar.tsx:395
3899 -#. Source: src/components/Sidebar.tsx:402
4290 +#. Source: src/components/Sidebar.tsx:493
4291 +#. Source: src/components/Sidebar.tsx:500
3900 4292 #: assets/admin.js
3901 4293 msgid "Manage your license"
3902 4294 msgstr ""
3903 4295
@@ -3905,9 +4297,9 @@
3905 4297 #: assets/admin.js
3906 4298 msgid "MCP is connected and ready — your AI agent can purge, tune and benchmark this site."
3907 4299 msgstr ""
3908 4300
3909 -#. Source: src/components/overview/ScoreCard.tsx:210
4301 +#. Source: src/components/overview/ScoreCard.tsx:214
3910 4302 #: assets/admin.js
3911 4303 msgid "Measured on your home page by an external audit."
3912 4304 msgstr ""
3913 4305
@@ -3920,33 +4312,33 @@
3920 4312 #: assets/admin.js
3921 4313 msgid "min"
3922 4314 msgstr ""
3923 4315
3924 -#. Source: src/components/sidebarGroups.ts:88
4316 +#. Source: src/components/sidebarGroups.ts:91
3925 4317 #: assets/admin.js
3926 4318 msgid "Minify, compress, lazy-load, fonts and hints."
3927 4319 msgstr ""
3928 4320
3929 -#. Source: src/components/overview/ScoreCard.tsx:185
3930 -#. Source: src/components/score/ScanCard.tsx:294
4321 +#. Source: src/components/overview/ScoreCard.tsx:189
4322 +#. Source: src/components/score/ScanCard.tsx:311
3931 4323 #: assets/admin.js
3932 4324 msgid "mobile"
3933 4325 msgstr ""
3934 4326
3935 -#. Source: src/components/overview/ScoreCard.tsx:91
3936 -#. Source: src/components/score/ScanCard.tsx:281
4327 +#. Source: src/components/overview/ScoreCard.tsx:92
4328 +#. Source: src/components/score/ScanCard.tsx:298
3937 4329 #: assets/admin.js
3938 4330 msgid "Mobile"
3939 4331 msgstr ""
3940 4332
3941 -#. Source: src/components/Sidebar.tsx:334
3942 -#. Source: src/components/Sidebar.tsx:370
4333 +#. Source: src/components/Sidebar.tsx:407
4334 +#. Source: src/components/Sidebar.tsx:443
3943 4335 #: assets/admin.js
3944 4336 msgid "module on"
3945 4337 msgstr ""
3946 4338
3947 -#. Source: src/components/Sidebar.tsx:335
3948 -#. Source: src/components/Sidebar.tsx:371
4339 +#. Source: src/components/Sidebar.tsx:408
4340 +#. Source: src/components/Sidebar.tsx:444
3949 4341 #: assets/admin.js
3950 4342 msgid "modules on"
3951 4343 msgstr ""
3952 4344
@@ -3954,9 +4346,9 @@
3954 4346 #: assets/admin.js
3955 4347 msgid "more after this"
3956 4348 msgstr ""
3957 4349
3958 -#. Source: src/components/overview/HubCard.tsx:148
4350 +#. Source: src/components/overview/HubCard.tsx:190
3959 4351 #: assets/admin.js
3960 4352 msgid "More options"
3961 4353 msgstr ""
3962 4354
@@ -3964,9 +4356,9 @@
3964 4356 #: assets/admin.js
3965 4357 msgid "Negligible difference — page is cheap to render or cache is cold."
3966 4358 msgstr ""
3967 4359
3968 -#. Source: src/components/sidebarGroups.ts:93
4360 +#. Source: src/components/sidebarGroups.ts:96
3969 4361 #: assets/admin.js
3970 4362 msgid "Network"
3971 4363 msgstr ""
3972 4364
@@ -3974,9 +4366,9 @@
3974 4366 #: assets/admin.js
3975 4367 msgid "never"
3976 4368 msgstr ""
3977 4369
3978 -#. Source: src/components/overview/ScoreCard.tsx:181
4370 +#. Source: src/components/overview/ScoreCard.tsx:185
3979 4371 #: assets/admin.js
3980 4372 msgid "Never scanned"
3981 4373 msgstr ""
3982 4374
@@ -4015,13 +4407,18 @@
4015 4407 #: assets/admin.js
4016 4408 msgid "no change"
4017 4409 msgstr ""
4018 4410
4019 -#. Source: src/components/overview/ScoreCard.tsx:181
4411 +#. Source: src/components/overview/ScoreCard.tsx:185
4020 4412 #: assets/admin.js
4021 4413 msgid "No completed scan"
4022 4414 msgstr ""
4023 4415
4416 +#. Source: src/upsell/LockedPanel.tsx:71
4417 +#: assets/admin.js
4418 +msgid "No license key"
4419 +msgstr ""
4420 +
4024 4421 #. Source: src/onboarding/steps/Connect.tsx:164
4025 4422 #: assets/admin.js
4026 4423 msgid "no logging into each dashboard separately."
4027 4424 msgstr ""
@@ -4030,9 +4427,9 @@
4030 4427 #: assets/admin.js
4031 4428 msgid "No matches"
4032 4429 msgstr ""
4033 4430
4034 -#. Source: src/components/overview/ScoreCard.tsx:224
4431 +#. Source: src/components/overview/ScoreCard.tsx:228
4035 4432 #: assets/admin.js
4036 4433 msgid "No performance score measured yet"
4037 4434 msgstr ""
4038 4435
@@ -4055,9 +4452,9 @@
4055 4452 #: assets/admin.js
4056 4453 msgid "No score measured yet"
4057 4454 msgstr ""
4058 4455
4059 -#. Source: src/components/overview/ScoreCard.tsx:196
4456 +#. Source: src/components/overview/ScoreCard.tsx:200
4060 4457 #: assets/admin.js
4061 4458 msgid "No score yet"
4062 4459 msgstr ""
4063 4460
@@ -4065,8 +4462,24 @@
4065 4462 #: assets/admin.js
4066 4463 msgid "No tests left this month."
4067 4464 msgstr ""
4068 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 +
4069 4482 #. Source: src/components/score/ConnectHubModal.tsx:142
4070 4483 #: assets/admin.js
4071 4484 msgid "Not now"
4072 4485 msgstr ""
@@ -4085,9 +4498,9 @@
4085 4498 #: assets/admin.js
4086 4499 msgid "Nothing on disk yet."
4087 4500 msgstr ""
4088 4501
4089 -#. Source: src/components/overview/ScoreCard.tsx:271
4502 +#. Source: src/components/overview/ScoreCard.tsx:275
4090 4503 #: assets/admin.js
4091 4504 msgid "now"
4092 4505 msgstr ""
4093 4506
@@ -4095,13 +4508,13 @@
4095 4508 #: assets/admin.js
4096 4509 msgid "Now unlocked"
4097 4510 msgstr ""
4098 4511
4099 -#. Source: src/components/GroupLanding.tsx:92
4100 -#. Source: src/components/Sidebar.tsx:334
4101 -#. Source: src/components/Sidebar.tsx:335
4102 -#. Source: src/components/Sidebar.tsx:370
4103 -#. Source: src/components/Sidebar.tsx:371
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
4104 4517 #. Source: src/components/cache/StatDrilldown.tsx:211
4105 4518 #: assets/admin.js
4106 4519 msgid "of"
4107 4520 msgstr ""
@@ -4115,23 +4528,23 @@
4115 4528 #: assets/admin.js
4116 4529 msgid "of combined wait time"
4117 4530 msgstr ""
4118 4531
4119 -#. Source: src/components/GroupLanding.tsx:42
4120 -#. Source: src/components/ModuleHeader.tsx:33
4121 -#. 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
4122 4535 #: assets/admin.js
4123 4536 msgid "Off"
4124 4537 msgstr ""
4125 4538
4126 -#. Source: src/components/GroupLanding.tsx:92
4539 +#. Source: src/components/GroupLanding.tsx:106
4127 4540 #: assets/admin.js
4128 4541 msgid "on"
4129 4542 msgstr ""
4130 4543
4131 -#. Source: src/components/GroupLanding.tsx:38
4132 -#. Source: src/components/ModuleHeader.tsx:29
4133 -#. 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
4134 4547 #: assets/admin.js
4135 4548 msgid "On"
4136 4549 msgstr ""
4137 4550
@@ -4160,9 +4573,9 @@
4160 4573 #: assets/admin.js
4161 4574 msgid "One AI connection controls the cache on every site you connect"
4162 4575 msgstr ""
4163 4576
4164 -#. Source: src/components/overview/HubCard.tsx:118
4577 +#. Source: src/components/overview/HubCard.tsx:160
4165 4578 #: assets/admin.js
4166 4579 msgid "Open Hub dashboard"
4167 4580 msgstr ""
4168 4581
@@ -4170,9 +4583,9 @@
4170 4583 #: assets/admin.js
4171 4584 msgid "Open MCP"
4172 4585 msgstr ""
4173 4586
4174 -#. Source: src/components/TopBar.tsx:88
4587 +#. Source: src/components/TopBar.tsx:91
4175 4588 #: assets/admin.js
4176 4589 msgid "Open navigation"
4177 4590 msgstr ""
4178 4591
@@ -4180,9 +4593,9 @@
4180 4593 #: assets/admin.js
4181 4594 msgid "Open the full report"
4182 4595 msgstr ""
4183 4596
4184 -#. Source: src/components/sidebarGroups.ts:86
4597 +#. Source: src/components/sidebarGroups.ts:89
4185 4598 #: assets/admin.js
4186 4599 msgid "Optimization"
4187 4600 msgstr ""
4188 4601
@@ -4196,14 +4609,14 @@
4196 4609 msgid "Optimize my site for better PageSpeed."
4197 4610 msgstr ""
4198 4611
4199 4612 #. Source: src/components/ScoreRing.tsx:61
4200 -#. Source: src/components/overview/ScoreCard.tsx:225
4613 +#. Source: src/components/overview/ScoreCard.tsx:229
4201 4614 #: assets/admin.js
4202 4615 msgid "out of 100"
4203 4616 msgstr ""
4204 4617
4205 -#. Source: src/components/overview/ScoreCard.tsx:209
4618 +#. Source: src/components/overview/ScoreCard.tsx:213
4206 4619 #: assets/admin.js
4207 4620 msgid "Over a month old — may not reflect the site now."
4208 4621 msgstr ""
4209 4622
@@ -4211,9 +4624,9 @@
4211 4624 #: assets/admin.js
4212 4625 msgid "Page"
4213 4626 msgstr ""
4214 4627
4215 -#. Source: src/components/sidebarGroups.ts:81
4628 +#. Source: src/components/sidebarGroups.ts:84
4216 4629 #: assets/admin.js
4217 4630 msgid "Page, object and browser caching, plus preload."
4218 4631 msgstr ""
4219 4632
@@ -4231,14 +4644,14 @@
4231 4644 #: assets/admin.js
4232 4645 msgid "PageSpeed & Core Web Vitals"
4233 4646 msgstr ""
4234 4647
4235 -#. Source: src/components/score/ScanCard.tsx:314
4648 +#. Source: src/components/score/ScanCard.tsx:331
4236 4649 #: assets/admin.js
4237 4650 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
4238 4651 msgstr ""
4239 4652
4240 -#. Source: src/components/TopBar.tsx:177
4653 +#. Source: src/components/TopBar.tsx:201
4241 4654 #: assets/admin.js
4242 4655 msgid "Partly cleared"
4243 4656 msgstr ""
4244 4657
@@ -4257,10 +4670,10 @@
4257 4670 msgid "per page load"
4258 4671 msgstr ""
4259 4672
4260 4673 #. Source: src/components/ScoreRing.tsx:61
4261 -#. Source: src/components/overview/ScoreCard.tsx:225
4262 -#. Source: src/components/overview/ScoreCard.tsx:254
4674 +#. Source: src/components/overview/ScoreCard.tsx:229
4675 +#. Source: src/components/overview/ScoreCard.tsx:258
4263 4676 #. Source: src/components/score/ScorePanel.tsx:442
4264 4677 #: assets/admin.js
4265 4678 msgid "Performance score"
4266 4679 msgstr ""
@@ -4289,8 +4702,13 @@
4289 4702 #: assets/admin.js
4290 4703 msgid "Pick two runs to compare them."
4291 4704 msgstr ""
4292 4705
4706 +#. Source: src/components/score/ScanCard.tsx:87
4707 +#: assets/admin.js
4708 +msgid "Platform"
4709 +msgstr ""
4710 +
4293 4711 #. Source: src/components/cache/StatDrilldown.tsx:277
4294 4712 #: assets/admin.js
4295 4713 msgid "Precompressed copies on disk:"
4296 4714 msgstr ""
@@ -4299,29 +4717,29 @@
4299 4717 #: assets/admin.js
4300 4718 msgid "Preload"
4301 4719 msgstr ""
4302 4720
4303 -#. Source: src/App.tsx:423
4721 +#. Source: src/App.tsx:439
4304 4722 #: assets/admin.js
4305 4723 msgid "Preload could not start"
4306 4724 msgstr ""
4307 4725
4308 -#. Source: src/App.tsx:422
4726 +#. Source: src/App.tsx:438
4309 4727 #: assets/admin.js
4310 4728 msgid "Preload could not start: %s"
4311 4729 msgstr ""
4312 4730
4313 -#. Source: src/App.tsx:410
4731 +#. Source: src/App.tsx:426
4314 4732 #: assets/admin.js
4315 4733 msgid "Preload found no pages to warm"
4316 4734 msgstr ""
4317 4735
4318 -#. Source: src/App.tsx:409
4736 +#. Source: src/App.tsx:425
4319 4737 #: assets/admin.js
4320 4738 msgid "Preload found no pages to warm: %s"
4321 4739 msgstr ""
4322 4740
4323 -#. Source: src/App.tsx:399
4741 +#. Source: src/App.tsx:415
4324 4742 #: assets/admin.js
4325 4743 msgid "Preloading %d page"
4326 4744 msgid_plural "Preloading %d pages"
4327 4745 msgstr[0] ""
@@ -4331,18 +4749,18 @@
4331 4749 #: assets/admin.js
4332 4750 msgid "Preview"
4333 4751 msgstr ""
4334 4752
4335 -#. Source: src/components/Sidebar.tsx:300
4753 +#. Source: src/components/Sidebar.tsx:357
4336 4754 #: assets/admin.js
4337 4755 msgid "Primary"
4338 4756 msgstr ""
4339 4757
4340 -#. Source: src/components/GroupLanding.tsx:32
4341 -#. Source: src/components/ModuleHeader.tsx:23
4758 +#. Source: src/components/GroupLanding.tsx:44
4759 +#. Source: src/components/ModuleHeader.tsx:57
4342 4760 #. Source: src/components/Tabs.tsx:97
4343 4761 #. Source: src/components/migration/MigrationPanel.tsx:650
4344 -#. Source: src/components/overview/FeatureMap.tsx:38
4762 +#. Source: src/components/overview/FeatureMap.tsx:47
4345 4763 #. Source: src/upsell/LockedSection.tsx:70
4346 4764 #. Source: src/upsell/ProAudit.tsx:66
4347 4765 #. Source: src/upsell/ProDemo.tsx:60
4348 4766 #. Source: src/upsell/ProTeaser.tsx:45
@@ -4349,15 +4767,15 @@
4349 4767 #: assets/admin.js
4350 4768 msgid "Pro"
4351 4769 msgstr ""
4352 4770
4353 -#. Source: src/upsell/LockedPanel.tsx:82
4771 +#. Source: src/upsell/LockedPanel.tsx:143
4354 4772 #. Source: src/upsell/ProOverview.tsx:40
4355 4773 #: assets/admin.js
4356 4774 msgid "Pro — license needed"
4357 4775 msgstr ""
4358 4776
4359 -#. Source: src/upsell/LockedPanel.tsx:82
4777 +#. Source: src/upsell/LockedPanel.tsx:143
4360 4778 #: assets/admin.js
4361 4779 msgid "Pro feature"
4362 4780 msgstr ""
4363 4781
@@ -4370,17 +4788,17 @@
4370 4788 #: assets/admin.js
4371 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."
4372 4790 msgstr ""
4373 4791
4374 -#. Source: src/components/Sidebar.tsx:395
4375 -#. Source: src/components/Sidebar.tsx:411
4792 +#. Source: src/components/Sidebar.tsx:493
4793 +#. Source: src/components/Sidebar.tsx:509
4376 4794 #. Source: src/upsell/ProOverview.tsx:38
4377 4795 #: assets/admin.js
4378 4796 msgid "Pro Licensed"
4379 4797 msgstr ""
4380 4798
4381 -#. Source: src/upsell/LockedPanel.tsx:152
4382 -#. Source: src/upsell/LockedPanel.tsx:41
4799 +#. Source: src/upsell/LockedPanel.tsx:102
4800 +#. Source: src/upsell/LockedPanel.tsx:213
4383 4801 #: assets/admin.js
4384 4802 msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged."
4385 4803 msgstr ""
4386 4804
@@ -4388,26 +4806,31 @@
4388 4806 #: assets/admin.js
4389 4807 msgid "Profile JSON to import"
4390 4808 msgstr ""
4391 4809
4392 -#. Source: src/components/score/ScanCard.tsx:95
4810 +#. Source: src/components/score/ScorePanel.tsx:727
4393 4811 #: assets/admin.js
4812 +msgid "Provider"
4813 +msgstr ""
4814 +
4815 +#. Source: src/components/score/ScanCard.tsx:108
4816 +#: assets/admin.js
4394 4817 msgid "pts"
4395 4818 msgstr ""
4396 4819
4397 4820 #. Source: src/components/CommandPalette.tsx:58
4398 -#. Source: src/components/TopBar.tsx:180
4821 +#. Source: src/components/TopBar.tsx:204
4399 4822 #: assets/admin.js
4400 4823 msgid "Purge all"
4401 4824 msgstr ""
4402 4825
4403 -#. Source: src/App.tsx:370
4404 -#. Source: src/components/TopBar.tsx:179
4826 +#. Source: src/App.tsx:386
4827 +#. Source: src/components/TopBar.tsx:203
4405 4828 #: assets/admin.js
4406 4829 msgid "Purge failed"
4407 4830 msgstr ""
4408 4831
4409 -#. Source: src/App.tsx:370
4832 +#. Source: src/App.tsx:386
4410 4833 #: assets/admin.js
4411 4834 msgid "Purge failed: %s"
4412 4835 msgstr ""
4413 4836
@@ -4425,9 +4848,9 @@
4425 4848 #: assets/admin.js
4426 4849 msgid "Purge, benchmark, preload and tune settings by asking your AI"
4427 4850 msgstr ""
4428 4851
4429 -#. Source: src/components/score/ScanCard.tsx:329
4852 +#. Source: src/components/score/ScanCard.tsx:346
4430 4853 #: assets/admin.js
4431 4854 msgid "ranked by points recovered"
4432 4855 msgstr ""
4433 4856
@@ -4441,9 +4864,9 @@
4441 4864 #: assets/admin.js
4442 4865 msgid "read-only call"
4443 4866 msgstr ""
4444 4867
4445 -#. Source: src/components/overview/ScoreCard.tsx:202
4868 +#. Source: src/components/overview/ScoreCard.tsx:206
4446 4869 #: assets/admin.js
4447 4870 msgid "Reading your latest result."
4448 4871 msgstr ""
4449 4872
@@ -4462,9 +4885,9 @@
4462 4885 #: assets/admin.js
4463 4886 msgid "Recent cache and settings activity on this site."
4464 4887 msgstr ""
4465 4888
4466 -#. Source: src/components/GroupLanding.tsx:67
4889 +#. Source: src/components/GroupLanding.tsx:79
4467 4890 #: assets/admin.js
4468 4891 msgid "Recent cache and settings activity."
4469 4892 msgstr ""
4470 4893
@@ -4472,10 +4895,10 @@
4472 4895 #: assets/admin.js
4473 4896 msgid "Recent changes"
4474 4897 msgstr ""
4475 4898
4476 -#. Source: src/components/overview/Recommendations.tsx:119
4477 -#. Source: src/components/overview/Recommendations.tsx:123
4899 +#. Source: src/components/overview/Recommendations.tsx:124
4900 +#. Source: src/components/overview/Recommendations.tsx:128
4478 4901 #: assets/admin.js
4479 4902 msgid "Recommended for your site"
4480 4903 msgstr ""
4481 4904
@@ -4498,8 +4921,13 @@
4498 4921 #: assets/admin.js
4499 4922 msgid "Refresh trends"
4500 4923 msgstr ""
4501 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 +
4502 4930 #. Source: src/components/SecretField.tsx:116
4503 4931 #: assets/admin.js
4504 4932 msgid "Remove"
4505 4933 msgstr ""
@@ -4533,9 +4961,9 @@
4533 4961 #: assets/admin.js
4534 4962 msgid "Review us on WordPress.org"
4535 4963 msgstr ""
4536 4964
4537 -#. Source: src/components/overview/ScoreCard.tsx:198
4965 +#. Source: src/components/overview/ScoreCard.tsx:202
4538 4966 #: assets/admin.js
4539 4967 msgid "Room to go faster"
4540 4968 msgstr ""
4541 4969
@@ -4548,10 +4976,10 @@
4548 4976 #: assets/admin.js
4549 4977 msgid "Run a GTmetrix test on this site"
4550 4978 msgstr ""
4551 4979
4552 -#. Source: src/components/overview/ScoreCard.tsx:295
4553 -#. Source: src/components/score/ScanCard.tsx:197
4980 +#. Source: src/components/overview/ScoreCard.tsx:299
4981 +#. Source: src/components/score/ScanCard.tsx:210
4554 4982 #: assets/admin.js
4555 4983 msgid "Run a scan"
4556 4984 msgstr ""
4557 4985
@@ -4619,14 +5047,14 @@
4619 5047 #: assets/admin.js
4620 5048 msgid "Saving changes…"
4621 5049 msgstr ""
4622 5050
4623 -#. Source: src/components/score/ScanCard.tsx:197
5051 +#. Source: src/components/score/ScanCard.tsx:210
4624 5052 #: assets/admin.js
4625 5053 msgid "Scan again"
4626 5054 msgstr ""
4627 5055
4628 -#. Source: src/components/score/ScanCard.tsx:197
5056 +#. Source: src/components/score/ScanCard.tsx:210
4629 5057 #: assets/admin.js
4630 5058 msgid "Scanning…"
4631 5059 msgstr ""
4632 5060
@@ -4634,9 +5062,9 @@
4634 5062 #: assets/admin.js
4635 5063 msgid "Scans your current settings + 24h cache stats and shows exactly which Pro features would help."
4636 5064 msgstr ""
4637 5065
4638 -#. Source: src/components/overview/ScoreCard.tsx:229
5066 +#. Source: src/components/overview/ScoreCard.tsx:233
4639 5067 #. Source: src/components/score/ScorePanel.tsx:728
4640 5068 #: assets/admin.js
4641 5069 msgid "Score"
4642 5070 msgstr ""
@@ -4645,15 +5073,15 @@
4645 5073 #: assets/admin.js
4646 5074 msgid "score out of 100"
4647 5075 msgstr ""
4648 5076
4649 -#. Source: src/components/overview/ScoreCard.tsx:98
5077 +#. Source: src/components/overview/ScoreCard.tsx:99
4650 5078 #: assets/admin.js
4651 5079 msgid "Score strategy"
4652 5080 msgstr ""
4653 5081
4654 -#. Source: src/components/TopBar.tsx:114
4655 -#. Source: src/components/TopBar.tsx:119
5082 +#. Source: src/components/TopBar.tsx:117
5083 +#. Source: src/components/TopBar.tsx:122
4656 5084 #: assets/admin.js
4657 5085 msgid "Search"
4658 5086 msgstr ""
4659 5087
@@ -4671,13 +5099,19 @@
4671 5099 #: assets/admin.js
4672 5100 msgid "See everything it does."
4673 5101 msgstr ""
4674 5102
4675 -#. Source: src/components/overview/ScoreCard.tsx:206
5103 +#. Source: src/components/overview/ScoreCard.tsx:210
4676 5104 #: assets/admin.js
4677 5105 msgid "See how this site performs for real visitors."
4678 5106 msgstr ""
4679 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 +
4680 5114 #. Source: src/components/health/HealthHero.tsx:29
4681 5115 #. Source: src/components/overview/MetricGrid.tsx:55
4682 5116 #: assets/admin.js
4683 5117 msgid "served without PHP"
@@ -4682,8 +5116,13 @@
4682 5116 #: assets/admin.js
4683 5117 msgid "served without PHP"
4684 5118 msgstr ""
4685 5119
5120 +#. Source: src/components/score/ScanCard.tsx:83
5121 +#: assets/admin.js
5122 +msgid "Server & caching"
5123 +msgstr ""
5124 +
4686 5125 #. Source: src/components/RewriteAlert.tsx:106
4687 5126 #: assets/admin.js
4688 5127 msgid "Server config missing — cache running on PHP fallback"
4689 5128 msgstr ""
@@ -4707,9 +5146,9 @@
4707 5146 #: assets/admin.js
4708 5147 msgid "Show"
4709 5148 msgstr ""
4710 5149
4711 -#. Source: src/components/overview/FeatureMap.tsx:104
5150 +#. Source: src/components/overview/FeatureMap.tsx:114
4712 5151 #: assets/admin.js
4713 5152 msgid "Show less"
4714 5153 msgstr ""
4715 5154
@@ -4732,9 +5171,9 @@
4732 5171 #: assets/admin.js
4733 5172 msgid "Showing"
4734 5173 msgstr ""
4735 5174
4736 -#. Source: src/components/overview/ScoreCard.tsx:208
5175 +#. Source: src/components/overview/ScoreCard.tsx:212
4737 5176 #: assets/admin.js
4738 5177 msgid "Showing your last completed scan."
4739 5178 msgstr ""
4740 5179
@@ -4747,9 +5186,9 @@
4747 5186 #: assets/admin.js
4748 5187 msgid "Size"
4749 5188 msgstr ""
4750 5189
4751 -#. Source: src/components/sidebarGroups.ts:102
5190 +#. Source: src/components/sidebarGroups.ts:105
4752 5191 #: assets/admin.js
4753 5192 msgid "Speed score, diagnostics and analytics."
4754 5193 msgstr ""
4755 5194
@@ -4772,14 +5211,14 @@
4772 5211 #: assets/admin.js
4773 5212 msgid "succeeded"
4774 5213 msgstr ""
4775 5214
4776 -#. Source: src/components/TopBar.tsx:144
5215 +#. Source: src/components/TopBar.tsx:150
4777 5216 #: assets/admin.js
4778 5217 msgid "Switch to dark mode"
4779 5218 msgstr ""
4780 5219
4781 -#. Source: src/components/TopBar.tsx:144
5220 +#. Source: src/components/TopBar.tsx:150
4782 5221 #: assets/admin.js
4783 5222 msgid "Switch to light mode"
4784 5223 msgstr ""
4785 5224
@@ -4818,9 +5257,9 @@
4818 5257 #: assets/admin.js
4819 5258 msgid "The cache was already empty, so there was nothing to clear."
4820 5259 msgstr ""
4821 5260
4822 -#. Source: src/components/overview/ScoreCard.tsx:207
5261 +#. Source: src/components/overview/ScoreCard.tsx:211
4823 5262 #: assets/admin.js
4824 5263 msgid "The last scan did not complete."
4825 5264 msgstr ""
4826 5265
@@ -4843,18 +5282,28 @@
4843 5282 #: assets/admin.js
4844 5283 msgid "This credential is defined in wp-config.php and cannot be changed here."
4845 5284 msgstr ""
4846 5285
4847 -#. Source: src/components/score/ScanCard.tsx:222
5286 +#. Source: src/components/score/ScanCard.tsx:235
4848 5287 #: assets/admin.js
4849 5288 msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4850 5289 msgstr ""
4851 5290
5291 +#. Source: src/components/MissingPanel.tsx:33
5292 +#: assets/admin.js
5293 +msgid "This screen did not load."
5294 +msgstr ""
5295 +
4852 5296 #. Source: src/components/score/ConnectHubModal.tsx:127
4853 5297 #: assets/admin.js
4854 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."
4855 5299 msgstr ""
4856 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 +
4857 5306 #. Source: src/components/OverrideConfirm.tsx:31
4858 5307 #: assets/admin.js
4859 5308 msgid "This value comes from"
4860 5309 msgstr ""
@@ -4864,9 +5313,9 @@
4864 5313 msgid "Token"
4865 5314 msgstr ""
4866 5315
4867 5316 #. Source: src/components/LogsView.tsx:34
4868 -#. Source: src/components/sidebarGroups.ts:107
5317 +#. Source: src/components/sidebarGroups.ts:110
4869 5318 #: assets/admin.js
4870 5319 msgid "Tools"
4871 5320 msgstr ""
4872 5321
@@ -4914,11 +5363,11 @@
4914 5363 #: assets/admin.js
4915 5364 msgid "Under a minute"
4916 5365 msgstr ""
4917 5366
4918 -#. Source: src/components/Sidebar.tsx:424
4919 -#. Source: src/components/Sidebar.tsx:445
4920 -#. Source: src/upsell/LockedPanel.tsx:116
5367 +#. Source: src/components/Sidebar.tsx:522
5368 +#. Source: src/components/Sidebar.tsx:543
5369 +#. Source: src/upsell/LockedPanel.tsx:177
4921 5370 #. Source: src/upsell/LockedSection.tsx:98
4922 5371 #. Source: src/upsell/ProAudit.tsx:113
4923 5372 #. Source: src/upsell/ProDemo.tsx:102
4924 5373 #. Source: src/upsell/ProOverview.tsx:83
@@ -4930,9 +5379,9 @@
4930 5379 #: assets/admin.js
4931 5380 msgid "Use the host value"
4932 5381 msgstr ""
4933 5382
4934 -#. Source: src/components/overview/ScoreCard.tsx:295
5383 +#. Source: src/components/overview/ScoreCard.tsx:299
4935 5384 #: assets/admin.js
4936 5385 msgid "View details"
4937 5386 msgstr ""
4938 5387
@@ -4950,9 +5399,9 @@
4950 5399 #: assets/admin.js
4951 5400 msgid "Waiting for connection…"
4952 5401 msgstr ""
4953 5402
4954 -#. Source: src/components/overview/Recommendations.tsx:221
5403 +#. Source: src/components/overview/Recommendations.tsx:227
4955 5404 #: assets/admin.js
4956 5405 msgid "Want a hand?"
4957 5406 msgstr ""
4958 5407
@@ -4965,14 +5414,14 @@
4965 5414 #: assets/admin.js
4966 5415 msgid "We couldn't read this site's AI connection status. Open MCP to check."
4967 5416 msgstr ""
4968 5417
4969 -#. Source: src/upsell/LockedPanel.tsx:139
5418 +#. Source: src/upsell/LockedPanel.tsx:200
4970 5419 #: assets/admin.js
4971 5420 msgid "What this adds"
4972 5421 msgstr ""
4973 5422
4974 -#. Source: src/components/score/ScanCard.tsx:327
5423 +#. Source: src/components/score/ScanCard.tsx:344
4975 5424 #: assets/admin.js
4976 5425 msgid "What to fix next"
4977 5426 msgstr ""
4978 5427
@@ -4995,14 +5444,14 @@
4995 5444 #: assets/admin.js
4996 5445 msgid "Where the cache size goes"
4997 5446 msgstr ""
4998 5447
4999 -#. Source: src/components/ModuleHeader.tsx:55
5448 +#. Source: src/components/ModuleHeader.tsx:102
5000 5449 #: assets/admin.js
5001 5450 msgid "Why this is off"
5002 5451 msgstr ""
5003 5452
5004 -#. Source: src/components/ModuleHeader.tsx:55
5453 +#. Source: src/components/ModuleHeader.tsx:102
5005 5454 #: assets/admin.js
5006 5455 msgid "Why this is on"
5007 5456 msgstr ""
5008 5457
@@ -5020,12 +5469,17 @@
5020 5469 #: assets/admin.js
5021 5470 msgid "write call"
5022 5471 msgstr ""
5023 5472
5024 -#. Source: src/components/overview/HubCard.tsx:79
5025 -#. Source: src/components/overview/HubCard.tsx:95
5026 -#. Source: src/components/overview/HubCard.tsx:99
5473 +#. Source: src/components/PartnerMark.tsx:28
5027 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
5028 5482 msgid "xSpeed Hub"
5029 5483 msgstr ""
5030 5484
5031 5485 #. Source: src/onboarding/steps/Connect.tsx:140
@@ -5042,22 +5496,22 @@
5042 5496 #: assets/admin.js
5043 5497 msgid "xSpeed Pro is installed — activate your license to unlock every feature below. Your current settings stay exactly as they are."
5044 5498 msgstr ""
5045 5499
5046 -#. Source: src/upsell/LockedPanel.tsx:96
5500 +#. Source: src/upsell/LockedPanel.tsx:157
5047 5501 #: assets/admin.js
5048 5502 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
5049 5503 msgstr ""
5050 5504
5051 -#. Source: src/components/score/ScanCard.tsx:173
5052 -#. Source: src/components/score/ScanCard.tsx:183
5053 -#. 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
5054 5508 #. Source: src/components/score/ScorePanel.tsx:426
5055 5509 #: assets/admin.js
5056 5510 msgid "xSpeed Scan"
5057 5511 msgstr ""
5058 5512
5059 -#. Source: src/components/score/ScanCard.tsx:264
5513 +#. Source: src/components/score/ScanCard.tsx:281
5060 5514 #: assets/admin.js
5061 5515 msgid "xSpeed Scan, out of 100"
5062 5516 msgstr ""
5063 5517
@@ -5075,9 +5529,9 @@
5075 5529 #: assets/admin.js
5076 5530 msgid "You're all set"
5077 5531 msgstr ""
5078 5532
5079 -#. Source: src/components/overview/Recommendations.tsx:134
5533 +#. Source: src/components/overview/Recommendations.tsx:139
5080 5534 #: assets/admin.js
5081 5535 msgid "You're all set — no recommendations right now."
5082 5536 msgstr ""
5083 5537
@@ -5115,15 +5569,15 @@
5115 5569 #: assets/admin.js
5116 5570 msgid "Your Hub is home base for all your sites. Once connected, you can:"
5117 5571 msgstr ""
5118 5572
5119 -#. Source: src/components/overview/FeatureMap.tsx:92
5120 -#. Source: src/components/overview/FeatureMap.tsx:95
5573 +#. Source: src/components/overview/FeatureMap.tsx:102
5574 +#. Source: src/components/overview/FeatureMap.tsx:105
5121 5575 #: assets/admin.js
5122 5576 msgid "Your setup"
5123 5577 msgstr ""
5124 5578
5125 -#. Source: src/components/overview/ScoreCard.tsx:197
5579 +#. Source: src/components/overview/ScoreCard.tsx:201
5126 5580 #: assets/admin.js
5127 5581 msgid "Your site is fast"
5128 5582 msgstr ""
5129 5583