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