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 +1449 -856 1.3.5 → 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.5\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-22T10:29:06+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:8732
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:8746
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:4163
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:5116
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:5120
163 +#: includes/class-cache.php:7255
143 164 msgid "Purge Page / Static Cache"
144 165 msgstr ""
145 166
146 -#: includes/class-cache.php:5124
167 +#: includes/class-cache.php:7259
147 168 msgid "Purge CSS / JS Cache"
148 169 msgstr ""
149 170
150 -#: includes/class-cache.php:5128
171 +#: includes/class-cache.php:7263
151 172 msgid "Purge Object Cache"
152 173 msgstr ""
153 174
154 -#: includes/class-cache.php:5132
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:5379
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:5385
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:5606
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:5613
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:5616
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:5686
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:5692
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:5766
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:5769
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:5799
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:5856
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:5857
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:5859
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:5874
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:5966
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:5981
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:5982
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:5999
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:6017
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:6018
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:6029
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:6033
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:8224
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:8231
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:8286
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:8293
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:8296
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:8297
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:8298
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:8299
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:8300
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:8301
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:8302
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:8304
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:8815
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:472
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.
@@ -1084,9 +1304,9 @@
1084 1304 msgstr ""
1085 1305
1086 1306 #: includes/class-video-facade.php:153
1087 1307 #: includes/class-video-facade.php:199
1088 -#: includes/class-video-facade.php:303
1308 +#: includes/class-video-facade.php:309
1089 1309 msgid "Play video"
1090 1310 msgstr ""
1091 1311
1092 1312 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -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,260 +1337,332 @@
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 Dashicons on Frontend"
1126 -msgstr ""
1127 -
1128 1344 #: includes/modules/Bloat/BloatModule.php:50
1129 -msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1345 +msgid "Disable emojis"
1130 1346 msgstr ""
1131 1347
1132 -#: includes/modules/Bloat/BloatModule.php:55
1133 -msgid "Disable oEmbed Discovery + wp-embed.min.js"
1348 +#: includes/modules/Bloat/BloatModule.php:51
1349 +msgid "Remove the emoji detection script and its inline styles from every page. Modern browsers draw emojis natively, so visitors still see them. Saves a script and an inline stylesheet per page."
1134 1350 msgstr ""
1135 1351
1136 1352 #: includes/modules/Bloat/BloatModule.php:56
1137 -msgid "Strip the auto-embed handlers + the embed script. Posts that paste a YouTube URL will no longer auto-render the player — embed it via a block instead. Saves a request per page."
1353 +msgid "Remove Dashicons for visitors"
1138 1354 msgstr ""
1139 1355
1140 -#: includes/modules/Bloat/BloatModule.php:61
1141 -msgid "Disable RSS Feeds"
1356 +#: includes/modules/Bloat/BloatModule.php:57
1357 +msgid "Removes the WordPress admin icon font for logged-out visitors. Most themes do not use it, and it saves about 45 KB."
1142 1358 msgstr ""
1143 1359
1144 1360 #: includes/modules/Bloat/BloatModule.php:62
1145 -msgid "Return a 404 on /feed/ and similar endpoints. Useful for sites that do not publish feeds and want to cut feed-fetcher traffic."
1361 +msgid "Disable auto-embeds"
1146 1362 msgstr ""
1147 1363
1148 -#: includes/modules/Bloat/BloatModule.php:67
1149 -msgid "Disable XML-RPC"
1364 +#: includes/modules/Bloat/BloatModule.php:63
1365 +msgid "Removes the embed script, saving one request per page. A pasted YouTube link no longer turns into a player, so use an embed block."
1150 1366 msgstr ""
1151 1367
1152 1368 #: includes/modules/Bloat/BloatModule.php:68
1153 -msgid "Disable the legacy xmlrpc.php endpoint. Cuts pingback brute-force noise; safe to disable unless you use a remote WP client (Jetpack, WordPress mobile app)."
1369 +msgid "Disable RSS feeds"
1154 1370 msgstr ""
1155 1371
1156 -#: includes/modules/Bloat/BloatModule.php:73
1157 -msgid "Strip jQuery Migrate on Frontend"
1372 +#: includes/modules/Bloat/BloatModule.php:69
1373 +msgid "Feed addresses such as /feed/ return \"not found\". Use this if your site has no feed readers."
1158 1374 msgstr ""
1159 1375
1160 1376 #: includes/modules/Bloat/BloatModule.php:74
1161 -msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1377 +msgid "Disable XML-RPC"
1162 1378 msgstr ""
1163 1379
1164 -#: includes/modules/Bloat/BloatModule.php:79
1165 -msgid "Strip Block-Editor Styles 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 "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."
1385 +msgid "Remove jQuery Migrate"
1170 1386 msgstr ""
1171 1387
1172 -#: includes/modules/Bloat/BloatModule.php:85
1173 -msgid "Restrict REST API to Logged-In Users"
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 "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."
1393 +msgid "Remove editor styles for visitors"
1178 1394 msgstr ""
1179 1395
1180 -#: includes/modules/Bloat/BloatModule.php:239
1396 +#: includes/modules/Bloat/BloatModule.php:87
1397 +msgid "Removes block editor CSS that some plugins load on public pages by mistake, which can add hundreds of KB. Block styles for visitors stay."
1398 +msgstr ""
1399 +
1400 +#: includes/modules/Bloat/BloatModule.php:92
1401 +msgid "Remove RSD link"
1402 +msgstr ""
1403 +
1404 +#: includes/modules/Bloat/BloatModule.php:93
1405 +msgid "Drop the Really Simple Discovery link from the page head. Only old desktop blogging clients read it."
1406 +msgstr ""
1407 +
1408 +#: includes/modules/Bloat/BloatModule.php:98
1409 +msgid "Remove shortlink"
1410 +msgstr ""
1411 +
1412 +#: includes/modules/Bloat/BloatModule.php:99
1413 +msgid "Drop the ?p=123 shortlink tag and header from posts and pages. The shortlinks keep working; they are just no longer advertised."
1414 +msgstr ""
1415 +
1416 +#: includes/modules/Bloat/BloatModule.php:104
1417 +msgid "Remove REST API links"
1418 +msgstr ""
1419 +
1420 +#: includes/modules/Bloat/BloatModule.php:105
1421 +msgid "Drop the /wp-json/ discovery link tag and Link header. The REST API itself stays on; to block it, use the setting below."
1422 +msgstr ""
1423 +
1424 +#: includes/modules/Bloat/BloatModule.php:110
1425 +msgid "Hide WordPress version"
1426 +msgstr ""
1427 +
1428 +#: includes/modules/Bloat/BloatModule.php:111
1429 +msgid "Remove the WordPress generator tag from pages and feeds, so it no longer states the WordPress version. Other plugins print their own tags; those stay. Script and style URLs still carry ?ver= numbers."
1430 +msgstr ""
1431 +
1432 +#: includes/modules/Bloat/BloatModule.php:116
1433 +msgid "Disable self-pingbacks"
1434 +msgstr ""
1435 +
1436 +#: includes/modules/Bloat/BloatModule.php:117
1437 +msgid "Stop WordPress from sending a pingback to your own site when a post links to another of your posts. Pingbacks to other sites are not affected."
1438 +msgstr ""
1439 +
1440 +#: includes/modules/Bloat/BloatModule.php:122
1441 +msgid "REST API for logged-in users only"
1442 +msgstr ""
1443 +
1444 +#: includes/modules/Bloat/BloatModule.php:123
1445 +msgid "Blocks /wp-json/ for logged-out visitors. This breaks WooCommerce checkout and many contact forms, so keep it off unless you are sure."
1446 +msgstr ""
1447 +
1448 +#: includes/modules/Bloat/BloatModule.php:393
1181 1449 msgid "Feeds are disabled."
1182 1450 msgstr ""
1183 1451
1184 -#: includes/modules/Bloat/BloatModule.php:288
1452 +#: includes/modules/Bloat/BloatModule.php:450
1185 1453 msgid "Anonymous REST access is disabled on this site."
1186 1454 msgstr ""
1187 1455
1188 1456 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
1189 -#: includes/modules/Migration/MigrationModule.php:551
1457 +#: includes/modules/Migration/MigrationModule.php:552
1190 1458 msgid "Browser Cache"
1191 1459 msgstr ""
1192 1460
1193 1461 #: includes/modules/BrowserCache/BrowserCacheModule.php:34
1194 -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."
1195 1463 msgstr ""
1196 1464
1197 -#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1465 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1198 1466 msgid "Enable browser cache headers"
1199 1467 msgstr ""
1200 1468
1201 -#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1202 -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."
1203 1471 msgstr ""
1204 1472
1205 -#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1206 -msgid "Static asset TTL (seconds)"
1473 +#: includes/modules/BrowserCache/BrowserCacheModule.php:52
1474 +msgid "File lifetime (seconds)"
1207 1475 msgstr ""
1208 1476
1209 -#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1210 -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."
1211 1479 msgstr ""
1212 1480
1213 -#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1214 -msgid "HTML TTL (seconds)"
1481 +#: includes/modules/BrowserCache/BrowserCacheModule.php:62
1482 +msgid "Page lifetime (seconds)"
1215 1483 msgstr ""
1216 1484
1217 -#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1218 -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."
1219 1487 msgstr ""
1220 1488
1221 -#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1489 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1222 1490 msgid "Browser cache is enabled but not active on the server"
1223 1491 msgstr ""
1224 1492
1225 -#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1493 +#: includes/modules/BrowserCache/BrowserCacheModule.php:129
1226 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."
1227 1495 msgstr ""
1228 1496
1229 -#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1230 -#: includes/modules/Gzip/GzipModule.php:163
1497 +#: includes/modules/BrowserCache/BrowserCacheModule.php:133
1498 +#: includes/modules/Gzip/GzipModule.php:164
1231 1499 msgid "Go to the snippet"
1232 1500 msgstr ""
1233 1501
1234 -#: includes/modules/Cache/CacheModule.php:130
1235 -#: includes/modules/Migration/MigrationModule.php:547
1502 +#: includes/modules/Cache/CacheModule.php:169
1503 +#: includes/modules/Migration/MigrationModule.php:548
1236 1504 msgid "Page Cache"
1237 1505 msgstr ""
1238 1506
1239 -#: includes/modules/Cache/CacheModule.php:132
1240 -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."
1241 1509 msgstr ""
1242 1510
1243 -#: includes/modules/Cache/CacheModule.php:158
1244 -msgid "Cache Expiry (hours)"
1511 +#: includes/modules/Cache/CacheModule.php:198
1512 +msgid "Cache expiry (hours)"
1245 1513 msgstr ""
1246 1514
1247 -#: includes/modules/Cache/CacheModule.php:160
1248 -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)."
1249 1517 msgstr ""
1250 1518
1251 -#: includes/modules/Cache/CacheModule.php:190
1519 +#: includes/modules/Cache/CacheModule.php:231
1252 1520 msgid "Excluded URLs"
1253 1521 msgstr ""
1254 1522
1255 -#: includes/modules/Cache/CacheModule.php:191
1256 -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."
1257 1525 msgstr ""
1258 1526
1259 -#: includes/modules/Cache/CacheModule.php:200
1260 -msgid "Excluded Cookies"
1527 +#: includes/modules/Cache/CacheModule.php:241
1528 +msgid "Excluded cookies"
1261 1529 msgstr ""
1262 1530
1263 -#: includes/modules/Cache/CacheModule.php:201
1264 -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."
1265 1533 msgstr ""
1266 1534
1267 -#: includes/modules/Cache/CacheModule.php:207
1268 -msgid "Bypass User Agents"
1535 +#: includes/modules/Cache/CacheModule.php:248
1536 +msgid "Excluded browsers and bots"
1269 1537 msgstr ""
1270 1538
1271 -#: includes/modules/Cache/CacheModule.php:208
1272 -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."
1273 1541 msgstr ""
1274 1542
1275 -#: includes/modules/Cache/CacheModule.php:219
1276 -msgid "Ignored Query Parameters"
1543 +#: includes/modules/Cache/CacheModule.php:260
1544 +msgid "Ignored query parameters"
1277 1545 msgstr ""
1278 1546
1279 -#: includes/modules/Cache/CacheModule.php:220
1280 -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."
1281 1549 msgstr ""
1282 1550
1283 -#: includes/modules/Cache/CacheModule.php:225
1284 -msgid "Purge After Updates"
1551 +#: includes/modules/Cache/CacheModule.php:267
1552 +msgid "Clear cache after updates"
1285 1553 msgstr ""
1286 1554
1287 -#: includes/modules/Cache/CacheModule.php:226
1288 -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."
1289 1557 msgstr ""
1290 1558
1291 -#: includes/modules/Cache/CacheModule.php:231
1292 -msgid "Separate Mobile Cache"
1559 +#: includes/modules/Cache/CacheModule.php:273
1560 +msgid "Clear only the pages a change affects"
1293 1561 msgstr ""
1294 1562
1295 -#: includes/modules/Cache/CacheModule.php:232
1296 -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."
1297 1565 msgstr ""
1298 1566
1299 -#: includes/modules/Cache/CacheModule.php:264
1300 -msgid "Cache In Front Of This Site"
1567 +#: includes/modules/Cache/CacheModule.php:275
1568 +msgid "Which pages are cleared"
1301 1569 msgstr ""
1302 1570
1303 -#: includes/modules/Cache/CacheModule.php:265
1304 -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)."
1305 1573 msgstr ""
1306 1574
1307 -#: 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
1308 1592 msgid "Cache in front of this site"
1309 1593 msgstr ""
1310 1594
1311 -#: includes/modules/Cache/CacheModule.php:267
1312 -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."
1313 1597 msgstr ""
1314 1598
1315 -#: includes/modules/Cache/CacheModule.php:273
1316 -msgid "Custom Edge Headers"
1599 +#: includes/modules/Cache/CacheModule.php:324
1600 +msgid "Custom CDN headers"
1317 1601 msgstr ""
1318 1602
1319 -#: includes/modules/Cache/CacheModule.php:275
1320 -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."
1321 1605 msgstr ""
1322 1606
1323 -#: includes/modules/Cache/CacheModule.php:276
1607 +#: includes/modules/Cache/CacheModule.php:328
1324 1608 msgid "Custom edge headers"
1325 1609 msgstr ""
1326 1610
1327 -#: includes/modules/Cache/CacheModule.php:277
1611 +#: includes/modules/Cache/CacheModule.php:329
1328 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."
1329 1613 msgstr ""
1330 1614
1615 +#: includes/modules/Cache/CacheModule.php:342
1616 +msgid "LiteSpeed static fast path"
1617 +msgstr ""
1618 +
1619 +#: includes/modules/Cache/CacheModule.php:344
1620 +msgid "LiteSpeed serves cached pages without running PHP, which is faster on slow hosts. These visits are not counted in the dashboard hit ratio."
1621 +msgstr ""
1622 +
1331 1623 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1332 1624 msgid "Advanced Cache"
1333 1625 msgstr ""
1334 1626
1335 1627 #: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1336 -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."
1337 1629 msgstr ""
1338 1630
1339 1631 #: includes/modules/Cdn/CdnModule.php:30
1340 -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."
1341 1633 msgstr ""
1342 1634
1343 -#: includes/modules/Cdn/CdnModule.php:39
1635 +#: includes/modules/Cdn/CdnModule.php:40
1344 1636 msgid "Enable CDN"
1345 1637 msgstr ""
1346 1638
1347 -#: includes/modules/Cdn/CdnModule.php:40
1348 -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."
1349 1641 msgstr ""
1350 1642
1351 -#: includes/modules/Cdn/CdnModule.php:45
1643 +#: includes/modules/Cdn/CdnModule.php:46
1352 1644 msgid "CDN URL"
1353 1645 msgstr ""
1354 1646
1355 -#: includes/modules/Cdn/CdnModule.php:46
1356 -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."
1357 1649 msgstr ""
1358 1650
1359 -#: includes/modules/Cdn/CdnModule.php:53
1360 -msgid "Included File Extensions"
1651 +#: includes/modules/Cdn/CdnModule.php:54
1652 +msgid "File types to serve"
1361 1653 msgstr ""
1362 1654
1363 -#: includes/modules/Cdn/CdnModule.php:54
1364 -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."
1365 1657 msgstr ""
1366 1658
1367 -#: includes/modules/Cdn/CdnModule.php:61
1368 -msgid "Excluded Patterns"
1659 +#: includes/modules/Cdn/CdnModule.php:62
1660 +msgid "Excluded paths"
1369 1661 msgstr ""
1370 1662
1371 -#: includes/modules/Cdn/CdnModule.php:62
1372 -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."
1373 1665 msgstr ""
1374 1666
1375 1667 #: includes/modules/Cloudflare/CloudflareModule.php:77
1376 1668 msgid "Cloudflare"
@@ -1376,75 +1668,75 @@
1376 1668 msgid "Cloudflare"
1377 1669 msgstr ""
1378 1670
1379 1671 #: includes/modules/Cloudflare/CloudflareModule.php:79
1380 -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."
1381 1673 msgstr ""
1382 1674
1383 -#: includes/modules/Cloudflare/CloudflareModule.php:102
1384 -msgid "Enable Cloudflare integration"
1385 -msgstr ""
1386 -
1387 1675 #: includes/modules/Cloudflare/CloudflareModule.php:103
1388 -msgid "Use the credentials below to verify your zone and run purges."
1676 +msgid "Connect Cloudflare"
1389 1677 msgstr ""
1390 1678
1391 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1392 -msgid "Authentication"
1679 +#: includes/modules/Cloudflare/CloudflareModule.php:104
1680 +msgid "Lets xSpeed clear the Cloudflare cache for your domain, using the details below."
1393 1681 msgstr ""
1394 1682
1395 1683 #: includes/modules/Cloudflare/CloudflareModule.php:114
1396 -msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1684 +msgid "Authentication"
1397 1685 msgstr ""
1398 1686
1399 -#: includes/modules/Cloudflare/CloudflareModule.php:120
1400 -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."
1401 1689 msgstr ""
1402 1690
1403 1691 #: includes/modules/Cloudflare/CloudflareModule.php:121
1404 -msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1692 +msgid "API Token"
1405 1693 msgstr ""
1406 1694
1407 -#: includes/modules/Cloudflare/CloudflareModule.php:129
1408 -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."
1409 1697 msgstr ""
1410 1698
1411 1699 #: includes/modules/Cloudflare/CloudflareModule.php:130
1412 -msgid "Only used when Authentication is set to Global API Key."
1700 +msgid "Account email"
1413 1701 msgstr ""
1414 1702
1415 -#: includes/modules/Cloudflare/CloudflareModule.php:136
1416 -msgid "Global API Key"
1703 +#: includes/modules/Cloudflare/CloudflareModule.php:131
1704 +msgid "The email address of your Cloudflare account."
1417 1705 msgstr ""
1418 1706
1419 1707 #: includes/modules/Cloudflare/CloudflareModule.php:137
1420 -msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1708 +msgid "Global API Key"
1421 1709 msgstr ""
1422 1710
1423 -#: includes/modules/Cloudflare/CloudflareModule.php:143
1424 -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."
1425 1713 msgstr ""
1426 1714
1427 1715 #: includes/modules/Cloudflare/CloudflareModule.php:144
1428 -msgid "The 32-character hex Zone ID from your domain overview page."
1716 +msgid "Zone ID"
1429 1717 msgstr ""
1430 1718
1431 -#: includes/modules/Cloudflare/CloudflareModule.php:150
1432 -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."
1433 1721 msgstr ""
1434 1722
1435 1723 #: includes/modules/Cloudflare/CloudflareModule.php:151
1436 -msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1724 +msgid "Clear Cloudflare with xSpeed"
1437 1725 msgstr ""
1438 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 +
1439 1731 #. translators: %d: number of URLs that changed at once.
1440 -#: includes/modules/Cloudflare/CloudflareModule.php:480
1732 +#: includes/modules/Cloudflare/CloudflareModule.php:489
1441 1733 #, php-format
1442 1734 msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1443 1735 msgstr ""
1444 1736
1445 1737 #. translators: %d: number of URLs.
1446 -#: includes/modules/Cloudflare/CloudflareModule.php:541
1738 +#: includes/modules/Cloudflare/CloudflareModule.php:550
1447 1739 #, php-format
1448 1740 msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1449 1741 msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1450 1742 msgstr[0] ""
@@ -1450,9 +1742,9 @@
1450 1742 msgstr[0] ""
1451 1743 msgstr[1] ""
1452 1744
1453 1745 #. translators: %d: number of URLs purged.
1454 -#: includes/modules/Cloudflare/CloudflareModule.php:572
1746 +#: includes/modules/Cloudflare/CloudflareModule.php:581
1455 1747 #, php-format
1456 1748 msgid "Purged %d URL from the Cloudflare edge cache"
1457 1749 msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1458 1750 msgstr[0] ""
@@ -1458,62 +1750,62 @@
1458 1750 msgstr[0] ""
1459 1751 msgstr[1] ""
1460 1752
1461 1753 #. translators: 1: number of URLs, 2: failure reason.
1462 -#: includes/modules/Cloudflare/CloudflareModule.php:588
1754 +#: includes/modules/Cloudflare/CloudflareModule.php:597
1463 1755 #, php-format
1464 1756 msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1465 1757 msgstr ""
1466 1758
1467 -#: includes/modules/Cloudflare/CloudflareModule.php:590
1468 -#: includes/modules/Cloudflare/CloudflareModule.php:657
1759 +#: includes/modules/Cloudflare/CloudflareModule.php:599
1760 +#: includes/modules/Cloudflare/CloudflareModule.php:670
1469 1761 msgid "unknown error"
1470 1762 msgstr ""
1471 1763
1472 -#: includes/modules/Cloudflare/CloudflareModule.php:606
1764 +#: includes/modules/Cloudflare/CloudflareModule.php:615
1473 1765 msgid "the Cloudflare integration is switched off"
1474 1766 msgstr ""
1475 1767
1476 -#: includes/modules/Cloudflare/CloudflareModule.php:609
1768 +#: includes/modules/Cloudflare/CloudflareModule.php:622
1477 1769 msgid "no zone ID or API credentials are configured"
1478 1770 msgstr ""
1479 1771
1480 1772 #. translators: %s: what asked for the purge.
1481 -#: includes/modules/Cloudflare/CloudflareModule.php:645
1773 +#: includes/modules/Cloudflare/CloudflareModule.php:658
1482 1774 #, php-format
1483 1775 msgid "Purged the Cloudflare edge cache (%s)"
1484 1776 msgstr ""
1485 1777
1486 1778 #. translators: 1: what asked for the purge, 2: failure reason.
1487 -#: includes/modules/Cloudflare/CloudflareModule.php:655
1779 +#: includes/modules/Cloudflare/CloudflareModule.php:668
1488 1780 #, php-format
1489 1781 msgid "Cloudflare purge failed (%1$s): %2$s"
1490 1782 msgstr ""
1491 1783
1492 -#: includes/modules/Cloudflare/CloudflareModule.php:727
1784 +#: includes/modules/Cloudflare/CloudflareModule.php:742
1493 1785 msgid "Cloudflare is not fully configured."
1494 1786 msgstr ""
1495 1787
1496 -#: includes/modules/Cloudflare/CloudflareModule.php:728
1788 +#: includes/modules/Cloudflare/CloudflareModule.php:743
1497 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."
1498 1790 msgstr ""
1499 1791
1500 -#: includes/modules/Cloudflare/CloudflareModule.php:741
1792 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1501 1793 msgid "Cloudflare purge is failing."
1502 1794 msgstr ""
1503 1795
1504 1796 #. translators: %s: the Cloudflare API error message, or empty.
1505 -#: includes/modules/Cloudflare/CloudflareModule.php:744
1797 +#: includes/modules/Cloudflare/CloudflareModule.php:759
1506 1798 #, php-format
1507 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."
1508 1800 msgstr ""
1509 1801
1510 -#: includes/modules/Cloudflare/CloudflareModule.php:753
1802 +#: includes/modules/Cloudflare/CloudflareModule.php:768
1511 1803 msgid "Cloudflare credentials were rejected."
1512 1804 msgstr ""
1513 1805
1514 1806 #. translators: %s: the Cloudflare API error message, or empty.
1515 -#: includes/modules/Cloudflare/CloudflareModule.php:756
1807 +#: includes/modules/Cloudflare/CloudflareModule.php:771
1516 1808 #, php-format
1517 1809 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1518 1810 msgstr ""
1519 1811
@@ -1521,28 +1813,54 @@
1521 1813 msgid "Database"
1522 1814 msgstr ""
1523 1815
1524 1816 #: includes/modules/Database/DatabaseModule.php:32
1525 -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."
1526 1818 msgstr ""
1527 1819
1528 -#: includes/modules/Database/DatabaseModule.php:49
1529 -msgid "Auto-Cleanup Schedule"
1820 +#: includes/modules/Database/DatabaseModule.php:50
1821 +msgid "Automatic cleanup"
1530 1822 msgstr ""
1531 1823
1532 -#: includes/modules/Database/DatabaseModule.php:50
1533 -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."
1534 1826 msgstr ""
1535 1827
1536 -#: includes/modules/Database/DatabaseModule.php:56
1537 -msgid "Auto-Cleanup Types"
1828 +#: includes/modules/Database/DatabaseModule.php:57
1829 +msgid "What to clean automatically"
1538 1830 msgstr ""
1539 1831
1540 -#: includes/modules/Database/DatabaseModule.php:57
1541 -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."
1542 1834 msgstr ""
1543 1835
1544 -#: includes/modules/Database/DatabaseModule.php:149
1836 +#: includes/modules/Database/DatabaseModule.php:70
1837 +msgid "Limit post revisions"
1838 +msgstr ""
1839 +
1840 +#: includes/modules/Database/DatabaseModule.php:71
1841 +msgid "Cap how many revisions WordPress keeps for each post. Cleanup removes revisions that already exist; this stops them piling up again."
1842 +msgstr ""
1843 +
1844 +#: includes/modules/Database/DatabaseModule.php:78
1845 +msgid "Revisions to keep"
1846 +msgstr ""
1847 +
1848 +#: includes/modules/Database/DatabaseModule.php:79
1849 +msgid "0 turns revisions off completely. Older revisions are trimmed the next time each post is saved; to remove the backlog now, clean Post Revisions above."
1850 +msgstr ""
1851 +
1852 +#: includes/modules/Database/DatabaseModule.php:134
1853 +msgid "The revision limit is set outside xSpeed"
1854 +msgstr ""
1855 +
1856 +#. translators: %s: value of WP_POST_REVISIONS, e.g. 5 or false.
1857 +#: includes/modules/Database/DatabaseModule.php:137
1858 +#, php-format
1859 +msgid "WP_POST_REVISIONS is set to %s, usually in wp-config.php, so Limit Post Revisions below has no effect. Remove that definition to manage the limit here."
1860 +msgstr ""
1861 +
1862 +#: includes/modules/Database/DatabaseModule.php:241
1545 1863 msgid "Provide at least one cleanup type."
1546 1864 msgstr ""
1547 1865
1548 1866 #: includes/modules/Fonts/FontsModule.php:35
@@ -1549,29 +1867,29 @@
1549 1867 msgid "Fonts"
1550 1868 msgstr ""
1551 1869
1552 1870 #: includes/modules/Fonts/FontsModule.php:37
1553 -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."
1554 1872 msgstr ""
1555 1873
1556 -#: includes/modules/Fonts/FontsModule.php:46
1557 -msgid "Add font-display: swap"
1874 +#: includes/modules/Fonts/FontsModule.php:47
1875 +msgid "Show text while fonts load"
1558 1876 msgstr ""
1559 1877
1560 -#: includes/modules/Fonts/FontsModule.php:47
1561 -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."
1562 1880 msgstr ""
1563 1881
1564 -#: includes/modules/Fonts/FontsModule.php:53
1565 -msgid "Preload Font URLs"
1882 +#: includes/modules/Fonts/FontsModule.php:54
1883 +msgid "Fonts to preload"
1566 1884 msgstr ""
1567 1885
1568 -#: includes/modules/Fonts/FontsModule.php:54
1569 -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."
1570 1888 msgstr ""
1571 1889
1572 1890 #: includes/modules/Gzip/GzipModule.php:35
1573 -#: includes/modules/Migration/MigrationModule.php:553
1891 +#: includes/modules/Migration/MigrationModule.php:554
1574 1892 msgid "Compression"
1575 1893 msgstr ""
1576 1894
1577 1895 #: includes/modules/Gzip/GzipModule.php:36
@@ -1578,158 +1896,166 @@
1578 1896 msgid "GZIP"
1579 1897 msgstr ""
1580 1898
1581 1899 #: includes/modules/Gzip/GzipModule.php:38
1582 -msgid "Compress responses to reduce transfer size."
1900 +msgid "Compresses pages and files so they download faster."
1583 1901 msgstr ""
1584 1902
1585 -#: includes/modules/Gzip/GzipModule.php:52
1586 -msgid "Enable GZIP Compression"
1903 +#: includes/modules/Gzip/GzipModule.php:53
1904 +msgid "Enable Gzip compression"
1587 1905 msgstr ""
1588 1906
1589 -#: includes/modules/Gzip/GzipModule.php:74
1590 -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."
1591 1909 msgstr ""
1592 1910
1593 -#: includes/modules/Gzip/GzipModule.php:77
1594 -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."
1595 1913 msgstr ""
1596 1914
1597 -#: includes/modules/Gzip/GzipModule.php:79
1598 -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."
1599 1917 msgstr ""
1600 1918
1601 -#: includes/modules/Gzip/GzipModule.php:154
1919 +#: includes/modules/Gzip/GzipModule.php:155
1602 1920 msgid "GZIP requires server config on nginx"
1603 1921 msgstr ""
1604 1922
1605 -#: includes/modules/Gzip/GzipModule.php:155
1923 +#: includes/modules/Gzip/GzipModule.php:156
1606 1924 msgid "GZIP is being served by nginx"
1607 1925 msgstr ""
1608 1926
1609 -#: includes/modules/Gzip/GzipModule.php:157
1927 +#: includes/modules/Gzip/GzipModule.php:158
1610 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."
1611 1929 msgstr ""
1612 1930
1613 -#: includes/modules/Gzip/GzipModule.php:158
1931 +#: includes/modules/Gzip/GzipModule.php:159
1614 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."
1615 1933 msgstr ""
1616 1934
1617 -#: includes/modules/Gzip/GzipModule.php:186
1935 +#: includes/modules/Gzip/GzipModule.php:187
1618 1936 msgid "GZIP enabled but not active on the server"
1619 1937 msgstr ""
1620 1938
1621 -#: includes/modules/Gzip/GzipModule.php:187
1939 +#: includes/modules/Gzip/GzipModule.php:188
1622 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."
1623 1941 msgstr ""
1624 1942
1625 -#: includes/modules/Gzip/GzipModule.php:197
1943 +#: includes/modules/Gzip/GzipModule.php:198
1626 1944 msgid "GZIP requires server config on this server"
1627 1945 msgstr ""
1628 1946
1629 -#: includes/modules/Gzip/GzipModule.php:198
1947 +#: includes/modules/Gzip/GzipModule.php:199
1630 1948 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
1631 1949 msgstr ""
1632 1950
1633 -#: includes/modules/Health/HealthModule.php:66
1951 +#: includes/modules/Health/HealthModule.php:76
1634 1952 msgid "xSpeed static-rewrite cache"
1635 1953 msgstr ""
1636 1954
1637 -#: includes/modules/Health/HealthModule.php:125
1955 +#: includes/modules/Health/HealthModule.php:135
1638 1956 msgid "xSpeed static-rewrite cache is active"
1639 1957 msgstr ""
1640 1958
1641 -#: includes/modules/Health/HealthModule.php:128
1959 +#: includes/modules/Health/HealthModule.php:138
1642 1960 #: assets/admin.js
1643 1961 msgid "Performance"
1644 1962 msgstr ""
1645 1963
1646 -#: includes/modules/Health/HealthModule.php:131
1964 +#: includes/modules/Health/HealthModule.php:141
1647 1965 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1648 1966 msgstr ""
1649 1967
1650 -#: includes/modules/Health/HealthModule.php:137
1968 +#: includes/modules/Health/HealthModule.php:147
1651 1969 msgid "xSpeed cache is disabled"
1652 1970 msgstr ""
1653 1971
1654 -#: includes/modules/Health/HealthModule.php:139
1972 +#: includes/modules/Health/HealthModule.php:149
1655 1973 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1656 1974 msgstr ""
1657 1975
1658 -#: includes/modules/Health/HealthModule.php:152
1976 +#: includes/modules/Health/HealthModule.php:165
1977 +msgid "xSpeed is serving cache hits through PHP (LiteSpeed)"
1978 +msgstr ""
1979 +
1980 +#: includes/modules/Health/HealthModule.php:167
1981 +msgid "Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php), so every hit is visible and counted. LiteSpeed's .htaccess engine cannot tag or log statically served files, so this is the default. To serve hits straight from the web server with no PHP (at the cost of that tagging and counting), turn on LiteSpeed Static Fast Path in xSpeed's Cache settings."
1982 +msgstr ""
1983 +
1984 +#: includes/modules/Health/HealthModule.php:169
1659 1985 msgid "xSpeed is serving cache hits through PHP"
1660 1986 msgstr ""
1661 1987
1662 -#: includes/modules/Health/HealthModule.php:154
1988 +#: includes/modules/Health/HealthModule.php:171
1663 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."
1664 1990 msgstr ""
1665 1991
1666 -#: includes/modules/Health/HealthModule.php:156
1667 -#: includes/modules/Health/HealthModule.php:193
1992 +#: includes/modules/Health/HealthModule.php:173
1993 +#: includes/modules/Health/HealthModule.php:212
1668 1994 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1669 1995 msgstr ""
1670 1996
1671 -#: includes/modules/Health/HealthModule.php:158
1672 -#: includes/modules/Health/HealthModule.php:195
1997 +#: includes/modules/Health/HealthModule.php:175
1998 +#: includes/modules/Health/HealthModule.php:214
1673 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."
1674 2000 msgstr ""
1675 2001
1676 -#: includes/modules/Health/HealthModule.php:160
2002 +#: includes/modules/Health/HealthModule.php:179
1677 2003 msgid "xSpeed .htaccess rewrite block is missing"
1678 2004 msgstr ""
1679 2005
1680 -#: includes/modules/Health/HealthModule.php:162
2006 +#: includes/modules/Health/HealthModule.php:181
1681 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."
1682 2008 msgstr ""
1683 2009
1684 -#: includes/modules/Health/HealthModule.php:187
2010 +#: includes/modules/Health/HealthModule.php:206
1685 2011 msgid "xSpeed nginx static rewrite is active"
1686 2012 msgstr ""
1687 2013
1688 -#: includes/modules/Health/HealthModule.php:189
2014 +#: includes/modules/Health/HealthModule.php:208
1689 2015 msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
1690 2016 msgstr ""
1691 2017
1692 -#: includes/modules/Health/HealthModule.php:199
2018 +#: includes/modules/Health/HealthModule.php:218
1693 2019 msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
1694 2020 msgstr ""
1695 2021
1696 -#: includes/modules/Health/HealthModule.php:201
2022 +#: includes/modules/Health/HealthModule.php:220
1697 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."
1698 2024 msgstr ""
1699 2025
1700 -#: includes/modules/Health/HealthModule.php:210
2026 +#: includes/modules/Health/HealthModule.php:229
1701 2027 msgid "xSpeed could not verify the nginx static rewrite"
1702 2028 msgstr ""
1703 2029
1704 2030 #. translators: %s: the reason the probe could not complete.
1705 -#: includes/modules/Health/HealthModule.php:215
2031 +#: includes/modules/Health/HealthModule.php:234
1706 2032 #, php-format
1707 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"
1708 2034 msgstr ""
1709 2035
1710 -#: includes/modules/Health/HealthModule.php:223
2036 +#: includes/modules/Health/HealthModule.php:242
1711 2037 msgid "xSpeed nginx server config required"
1712 2038 msgstr ""
1713 2039
1714 -#: includes/modules/Health/HealthModule.php:225
2040 +#: includes/modules/Health/HealthModule.php:244
1715 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:"
1716 2042 msgstr ""
1717 2043
1718 -#: includes/modules/Health/HealthModule.php:234
2044 +#: includes/modules/Health/HealthModule.php:253
1719 2045 msgid "xSpeed PHP drop-in cache active"
1720 2046 msgstr ""
1721 2047
1722 -#: includes/modules/Health/HealthModule.php:236
2048 +#: includes/modules/Health/HealthModule.php:255
1723 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."
1724 2050 msgstr ""
1725 2051
1726 -#: includes/modules/Health/HealthModule.php:242
2052 +#: includes/modules/Health/HealthModule.php:261
1727 2053 msgid "Health"
1728 2054 msgstr ""
1729 2055
1730 -#: includes/modules/Health/HealthModule.php:244
1731 -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."
1732 2058 msgstr ""
1733 2059
1734 2060 #: includes/modules/Heartbeat/HeartbeatModule.php:38
1735 2061 msgid "Heartbeat"
@@ -1735,41 +2061,41 @@
1735 2061 msgid "Heartbeat"
1736 2062 msgstr ""
1737 2063
1738 2064 #: includes/modules/Heartbeat/HeartbeatModule.php:40
1739 -msgid "Control the WordPress Heartbeat API per context."
2065 +msgid "Controls how often WordPress checks in with your server in the background."
1740 2066 msgstr ""
1741 2067
1742 -#: includes/modules/Heartbeat/HeartbeatModule.php:64
2068 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1743 2069 msgid "Dashboard"
1744 2070 msgstr ""
1745 2071
1746 -#: includes/modules/Heartbeat/HeartbeatModule.php:65
1747 -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."
1748 2074 msgstr ""
1749 2075
1750 -#: includes/modules/Heartbeat/HeartbeatModule.php:72
2076 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1751 2077 msgid "Editor"
1752 2078 msgstr ""
1753 2079
1754 -#: includes/modules/Heartbeat/HeartbeatModule.php:73
1755 -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."
1756 2082 msgstr ""
1757 2083
1758 -#: includes/modules/Heartbeat/HeartbeatModule.php:80
2084 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1759 2085 msgid "Frontend"
1760 2086 msgstr ""
1761 2087
1762 -#: includes/modules/Heartbeat/HeartbeatModule.php:81
1763 -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."
1764 2090 msgstr ""
1765 2091
1766 -#: includes/modules/Heartbeat/HeartbeatModule.php:88
1767 -msgid "Throttle Frequency"
2092 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
2093 +msgid "Throttle interval"
1768 2094 msgstr ""
1769 2095
1770 -#: includes/modules/Heartbeat/HeartbeatModule.php:89
1771 -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."
1772 2098 msgstr ""
1773 2099
1774 2100 #: includes/modules/Lazy/LazyModule.php:42
1775 2101 msgid "Media Optimization"
@@ -1779,67 +2105,83 @@
1779 2105 msgid "Lazy Loading"
1780 2106 msgstr ""
1781 2107
1782 2108 #: includes/modules/Lazy/LazyModule.php:45
1783 -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."
1784 2110 msgstr ""
1785 2111
1786 -#: includes/modules/Lazy/LazyModule.php:59
1787 -msgid "Lazy-load Images"
1788 -msgstr ""
1789 -
1790 2112 #: includes/modules/Lazy/LazyModule.php:60
1791 -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"
1792 2114 msgstr ""
1793 2115
1794 -#: includes/modules/Lazy/LazyModule.php:65
1795 -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."
1796 2118 msgstr ""
1797 2119
1798 2120 #: includes/modules/Lazy/LazyModule.php:66
1799 -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"
1800 2122 msgstr ""
1801 2123
1802 -#: includes/modules/Lazy/LazyModule.php:71
1803 -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."
1804 2126 msgstr ""
1805 2127
1806 2128 #: includes/modules/Lazy/LazyModule.php:72
1807 -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"
1808 2130 msgstr ""
1809 2131
1810 -#: includes/modules/Lazy/LazyModule.php:77
1811 -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."
1812 2134 msgstr ""
1813 2135
1814 2136 #: includes/modules/Lazy/LazyModule.php:78
1815 -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"
1816 2138 msgstr ""
1817 2139
1818 -#: includes/modules/Lazy/LazyModule.php:85
1819 -msgid "Eager-load First N Images"
2140 +#: includes/modules/Lazy/LazyModule.php:79
2141 +msgid "Videos uploaded to your site download only when played. An autoplaying video still plays by itself, but its file waits until the video is near the screen. Add data-skip-lazy to a video to leave it alone."
1820 2142 msgstr ""
1821 2143
1822 -#: includes/modules/Lazy/LazyModule.php:86
1823 -msgid "How many images at the top of the post get loading=\"eager\". 1 is usually right (the LCP hero image). 0 to lazy-load everything."
2144 +#: includes/modules/Lazy/LazyModule.php:84
2145 +msgid "Start autoplay videos after page load"
1824 2146 msgstr ""
1825 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 +
1826 2152 #: includes/modules/Lazy/LazyModule.php:91
1827 -msgid "Add Missing Image Dimensions"
2153 +msgid "Lazy-load background images"
1828 2154 msgstr ""
1829 2155
1830 2156 #: includes/modules/Lazy/LazyModule.php:92
1831 -msgid "When an <img class=\"wp-image-N\"> has no width/height, look the values up from the media library and inject them. Prevents the page-layout shift that hurts CLS scores."
2157 +msgid "Hold back background images set in an element's inline style (a Cover or Group block, a page-builder section) until the element is near the screen. Uses a small script; visitors without JavaScript get every background as usual. The first N backgrounds on the page load straight away, like images. Backgrounds set in a stylesheet are not affected."
1832 2158 msgstr ""
1833 2159
1834 -#: includes/modules/Lazy/LazyModule.php:98
1835 -msgid "Excluded Images"
2160 +#: includes/modules/Lazy/LazyModule.php:99
2161 +msgid "Images to load right away"
1836 2162 msgstr ""
1837 2163
1838 -#: includes/modules/Lazy/LazyModule.php:99
1839 -msgid "Substring patterns that, if found anywhere in the <img> / <iframe> tag (typically a class or filename), exempt that element from lazy-loading. Useful for hero / logo / sprite images. Or add data-skip-lazy to the tag directly."
2164 +#: includes/modules/Lazy/LazyModule.php:100
2165 +msgid "How many images at the top of the page skip lazy loading. Only the first of them also loads at high priority, and images in hidden or closed sections are not counted. Lazy-loaded background images use the same number. 1 suits most sites; 0 lazy-loads every image."
1840 2166 msgstr ""
1841 2167
2168 +#: includes/modules/Lazy/LazyModule.php:114
2169 +msgid "Add missing image sizes"
2170 +msgstr ""
2171 +
2172 +#: includes/modules/Lazy/LazyModule.php:115
2173 +msgid "Adds width and height to images that lack them, using the media library. This stops the page from jumping as images load."
2174 +msgstr ""
2175 +
2176 +#: includes/modules/Lazy/LazyModule.php:121
2177 +msgid "Excluded images"
2178 +msgstr ""
2179 +
2180 +#: includes/modules/Lazy/LazyModule.php:122
2181 +msgid "Images, videos and embeds whose tag contains a line here, such as a class or file name, are never lazy-loaded. Useful for logos and hero images."
2182 +msgstr ""
2183 +
1842 2184 #. translators: %s: command name.
1843 2185 #: includes/modules/Mcp/Cli_Bridge.php:128
1844 2186 #, php-format
1845 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
@@ -1844,92 +2186,106 @@
1844 2186 #, php-format
1845 2187 msgid "Unknown command: %s. Call list_commands to see what is available."
1846 2188 msgstr ""
1847 2189
1848 -#: includes/modules/Mcp/McpModule.php:149
2190 +#: includes/modules/Mcp/McpModule.php:159
1849 2191 #: assets/admin.js
1850 2192 msgid "MCP Server"
1851 2193 msgstr ""
1852 2194
1853 -#: includes/modules/Mcp/McpModule.php:151
1854 -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."
1855 2197 msgstr ""
1856 2198
1857 -#: includes/modules/Mcp/McpModule.php:440
2199 +#: includes/modules/Mcp/McpModule.php:491
1858 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."
1859 2201 msgstr ""
1860 2202
1861 -#: 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
1862 2208 msgid "Invalid or expired attach request."
1863 2209 msgstr ""
1864 2210
1865 -#: includes/modules/Mcp/McpModule.php:1423
2211 +#: includes/modules/Mcp/McpModule.php:1570
1866 2212 msgid "You must be an administrator to authorize an AI agent to control this site."
1867 2213 msgstr ""
1868 2214
1869 -#: includes/modules/Mcp/McpModule.php:1430
2215 +#: includes/modules/Mcp/McpModule.php:1577
1870 2216 msgid "Security check failed. Please try connecting again."
1871 2217 msgstr ""
1872 2218
1873 -#: 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
1874 2225 msgid "Read-only — inspect cache status and settings."
1875 2226 msgstr ""
1876 2227
1877 -#: includes/modules/Mcp/McpModule.php:1558
2228 +#: includes/modules/Mcp/McpModule.php:1768
1878 2229 msgid "Read & write — purge caches, toggle caching, and change settings."
1879 2230 msgstr ""
1880 2231
1881 -#: includes/modules/Mcp/McpModule.php:1559
2232 +#: includes/modules/Mcp/McpModule.php:1769
1882 2233 msgid "An AI agent"
1883 2234 msgstr ""
1884 2235
1885 -#: includes/modules/Mcp/McpModule.php:1578
2236 +#: includes/modules/Mcp/McpModule.php:1788
1886 2237 msgid "Authorize AI access"
1887 2238 msgstr ""
1888 2239
1889 -#: includes/modules/Mcp/McpModule.php:1589
2240 +#: includes/modules/Mcp/McpModule.php:1790
1890 2241 msgid "Connect to xSpeed"
1891 2242 msgstr ""
1892 2243
1893 2244 #. translators: %s: AI client name.
1894 -#: includes/modules/Mcp/McpModule.php:1591
2245 +#: includes/modules/Mcp/McpModule.php:1792
1895 2246 #, php-format
1896 2247 msgid "%s wants to manage the cache on this site."
1897 2248 msgstr ""
1898 2249
1899 -#: includes/modules/Mcp/McpModule.php:1592
2250 +#: includes/modules/Mcp/McpModule.php:1793
2251 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:205
1900 2252 msgid "Site"
1901 2253 msgstr ""
1902 2254
1903 -#: includes/modules/Mcp/McpModule.php:1593
2255 +#: includes/modules/Mcp/McpModule.php:1794
2256 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:210
1904 2257 msgid "Signed in as"
1905 2258 msgstr ""
1906 2259
1907 -#: includes/modules/Mcp/McpModule.php:1594
2260 +#: includes/modules/Mcp/McpModule.php:1795
2261 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:211
1908 2262 msgid "Access"
1909 2263 msgstr ""
1910 2264
1911 -#: includes/modules/Mcp/McpModule.php:1599
2265 +#: includes/modules/Mcp/McpModule.php:1800
2266 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:219
1912 2267 msgid "Deny"
1913 2268 msgstr ""
1914 2269
1915 -#: includes/modules/Mcp/McpModule.php:1600
2270 +#: includes/modules/Mcp/McpModule.php:1801
2271 +#: includes/modules/Mcp/Mcp_Hub_Connect.php:220
1916 2272 msgid "Approve"
1917 2273 msgstr ""
1918 2274
1919 -#: includes/modules/Mcp/McpModule.php:1610
2275 +#: includes/modules/Mcp/McpModule.php:1811
1920 2276 msgid "Authorization error"
1921 2277 msgstr ""
1922 2278
1923 -#: includes/modules/Mcp/McpModule.php:1613
2279 +#: includes/modules/Mcp/McpModule.php:1814
1924 2280 msgid "Could not authorize"
1925 2281 msgstr ""
1926 2282
1927 -#: includes/modules/Mcp/McpModule.php:1843
2283 +#: includes/modules/Mcp/McpModule.php:2044
1928 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."
1929 2285 msgstr ""
1930 2286
1931 -#: includes/modules/Mcp/McpModule.php:1844
2287 +#: includes/modules/Mcp/McpModule.php:2045
1932 2288 msgid "No AI assistant is connected. This module counts as on once you connect one."
1933 2289 msgstr ""
1934 2290
1935 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1935,21 +2291,62 @@
1935 2291 #: includes/modules/Mcp/Mcp_Auth.php:57
1936 2292 msgid "Too many failed attempts. Try again later."
1937 2293 msgstr ""
1938 2294
1939 -#: includes/modules/Mcp/Mcp_Hub.php:771
2295 +#: includes/modules/Mcp/Mcp_Hub.php:983
1940 2296 msgid "Connect this site to xSpeed Hub to run a free speed test."
1941 2297 msgstr ""
1942 2298
1943 -#: includes/modules/Mcp/Mcp_Hub.php:797
2299 +#: includes/modules/Mcp/Mcp_Hub.php:1013
1944 2300 msgid "Could not reach xSpeed Hub. Please try again."
1945 2301 msgstr ""
1946 2302
1947 -#: includes/modules/Mcp/Mcp_Hub.php:820
2303 +#: includes/modules/Mcp/Mcp_Hub.php:1036
1948 2304 #: assets/admin.js
1949 2305 msgid "The test could not be started."
1950 2306 msgstr ""
1951 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 +
1952 2349 #: includes/modules/Mcp/Mcp_OAuth.php:261
1953 2350 msgid "Too many client registrations. Try again later."
1954 2351 msgstr ""
1955 2352
@@ -1986,155 +2383,182 @@
1986 2383 #: includes/modules/Mcp/Mcp_OAuth.php:395
1987 2384 msgid "PKCE with code_challenge_method=S256 is required."
1988 2385 msgstr ""
1989 2386
1990 -#: includes/modules/Mcp/Mcp_Pairing.php:451
2387 +#: includes/modules/Mcp/Mcp_Pairing.php:474
1991 2388 msgid "No active MCP connection to change. Connect first."
1992 2389 msgstr ""
1993 2390
1994 2391 #. translators: %s: tool name.
1995 -#: includes/modules/Mcp/Mcp_Tools.php:931
2392 +#: includes/modules/Mcp/Mcp_Tools.php:996
2393 +#: includes/modules/Mcp/Mcp_Tools.php:1034
1996 2394 #, php-format
1997 2395 msgid "Unknown tool: %s"
1998 2396 msgstr ""
1999 2397
2000 2398 #. translators: %s: tool name.
2001 -#: includes/modules/Mcp/Mcp_Tools.php:959
2399 +#: includes/modules/Mcp/Mcp_Tools.php:1055
2002 2400 #, php-format
2003 2401 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
2004 2402 msgstr ""
2005 2403
2006 2404 #. translators: %s: comma-separated list of valid purge types.
2007 -#: includes/modules/Mcp/Mcp_Tools.php:1240
2405 +#: includes/modules/Mcp/Mcp_Tools.php:1439
2008 2406 #, php-format
2009 2407 msgid "Invalid purge type. Expected one of: %s"
2010 2408 msgstr ""
2011 2409
2012 -#: includes/modules/Mcp/Mcp_Tools.php:1249
2013 -#: includes/modules/Mcp/Mcp_Tools.php:2261
2410 +#: includes/modules/Mcp/Mcp_Tools.php:1448
2411 +#: includes/modules/Mcp/Mcp_Tools.php:2798
2014 2412 msgid "AI assistant"
2015 2413 msgstr ""
2016 2414
2017 -#: includes/modules/Mcp/Mcp_Tools.php:1298
2415 +#: includes/modules/Mcp/Mcp_Tools.php:1497
2018 2416 msgid "The \"enabled\" parameter is required (true or false)."
2019 2417 msgstr ""
2020 2418
2021 -#: includes/modules/Mcp/Mcp_Tools.php:1378
2022 -#: includes/modules/Mcp/Mcp_Tools.php:1432
2419 +#: includes/modules/Mcp/Mcp_Tools.php:1577
2420 +#: includes/modules/Mcp/Mcp_Tools.php:1631
2023 2421 msgid "The \"module\" parameter is required."
2024 2422 msgstr ""
2025 2423
2026 2424 #. translators: %s: module slug.
2027 -#: includes/modules/Mcp/Mcp_Tools.php:1387
2028 -#: includes/modules/Mcp/Mcp_Tools.php:1448
2425 +#: includes/modules/Mcp/Mcp_Tools.php:1586
2426 +#: includes/modules/Mcp/Mcp_Tools.php:1647
2029 2427 #, php-format
2030 2428 msgid "Unknown module \"%s\"."
2031 2429 msgstr ""
2032 2430
2033 -#: includes/modules/Mcp/Mcp_Tools.php:1439
2431 +#: includes/modules/Mcp/Mcp_Tools.php:1638
2034 2432 msgid "The \"values\" parameter must be an object of setting keys."
2035 2433 msgstr ""
2036 2434
2037 2435 #. translators: 1: comma-separated field names, 2: module slug.
2038 -#: includes/modules/Mcp/Mcp_Tools.php:1467
2436 +#: includes/modules/Mcp/Mcp_Tools.php:1666
2039 2437 #, php-format
2040 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."
2041 2439 msgstr ""
2042 2440
2043 2441 #. translators: %s: module slug.
2044 -#: includes/modules/Mcp/Mcp_Tools.php:1499
2442 +#: includes/modules/Mcp/Mcp_Tools.php:1698
2045 2443 #, php-format
2046 2444 msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
2047 2445 msgstr ""
2048 2446
2049 2447 #. translators: %s: module slug.
2050 -#: includes/modules/Mcp/Mcp_Tools.php:1509
2448 +#: includes/modules/Mcp/Mcp_Tools.php:1708
2051 2449 #, php-format
2052 2450 msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
2053 2451 msgstr ""
2054 2452
2055 2453 #. translators: 1: setting key, 2: wp-config.php constant name.
2056 -#: includes/modules/Mcp/Mcp_Tools.php:1578
2454 +#: includes/modules/Mcp/Mcp_Tools.php:1777
2057 2455 #, php-format
2058 2456 msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
2059 2457 msgstr ""
2060 2458
2061 2459 #. translators: 1: setting key, 2: module slug.
2062 -#: includes/modules/Mcp/Mcp_Tools.php:1586
2460 +#: includes/modules/Mcp/Mcp_Tools.php:1785
2063 2461 #, php-format
2064 2462 msgid "\"%1$s\" is not a setting of module \"%2$s\""
2065 2463 msgstr ""
2066 2464
2067 2465 #. translators: %s: comma-separated setting names.
2068 -#: includes/modules/Mcp/Mcp_Tools.php:1598
2466 +#: includes/modules/Mcp/Mcp_Tools.php:1797
2069 2467 #, php-format
2070 2468 msgid " — did you mean: %s?"
2071 2469 msgstr ""
2072 2470
2073 2471 #. translators: %s: setting key.
2074 -#: includes/modules/Mcp/Mcp_Tools.php:1608
2472 +#: includes/modules/Mcp/Mcp_Tools.php:1807
2075 2473 #, php-format
2076 2474 msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
2077 2475 msgstr ""
2078 2476
2079 2477 #. translators: 1: module slug, 2: reasons.
2080 -#: includes/modules/Mcp/Mcp_Tools.php:1617
2478 +#: includes/modules/Mcp/Mcp_Tools.php:1816
2081 2479 #, php-format
2082 2480 msgid "Refused to update %1$s — nothing was written. %2$s"
2083 2481 msgstr ""
2084 2482
2085 -#: includes/modules/Mcp/Mcp_Tools.php:1653
2483 +#: includes/modules/Mcp/Mcp_Tools.php:1852
2086 2484 msgid "The \"command\" parameter is required."
2087 2485 msgstr ""
2088 2486
2089 -#: includes/modules/Mcp/Mcp_Tools.php:1704
2487 +#: includes/modules/Mcp/Mcp_Tools.php:1903
2090 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."
2091 2489 msgstr ""
2092 2490
2093 -#: 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
2094 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."
2095 2505 msgstr ""
2096 2506
2097 -#: includes/modules/Mcp/Mcp_Tools.php:1809
2098 -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"
2099 2511 msgstr ""
2100 2512
2101 -#: includes/modules/Mcp/Mcp_Tools.php:1817
2102 -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"
2103 2517 msgstr ""
2104 2518
2105 -#: includes/modules/Mcp/Mcp_Tools.php:2081
2106 -#: 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
2107 2527 msgid "The enabled argument is required."
2108 2528 msgstr ""
2109 2529
2110 -#: includes/modules/Mcp/Mcp_Tools.php:2085
2111 -#: includes/modules/Mcp/Mcp_Tools.php:2125
2530 +#: includes/modules/Mcp/Mcp_Tools.php:2615
2531 +#: includes/modules/Mcp/Mcp_Tools.php:2655
2112 2532 msgid "The enabled argument must be true or false."
2113 2533 msgstr ""
2114 2534
2115 -#: includes/modules/Mcp/Mcp_Tools.php:2139
2535 +#: includes/modules/Mcp/Mcp_Tools.php:2676
2116 2536 msgid "The action argument must be \"list\" or \"clear\"."
2117 2537 msgstr ""
2118 2538
2119 -#: includes/modules/Mcp/Mcp_Tools.php:2178
2539 +#: includes/modules/Mcp/Mcp_Tools.php:2715
2120 2540 msgid "External scores are not available on this site."
2121 2541 msgstr ""
2122 2542
2123 -#: includes/modules/Mcp/Mcp_Tools.php:2259
2543 +#: includes/modules/Mcp/Mcp_Tools.php:2796
2124 2544 msgid "The url argument is required."
2125 2545 msgstr ""
2126 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 +
2127 2551 #: includes/modules/Migration/MigrationModule.php:30
2128 2552 msgid "Migration"
2129 2553 msgstr ""
2130 2554
2131 2555 #: includes/modules/Migration/MigrationModule.php:32
2132 -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."
2133 2557 msgstr ""
2134 2558
2135 2559 #. translators: %d: number of detected caching plugins.
2136 -#: includes/modules/Migration/MigrationModule.php:210
2560 +#: includes/modules/Migration/MigrationModule.php:211
2137 2561 #, php-format
2138 2562 msgid "Migrate to %1$s — %2$d caching plugin detected"
2139 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2140 2564 msgstr[0] ""
@@ -2139,32 +2563,32 @@
2139 2563 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2140 2564 msgstr[0] ""
2141 2565 msgstr[1] ""
2142 2566
2143 -#: includes/modules/Migration/MigrationModule.php:265
2567 +#: includes/modules/Migration/MigrationModule.php:266
2144 2568 msgid "Speed guarantee"
2145 2569 msgstr ""
2146 2570
2147 -#: includes/modules/Migration/MigrationModule.php:310
2571 +#: includes/modules/Migration/MigrationModule.php:311
2148 2572 msgid "Dismiss this notice"
2149 2573 msgstr ""
2150 2574
2151 -#: includes/modules/Migration/MigrationModule.php:331
2575 +#: includes/modules/Migration/MigrationModule.php:332
2152 2576 msgid "Guaranteed faster load times — or we'll tune it for you, free."
2153 2577 msgstr ""
2154 2578
2155 -#: includes/modules/Migration/MigrationModule.php:332
2579 +#: includes/modules/Migration/MigrationModule.php:333
2156 2580 msgid "Faster load times, without configuring anything by hand."
2157 2581 msgstr ""
2158 2582
2159 2583 #. translators: %s: brand name, e.g. xSpeed Cache.
2160 -#: includes/modules/Migration/MigrationModule.php:345
2584 +#: includes/modules/Migration/MigrationModule.php:346
2161 2585 #, php-format
2162 2586 msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2163 2587 msgstr ""
2164 2588
2165 2589 #. translators: 1: detected plugin name, 2: number of settings.
2166 -#: includes/modules/Migration/MigrationModule.php:355
2590 +#: includes/modules/Migration/MigrationModule.php:356
2167 2591 #, php-format
2168 2592 msgid "%1$s detected · %2$d setting ready to import"
2169 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2170 2594 msgstr[0] ""
@@ -2169,30 +2593,30 @@
2169 2593 msgid_plural "%1$s detected · %2$d settings ready to import"
2170 2594 msgstr[0] ""
2171 2595 msgstr[1] ""
2172 2596
2173 -#: includes/modules/Migration/MigrationModule.php:375
2597 +#: includes/modules/Migration/MigrationModule.php:376
2174 2598 msgid "Prefer we handle it? Book a call"
2175 2599 msgstr ""
2176 2600
2177 2601 #. translators: %s: brand name.
2178 -#: includes/modules/Migration/MigrationModule.php:383
2602 +#: includes/modules/Migration/MigrationModule.php:384
2179 2603 #, php-format
2180 2604 msgid "Migrate to %s"
2181 2605 msgstr ""
2182 2606
2183 2607 #. translators: %s: detected plugin name.
2184 -#: includes/modules/Migration/MigrationModule.php:399
2608 +#: includes/modules/Migration/MigrationModule.php:400
2185 2609 #, php-format
2186 2610 msgid "Migrating deactivates %s"
2187 2611 msgstr ""
2188 2612
2189 -#: includes/modules/Migration/MigrationModule.php:404
2613 +#: includes/modules/Migration/MigrationModule.php:405
2190 2614 msgid "View migration details"
2191 2615 msgstr ""
2192 2616
2193 2617 #. translators: %d: number of settings imported.
2194 -#: includes/modules/Migration/MigrationModule.php:422
2618 +#: includes/modules/Migration/MigrationModule.php:423
2195 2619 #, php-format
2196 2620 msgid "imports %d setting"
2197 2621 msgid_plural "imports %d settings"
2198 2622 msgstr[0] ""
@@ -2197,323 +2621,337 @@
2197 2621 msgid_plural "imports %d settings"
2198 2622 msgstr[0] ""
2199 2623 msgstr[1] ""
2200 2624
2201 -#: includes/modules/Migration/MigrationModule.php:428
2625 +#: includes/modules/Migration/MigrationModule.php:429
2202 2626 msgid "Migrate"
2203 2627 msgstr ""
2204 2628
2205 -#: includes/modules/Migration/MigrationModule.php:548
2206 -#: includes/modules/Minify/MinifyModule.php:35
2629 +#: includes/modules/Migration/MigrationModule.php:549
2630 +#: includes/modules/Minify/MinifyModule.php:37
2207 2631 msgid "Minify"
2208 2632 msgstr ""
2209 2633
2210 -#: includes/modules/Migration/MigrationModule.php:549
2634 +#: includes/modules/Migration/MigrationModule.php:550
2211 2635 msgid "Lazy Load"
2212 2636 msgstr ""
2213 2637
2214 -#: includes/modules/Migration/MigrationModule.php:550
2638 +#: includes/modules/Migration/MigrationModule.php:551
2215 2639 #: includes/modules/Preloader/PreloaderModule.php:32
2216 2640 msgid "Preloader"
2217 2641 msgstr ""
2218 2642
2219 -#: includes/modules/Migration/MigrationModule.php:552
2220 -#: includes/modules/ObjectCache/ObjectCacheModule.php:32
2643 +#: includes/modules/Migration/MigrationModule.php:553
2644 +#: includes/modules/ObjectCache/ObjectCacheModule.php:33
2221 2645 msgid "Object Cache"
2222 2646 msgstr ""
2223 2647
2224 -#: includes/modules/Migration/MigrationModule.php:554
2648 +#: includes/modules/Migration/MigrationModule.php:555
2225 2649 msgid "Bloat Removal"
2226 2650 msgstr ""
2227 2651
2228 -#: includes/modules/Migration/MigrationModule.php:579
2652 +#: includes/modules/Migration/MigrationModule.php:580
2229 2653 msgid "You do not have permission to migrate settings."
2230 2654 msgstr ""
2231 2655
2232 -#: includes/modules/Migration/MigrationModule.php:585
2656 +#: includes/modules/Migration/MigrationModule.php:586
2233 2657 msgid "No source selected."
2234 2658 msgstr ""
2235 2659
2236 -#: includes/modules/Migration/MigrationModule.php:617
2660 +#: includes/modules/Migration/MigrationModule.php:618
2237 2661 msgid "it could not be enabled"
2238 2662 msgstr ""
2239 2663
2240 -#: includes/modules/Migration/MigrationModule.php:702
2664 +#: includes/modules/Migration/MigrationModule.php:703
2241 2665 msgid "Migrating…"
2242 2666 msgstr ""
2243 2667
2244 -#: includes/modules/Migration/MigrationModule.php:719
2668 +#: includes/modules/Migration/MigrationModule.php:720
2245 2669 msgid "Migration failed."
2246 2670 msgstr ""
2247 2671
2248 -#: includes/modules/Migration/MigrationModule.php:722
2672 +#: includes/modules/Migration/MigrationModule.php:723
2249 2673 msgid "the source plugin"
2250 2674 msgstr ""
2251 2675
2252 -#: includes/modules/Migration/MigrationModule.php:723
2676 +#: includes/modules/Migration/MigrationModule.php:724
2253 2677 msgid "Review imported settings"
2254 2678 msgstr ""
2255 2679
2256 -#: includes/modules/Migration/MigrationModule.php:734
2257 -#: includes/modules/Migration/MigrationModule.php:745
2258 -#: 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
2259 2683 msgid "settings are now running in xSpeed."
2260 2684 msgstr ""
2261 2685
2262 -#: includes/modules/Migration/MigrationModule.php:736
2263 -#: includes/modules/Migration/MigrationModule.php:746
2686 +#: includes/modules/Migration/MigrationModule.php:737
2687 +#: includes/modules/Migration/MigrationModule.php:747
2264 2688 msgid "It has been switched off, so the two page caches cannot conflict."
2265 2689 msgstr ""
2266 2690
2267 -#: includes/modules/Migration/MigrationModule.php:737
2691 +#: includes/modules/Migration/MigrationModule.php:738
2268 2692 msgid "It is still active — switch it off when you are ready."
2269 2693 msgstr ""
2270 2694
2271 -#: includes/modules/Migration/MigrationModule.php:738
2695 +#: includes/modules/Migration/MigrationModule.php:739
2272 2696 msgid "Skipped:"
2273 2697 msgstr ""
2274 2698
2275 -#: includes/modules/Migration/MigrationModule.php:754
2699 +#: includes/modules/Migration/MigrationModule.php:755
2276 2700 msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2277 2701 msgstr ""
2278 2702
2279 -#: includes/modules/Migration/MigrationModule.php:763
2703 +#: includes/modules/Migration/MigrationModule.php:764
2280 2704 msgid "Migration could not finish."
2281 2705 msgstr ""
2282 2706
2283 -#: includes/modules/Migration/MigrationModule.php:764
2707 +#: includes/modules/Migration/MigrationModule.php:765
2284 2708 msgid "Nothing was changed — you can try again."
2285 2709 msgstr ""
2286 2710
2287 2711 #. translators: %s: source plugin label.
2288 -#: includes/modules/Migration/MigrationModule.php:997
2712 +#: includes/modules/Migration/MigrationModule.php:998
2289 2713 #, php-format
2290 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."
2291 2715 msgstr ""
2292 2716
2293 2717 #. translators: %s: source plugin label.
2294 -#: includes/modules/Migration/MigrationModule.php:1002
2718 +#: includes/modules/Migration/MigrationModule.php:1003
2295 2719 #, php-format
2296 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."
2297 2721 msgstr ""
2298 2722
2299 -#: includes/modules/Minify/MinifyModule.php:34
2723 +#: includes/modules/Minify/MinifyModule.php:36
2300 2724 msgid "CSS & JavaScript"
2301 2725 msgstr ""
2302 2726
2303 -#: includes/modules/Minify/MinifyModule.php:37
2304 -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."
2305 2729 msgstr ""
2306 2730
2307 -#: includes/modules/Minify/MinifyModule.php:50
2731 +#: includes/modules/Minify/MinifyModule.php:53
2308 2732 msgid "Minify HTML"
2309 2733 msgstr ""
2310 2734
2311 -#: includes/modules/Minify/MinifyModule.php:55
2312 -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."
2313 2737 msgstr ""
2314 2738
2315 -#: includes/modules/Minify/MinifyModule.php:60
2739 +#: includes/modules/Minify/MinifyModule.php:63
2316 2740 msgid "Minify CSS"
2317 2741 msgstr ""
2318 2742
2319 -#: includes/modules/Minify/MinifyModule.php:61
2320 -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."
2321 2745 msgstr ""
2322 2746
2323 -#: includes/modules/Minify/MinifyModule.php:66
2747 +#: includes/modules/Minify/MinifyModule.php:69
2324 2748 msgid "Minify JavaScript"
2325 2749 msgstr ""
2326 2750
2327 -#: includes/modules/Minify/MinifyModule.php:67
2328 -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."
2329 2753 msgstr ""
2330 2754
2331 -#: includes/modules/Minify/MinifyModule.php:72
2755 +#: includes/modules/Minify/MinifyModule.php:75
2332 2756 msgid "Defer JavaScript"
2333 2757 msgstr ""
2334 2758
2335 -#: includes/modules/Minify/MinifyModule.php:73
2336 -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."
2337 2761 msgstr ""
2338 2762
2339 -#: includes/modules/Minify/MinifyModule.php:78
2340 -msgid "Delay JavaScript Until Interaction"
2763 +#: includes/modules/Minify/MinifyModule.php:81
2764 +msgid "Delay JavaScript"
2341 2765 msgstr ""
2342 2766
2343 -#: includes/modules/Minify/MinifyModule.php:79
2344 -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 never delayed, so the visitor is still asked before anything else runs."
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."
2345 2769 msgstr ""
2346 2770
2347 -#: includes/modules/Minify/MinifyModule.php:84
2348 -msgid "Load CSS Asynchronously"
2771 +#: includes/modules/Minify/MinifyModule.php:87
2772 +msgid "Load CSS without blocking"
2349 2773 msgstr ""
2350 2774
2351 -#: includes/modules/Minify/MinifyModule.php:85
2352 -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."
2353 2777 msgstr ""
2354 2778
2355 -#: includes/modules/Minify/MinifyModule.php:90
2356 -msgid "Remove Asset Query Strings"
2779 +#: includes/modules/Minify/MinifyModule.php:93
2780 +msgid "Remove version from file URLs"
2357 2781 msgstr ""
2358 2782
2359 -#: includes/modules/Minify/MinifyModule.php:91
2360 -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."
2361 2785 msgstr ""
2362 2786
2363 -#: includes/modules/Minify/MinifyModule.php:97
2364 -msgid "Defer / Delay Exclusions"
2787 +#: includes/modules/Minify/MinifyModule.php:101
2788 +msgid "Scripts to never defer or delay"
2365 2789 msgstr ""
2366 2790
2367 -#: includes/modules/Minify/MinifyModule.php:98
2368 -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 always skipped and do not need listing here. 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."
2369 2793 msgstr ""
2370 2794
2371 -#: includes/modules/Minify/MinifyModule.php:112
2372 -msgid "Delay Only These Scripts"
2795 +#: includes/modules/Minify/MinifyModule.php:116
2796 +msgid "Delay only these scripts"
2373 2797 msgstr ""
2374 2798
2375 -#: includes/modules/Minify/MinifyModule.php:113
2376 -msgid "Script handles OR URL substrings. When non-empty, matching scripts are delayed, plus the known third-party tags xSpeed recognises on its own (analytics, tag managers, chat widgets, review embeds, error trackers) — so a heavy vendor script is postponed even when it is not listed here. Leave empty to delay all scripts (minus the exclusions above). Handles are the more reliable selector — a URL substring has to match the script's original URL, and minification rewrites that to a hashed cache path. One per line."
2799 +#: includes/modules/Minify/MinifyModule.php:117
2800 +msgid "Script handles or parts of script URLs, one per line. Leave empty to delay all scripts; otherwise only these, plus known trackers and chat widgets, are delayed."
2377 2801 msgstr ""
2378 2802
2379 -#: includes/modules/Minify/MinifyModule.php:121
2380 -msgid "Delay Failsafe Timeout (ms)"
2803 +#: includes/modules/Minify/MinifyModule.php:118
2804 +msgid "Consent banners and Delay JS"
2381 2805 msgstr ""
2382 2806
2383 -#: includes/modules/Minify/MinifyModule.php:123
2384 -msgid "Load delayed scripts automatically after this many milliseconds when the visitor never interacts. Set to 0 for interaction-only, with no timer: a timer that fires inside a lab tool's measurement window loads the \"delayed\" scripts anyway and inflates the reported TTI. Keep a non-zero value if a delayed script must eventually run for visitors who never scroll, tap, or type."
2807 +#. translators: %s: comma-separated list of consent plugins, each followed by the word to type in parentheses.
2808 +#: includes/modules/Minify/MinifyModule.php:121
2809 +#, php-format
2810 +msgid "These consent banners load straight away, even with Delay JS on: %s. To delay one on purpose, add the word in parentheses, or the script handle, to this list. An entry that only matches part of the address, such as /plugins/ or .js, never delays a banner, and an entry in Scripts to never defer or delay always wins."
2385 2811 msgstr ""
2386 2812
2387 2813 #: includes/modules/Minify/MinifyModule.php:129
2388 -msgid "Combine CSS Files"
2814 +msgid "Smart delay"
2389 2815 msgstr ""
2390 2816
2391 2817 #: includes/modules/Minify/MinifyModule.php:130
2392 -msgid "Concatenate enqueued local stylesheets into a single file (with @import and url(…) paths resolved). External CSS is left alone. Pairs poorly with HTTP/2 push — only enable on HTTP/1.1 hosts."
2818 +msgid "Also delays scripts that code on the page depends on, which helps page builder sites most. The riskiest setting here, so test menus and sliders."
2393 2819 msgstr ""
2394 2820
2395 -#: includes/modules/Minify/MinifyModule.php:135
2396 -msgid "Combine JavaScript Files"
2821 +#: includes/modules/Minify/MinifyModule.php:138
2822 +msgid "Delay timeout (ms)"
2397 2823 msgstr ""
2398 2824
2399 -#: includes/modules/Minify/MinifyModule.php:136
2400 -msgid "Concatenate enqueued local scripts into a single file. External scripts + scripts marked async / deferred are left alone. Disable if you hit dependency-order issues; the combiner respects WordPress enqueue order but inline scripts attached via wp_add_inline_script can shift behavior."
2825 +#: includes/modules/Minify/MinifyModule.php:140
2826 +msgid "Load delayed scripts after this long if the visitor does nothing. Set 0 to wait for a scroll, tap or key press only."
2401 2827 msgstr ""
2402 2828
2403 -#: includes/modules/Minify/MinifyModule.php:273
2829 +#: includes/modules/Minify/MinifyModule.php:147
2830 +msgid "Combine CSS files"
2831 +msgstr ""
2832 +
2833 +#: includes/modules/Minify/MinifyModule.php:148
2834 +msgid "Joins your site's own CSS files into one. This helps only on old HTTP/1.1 servers, so leave it off on most hosts."
2835 +msgstr ""
2836 +
2837 +#: includes/modules/Minify/MinifyModule.php:154
2838 +msgid "Combine JavaScript files"
2839 +msgstr ""
2840 +
2841 +#: includes/modules/Minify/MinifyModule.php:155
2842 +msgid "Joins your site's own scripts into one file. Turn off if a script stops working after you enable it."
2843 +msgstr ""
2844 +
2845 +#: includes/modules/Minify/MinifyModule.php:293
2404 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."
2405 2847 msgstr ""
2406 2848
2407 -#: includes/modules/Minify/MinifyModule.php:274
2849 +#: includes/modules/Minify/MinifyModule.php:294
2408 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."
2409 2851 msgstr ""
2410 2852
2411 -#: includes/modules/Minify/MinifyModule.php:279
2853 +#: includes/modules/Minify/MinifyModule.php:299
2412 2854 msgid "HTML minification is on but currently paused"
2413 2855 msgstr ""
2414 2856
2415 -#: includes/modules/ObjectCache/ObjectCacheModule.php:34
2416 -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."
2417 2859 msgstr ""
2418 2860
2419 -#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2420 -msgid "Backend"
2861 +#: includes/modules/ObjectCache/ObjectCacheModule.php:63
2862 +msgid "Cache server"
2421 2863 msgstr ""
2422 2864
2423 -#: includes/modules/ObjectCache/ObjectCacheModule.php:62
2424 -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."
2425 2867 msgstr ""
2426 2868
2427 -#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2428 -msgid "Redis Host"
2869 +#: includes/modules/ObjectCache/ObjectCacheModule.php:70
2870 +msgid "Redis host"
2429 2871 msgstr ""
2430 2872
2431 -#: includes/modules/ObjectCache/ObjectCacheModule.php:69
2432 -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."
2433 2875 msgstr ""
2434 2876
2435 -#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2436 -msgid "Redis Port"
2877 +#: includes/modules/ObjectCache/ObjectCacheModule.php:80
2878 +msgid "Redis port"
2437 2879 msgstr ""
2438 2880
2439 -#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2440 -msgid "Default Redis port is 6379."
2881 +#: includes/modules/ObjectCache/ObjectCacheModule.php:81
2882 +msgid "The default Redis port is 6379."
2441 2883 msgstr ""
2442 2884
2443 -#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2444 -msgid "Redis User"
2885 +#: includes/modules/ObjectCache/ObjectCacheModule.php:95
2886 +msgid "Redis username"
2445 2887 msgstr ""
2446 2888
2447 -#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2448 -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."
2449 2891 msgstr ""
2450 2892
2451 -#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2452 -msgid "Redis Password"
2893 +#: includes/modules/ObjectCache/ObjectCacheModule.php:105
2894 +msgid "Leave blank if your Redis server has no password."
2453 2895 msgstr ""
2454 2896
2455 -#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2456 -msgid "Leave blank if your Redis server runs without auth."
2897 +#: includes/modules/ObjectCache/ObjectCacheModule.php:114
2898 +msgid "Redis database"
2457 2899 msgstr ""
2458 2900
2459 -#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2460 -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."
2461 2903 msgstr ""
2462 2904
2463 -#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2464 -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"
2465 2907 msgstr ""
2466 2908
2467 -#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2468 -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."
2469 2911 msgstr ""
2470 2912
2471 -#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2472 -msgid "Used when Backend = Memcached."
2913 +#: includes/modules/ObjectCache/ObjectCacheModule.php:167
2914 +msgid "Memcached port"
2473 2915 msgstr ""
2474 2916
2475 -#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2476 -msgid "Memcached Port"
2917 +#: includes/modules/ObjectCache/ObjectCacheModule.php:168
2918 +msgid "The default Memcached port is 11211."
2477 2919 msgstr ""
2478 2920
2479 -#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2480 -msgid "Default Memcached port is 11211."
2921 +#: includes/modules/ObjectCache/ObjectCacheModule.php:196
2922 +msgid "Cache key prefix"
2481 2923 msgstr ""
2482 2924
2483 -#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2484 -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."
2485 2927 msgstr ""
2486 2928
2487 -#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2488 -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)"
2489 2931 msgstr ""
2490 2932
2491 -#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2492 -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."
2493 2935 msgstr ""
2494 2936
2495 -#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2496 -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"
2497 2939 msgstr ""
2498 2940
2499 -#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2500 -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."
2501 2943 msgstr ""
2502 2944
2503 -#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2504 -msgid "Reuse the connection across PHP requests when supported. Generally a win unless the cache server complains about idle connections."
2505 -msgstr ""
2506 -
2507 -#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2945 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1053
2508 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."
2509 2947 msgstr ""
2510 2948
2511 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2949 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1056
2512 2950 msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2513 2951 msgstr ""
2514 2952
2515 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2953 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1058
2516 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."
2517 2955 msgstr ""
2518 2956
2519 2957 #: includes/modules/Preloader/PreloaderModule.php:33
@@ -2520,70 +2958,66 @@
2520 2958 msgid "Crawl Now"
2521 2959 msgstr ""
2522 2960
2523 2961 #: includes/modules/Preloader/PreloaderModule.php:35
2524 -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."
2525 2963 msgstr ""
2526 2964
2527 -#: includes/modules/Preloader/PreloaderModule.php:61
2965 +#: includes/modules/Preloader/PreloaderModule.php:62
2528 2966 msgid "Your server is blocking the xSpeed cache warmer"
2529 2967 msgstr ""
2530 2968
2531 2969 #. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2532 -#: includes/modules/Preloader/PreloaderModule.php:64
2970 +#: includes/modules/Preloader/PreloaderModule.php:65
2533 2971 #, php-format
2534 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."
2535 2973 msgstr ""
2536 2974
2537 -#: includes/modules/Preloader/PreloaderModule.php:77
2538 -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."
2539 2977 msgstr ""
2540 2978
2541 -#: includes/modules/Preloader/PreloaderModule.php:78
2542 -msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2543 -msgstr ""
2544 -
2545 -#: includes/modules/Preloader/PreloaderModule.php:90
2979 +#: includes/modules/Preloader/PreloaderModule.php:91
2546 2980 msgid "Schedule"
2547 2981 msgstr ""
2548 2982
2549 -#: includes/modules/Preloader/PreloaderModule.php:91
2550 -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."
2551 2985 msgstr ""
2552 2986
2553 -#: includes/modules/Preloader/PreloaderModule.php:99
2554 -msgid "Batch Size"
2987 +#: includes/modules/Preloader/PreloaderModule.php:100
2988 +msgid "Pages per run"
2555 2989 msgstr ""
2556 2990
2557 -#: includes/modules/Preloader/PreloaderModule.php:100
2558 -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."
2559 2993 msgstr ""
2560 2994
2561 -#: includes/modules/Preloader/PreloaderModule.php:106
2995 +#: includes/modules/Preloader/PreloaderModule.php:108
2562 2996 msgid "Sitemap URL (optional)"
2563 2997 msgstr ""
2564 2998
2565 -#: includes/modules/Preloader/PreloaderModule.php:107
2566 -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."
2567 3001 msgstr ""
2568 3002
2569 -#: includes/modules/Preloader/PreloaderModule.php:113
3003 +#: includes/modules/Preloader/PreloaderModule.php:115
2570 3004 msgid "Warm new content immediately"
2571 3005 msgstr ""
2572 3006
2573 -#: includes/modules/Preloader/PreloaderModule.php:114
2574 -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."
2575 3009 msgstr ""
2576 3010
2577 -#: includes/modules/Preloader/PreloaderModule.php:120
3011 +#: includes/modules/Preloader/PreloaderModule.php:122
2578 3012 msgid "Re-warm after comments"
2579 3013 msgstr ""
2580 3014
2581 -#: includes/modules/Preloader/PreloaderModule.php:121
2582 -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."
2583 3017 msgstr ""
2584 3018
2585 -#: includes/modules/Preloader/PreloaderModule.php:297
3019 +#: includes/modules/Preloader/PreloaderModule.php:299
2586 3020 msgid "Enable the preloader before starting a crawl."
2587 3021 msgstr ""
2588 3022
2589 3023 #: includes/modules/Privacy/PrivacyModule.php:47
@@ -2590,17 +3024,17 @@
2590 3024 msgid "Privacy & usage data"
2591 3025 msgstr ""
2592 3026
2593 3027 #: includes/modules/Privacy/PrivacyModule.php:49
2594 -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."
2595 3029 msgstr ""
2596 3030
2597 -#: includes/modules/Privacy/PrivacyModule.php:58
3031 +#: includes/modules/Privacy/PrivacyModule.php:59
2598 3032 msgid "Share usage data"
2599 3033 msgstr ""
2600 3034
2601 -#: includes/modules/Privacy/PrivacyModule.php:59
2602 -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."
2603 3037 msgstr ""
2604 3038
2605 3039 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2606 3040 msgid "Resource Hints"
@@ -2610,143 +3044,142 @@
2610 3044 msgid "Hints"
2611 3045 msgstr ""
2612 3046
2613 3047 #: includes/modules/ResourceHints/ResourceHintsModule.php:63
2614 -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."
2615 3049 msgstr ""
2616 3050
2617 -#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2618 -msgid "Enable Resource Hints"
2619 -msgstr ""
2620 -
2621 3051 #: includes/modules/ResourceHints/ResourceHintsModule.php:78
2622 -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"
2623 3053 msgstr ""
2624 3054
2625 -#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2626 -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."
2627 3057 msgstr ""
2628 3058
2629 3059 #: includes/modules/ResourceHints/ResourceHintsModule.php:84
2630 -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"
2631 3061 msgstr ""
2632 3062
2633 -#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2634 -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."
2635 3065 msgstr ""
2636 3066
2637 -#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2638 -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"
2639 3069 msgstr ""
2640 3070
2641 -#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2642 -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."
2643 3073 msgstr ""
2644 3074
2645 -#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2646 -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"
2647 3077 msgstr ""
2648 3078
2649 -#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2650 -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."
2651 3081 msgstr ""
2652 3082
2653 -#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2654 -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"
2655 3085 msgstr ""
2656 3086
2657 3087 #: includes/modules/ResourceHints/ResourceHintsModule.php:111
2658 -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."
2659 3089 msgstr ""
2660 3090
2661 -#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2662 -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"
2663 3093 msgstr ""
2664 3094
2665 3095 #: includes/modules/ResourceHints/ResourceHintsModule.php:118
2666 -msgid "Extra Preconnect Hosts"
3096 +msgid "When the page uses Google Fonts, the browser connects to Google's servers early, so fonts arrive sooner."
2667 3097 msgstr ""
2668 3098
2669 -#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2670 -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"
2671 3101 msgstr ""
2672 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 +
2673 3107 #: includes/modules/Score/ScoreModule.php:58
2674 3108 msgid "Speed Test"
2675 3109 msgstr ""
2676 3110
2677 3111 #: includes/modules/Score/ScoreModule.php:64
2678 -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."
2679 3113 msgstr ""
2680 3114
2681 -#: includes/modules/Score/ScoreModule.php:77
3115 +#: includes/modules/Score/ScoreModule.php:78
2682 3116 msgid "Allow speed tests"
2683 3117 msgstr ""
2684 3118
2685 -#: includes/modules/Score/ScoreModule.php:83
2686 -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."
2687 3121 msgstr ""
2688 3122
2689 -#: includes/modules/Score/ScoreModule.php:98
2690 -#: assets/admin.js
2691 -msgid "Provider"
3123 +#: includes/modules/Score/ScoreModule.php:99
3124 +msgid "Test provider"
2692 3125 msgstr ""
2693 3126
2694 -#: includes/modules/Score/ScoreModule.php:99
2695 -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."
2696 3129 msgstr ""
2697 3130
2698 -#: includes/modules/Score/ScoreModule.php:104
3131 +#: includes/modules/Score/ScoreModule.php:105
2699 3132 msgid "PageSpeed API key (optional)"
2700 3133 msgstr ""
2701 3134
2702 -#: includes/modules/Score/ScoreModule.php:105
2703 -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."
2704 3137 msgstr ""
2705 3138
2706 -#: includes/modules/Score/ScoreModule.php:117
3139 +#: includes/modules/Score/ScoreModule.php:119
2707 3140 msgid "GTmetrix API key"
2708 3141 msgstr ""
2709 3142
2710 -#: includes/modules/Score/ScoreModule.php:118
2711 -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."
2712 3145 msgstr ""
2713 3146
2714 -#: includes/modules/Score/ScoreModule.php:127
3147 +#: includes/modules/Score/ScoreModule.php:129
2715 3148 msgid "URL to test"
2716 3149 msgstr ""
2717 3150
2718 -#: includes/modules/Score/ScoreModule.php:128
3151 +#: includes/modules/Score/ScoreModule.php:130
2719 3152 msgid "Leave empty to test your home page."
2720 3153 msgstr ""
2721 3154
2722 -#: includes/modules/Score/ScoreModule.php:134
2723 -msgid "Strategy"
3155 +#: includes/modules/Score/ScoreModule.php:136
3156 +msgid "Device"
2724 3157 msgstr ""
2725 3158
2726 -#: includes/modules/Score/ScoreModule.php:135
2727 -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."
2728 3161 msgstr ""
2729 3162
2730 -#: includes/modules/Score/ScoreModule.php:334
2731 -#: includes/modules/Score/ScoreModule.php:380
3163 +#: includes/modules/Score/ScoreModule.php:339
3164 +#: includes/modules/Score/ScoreModule.php:385
2732 3165 msgid "Hub-run speed tests are not enabled on this site."
2733 3166 msgstr ""
2734 3167
2735 -#: includes/modules/Score/ScoreModule.php:443
3168 +#: includes/modules/Score/ScoreModule.php:448
2736 3169 msgid "No URL to test."
2737 3170 msgstr ""
2738 3171
2739 -#: includes/modules/Score/ScoreModule.php:540
3172 +#: includes/modules/Score/ScoreModule.php:545
2740 3173 msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2741 3174 msgstr ""
2742 3175
2743 -#: includes/modules/Score/ScoreModule.php:619
3176 +#: includes/modules/Score/ScoreModule.php:624
2744 3177 msgid "The audit did not produce a result."
2745 3178 msgstr ""
2746 3179
2747 3180 #. translators: %s: module slug.
2748 -#: includes/modules/Settings/SettingsModule.php:320
3181 +#: includes/modules/Settings/SettingsModule.php:324
2749 3182 #, php-format
2750 3183 msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2751 3184 msgstr ""
2752 3185
@@ -2757,48 +3190,56 @@
2757 3190 #: includes/modules/Support/SupportModule.php:30
2758 3191 msgid "Open a support ticket with a one-click system snapshot already attached."
2759 3192 msgstr ""
2760 3193
2761 -#: includes/modules/Support/SupportModule.php:40
3194 +#: includes/modules/Support/SupportModule.php:41
2762 3195 msgid "Support URL"
2763 3196 msgstr ""
2764 3197
2765 -#: includes/modules/Support/SupportModule.php:41
2766 -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."
2767 3200 msgstr ""
2768 3201
2769 -#: includes/modules/TurboRender/TurboRenderModule.php:89
3202 +#: includes/modules/TurboRender/TurboRenderModule.php:105
2770 3203 msgid "Turbo Render"
2771 3204 msgstr ""
2772 3205
2773 -#: includes/modules/TurboRender/TurboRenderModule.php:91
2774 -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."
2775 3208 msgstr ""
2776 3209
2777 -#: includes/modules/TurboRender/TurboRenderModule.php:100
3210 +#: includes/modules/TurboRender/TurboRenderModule.php:117
2778 3211 msgid "Render as visitors scroll"
2779 3212 msgstr ""
2780 3213
2781 -#: includes/modules/TurboRender/TurboRenderModule.php:101
2782 -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."
2783 3216 msgstr ""
2784 3217
2785 -#: includes/modules/TurboRender/TurboRenderModule.php:108
3218 +#: includes/modules/TurboRender/TurboRenderModule.php:125
2786 3219 msgid "Sections to render immediately"
2787 3220 msgstr ""
2788 3221
2789 -#: includes/modules/TurboRender/TurboRenderModule.php:109
2790 -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."
2791 3224 msgstr ""
2792 3225
2793 -#: includes/modules/TurboRender/TurboRenderModule.php:114
3226 +#: includes/modules/TurboRender/TurboRenderModule.php:132
2794 3227 msgid "Section classes"
2795 3228 msgstr ""
2796 3229
2797 -#: includes/modules/TurboRender/TurboRenderModule.php:115
2798 -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."
2799 3232 msgstr ""
2800 3233
3234 +#: includes/modules/TurboRender/TurboRenderModule.php:140
3235 +msgid "Excluded classes"
3236 +msgstr ""
3237 +
3238 +#: includes/modules/TurboRender/TurboRenderModule.php:141
3239 +msgid "Sections with any of these classes are always drawn right away. Add one here if part of a section gets cut off where it overlaps the next."
3240 +msgstr ""
3241 +
2801 3242 #: xspeed.php:220
2802 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."
2803 3244 msgstr ""
2804 3245
@@ -2814,8 +3255,13 @@
2814 3255 #: assets/admin.js
2815 3256 msgid "“clear the cache on my store,” “warm up the homepage,” “how fast is my blog?”"
2816 3257 msgstr ""
2817 3258
3259 +#. Source: src/components/CfeOfferCard.tsx:44
3260 +#: assets/admin.js
3261 +msgid "/domain/mo"
3262 +msgstr ""
3263 +
2818 3264 #. Source: src/components/score/ScorePanel.tsx:96
2819 3265 #. Source: src/components/score/SpeedTestCard.tsx:135
2820 3266 #: assets/admin.js
2821 3267 msgid "%1$d of %2$d left"
@@ -2845,9 +3291,9 @@
2845 3291 #: assets/admin.js
2846 3292 msgid "7 days"
2847 3293 msgstr ""
2848 3294
2849 -#. Source: src/components/score/ScanCard.tsx:185
3295 +#. Source: src/components/score/ScanCard.tsx:198
2850 3296 #: assets/admin.js
2851 3297 msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2852 3298 msgstr ""
2853 3299
@@ -2855,9 +3301,9 @@
2855 3301 #: assets/admin.js
2856 3302 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2857 3303 msgstr ""
2858 3304
2859 -#. Source: src/components/cache/CacheHero.tsx:238
3305 +#. Source: src/components/cache/CacheHero.tsx:245
2860 3306 #: assets/admin.js
2861 3307 msgid "Absorbed"
2862 3308 msgstr ""
2863 3309
@@ -2865,16 +3311,17 @@
2865 3311 #: assets/admin.js
2866 3312 msgid "Action"
2867 3313 msgstr ""
2868 3314
2869 -#. Source: src/components/Sidebar.tsx:424
2870 -#. 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
2871 3318 #. Source: src/upsell/ProOverview.tsx:73
2872 3319 #: assets/admin.js
2873 3320 msgid "Activate License"
2874 3321 msgstr ""
2875 3322
2876 -#. Source: src/upsell/LockedPanel.tsx:104
3323 +#. Source: src/upsell/LockedPanel.tsx:165
2877 3324 #. Source: src/upsell/LockedSection.tsx:88
2878 3325 #. Source: src/upsell/ProDemo.tsx:92
2879 3326 #: assets/admin.js
2880 3327 msgid "Activate your license"
@@ -2879,10 +3326,10 @@
2879 3326 #: assets/admin.js
2880 3327 msgid "Activate your license"
2881 3328 msgstr ""
2882 3329
2883 -#. Source: src/upsell/LockedPanel.tsx:151
2884 -#. Source: src/upsell/LockedPanel.tsx:40
3330 +#. Source: src/upsell/LockedPanel.tsx:101
3331 +#. Source: src/upsell/LockedPanel.tsx:212
2885 3332 #: assets/admin.js
2886 3333 msgid "Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged."
2887 3334 msgstr ""
2888 3335
@@ -2917,10 +3364,15 @@
2917 3364 #: assets/admin.js
2918 3365 msgid "AI connection active"
2919 3366 msgstr ""
2920 3367
2921 -#. Source: src/components/TopBar.tsx:175
3368 +#. Source: src/upsell/LockedPanel.tsx:80
2922 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
2923 3375 msgid "Already empty"
2924 3376 msgstr ""
2925 3377
2926 3378 #. Source: src/components/purgeOutcome.ts:57
@@ -2927,9 +3379,9 @@
2927 3379 #: assets/admin.js
2928 3380 msgid "Also cleared: %s."
2929 3381 msgstr ""
2930 3382
2931 -#. Source: src/components/overview/Recommendations.tsx:181
3383 +#. Source: src/components/overview/Recommendations.tsx:190
2932 3384 #: assets/admin.js
2933 3385 msgid "Also worth a look"
2934 3386 msgstr ""
2935 3387
@@ -2958,9 +3410,9 @@
2958 3410 msgid "Another plugin owns the page cache on this site, so xSpeed is serving nothing."
2959 3411 msgstr ""
2960 3412
2961 3413 #. Source: src/components/cache/NextBestAction.tsx:122
2962 -#. Source: src/components/overview/Recommendations.tsx:96
3414 +#. Source: src/components/overview/Recommendations.tsx:101
2963 3415 #: assets/admin.js
2964 3416 msgid "Applied"
2965 3417 msgstr ""
2966 3418
@@ -2973,8 +3425,13 @@
2973 3425 #: assets/admin.js
2974 3426 msgid "Apply"
2975 3427 msgstr ""
2976 3428
3429 +#. Source: src/components/score/ScanCard.tsx:85
3430 +#: assets/admin.js
3431 +msgid "Assets"
3432 +msgstr ""
3433 +
2977 3434 #. Source: src/upsell/ProAudit.tsx:46
2978 3435 #: assets/admin.js
2979 3436 msgid "Audit failed"
2980 3437 msgstr ""
@@ -2988,9 +3445,9 @@
2988 3445 #: assets/admin.js
2989 3446 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2990 3447 msgstr ""
2991 3448
2992 -#. Source: src/components/overview/MetricGrid.tsx:47
3449 +#. Source: src/components/overview/MetricGrid.tsx:57
2993 3450 #: assets/admin.js
2994 3451 msgid "Avg saved"
2995 3452 msgstr ""
2996 3453
@@ -3013,34 +3470,34 @@
3013 3470 #: assets/admin.js
3014 3471 msgid "Benchmark: cached vs uncached (ms)"
3015 3472 msgstr ""
3016 3473
3017 -#. Source: src/components/overview/Recommendations.tsx:230
3474 +#. Source: src/components/overview/Recommendations.tsx:239
3018 3475 #: assets/admin.js
3019 3476 msgid "Book"
3020 3477 msgstr ""
3021 3478
3022 -#. Source: src/components/overview/Recommendations.tsx:221
3479 +#. Source: src/components/overview/Recommendations.tsx:230
3023 3480 #: assets/admin.js
3024 3481 msgid "Book a free setup review with our team."
3025 3482 msgstr ""
3026 3483
3027 -#. Source: src/components/cache/CacheHero.tsx:242
3484 +#. Source: src/components/cache/CacheHero.tsx:249
3028 3485 #: assets/admin.js
3029 -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."
3030 3487 msgstr ""
3031 3488
3032 -#. Source: src/components/TopBar.tsx:81
3489 +#. Source: src/components/TopBar.tsx:84
3033 3490 #: assets/admin.js
3034 3491 msgid "Breadcrumb"
3035 3492 msgstr ""
3036 3493
3037 -#. Source: src/components/overview/FeatureMap.tsx:104
3494 +#. Source: src/components/overview/FeatureMap.tsx:114
3038 3495 #: assets/admin.js
3039 3496 msgid "Browse all"
3040 3497 msgstr ""
3041 3498
3042 -#. Source: src/components/sidebarGroups.ts:79
3499 +#. Source: src/components/sidebarGroups.ts:82
3043 3500 #: assets/admin.js
3044 3501 msgid "Cache"
3045 3502 msgstr ""
3046 3503
@@ -3062,9 +3519,9 @@
3062 3519 #: assets/admin.js
3063 3520 msgid "Cache cleared."
3064 3521 msgstr ""
3065 3522
3066 -#. Source: src/App.tsx:331
3523 +#. Source: src/App.tsx:347
3067 3524 #: assets/admin.js
3068 3525 msgid "Cache could not be enabled."
3069 3526 msgstr ""
3070 3527
@@ -3072,19 +3529,19 @@
3072 3529 #: assets/admin.js
3073 3530 msgid "Cache coverage"
3074 3531 msgstr ""
3075 3532
3076 -#. Source: src/App.tsx:343
3533 +#. Source: src/App.tsx:359
3077 3534 #: assets/admin.js
3078 3535 msgid "Cache disabled"
3079 3536 msgstr ""
3080 3537
3081 -#. Source: src/App.tsx:343
3538 +#. Source: src/App.tsx:359
3082 3539 #: assets/admin.js
3083 3540 msgid "Cache enabled"
3084 3541 msgstr ""
3085 3542
3086 -#. Source: src/App.tsx:337
3543 +#. Source: src/App.tsx:353
3087 3544 #: assets/admin.js
3088 3545 msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health."
3089 3546 msgstr ""
3090 3547
@@ -3128,9 +3585,9 @@
3128 3585 msgid "Cache purged"
3129 3586 msgstr ""
3130 3587
3131 3588 #. Source: src/components/health/HealthHero.tsx:30
3132 -#. Source: src/components/overview/MetricGrid.tsx:46
3589 +#. Source: src/components/overview/MetricGrid.tsx:56
3133 3590 #: assets/admin.js
3134 3591 msgid "Cache size"
3135 3592 msgstr ""
3136 3593
@@ -3150,9 +3607,9 @@
3150 3607 msgstr ""
3151 3608
3152 3609 #. Source: src/components/cache/StatDrilldown.tsx:140
3153 3610 #. Source: src/components/health/HealthHero.tsx:29
3154 -#. Source: src/components/overview/MetricGrid.tsx:45
3611 +#. Source: src/components/overview/MetricGrid.tsx:55
3155 3612 #: assets/admin.js
3156 3613 msgid "Cached pages"
3157 3614 msgstr ""
3158 3615
@@ -3176,11 +3633,11 @@
3176 3633 #: assets/admin.js
3177 3634 msgid "Cancel"
3178 3635 msgstr ""
3179 3636
3180 -#. Source: src/components/sidebarGroups.ts:95
3637 +#. Source: src/components/sidebarGroups.ts:98
3181 3638 #: assets/admin.js
3182 -msgid "CDN and Cloudflare edge delivery."
3639 +msgid "CDN, your own Cloudflare zone and Cloudflare Enterprise."
3183 3640 msgstr ""
3184 3641
3185 3642 #. Source: src/components/score/ScorePanel.tsx:661
3186 3643 #: assets/admin.js
@@ -3196,9 +3653,9 @@
3196 3653 #: assets/admin.js
3197 3654 msgid "Checking your AI connection…"
3198 3655 msgstr ""
3199 3656
3200 -#. Source: src/components/overview/ScoreCard.tsx:195
3657 +#. Source: src/components/overview/ScoreCard.tsx:199
3201 3658 #: assets/admin.js
3202 3659 msgid "Checking your score"
3203 3660 msgstr ""
3204 3661
@@ -3211,9 +3668,9 @@
3211 3668 #: assets/admin.js
3212 3669 msgid "Clear"
3213 3670 msgstr ""
3214 3671
3215 -#. Source: src/components/TopBar.tsx:173
3672 +#. Source: src/components/TopBar.tsx:197
3216 3673 #: assets/admin.js
3217 3674 msgid "Cleared"
3218 3675 msgstr ""
3219 3676
@@ -3226,17 +3683,31 @@
3226 3683 #: assets/admin.js
3227 3684 msgid "Click \"Run benchmark\" to compare load times."
3228 3685 msgstr ""
3229 3686
3230 -#. Source: src/components/Sidebar.tsx:219
3231 -#. Source: src/components/Sidebar.tsx:266
3687 +#. Source: src/components/Sidebar.tsx:275
3688 +#. Source: src/components/Sidebar.tsx:323
3232 3689 #: assets/admin.js
3233 3690 msgid "Close navigation"
3234 3691 msgstr ""
3235 3692
3236 -#. Source: src/components/Sidebar.tsx:284
3237 -#. 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
3238 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
3239 3710 msgid "Collapse sidebar"
3240 3711 msgstr ""
3241 3712
3242 3713 #. Source: src/components/CommandPalette.tsx:172
@@ -3248,9 +3719,9 @@
3248 3719 #: assets/admin.js
3249 3720 msgid "Compare"
3250 3721 msgstr ""
3251 3722
3252 -#. Source: src/upsell/LockedPanel.tsx:125
3723 +#. Source: src/upsell/LockedPanel.tsx:186
3253 3724 #: assets/admin.js
3254 3725 msgid "Compare plans"
3255 3726 msgstr ""
3256 3727
@@ -3273,14 +3744,14 @@
3273 3744 #: assets/admin.js
3274 3745 msgid "Connect"
3275 3746 msgstr ""
3276 3747
3277 -#. Source: src/components/sidebarGroups.ts:120
3748 +#. Source: src/components/sidebarGroups.ts:123
3278 3749 #: assets/admin.js
3279 3750 msgid "Connect an AI agent to this site, and control what AI features may use."
3280 3751 msgstr ""
3281 3752
3282 -#. Source: src/components/TopBar.tsx:138
3753 +#. Source: src/components/TopBar.tsx:142
3283 3754 #: assets/admin.js
3284 3755 msgid "Connect Hub"
3285 3756 msgstr ""
3286 3757
@@ -3293,24 +3764,19 @@
3293 3764 #: assets/admin.js
3294 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."
3295 3766 msgstr ""
3296 3767
3297 -#. Source: src/components/overview/HubCard.tsx:126
3768 +#. Source: src/components/overview/HubCard.tsx:168
3298 3769 #: assets/admin.js
3299 3770 msgid "Connect to control caching remotely, drive it from AI agents, and manage all your sites in one place."
3300 3771 msgstr ""
3301 3772
3302 -#. Source: src/components/overview/HubCard.tsx:133
3303 -#. Source: src/components/overview/HubCard.tsx:140
3773 +#. Source: src/components/overview/HubCard.tsx:175
3774 +#. Source: src/components/overview/HubCard.tsx:182
3304 3775 #: assets/admin.js
3305 3776 msgid "Connect to Hub"
3306 3777 msgstr ""
3307 3778
3308 -#. Source: src/onboarding/steps/Connect.tsx:195
3309 -#: assets/admin.js
3310 -msgid "Connect to xSpeed Hub"
3311 -msgstr ""
3312 -
3313 3779 #. Source: src/components/overview/AiControlCard.tsx:325
3314 3780 #: assets/admin.js
3315 3781 msgid "Connect with MCP"
3316 3782 msgstr ""
@@ -3319,9 +3785,9 @@
3319 3785 #: assets/admin.js
3320 3786 msgid "Connect your AI agent through MCP — then just ask it to analyze and optimize your site."
3321 3787 msgstr ""
3322 3788
3323 -#. Source: src/components/overview/HubCard.tsx:104
3789 +#. Source: src/components/overview/HubCard.tsx:146
3324 3790 #: assets/admin.js
3325 3791 msgid "Connected"
3326 3792 msgstr ""
3327 3793
@@ -3329,9 +3795,9 @@
3329 3795 #: assets/admin.js
3330 3796 msgid "Connected — starting your test…"
3331 3797 msgstr ""
3332 3798
3333 -#. Source: src/components/overview/HubCard.tsx:113
3799 +#. Source: src/components/overview/HubCard.tsx:155
3334 3800 #: assets/admin.js
3335 3801 msgid "Connected as"
3336 3802 msgstr ""
3337 3803
@@ -3344,9 +3810,9 @@
3344 3810 #: assets/admin.js
3345 3811 msgid "Connected to xSpeed Hub"
3346 3812 msgstr ""
3347 3813
3348 -#. Source: src/components/score/ScanCard.tsx:221
3814 +#. Source: src/components/score/ScanCard.tsx:234
3349 3815 #: assets/admin.js
3350 3816 msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3351 3817 msgstr ""
3352 3818
@@ -3359,14 +3825,14 @@
3359 3825 #: assets/admin.js
3360 3826 msgid "Control and optimize your site with AI"
3361 3827 msgstr ""
3362 3828
3363 -#. Source: src/components/overview/HubCard.tsx:113
3829 +#. Source: src/components/overview/HubCard.tsx:155
3364 3830 #: assets/admin.js
3365 3831 msgid "Control caching remotely and from AI agents."
3366 3832 msgstr ""
3367 3833
3368 -#. Source: src/components/overview/HubCard.tsx:114
3834 +#. Source: src/components/overview/HubCard.tsx:156
3369 3835 #: assets/admin.js
3370 3836 msgid "Control caching remotely, drive it from AI agents, and manage your sites in one place."
3371 3837 msgstr ""
3372 3838
@@ -3374,14 +3840,19 @@
3374 3840 #: assets/admin.js
3375 3841 msgid "Control xSpeed with AI"
3376 3842 msgstr ""
3377 3843
3844 +#. Source: src/components/score/ScanCard.tsx:81
3845 +#: assets/admin.js
3846 +msgid "Core Web Vitals"
3847 +msgstr ""
3848 +
3378 3849 #. Source: src/components/overview/McpSessionDemo.tsx:230
3379 3850 #: assets/admin.js
3380 3851 msgid "Core Web Vitals checked"
3381 3852 msgstr ""
3382 3853
3383 -#. Source: src/components/overview/Recommendations.tsx:98
3854 +#. Source: src/components/overview/Recommendations.tsx:103
3384 3855 #: assets/admin.js
3385 3856 msgid "Could not apply that fix"
3386 3857 msgstr ""
3387 3858
@@ -3394,9 +3865,9 @@
3394 3865 #: assets/admin.js
3395 3866 msgid "Could not check the test status."
3396 3867 msgstr ""
3397 3868
3398 -#. Source: src/components/sidebarGroups.ts:109
3869 +#. Source: src/components/sidebarGroups.ts:112
3399 3870 #: assets/admin.js
3400 3871 msgid "Database cleanup, migration and logs."
3401 3872 msgstr ""
3402 3873
@@ -3404,19 +3875,34 @@
3404 3875 #: assets/admin.js
3405 3876 msgid "Defined in wp-config.php as"
3406 3877 msgstr ""
3407 3878
3408 -#. Source: src/components/overview/ScoreCard.tsx:185
3879 +#. Source: src/components/overview/ScoreCard.tsx:189
3409 3880 #: assets/admin.js
3410 3881 msgid "desktop"
3411 3882 msgstr ""
3412 3883
3413 -#. Source: src/components/overview/ScoreCard.tsx:90
3414 -#. Source: src/components/score/ScanCard.tsx:281
3884 +#. Source: src/components/overview/ScoreCard.tsx:91
3885 +#. Source: src/components/score/ScanCard.tsx:298
3415 3886 #: assets/admin.js
3416 3887 msgid "Desktop"
3417 3888 msgstr ""
3418 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 +
3419 3905 #. Source: src/components/FieldSuggestionStrip.tsx:132
3420 3906 #: assets/admin.js
3421 3907 msgid "Dismiss"
3422 3908 msgstr ""
@@ -3426,13 +3912,23 @@
3426 3912 #: assets/admin.js
3427 3913 msgid "Dismiss banner"
3428 3914 msgstr ""
3429 3915
3916 +#. Source: src/components/CfeOfferCard.tsx:92
3917 +#: assets/admin.js
3918 +msgid "Dismiss the Cloudflare Enterprise offer"
3919 +msgstr ""
3920 +
3430 3921 #. Source: src/components/overview/OverviewFooter.tsx:24
3431 3922 #: assets/admin.js
3432 3923 msgid "Documentation"
3433 3924 msgstr ""
3434 3925
3926 +#. Source: src/upsell/PurchasePath.tsx:96
3927 +#: assets/admin.js
3928 +msgid "Done"
3929 +msgstr ""
3930 +
3435 3931 #. Source: src/components/cache/NextBestAction.tsx:85
3436 3932 #: assets/admin.js
3437 3933 msgid "Every deterministic check passes — your configuration looks healthy."
3438 3934 msgstr ""
@@ -3456,10 +3952,10 @@
3456 3952 #: assets/admin.js
3457 3953 msgid "Example session"
3458 3954 msgstr ""
3459 3955
3460 -#. Source: src/components/Sidebar.tsx:284
3461 -#. Source: src/components/Sidebar.tsx:289
3956 +#. Source: src/components/Sidebar.tsx:341
3957 +#. Source: src/components/Sidebar.tsx:346
3462 3958 #: assets/admin.js
3463 3959 msgid "Expand sidebar"
3464 3960 msgstr ""
3465 3961
@@ -3467,19 +3963,19 @@
3467 3963 #: assets/admin.js
3468 3964 msgid "failed"
3469 3965 msgstr ""
3470 3966
3471 -#. Source: src/App.tsx:347
3967 +#. Source: src/App.tsx:363
3472 3968 #: assets/admin.js
3473 3969 msgid "Failed to disable cache"
3474 3970 msgstr ""
3475 3971
3476 -#. Source: src/App.tsx:347
3972 +#. Source: src/App.tsx:363
3477 3973 #: assets/admin.js
3478 3974 msgid "Failed to enable cache"
3479 3975 msgstr ""
3480 3976
3481 -#. Source: src/App.tsx:286
3977 +#. Source: src/App.tsx:302
3482 3978 #: assets/admin.js
3483 3979 msgid "Failed to load"
3484 3980 msgstr ""
3485 3981
@@ -3492,9 +3988,9 @@
3492 3988 #: assets/admin.js
3493 3989 msgid "faster per page"
3494 3990 msgstr ""
3495 3991
3496 -#. Source: src/components/overview/FeatureMap.tsx:104
3992 +#. Source: src/components/overview/FeatureMap.tsx:114
3497 3993 #: assets/admin.js
3498 3994 msgid "features"
3499 3995 msgstr ""
3500 3996
@@ -3517,18 +4013,28 @@
3517 4013 #: assets/admin.js
3518 4014 msgid "from wp-config.php"
3519 4015 msgstr ""
3520 4016
3521 -#. Source: src/components/score/ScanCard.tsx:358
4017 +#. Source: src/components/score/ScanCard.tsx:375
3522 4018 #: assets/admin.js
3523 4019 msgid "Full report"
3524 4020 msgstr ""
3525 4021
4022 +#. Source: src/components/CfeOfferCard.tsx:59
4023 +#: assets/admin.js
4024 +msgid "Get it"
4025 +msgstr ""
4026 +
3526 4027 #. Source: src/onboarding/steps/Connect.tsx:170
3527 4028 #: assets/admin.js
3528 4029 msgid "Get more over time"
3529 4030 msgstr ""
3530 4031
4032 +#. Source: src/upsell/LockedPanel.tsx:69
4033 +#: assets/admin.js
4034 +msgid "Get Pro"
4035 +msgstr ""
4036 +
3531 4037 #. Source: src/onboarding/steps/Connect.tsx:134
3532 4038 #. Source: src/onboarding/steps/Connect.tsx:81
3533 4039 #: assets/admin.js
3534 4040 msgid "Go to Dashboard"
@@ -3538,15 +4044,15 @@
3538 4044 #: assets/admin.js
3539 4045 msgid "Go to the dashboard"
3540 4046 msgstr ""
3541 4047
3542 -#. Source: src/components/overview/ScoreCard.tsx:277
4048 +#. Source: src/components/overview/ScoreCard.tsx:281
3543 4049 #: assets/admin.js
3544 4050 msgid "good"
3545 4051 msgstr ""
3546 4052
3547 -#. Source: src/components/score/ScanCard.tsx:261
3548 -#. Source: src/components/score/ScanCard.tsx:302
4053 +#. Source: src/components/score/ScanCard.tsx:278
4054 +#. Source: src/components/score/ScanCard.tsx:319
3549 4055 #: assets/admin.js
3550 4056 msgid "Grade"
3551 4057 msgstr ""
3552 4058
@@ -3554,9 +4060,9 @@
3554 4060 #: assets/admin.js
3555 4061 msgid "GTmetrix test"
3556 4062 msgstr ""
3557 4063
3558 -#. Source: src/components/sidebarGroups.ts:100
4064 +#. Source: src/components/sidebarGroups.ts:103
3559 4065 #: assets/admin.js
3560 4066 msgid "Health & insights"
3561 4067 msgstr ""
3562 4068
@@ -3580,10 +4086,10 @@
3580 4086 msgid "Hide"
3581 4087 msgstr ""
3582 4088
3583 4089 #. Source: src/components/cache/TrendCharts.tsx:125
3584 -#. Source: src/components/health/HealthHero.tsx:37
3585 -#. Source: src/components/overview/MetricGrid.tsx:44
4090 +#. Source: src/components/health/HealthHero.tsx:42
4091 +#. Source: src/components/overview/MetricGrid.tsx:45
3586 4092 #: assets/admin.js
3587 4093 msgid "Hit ratio"
3588 4094 msgstr ""
3589 4095
@@ -3596,8 +4102,13 @@
3596 4102 #: assets/admin.js
3597 4103 msgid "Hit Ratio · 24h · origin"
3598 4104 msgstr ""
3599 4105
4106 +#. Source: src/components/health/HealthHero.tsx:42
4107 +#: assets/admin.js
4108 +msgid "Hit ratio (PHP-served only)"
4109 +msgstr ""
4110 +
3600 4111 #. Source: src/components/cache/TrendCharts.tsx:83
3601 4112 #: assets/admin.js
3602 4113 msgid "Hit ratio and benchmark history, with your settings changes marked."
3603 4114 msgstr ""
@@ -3621,13 +4132,18 @@
3621 4132 #: assets/admin.js
3622 4133 msgid "hrs"
3623 4134 msgstr ""
3624 4135
3625 -#. Source: src/components/TopBar.tsx:138
4136 +#. Source: src/components/TopBar.tsx:142
3626 4137 #: assets/admin.js
3627 4138 msgid "Hub connected"
3628 4139 msgstr ""
3629 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 +
3630 4146 #. Source: src/onboarding/steps/Connect.tsx:132
3631 4147 #: assets/admin.js
3632 4148 msgid "I'll connect later"
3633 4149 msgstr ""
@@ -3666,14 +4182,14 @@
3666 4182 #: assets/admin.js
3667 4183 msgid "Just say what you want"
3668 4184 msgstr ""
3669 4185
3670 -#. Source: src/components/overview/MetricGrid.tsx:51
4186 +#. Source: src/components/overview/MetricGrid.tsx:61
3671 4187 #: assets/admin.js
3672 4188 msgid "Key metrics"
3673 4189 msgstr ""
3674 4190
3675 -#. Source: src/components/overview/MetricGrid.tsx:44
4191 +#. Source: src/components/overview/MetricGrid.tsx:53
3676 4192 #: assets/admin.js
3677 4193 msgid "last 24 hours"
3678 4194 msgstr ""
3679 4195
@@ -3702,25 +4218,35 @@
3702 4218 #: assets/admin.js
3703 4219 msgid "License"
3704 4220 msgstr ""
3705 4221
3706 -#. Source: src/components/sidebarGroups.ts:128
4222 +#. Source: src/upsell/LockedPanel.tsx:61
3707 4223 #: assets/admin.js
4224 +msgid "License not active"
4225 +msgstr ""
4226 +
4227 +#. Source: src/components/sidebarGroups.ts:131
4228 +#: assets/admin.js
3708 4229 msgid "License, branding, multisite and support."
3709 4230 msgstr ""
3710 4231
3711 -#. Source: src/components/overview/ScoreCard.tsx:205
4232 +#. Source: src/components/overview/ScoreCard.tsx:209
3712 4233 #: assets/admin.js
3713 4234 msgid "Lighthouse performance, from your latest xSpeed Scan."
3714 4235 msgstr ""
3715 4236
3716 -#. Source: src/components/score/ScanCard.tsx:284
4237 +#. Source: src/components/score/ScanCard.tsx:301
3717 4238 #: assets/admin.js
3718 4239 msgid "Lighthouse performance, out of 100"
3719 4240 msgstr ""
3720 4241
3721 -#. Source: src/App.tsx:456
3722 -#. Source: src/components/GroupLanding.tsx:67
4242 +#. Source: src/components/cache/CacheHero.tsx:238
4243 +#: assets/admin.js
4244 +msgid "LiteSpeed Static Fast Path is on: cache hits are served by the web server with no PHP, carry no X-XSpeed-Cache header, and are not counted here — so a low ratio reflects the trade you chose, not a broken cache."
4245 +msgstr ""
4246 +
4247 +#. Source: src/App.tsx:485
4248 +#. Source: src/components/GroupLanding.tsx:79
3723 4249 #. Source: src/components/LogsView.tsx:35
3724 4250 #: assets/admin.js
3725 4251 msgid "Logs"
3726 4252 msgstr ""
@@ -3760,10 +4286,10 @@
3760 4286 #: assets/admin.js
3761 4287 msgid "Manage xSpeed through conversation"
3762 4288 msgstr ""
3763 4289
3764 -#. Source: src/components/Sidebar.tsx:395
3765 -#. Source: src/components/Sidebar.tsx:402
4290 +#. Source: src/components/Sidebar.tsx:493
4291 +#. Source: src/components/Sidebar.tsx:500
3766 4292 #: assets/admin.js
3767 4293 msgid "Manage your license"
3768 4294 msgstr ""
3769 4295
@@ -3771,9 +4297,9 @@
3771 4297 #: assets/admin.js
3772 4298 msgid "MCP is connected and ready — your AI agent can purge, tune and benchmark this site."
3773 4299 msgstr ""
3774 4300
3775 -#. Source: src/components/overview/ScoreCard.tsx:210
4301 +#. Source: src/components/overview/ScoreCard.tsx:214
3776 4302 #: assets/admin.js
3777 4303 msgid "Measured on your home page by an external audit."
3778 4304 msgstr ""
3779 4305
@@ -3786,33 +4312,33 @@
3786 4312 #: assets/admin.js
3787 4313 msgid "min"
3788 4314 msgstr ""
3789 4315
3790 -#. Source: src/components/sidebarGroups.ts:88
4316 +#. Source: src/components/sidebarGroups.ts:91
3791 4317 #: assets/admin.js
3792 4318 msgid "Minify, compress, lazy-load, fonts and hints."
3793 4319 msgstr ""
3794 4320
3795 -#. Source: src/components/overview/ScoreCard.tsx:185
3796 -#. Source: src/components/score/ScanCard.tsx:294
4321 +#. Source: src/components/overview/ScoreCard.tsx:189
4322 +#. Source: src/components/score/ScanCard.tsx:311
3797 4323 #: assets/admin.js
3798 4324 msgid "mobile"
3799 4325 msgstr ""
3800 4326
3801 -#. Source: src/components/overview/ScoreCard.tsx:91
3802 -#. Source: src/components/score/ScanCard.tsx:281
4327 +#. Source: src/components/overview/ScoreCard.tsx:92
4328 +#. Source: src/components/score/ScanCard.tsx:298
3803 4329 #: assets/admin.js
3804 4330 msgid "Mobile"
3805 4331 msgstr ""
3806 4332
3807 -#. Source: src/components/Sidebar.tsx:334
3808 -#. Source: src/components/Sidebar.tsx:370
4333 +#. Source: src/components/Sidebar.tsx:407
4334 +#. Source: src/components/Sidebar.tsx:443
3809 4335 #: assets/admin.js
3810 4336 msgid "module on"
3811 4337 msgstr ""
3812 4338
3813 -#. Source: src/components/Sidebar.tsx:335
3814 -#. Source: src/components/Sidebar.tsx:371
4339 +#. Source: src/components/Sidebar.tsx:408
4340 +#. Source: src/components/Sidebar.tsx:444
3815 4341 #: assets/admin.js
3816 4342 msgid "modules on"
3817 4343 msgstr ""
3818 4344
@@ -3820,9 +4346,9 @@
3820 4346 #: assets/admin.js
3821 4347 msgid "more after this"
3822 4348 msgstr ""
3823 4349
3824 -#. Source: src/components/overview/HubCard.tsx:148
4350 +#. Source: src/components/overview/HubCard.tsx:190
3825 4351 #: assets/admin.js
3826 4352 msgid "More options"
3827 4353 msgstr ""
3828 4354
@@ -3830,9 +4356,9 @@
3830 4356 #: assets/admin.js
3831 4357 msgid "Negligible difference — page is cheap to render or cache is cold."
3832 4358 msgstr ""
3833 4359
3834 -#. Source: src/components/sidebarGroups.ts:93
4360 +#. Source: src/components/sidebarGroups.ts:96
3835 4361 #: assets/admin.js
3836 4362 msgid "Network"
3837 4363 msgstr ""
3838 4364
@@ -3840,9 +4366,9 @@
3840 4366 #: assets/admin.js
3841 4367 msgid "never"
3842 4368 msgstr ""
3843 4369
3844 -#. Source: src/components/overview/ScoreCard.tsx:181
4370 +#. Source: src/components/overview/ScoreCard.tsx:185
3845 4371 #: assets/admin.js
3846 4372 msgid "Never scanned"
3847 4373 msgstr ""
3848 4374
@@ -3881,13 +4407,18 @@
3881 4407 #: assets/admin.js
3882 4408 msgid "no change"
3883 4409 msgstr ""
3884 4410
3885 -#. Source: src/components/overview/ScoreCard.tsx:181
4411 +#. Source: src/components/overview/ScoreCard.tsx:185
3886 4412 #: assets/admin.js
3887 4413 msgid "No completed scan"
3888 4414 msgstr ""
3889 4415
4416 +#. Source: src/upsell/LockedPanel.tsx:71
4417 +#: assets/admin.js
4418 +msgid "No license key"
4419 +msgstr ""
4420 +
3890 4421 #. Source: src/onboarding/steps/Connect.tsx:164
3891 4422 #: assets/admin.js
3892 4423 msgid "no logging into each dashboard separately."
3893 4424 msgstr ""
@@ -3896,9 +4427,9 @@
3896 4427 #: assets/admin.js
3897 4428 msgid "No matches"
3898 4429 msgstr ""
3899 4430
3900 -#. Source: src/components/overview/ScoreCard.tsx:224
4431 +#. Source: src/components/overview/ScoreCard.tsx:228
3901 4432 #: assets/admin.js
3902 4433 msgid "No performance score measured yet"
3903 4434 msgstr ""
3904 4435
@@ -3921,9 +4452,9 @@
3921 4452 #: assets/admin.js
3922 4453 msgid "No score measured yet"
3923 4454 msgstr ""
3924 4455
3925 -#. Source: src/components/overview/ScoreCard.tsx:196
4456 +#. Source: src/components/overview/ScoreCard.tsx:200
3926 4457 #: assets/admin.js
3927 4458 msgid "No score yet"
3928 4459 msgstr ""
3929 4460
@@ -3931,8 +4462,24 @@
3931 4462 #: assets/admin.js
3932 4463 msgid "No tests left this month."
3933 4464 msgstr ""
3934 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 +
3935 4482 #. Source: src/components/score/ConnectHubModal.tsx:142
3936 4483 #: assets/admin.js
3937 4484 msgid "Not now"
3938 4485 msgstr ""
@@ -3951,9 +4498,9 @@
3951 4498 #: assets/admin.js
3952 4499 msgid "Nothing on disk yet."
3953 4500 msgstr ""
3954 4501
3955 -#. Source: src/components/overview/ScoreCard.tsx:271
4502 +#. Source: src/components/overview/ScoreCard.tsx:275
3956 4503 #: assets/admin.js
3957 4504 msgid "now"
3958 4505 msgstr ""
3959 4506
@@ -3961,13 +4508,13 @@
3961 4508 #: assets/admin.js
3962 4509 msgid "Now unlocked"
3963 4510 msgstr ""
3964 4511
3965 -#. Source: src/components/GroupLanding.tsx:92
3966 -#. Source: src/components/Sidebar.tsx:334
3967 -#. Source: src/components/Sidebar.tsx:335
3968 -#. Source: src/components/Sidebar.tsx:370
3969 -#. 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
3970 4517 #. Source: src/components/cache/StatDrilldown.tsx:211
3971 4518 #: assets/admin.js
3972 4519 msgid "of"
3973 4520 msgstr ""
@@ -3981,23 +4528,23 @@
3981 4528 #: assets/admin.js
3982 4529 msgid "of combined wait time"
3983 4530 msgstr ""
3984 4531
3985 -#. Source: src/components/GroupLanding.tsx:42
3986 -#. Source: src/components/ModuleHeader.tsx:33
3987 -#. 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
3988 4535 #: assets/admin.js
3989 4536 msgid "Off"
3990 4537 msgstr ""
3991 4538
3992 -#. Source: src/components/GroupLanding.tsx:92
4539 +#. Source: src/components/GroupLanding.tsx:106
3993 4540 #: assets/admin.js
3994 4541 msgid "on"
3995 4542 msgstr ""
3996 4543
3997 -#. Source: src/components/GroupLanding.tsx:38
3998 -#. Source: src/components/ModuleHeader.tsx:29
3999 -#. 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
4000 4547 #: assets/admin.js
4001 4548 msgid "On"
4002 4549 msgstr ""
4003 4550
@@ -4006,9 +4553,9 @@
4006 4553 msgid "On a managed host (xCloud, Cloudways and similar), changing it in their control panel is usually the better route. You can revert at any time."
4007 4554 msgstr ""
4008 4555
4009 4556 #. Source: src/components/health/HealthHero.tsx:30
4010 -#. Source: src/components/overview/MetricGrid.tsx:46
4557 +#. Source: src/components/overview/MetricGrid.tsx:56
4011 4558 #: assets/admin.js
4012 4559 msgid "on disk"
4013 4560 msgstr ""
4014 4561
@@ -4026,9 +4573,9 @@
4026 4573 #: assets/admin.js
4027 4574 msgid "One AI connection controls the cache on every site you connect"
4028 4575 msgstr ""
4029 4576
4030 -#. Source: src/components/overview/HubCard.tsx:118
4577 +#. Source: src/components/overview/HubCard.tsx:160
4031 4578 #: assets/admin.js
4032 4579 msgid "Open Hub dashboard"
4033 4580 msgstr ""
4034 4581
@@ -4036,9 +4583,9 @@
4036 4583 #: assets/admin.js
4037 4584 msgid "Open MCP"
4038 4585 msgstr ""
4039 4586
4040 -#. Source: src/components/TopBar.tsx:88
4587 +#. Source: src/components/TopBar.tsx:91
4041 4588 #: assets/admin.js
4042 4589 msgid "Open navigation"
4043 4590 msgstr ""
4044 4591
@@ -4046,9 +4593,9 @@
4046 4593 #: assets/admin.js
4047 4594 msgid "Open the full report"
4048 4595 msgstr ""
4049 4596
4050 -#. Source: src/components/sidebarGroups.ts:86
4597 +#. Source: src/components/sidebarGroups.ts:89
4051 4598 #: assets/admin.js
4052 4599 msgid "Optimization"
4053 4600 msgstr ""
4054 4601
@@ -4062,14 +4609,14 @@
4062 4609 msgid "Optimize my site for better PageSpeed."
4063 4610 msgstr ""
4064 4611
4065 4612 #. Source: src/components/ScoreRing.tsx:61
4066 -#. Source: src/components/overview/ScoreCard.tsx:225
4613 +#. Source: src/components/overview/ScoreCard.tsx:229
4067 4614 #: assets/admin.js
4068 4615 msgid "out of 100"
4069 4616 msgstr ""
4070 4617
4071 -#. Source: src/components/overview/ScoreCard.tsx:209
4618 +#. Source: src/components/overview/ScoreCard.tsx:213
4072 4619 #: assets/admin.js
4073 4620 msgid "Over a month old — may not reflect the site now."
4074 4621 msgstr ""
4075 4622
@@ -4077,9 +4624,9 @@
4077 4624 #: assets/admin.js
4078 4625 msgid "Page"
4079 4626 msgstr ""
4080 4627
4081 -#. Source: src/components/sidebarGroups.ts:81
4628 +#. Source: src/components/sidebarGroups.ts:84
4082 4629 #: assets/admin.js
4083 4630 msgid "Page, object and browser caching, plus preload."
4084 4631 msgstr ""
4085 4632
@@ -4097,14 +4644,14 @@
4097 4644 #: assets/admin.js
4098 4645 msgid "PageSpeed & Core Web Vitals"
4099 4646 msgstr ""
4100 4647
4101 -#. Source: src/components/score/ScanCard.tsx:314
4648 +#. Source: src/components/score/ScanCard.tsx:331
4102 4649 #: assets/admin.js
4103 4650 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
4104 4651 msgstr ""
4105 4652
4106 -#. Source: src/components/TopBar.tsx:177
4653 +#. Source: src/components/TopBar.tsx:201
4107 4654 #: assets/admin.js
4108 4655 msgid "Partly cleared"
4109 4656 msgstr ""
4110 4657
@@ -4117,16 +4664,16 @@
4117 4664 #: assets/admin.js
4118 4665 msgid "Paste this site’s URL + token into the"
4119 4666 msgstr ""
4120 4667
4121 -#. Source: src/components/overview/MetricGrid.tsx:47
4668 +#. Source: src/components/overview/MetricGrid.tsx:57
4122 4669 #: assets/admin.js
4123 4670 msgid "per page load"
4124 4671 msgstr ""
4125 4672
4126 4673 #. Source: src/components/ScoreRing.tsx:61
4127 -#. Source: src/components/overview/ScoreCard.tsx:225
4128 -#. Source: src/components/overview/ScoreCard.tsx:254
4674 +#. Source: src/components/overview/ScoreCard.tsx:229
4675 +#. Source: src/components/overview/ScoreCard.tsx:258
4129 4676 #. Source: src/components/score/ScorePanel.tsx:442
4130 4677 #: assets/admin.js
4131 4678 msgid "Performance score"
4132 4679 msgstr ""
@@ -4140,8 +4687,13 @@
4140 4687 #: assets/admin.js
4141 4688 msgid "Performance score and Core Web Vitals."
4142 4689 msgstr ""
4143 4690
4691 +#. Source: src/components/overview/MetricGrid.tsx:52
4692 +#: assets/admin.js
4693 +msgid "PHP-served only — static fast path hits are not counted"
4694 +msgstr ""
4695 +
4144 4696 #. Source: src/components/score/ScorePanel.tsx:713
4145 4697 #: assets/admin.js
4146 4698 msgid "Pick one more run to compare."
4147 4699 msgstr ""
@@ -4150,8 +4702,13 @@
4150 4702 #: assets/admin.js
4151 4703 msgid "Pick two runs to compare them."
4152 4704 msgstr ""
4153 4705
4706 +#. Source: src/components/score/ScanCard.tsx:87
4707 +#: assets/admin.js
4708 +msgid "Platform"
4709 +msgstr ""
4710 +
4154 4711 #. Source: src/components/cache/StatDrilldown.tsx:277
4155 4712 #: assets/admin.js
4156 4713 msgid "Precompressed copies on disk:"
4157 4714 msgstr ""
@@ -4160,29 +4717,29 @@
4160 4717 #: assets/admin.js
4161 4718 msgid "Preload"
4162 4719 msgstr ""
4163 4720
4164 -#. Source: src/App.tsx:423
4721 +#. Source: src/App.tsx:439
4165 4722 #: assets/admin.js
4166 4723 msgid "Preload could not start"
4167 4724 msgstr ""
4168 4725
4169 -#. Source: src/App.tsx:422
4726 +#. Source: src/App.tsx:438
4170 4727 #: assets/admin.js
4171 4728 msgid "Preload could not start: %s"
4172 4729 msgstr ""
4173 4730
4174 -#. Source: src/App.tsx:410
4731 +#. Source: src/App.tsx:426
4175 4732 #: assets/admin.js
4176 4733 msgid "Preload found no pages to warm"
4177 4734 msgstr ""
4178 4735
4179 -#. Source: src/App.tsx:409
4736 +#. Source: src/App.tsx:425
4180 4737 #: assets/admin.js
4181 4738 msgid "Preload found no pages to warm: %s"
4182 4739 msgstr ""
4183 4740
4184 -#. Source: src/App.tsx:399
4741 +#. Source: src/App.tsx:415
4185 4742 #: assets/admin.js
4186 4743 msgid "Preloading %d page"
4187 4744 msgid_plural "Preloading %d pages"
4188 4745 msgstr[0] ""
@@ -4192,18 +4749,18 @@
4192 4749 #: assets/admin.js
4193 4750 msgid "Preview"
4194 4751 msgstr ""
4195 4752
4196 -#. Source: src/components/Sidebar.tsx:300
4753 +#. Source: src/components/Sidebar.tsx:357
4197 4754 #: assets/admin.js
4198 4755 msgid "Primary"
4199 4756 msgstr ""
4200 4757
4201 -#. Source: src/components/GroupLanding.tsx:32
4202 -#. Source: src/components/ModuleHeader.tsx:23
4758 +#. Source: src/components/GroupLanding.tsx:44
4759 +#. Source: src/components/ModuleHeader.tsx:57
4203 4760 #. Source: src/components/Tabs.tsx:97
4204 4761 #. Source: src/components/migration/MigrationPanel.tsx:650
4205 -#. Source: src/components/overview/FeatureMap.tsx:38
4762 +#. Source: src/components/overview/FeatureMap.tsx:47
4206 4763 #. Source: src/upsell/LockedSection.tsx:70
4207 4764 #. Source: src/upsell/ProAudit.tsx:66
4208 4765 #. Source: src/upsell/ProDemo.tsx:60
4209 4766 #. Source: src/upsell/ProTeaser.tsx:45
@@ -4210,15 +4767,15 @@
4210 4767 #: assets/admin.js
4211 4768 msgid "Pro"
4212 4769 msgstr ""
4213 4770
4214 -#. Source: src/upsell/LockedPanel.tsx:82
4771 +#. Source: src/upsell/LockedPanel.tsx:143
4215 4772 #. Source: src/upsell/ProOverview.tsx:40
4216 4773 #: assets/admin.js
4217 4774 msgid "Pro — license needed"
4218 4775 msgstr ""
4219 4776
4220 -#. Source: src/upsell/LockedPanel.tsx:82
4777 +#. Source: src/upsell/LockedPanel.tsx:143
4221 4778 #: assets/admin.js
4222 4779 msgid "Pro feature"
4223 4780 msgstr ""
4224 4781
@@ -4231,17 +4788,17 @@
4231 4788 #: assets/admin.js
4232 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."
4233 4790 msgstr ""
4234 4791
4235 -#. Source: src/components/Sidebar.tsx:395
4236 -#. Source: src/components/Sidebar.tsx:411
4792 +#. Source: src/components/Sidebar.tsx:493
4793 +#. Source: src/components/Sidebar.tsx:509
4237 4794 #. Source: src/upsell/ProOverview.tsx:38
4238 4795 #: assets/admin.js
4239 4796 msgid "Pro Licensed"
4240 4797 msgstr ""
4241 4798
4242 -#. Source: src/upsell/LockedPanel.tsx:152
4243 -#. Source: src/upsell/LockedPanel.tsx:41
4799 +#. Source: src/upsell/LockedPanel.tsx:102
4800 +#. Source: src/upsell/LockedPanel.tsx:213
4244 4801 #: assets/admin.js
4245 4802 msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged."
4246 4803 msgstr ""
4247 4804
@@ -4249,26 +4806,31 @@
4249 4806 #: assets/admin.js
4250 4807 msgid "Profile JSON to import"
4251 4808 msgstr ""
4252 4809
4253 -#. Source: src/components/score/ScanCard.tsx:95
4810 +#. Source: src/components/score/ScorePanel.tsx:727
4254 4811 #: assets/admin.js
4812 +msgid "Provider"
4813 +msgstr ""
4814 +
4815 +#. Source: src/components/score/ScanCard.tsx:108
4816 +#: assets/admin.js
4255 4817 msgid "pts"
4256 4818 msgstr ""
4257 4819
4258 4820 #. Source: src/components/CommandPalette.tsx:58
4259 -#. Source: src/components/TopBar.tsx:180
4821 +#. Source: src/components/TopBar.tsx:204
4260 4822 #: assets/admin.js
4261 4823 msgid "Purge all"
4262 4824 msgstr ""
4263 4825
4264 -#. Source: src/App.tsx:370
4265 -#. Source: src/components/TopBar.tsx:179
4826 +#. Source: src/App.tsx:386
4827 +#. Source: src/components/TopBar.tsx:203
4266 4828 #: assets/admin.js
4267 4829 msgid "Purge failed"
4268 4830 msgstr ""
4269 4831
4270 -#. Source: src/App.tsx:370
4832 +#. Source: src/App.tsx:386
4271 4833 #: assets/admin.js
4272 4834 msgid "Purge failed: %s"
4273 4835 msgstr ""
4274 4836
@@ -4286,9 +4848,9 @@
4286 4848 #: assets/admin.js
4287 4849 msgid "Purge, benchmark, preload and tune settings by asking your AI"
4288 4850 msgstr ""
4289 4851
4290 -#. Source: src/components/score/ScanCard.tsx:329
4852 +#. Source: src/components/score/ScanCard.tsx:346
4291 4853 #: assets/admin.js
4292 4854 msgid "ranked by points recovered"
4293 4855 msgstr ""
4294 4856
@@ -4302,9 +4864,9 @@
4302 4864 #: assets/admin.js
4303 4865 msgid "read-only call"
4304 4866 msgstr ""
4305 4867
4306 -#. Source: src/components/overview/ScoreCard.tsx:202
4868 +#. Source: src/components/overview/ScoreCard.tsx:206
4307 4869 #: assets/admin.js
4308 4870 msgid "Reading your latest result."
4309 4871 msgstr ""
4310 4872
@@ -4323,9 +4885,9 @@
4323 4885 #: assets/admin.js
4324 4886 msgid "Recent cache and settings activity on this site."
4325 4887 msgstr ""
4326 4888
4327 -#. Source: src/components/GroupLanding.tsx:67
4889 +#. Source: src/components/GroupLanding.tsx:79
4328 4890 #: assets/admin.js
4329 4891 msgid "Recent cache and settings activity."
4330 4892 msgstr ""
4331 4893
@@ -4333,10 +4895,10 @@
4333 4895 #: assets/admin.js
4334 4896 msgid "Recent changes"
4335 4897 msgstr ""
4336 4898
4337 -#. Source: src/components/overview/Recommendations.tsx:116
4338 -#. Source: src/components/overview/Recommendations.tsx:120
4899 +#. Source: src/components/overview/Recommendations.tsx:124
4900 +#. Source: src/components/overview/Recommendations.tsx:128
4339 4901 #: assets/admin.js
4340 4902 msgid "Recommended for your site"
4341 4903 msgstr ""
4342 4904
@@ -4359,8 +4921,13 @@
4359 4921 #: assets/admin.js
4360 4922 msgid "Refresh trends"
4361 4923 msgstr ""
4362 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 +
4363 4930 #. Source: src/components/SecretField.tsx:116
4364 4931 #: assets/admin.js
4365 4932 msgid "Remove"
4366 4933 msgstr ""
@@ -4394,9 +4961,9 @@
4394 4961 #: assets/admin.js
4395 4962 msgid "Review us on WordPress.org"
4396 4963 msgstr ""
4397 4964
4398 -#. Source: src/components/overview/ScoreCard.tsx:198
4965 +#. Source: src/components/overview/ScoreCard.tsx:202
4399 4966 #: assets/admin.js
4400 4967 msgid "Room to go faster"
4401 4968 msgstr ""
4402 4969
@@ -4409,10 +4976,10 @@
4409 4976 #: assets/admin.js
4410 4977 msgid "Run a GTmetrix test on this site"
4411 4978 msgstr ""
4412 4979
4413 -#. Source: src/components/overview/ScoreCard.tsx:295
4414 -#. Source: src/components/score/ScanCard.tsx:197
4980 +#. Source: src/components/overview/ScoreCard.tsx:299
4981 +#. Source: src/components/score/ScanCard.tsx:210
4415 4982 #: assets/admin.js
4416 4983 msgid "Run a scan"
4417 4984 msgstr ""
4418 4985
@@ -4480,14 +5047,14 @@
4480 5047 #: assets/admin.js
4481 5048 msgid "Saving changes…"
4482 5049 msgstr ""
4483 5050
4484 -#. Source: src/components/score/ScanCard.tsx:197
5051 +#. Source: src/components/score/ScanCard.tsx:210
4485 5052 #: assets/admin.js
4486 5053 msgid "Scan again"
4487 5054 msgstr ""
4488 5055
4489 -#. Source: src/components/score/ScanCard.tsx:197
5056 +#. Source: src/components/score/ScanCard.tsx:210
4490 5057 #: assets/admin.js
4491 5058 msgid "Scanning…"
4492 5059 msgstr ""
4493 5060
@@ -4495,9 +5062,9 @@
4495 5062 #: assets/admin.js
4496 5063 msgid "Scans your current settings + 24h cache stats and shows exactly which Pro features would help."
4497 5064 msgstr ""
4498 5065
4499 -#. Source: src/components/overview/ScoreCard.tsx:229
5066 +#. Source: src/components/overview/ScoreCard.tsx:233
4500 5067 #. Source: src/components/score/ScorePanel.tsx:728
4501 5068 #: assets/admin.js
4502 5069 msgid "Score"
4503 5070 msgstr ""
@@ -4506,15 +5073,15 @@
4506 5073 #: assets/admin.js
4507 5074 msgid "score out of 100"
4508 5075 msgstr ""
4509 5076
4510 -#. Source: src/components/overview/ScoreCard.tsx:98
5077 +#. Source: src/components/overview/ScoreCard.tsx:99
4511 5078 #: assets/admin.js
4512 5079 msgid "Score strategy"
4513 5080 msgstr ""
4514 5081
4515 -#. Source: src/components/TopBar.tsx:114
4516 -#. Source: src/components/TopBar.tsx:119
5082 +#. Source: src/components/TopBar.tsx:117
5083 +#. Source: src/components/TopBar.tsx:122
4517 5084 #: assets/admin.js
4518 5085 msgid "Search"
4519 5086 msgstr ""
4520 5087
@@ -4532,19 +5099,30 @@
4532 5099 #: assets/admin.js
4533 5100 msgid "See everything it does."
4534 5101 msgstr ""
4535 5102
4536 -#. Source: src/components/overview/ScoreCard.tsx:206
5103 +#. Source: src/components/overview/ScoreCard.tsx:210
4537 5104 #: assets/admin.js
4538 5105 msgid "See how this site performs for real visitors."
4539 5106 msgstr ""
4540 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 +
4541 5114 #. Source: src/components/health/HealthHero.tsx:29
4542 -#. Source: src/components/overview/MetricGrid.tsx:45
5115 +#. Source: src/components/overview/MetricGrid.tsx:55
4543 5116 #: assets/admin.js
4544 5117 msgid "served without PHP"
4545 5118 msgstr ""
4546 5119
5120 +#. Source: src/components/score/ScanCard.tsx:83
5121 +#: assets/admin.js
5122 +msgid "Server & caching"
5123 +msgstr ""
5124 +
4547 5125 #. Source: src/components/RewriteAlert.tsx:106
4548 5126 #: assets/admin.js
4549 5127 msgid "Server config missing — cache running on PHP fallback"
4550 5128 msgstr ""
@@ -4568,9 +5146,9 @@
4568 5146 #: assets/admin.js
4569 5147 msgid "Show"
4570 5148 msgstr ""
4571 5149
4572 -#. Source: src/components/overview/FeatureMap.tsx:104
5150 +#. Source: src/components/overview/FeatureMap.tsx:114
4573 5151 #: assets/admin.js
4574 5152 msgid "Show less"
4575 5153 msgstr ""
4576 5154
@@ -4593,9 +5171,9 @@
4593 5171 #: assets/admin.js
4594 5172 msgid "Showing"
4595 5173 msgstr ""
4596 5174
4597 -#. Source: src/components/overview/ScoreCard.tsx:208
5175 +#. Source: src/components/overview/ScoreCard.tsx:212
4598 5176 #: assets/admin.js
4599 5177 msgid "Showing your last completed scan."
4600 5178 msgstr ""
4601 5179
@@ -4608,9 +5186,9 @@
4608 5186 #: assets/admin.js
4609 5187 msgid "Size"
4610 5188 msgstr ""
4611 5189
4612 -#. Source: src/components/sidebarGroups.ts:102
5190 +#. Source: src/components/sidebarGroups.ts:105
4613 5191 #: assets/admin.js
4614 5192 msgid "Speed score, diagnostics and analytics."
4615 5193 msgstr ""
4616 5194
@@ -4633,14 +5211,14 @@
4633 5211 #: assets/admin.js
4634 5212 msgid "succeeded"
4635 5213 msgstr ""
4636 5214
4637 -#. Source: src/components/TopBar.tsx:144
5215 +#. Source: src/components/TopBar.tsx:150
4638 5216 #: assets/admin.js
4639 5217 msgid "Switch to dark mode"
4640 5218 msgstr ""
4641 5219
4642 -#. Source: src/components/TopBar.tsx:144
5220 +#. Source: src/components/TopBar.tsx:150
4643 5221 #: assets/admin.js
4644 5222 msgid "Switch to light mode"
4645 5223 msgstr ""
4646 5224
@@ -4679,9 +5257,9 @@
4679 5257 #: assets/admin.js
4680 5258 msgid "The cache was already empty, so there was nothing to clear."
4681 5259 msgstr ""
4682 5260
4683 -#. Source: src/components/overview/ScoreCard.tsx:207
5261 +#. Source: src/components/overview/ScoreCard.tsx:211
4684 5262 #: assets/admin.js
4685 5263 msgid "The last scan did not complete."
4686 5264 msgstr ""
4687 5265
@@ -4704,18 +5282,28 @@
4704 5282 #: assets/admin.js
4705 5283 msgid "This credential is defined in wp-config.php and cannot be changed here."
4706 5284 msgstr ""
4707 5285
4708 -#. Source: src/components/score/ScanCard.tsx:222
5286 +#. Source: src/components/score/ScanCard.tsx:235
4709 5287 #: assets/admin.js
4710 5288 msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4711 5289 msgstr ""
4712 5290
5291 +#. Source: src/components/MissingPanel.tsx:33
5292 +#: assets/admin.js
5293 +msgid "This screen did not load."
5294 +msgstr ""
5295 +
4713 5296 #. Source: src/components/score/ConnectHubModal.tsx:127
4714 5297 #: assets/admin.js
4715 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."
4716 5299 msgstr ""
4717 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 +
4718 5306 #. Source: src/components/OverrideConfirm.tsx:31
4719 5307 #: assets/admin.js
4720 5308 msgid "This value comes from"
4721 5309 msgstr ""
@@ -4725,9 +5313,9 @@
4725 5313 msgid "Token"
4726 5314 msgstr ""
4727 5315
4728 5316 #. Source: src/components/LogsView.tsx:34
4729 -#. Source: src/components/sidebarGroups.ts:107
5317 +#. Source: src/components/sidebarGroups.ts:110
4730 5318 #: assets/admin.js
4731 5319 msgid "Tools"
4732 5320 msgstr ""
4733 5321
@@ -4775,11 +5363,11 @@
4775 5363 #: assets/admin.js
4776 5364 msgid "Under a minute"
4777 5365 msgstr ""
4778 5366
4779 -#. Source: src/components/Sidebar.tsx:424
4780 -#. Source: src/components/Sidebar.tsx:445
4781 -#. 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
4782 5370 #. Source: src/upsell/LockedSection.tsx:98
4783 5371 #. Source: src/upsell/ProAudit.tsx:113
4784 5372 #. Source: src/upsell/ProDemo.tsx:102
4785 5373 #. Source: src/upsell/ProOverview.tsx:83
@@ -4791,9 +5379,9 @@
4791 5379 #: assets/admin.js
4792 5380 msgid "Use the host value"
4793 5381 msgstr ""
4794 5382
4795 -#. Source: src/components/overview/ScoreCard.tsx:295
5383 +#. Source: src/components/overview/ScoreCard.tsx:299
4796 5384 #: assets/admin.js
4797 5385 msgid "View details"
4798 5386 msgstr ""
4799 5387
@@ -4811,9 +5399,9 @@
4811 5399 #: assets/admin.js
4812 5400 msgid "Waiting for connection…"
4813 5401 msgstr ""
4814 5402
4815 -#. Source: src/components/overview/Recommendations.tsx:218
5403 +#. Source: src/components/overview/Recommendations.tsx:227
4816 5404 #: assets/admin.js
4817 5405 msgid "Want a hand?"
4818 5406 msgstr ""
4819 5407
@@ -4826,14 +5414,14 @@
4826 5414 #: assets/admin.js
4827 5415 msgid "We couldn't read this site's AI connection status. Open MCP to check."
4828 5416 msgstr ""
4829 5417
4830 -#. Source: src/upsell/LockedPanel.tsx:139
5418 +#. Source: src/upsell/LockedPanel.tsx:200
4831 5419 #: assets/admin.js
4832 5420 msgid "What this adds"
4833 5421 msgstr ""
4834 5422
4835 -#. Source: src/components/score/ScanCard.tsx:327
5423 +#. Source: src/components/score/ScanCard.tsx:344
4836 5424 #: assets/admin.js
4837 5425 msgid "What to fix next"
4838 5426 msgstr ""
4839 5427
@@ -4856,14 +5444,14 @@
4856 5444 #: assets/admin.js
4857 5445 msgid "Where the cache size goes"
4858 5446 msgstr ""
4859 5447
4860 -#. Source: src/components/ModuleHeader.tsx:55
5448 +#. Source: src/components/ModuleHeader.tsx:102
4861 5449 #: assets/admin.js
4862 5450 msgid "Why this is off"
4863 5451 msgstr ""
4864 5452
4865 -#. Source: src/components/ModuleHeader.tsx:55
5453 +#. Source: src/components/ModuleHeader.tsx:102
4866 5454 #: assets/admin.js
4867 5455 msgid "Why this is on"
4868 5456 msgstr ""
4869 5457
@@ -4881,12 +5469,17 @@
4881 5469 #: assets/admin.js
4882 5470 msgid "write call"
4883 5471 msgstr ""
4884 5472
4885 -#. Source: src/components/overview/HubCard.tsx:79
4886 -#. Source: src/components/overview/HubCard.tsx:95
4887 -#. Source: src/components/overview/HubCard.tsx:99
5473 +#. Source: src/components/PartnerMark.tsx:28
4888 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
4889 5482 msgid "xSpeed Hub"
4890 5483 msgstr ""
4891 5484
4892 5485 #. Source: src/onboarding/steps/Connect.tsx:140
@@ -4903,22 +5496,22 @@
4903 5496 #: assets/admin.js
4904 5497 msgid "xSpeed Pro is installed — activate your license to unlock every feature below. Your current settings stay exactly as they are."
4905 5498 msgstr ""
4906 5499
4907 -#. Source: src/upsell/LockedPanel.tsx:96
5500 +#. Source: src/upsell/LockedPanel.tsx:157
4908 5501 #: assets/admin.js
4909 5502 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
4910 5503 msgstr ""
4911 5504
4912 -#. Source: src/components/score/ScanCard.tsx:173
4913 -#. Source: src/components/score/ScanCard.tsx:183
4914 -#. 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
4915 5508 #. Source: src/components/score/ScorePanel.tsx:426
4916 5509 #: assets/admin.js
4917 5510 msgid "xSpeed Scan"
4918 5511 msgstr ""
4919 5512
4920 -#. Source: src/components/score/ScanCard.tsx:264
5513 +#. Source: src/components/score/ScanCard.tsx:281
4921 5514 #: assets/admin.js
4922 5515 msgid "xSpeed Scan, out of 100"
4923 5516 msgstr ""
4924 5517
@@ -4936,9 +5529,9 @@
4936 5529 #: assets/admin.js
4937 5530 msgid "You're all set"
4938 5531 msgstr ""
4939 5532
4940 -#. Source: src/components/overview/Recommendations.tsx:131
5533 +#. Source: src/components/overview/Recommendations.tsx:139
4941 5534 #: assets/admin.js
4942 5535 msgid "You're all set — no recommendations right now."
4943 5536 msgstr ""
4944 5537
@@ -4976,15 +5569,15 @@
4976 5569 #: assets/admin.js
4977 5570 msgid "Your Hub is home base for all your sites. Once connected, you can:"
4978 5571 msgstr ""
4979 5572
4980 -#. Source: src/components/overview/FeatureMap.tsx:92
4981 -#. Source: src/components/overview/FeatureMap.tsx:95
5573 +#. Source: src/components/overview/FeatureMap.tsx:102
5574 +#. Source: src/components/overview/FeatureMap.tsx:105
4982 5575 #: assets/admin.js
4983 5576 msgid "Your setup"
4984 5577 msgstr ""
4985 5578
4986 -#. Source: src/components/overview/ScoreCard.tsx:197
5579 +#. Source: src/components/overview/ScoreCard.tsx:201
4987 5580 #: assets/admin.js
4988 5581 msgid "Your site is fast"
4989 5582 msgstr ""
4990 5583