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