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