PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.3.6
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.3.6
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 1.1.3 1.1.4 1.1.5 All 32 releases
← All changes | languages/xspeed.pot +3965 -411 1.1.3 → 1.3.6 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.1.2\n"
5 +"Project-Id-Version: xSpeed Cache 1.3.6\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-08-03T09:46:28+00:00\n"
12 +"POT-Creation-Date: 2026-09-28T10:41:59+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:2530
19 +#: includes/class-cache.php:8804
20 20 #: includes/class-deactivation-feedback.php:189
21 21 msgid "xSpeed Cache"
22 22 msgstr ""
23 23
@@ -36,73 +36,65 @@
36 36 msgid "https://wpdeveloper.com"
37 37 msgstr ""
38 38
39 39 #: includes/class-admin.php:153
40 -#: includes/class-admin.php:254
40 +#: includes/class-admin.php:243
41 +#: includes/class-cache.php:8818
42 +#: assets/admin.js
41 43 msgid "Settings"
42 44 msgstr ""
43 45
44 -#: includes/class-admin.php:243
46 +#: includes/class-admin.php:241
47 +#: assets/admin.js
45 48 msgid "Overview"
46 49 msgstr ""
47 50
48 -#: includes/class-admin.php:244
49 -msgid "Cache"
51 +#: includes/class-admin.php:242
52 +#: assets/admin.js
53 +msgid "AI & agents"
50 54 msgstr ""
51 55
52 -#: includes/class-admin.php:245
53 -msgid "Optimization"
54 -msgstr ""
55 -
56 -#: includes/class-admin.php:246
57 -msgid "Network"
58 -msgstr ""
59 -
60 -#: includes/class-admin.php:247
61 -msgid "Health"
62 -msgstr ""
63 -
64 -#: includes/class-admin.php:248
65 -msgid "Tools"
66 -msgstr ""
67 -
68 -#: includes/class-admin.php:253
69 -msgid "AI & Agents"
70 -msgstr ""
71 -
72 -#: includes/class-admin.php:312
56 +#: includes/class-admin.php:301
57 +#: assets/admin.js
73 58 msgid "Loading"
74 59 msgstr ""
75 60
76 -#: includes/class-admin.php:314
61 +#: includes/class-admin.php:303
77 62 msgid "xSpeed"
78 63 msgstr ""
79 64
80 -#: includes/class-admin.php:315
65 +#: includes/class-admin.php:304
66 +#: assets/admin.js
81 67 msgid "Loading…"
82 68 msgstr ""
83 69
84 -#: includes/class-cache-inventory.php:340
70 +#. translators: 1: cause of the sweep, 2: number of files removed.
71 +#: includes/class-cache-gc.php:654
72 +#, php-format
73 +msgid "Cache garbage collection (%1$s) — %2$d expired file(s) removed"
74 +msgstr ""
75 +
76 +#: includes/class-cache-inventory.php:357
85 77 msgid "Cached pages (PHP)"
86 78 msgstr ""
87 79
88 -#: includes/class-cache-inventory.php:345
80 +#: includes/class-cache-inventory.php:362
89 81 msgid "Cached pages (server-served)"
90 82 msgstr ""
91 83
92 -#: includes/class-cache-inventory.php:350
84 +#: includes/class-cache-inventory.php:367
93 85 msgid "Precompressed copies"
94 86 msgstr ""
95 87
96 -#: includes/class-cache-inventory.php:355
88 +#: includes/class-cache-inventory.php:372
97 89 msgid "Per-entry metadata"
98 90 msgstr ""
99 91
100 -#: includes/class-cache-inventory.php:360
92 +#: includes/class-cache-inventory.php:377
101 93 msgid "REST responses"
102 94 msgstr ""
103 95
104 -#: includes/class-cache-inventory.php:365
96 +#: includes/class-cache-inventory.php:382
105 97 msgid "Minified CSS/JS"
106 98 msgstr ""
107 99
108 100 #: includes/class-cache-meta-box.php:40
@@ -128,58 +120,207 @@
128 120 #: includes/class-cache-meta-box.php:89
129 121 msgid "Override the global cache expiry for this post (1–720 hours). Leave at 0 to inherit the site default."
130 122 msgstr ""
131 123
124 +#: includes/class-cache-meta-box.php:113
125 +msgid "Purge this post’s cache"
126 +msgstr ""
127 +
128 +#: includes/class-cache-meta-box.php:117
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 +msgstr ""
131 +
132 132 #. translators: 1: cause of the purge, 2: URL or path, 3: number of files removed.
133 -#: includes/class-cache.php:962
133 +#: includes/class-cache.php:4170
134 134 #, php-format
135 135 msgid "Purged one URL (%1$s) — %2$s, %3$d file(s) removed"
136 136 msgstr ""
137 137
138 -#: includes/class-cache.php:1080
138 +#: includes/class-cache.php:5123
139 139 msgid "Purge All"
140 140 msgstr ""
141 141
142 -#: includes/class-cache.php:1084
142 +#: includes/class-cache.php:5127
143 143 msgid "Purge Page / Static Cache"
144 144 msgstr ""
145 145
146 -#: includes/class-cache.php:1088
146 +#: includes/class-cache.php:5131
147 147 msgid "Purge CSS / JS Cache"
148 148 msgstr ""
149 149
150 -#: includes/class-cache.php:1092
150 +#: includes/class-cache.php:5135
151 151 msgid "Purge Object Cache"
152 152 msgstr ""
153 153
154 -#: includes/class-cache.php:1096
154 +#: includes/class-cache.php:5139
155 155 msgid "Purge REST Cache"
156 156 msgstr ""
157 157
158 158 #. translators: 1: what was purged, 2: cause of the purge.
159 -#: includes/class-cache.php:1191
159 +#: includes/class-cache.php:5386
160 160 #, php-format
161 161 msgid "Purged %1$s (%2$s)"
162 162 msgstr ""
163 163
164 164 #. translators: 1: what was purged, 2: cause of the purge, 3: number of files removed.
165 -#: includes/class-cache.php:1197
165 +#: includes/class-cache.php:5392
166 166 #, php-format
167 167 msgid "Purged %1$s (%2$s) — %3$d file(s) removed"
168 168 msgstr ""
169 169
170 -#: includes/class-cache.php:2564
170 +#: includes/class-cache.php:5630
171 +msgid "advanced-cache.php cannot be read, so xSpeed cannot tell whose page cache is installed."
172 +msgstr ""
173 +
174 +#. translators: %s: the page-caching plugin that owns advanced-cache.php.
175 +#: includes/class-cache.php:5637
176 +#, php-format
177 +msgid "%s is serving the page cache. Turn the xSpeed cache off and on again to take it over."
178 +msgstr ""
179 +
180 +#: includes/class-cache.php:5640
181 +msgid "Another plugin is serving the page cache. Turn the xSpeed cache off and on again to take it over."
182 +msgstr ""
183 +
184 +#: includes/class-cache.php:5710
185 +msgid "Could not lock page-cache ownership. Try again."
186 +msgstr ""
187 +
188 +#: includes/class-cache.php:5716
189 +msgid "Page-cache ownership changed while xSpeed was checking it. Nothing was changed; try again."
190 +msgstr ""
191 +
192 +#. translators: %s: the page-caching plugin that owns advanced-cache.php.
193 +#: includes/class-cache.php:5790
194 +#, php-format
195 +msgid "%s owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over."
196 +msgstr ""
197 +
198 +#: includes/class-cache.php:5793
199 +msgid "Another plugin owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over."
200 +msgstr ""
201 +
202 +#: includes/class-cache.php:5823
203 +msgid "Could not write wp-content/advanced-cache.php. Check filesystem permissions."
204 +msgstr ""
205 +
206 +#: includes/class-cache.php:5880
207 +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 +msgstr ""
209 +
210 +#: includes/class-cache.php:5881
211 +msgid "xSpeed could not verify the complete page-cache write, and wp-config.php is not writable. Its changes were rolled back."
212 +msgstr ""
213 +
214 +#: includes/class-cache.php:5883
215 +msgid "xSpeed could not verify the complete page-cache write. Its changes were rolled back."
216 +msgstr ""
217 +
218 +#: includes/class-cache.php:5898
219 +msgid "xSpeed could not save the page-cache setting. Its file changes were rolled back."
220 +msgstr ""
221 +
222 +#: includes/class-cache.php:5990
223 +msgid "xSpeed could not safely remove its WP_CACHE setting. The cache remains enabled."
224 +msgstr ""
225 +
226 +#: includes/class-cache.php:6005
227 +msgid "xSpeed could not remove its page-cache drop-in. The cache remains enabled."
228 +msgstr ""
229 +
230 +#: includes/class-cache.php:6006
231 +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 +msgstr ""
233 +
234 +#: includes/class-cache.php:6023
235 +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 +msgstr ""
237 +
238 +#: includes/class-cache.php:6041
239 +msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. The cache remains enabled."
240 +msgstr ""
241 +
242 +#: includes/class-cache.php:6042
243 +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 +msgstr ""
245 +
246 +#: includes/class-cache.php:6053
247 +msgid "xSpeed could not save the disabled state."
248 +msgstr ""
249 +
250 +#: includes/class-cache.php:6057
251 +msgid "xSpeed could not save the disabled state. The page cache was restored."
252 +msgstr ""
253 +
254 +#. translators: 1: the refusal reason, 2: a page-caching plugin's name.
255 +#: includes/class-cache.php:8296
256 +#, php-format
257 +msgid "%1$s %2$s is also active on this site — deactivate its page cache before enabling xSpeed."
258 +msgstr ""
259 +
260 +#. translators: 1: the refusal reason, 2: comma-separated page-caching plugin names.
261 +#: includes/class-cache.php:8303
262 +#, php-format
263 +msgid "%1$s These page caches are also active on this site: %2$s. Deactivate them before enabling xSpeed."
264 +msgstr ""
265 +
266 +#. translators: %s: comma-separated list of page-caching plugin names.
267 +#: includes/class-cache.php:8358
268 +#, php-format
269 +msgid "More than one page cache is active on this site (%s). Turn off the other page caches before enabling xSpeed."
270 +msgstr ""
271 +
272 +#: includes/class-cache.php:8365
273 +#, php-format
274 +msgid "%s is active or owns advanced-cache.php. Deactivate its page cache before enabling xSpeed."
275 +msgstr ""
276 +
277 +#: includes/class-cache.php:8368
278 +msgid "WP_CACHE is true but no page-cache drop-in owner can be proved. xSpeed will not claim it."
279 +msgstr ""
280 +
281 +#: includes/class-cache.php:8369
282 +msgid "wp-config.php defines WP_CACHE more than once. Remove the duplicate before enabling the cache."
283 +msgstr ""
284 +
285 +#: includes/class-cache.php:8370
286 +msgid "WP_CACHE is set from an expression in wp-config.php. xSpeed will not rewrite it."
287 +msgstr ""
288 +
289 +#: includes/class-cache.php:8371
290 +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 +msgstr ""
292 +
293 +#: includes/class-cache.php:8372
294 +msgid "wp-config.php cannot be read, so xSpeed cannot safely change page-cache ownership."
295 +msgstr ""
296 +
297 +#: includes/class-cache.php:8373
298 +msgid "advanced-cache.php is occupied but its owner cannot be proved. xSpeed will not replace it."
299 +msgstr ""
300 +
301 +#: includes/class-cache.php:8374
302 +msgid "advanced-cache.php cannot be read, so xSpeed cannot prove its owner."
303 +msgstr ""
304 +
305 +#: includes/class-cache.php:8376
306 +msgid "The page-cache field is occupied or cannot be verified. xSpeed will not change it."
307 +msgstr ""
308 +
309 +#: includes/class-cache.php:8887
310 +#: includes/class-purge-ui.php:278
311 +#: includes/class-purge-ui.php:675
171 312 msgid "Unauthorized."
172 313 msgstr ""
173 314
174 315 #. translators: %s: conflicting plugin name
175 -#: includes/class-conflict-registry.php:322
316 +#: includes/class-conflict-registry.php:157
176 317 #, php-format
177 318 msgid "%s is active and handles the same feature. Deactivate it before enabling this in xSpeed."
178 319 msgstr ""
179 320
180 321 #. translators: %s: conflicting plugin name
181 -#: includes/class-conflict-registry.php:342
322 +#: includes/class-conflict-registry.php:177
182 323 #, php-format
183 324 msgid "%s is active and may interfere. Test carefully."
184 325 msgstr ""
185 326
@@ -239,8 +380,9 @@
239 380 msgid "Please tell us a little more."
240 381 msgstr ""
241 382
242 383 #: includes/class-deactivation-feedback.php:191
384 +#: assets/admin.js
243 385 msgid "Close"
244 386 msgstr ""
245 387
246 388 #: includes/class-deactivation-feedback.php:195
@@ -270,16 +412,110 @@
270 412 #: includes/class-deactivation-feedback.php:233
271 413 msgid "Submit & Deactivate"
272 414 msgstr ""
273 415
416 +#: includes/class-host.php:133
417 +msgid "xSpeed could not enable the page cache on this site."
418 +msgstr ""
419 +
420 +#. translators: %s: the PHP line to add to wp-config.php.
421 +#: includes/class-host.php:139
422 +#, php-format
423 +msgid "xSpeed installed its page cache, but wp-config.php is not writable. Add this line to it to start serving: %s"
424 +msgstr ""
425 +
426 +#. translators: 1: source lifetime in seconds, 2: imported lifetime in hours.
427 +#: includes/class-migration.php:343
428 +#, php-format
429 +msgid "Page cache lifetime %1$ds cannot be expressed in whole hours — importing as %2$dh."
430 +msgstr ""
431 +
432 +#: includes/class-migration.php:358
433 +msgid "Redis password"
434 +msgstr ""
435 +
436 +#: includes/class-migration.php:359
437 +msgid "Database-cache Redis password"
438 +msgstr ""
439 +
440 +#: includes/class-migration.php:360
441 +msgid "Page-cache Redis password"
442 +msgstr ""
443 +
444 +#. translators: %s: human label for the secret that could not be read.
445 +#: includes/class-migration.php:370
446 +#, php-format
447 +msgid "%s is encrypted and could not be read — it will not be imported. Enter it again in xSpeed after importing."
448 +msgstr ""
449 +
450 +#. translators: 1: endpoint scheme, e.g. tls. 2: the endpoint as configured in the source plugin.
451 +#: includes/class-migration.php:398
452 +#, php-format
453 +msgid "Object-cache endpoint %2$s uses %1$s, which xSpeed does not support — importing the host and port only. The cache will connect only if the server also accepts a plain connection."
454 +msgstr ""
455 +
274 456 #: includes/class-module-registry.php:43
275 457 msgid "Module is missing a SLUG constant."
276 458 msgstr ""
277 459
278 -#: includes/class-module-registry.php:212
460 +#: includes/class-module-registry.php:214
279 461 msgid "Circular module dependency detected; boot order is undefined for the offending modules."
280 462 msgstr ""
281 463
464 +#. translators: %s: module slug.
465 +#: includes/class-module.php:193
466 +#: includes/class-module.php:306
467 +#, php-format
468 +msgid "\"%s\" is a Pro module and this site has no valid license, so its settings cannot be changed."
469 +msgstr ""
470 +
471 +#. translators: %s: setting key.
472 +#: includes/class-module.php:210
473 +#: includes/class-settings-manager.php:550
474 +#, php-format
475 +msgid "Unknown setting: %s"
476 +msgstr ""
477 +
478 +#. translators: %s: setting key.
479 +#: includes/class-module.php:225
480 +#, php-format
481 +msgid "\"%s\" is not defined in wp-config.php, so there is nothing to override."
482 +msgstr ""
483 +
484 +#. translators: 1: setting key, 2: module slug.
485 +#: includes/class-module.php:255
486 +#, php-format
487 +msgid "Overrode \"%1$s\" on \"%2$s\" — the wp-config.php value no longer applies."
488 +msgstr ""
489 +
490 +#. translators: 1: setting key, 2: module slug.
491 +#: includes/class-module.php:257
492 +#, php-format
493 +msgid "Reverted \"%1$s\" on \"%2$s\" to the value set in wp-config.php."
494 +msgstr ""
495 +
496 +#. translators: %s: comma-separated list of "field (CONSTANT_NAME)" pairs.
497 +#: includes/class-module.php:326
498 +#, php-format
499 +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 +msgstr ""
501 +
502 +#: includes/class-module.php:535
503 +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 +msgstr ""
505 +
506 +#. translators: %s: comma-separated list of setting labels that are switched on.
507 +#: includes/class-module.php:540
508 +#, php-format
509 +msgid "This module has no single on/off switch. It counts as on because these settings are on: %s."
510 +msgstr ""
511 +
512 +#. translators: %s: module slug.
513 +#: includes/class-module.php:721
514 +#, php-format
515 +msgid "Refused a settings write to the Pro module \"%s\" — no valid license."
516 +msgstr ""
517 +
282 518 #. translators: %s: brand name (xSpeed by default, or the white-label name).
283 519 #: includes/class-onboarding.php:56
284 520 #, php-format
285 521 msgid "%s Setup Wizard"
@@ -288,8 +524,362 @@
288 524 #: includes/class-onboarding.php:60
289 525 msgid "Setup Wizard"
290 526 msgstr ""
291 527
528 +#. translators: %d: measured saving in milliseconds.
529 +#: includes/class-optimize-diagnosis.php:135
530 +#, php-format
531 +msgid "%dms available"
532 +msgstr ""
533 +
534 +#. translators: 1: measured saving, 2: setting name.
535 +#: includes/class-optimize-diagnosis.php:154
536 +#, php-format
537 +msgid "The last audit measured %1$s here; the %2$s setting addresses it and is currently off."
538 +msgstr ""
539 +
540 +#. translators: %s: setting name.
541 +#: includes/class-optimize-diagnosis.php:160
542 +#, php-format
543 +msgid "The last audit flagged this; the %s setting addresses it and is currently off."
544 +msgstr ""
545 +
546 +#: includes/class-optimize-diagnosis.php:169
547 +msgid "Measured by the last audit. This is page content or a third-party asset — no caching setting reaches it."
548 +msgstr ""
549 +
550 +#: includes/class-optimize-diagnosis.php:507
551 +msgid "May change how the page renders. It is verified after applying and undone if the page breaks."
552 +msgstr ""
553 +
554 +#: includes/class-optimize-diagnosis.php:524
555 +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 +msgstr ""
557 +
558 +#: 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."
560 +msgstr ""
561 +
562 +#: includes/class-optimize-diagnosis.php:526
563 +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."
564 +msgstr ""
565 +
566 +#: includes/class-optimize-diagnosis.php:605
567 +msgid "Largest Contentful Paint"
568 +msgstr ""
569 +
570 +#: includes/class-optimize-diagnosis.php:606
571 +msgid "Cumulative Layout Shift"
572 +msgstr ""
573 +
574 +#: includes/class-optimize-diagnosis.php:607
575 +msgid "Total Blocking Time"
576 +msgstr ""
577 +
578 +#: includes/class-optimize-diagnosis.php:622
579 +msgid "The biggest thing on screen takes too long to appear. Usually a large hero image or video, or a font that blocks text. Caching does not shrink it — the file itself has to get smaller or load sooner."
580 +msgstr ""
581 +
582 +#: includes/class-optimize-diagnosis.php:624
583 +msgid "The page moves while it loads. Almost always images without width and height, or content injected above what is already visible. xSpeed fills in missing dimensions — including for images hosted on other domains, which it measures during a cache warm — so what is usually left here is content that appears above existing content: an embed, a banner, or a script that inserts markup after first paint."
584 +msgstr ""
585 +
586 +#: includes/class-optimize-diagnosis.php:626
587 +msgid "Scripts hold the main thread so the page cannot respond. Fewer or smaller scripts is the only real fix; delaying them (aggressive mode) moves the work rather than removing it."
588 +msgstr ""
589 +
590 +#. translators: 1: tier name, 2: current aggressiveness
591 +#: includes/class-optimize-plan.php:337
592 +#, php-format
593 +msgid "Needs %1$s aggressiveness (run is %2$s)."
594 +msgstr ""
595 +
596 +#: includes/class-optimize-plan.php:349
597 +msgid "Already enabled."
598 +msgstr ""
599 +
600 +#: includes/class-optimize-runner.php:135
601 +msgid "measure_score must be auto, never or always."
602 +msgstr ""
603 +
604 +#: includes/class-optimize-runner.php:143
605 +msgid "Aggressiveness must be safe, standard or aggressive."
606 +msgstr ""
607 +
608 +#: includes/class-optimize-runner.php:185
609 +msgid "A target score was requested, but this was a preview — no changes were applied and the target was not chased."
610 +msgstr ""
611 +
612 +#. translators: %s: the underlying error
613 +#: includes/class-optimize-runner.php:238
614 +#, php-format
615 +msgid "Could not load the site to take a baseline, so no changes were made: %s"
616 +msgstr ""
617 +
618 +#: includes/class-optimize-runner.php:331
619 +msgid "Changes were applied and the HTML checks passed, which does not prove the page works in a browser — those checks cannot run JavaScript. Open these URLs and confirm each renders correctly with no console errors. If you cannot open them, tell the user to check them and what a problem would look like."
620 +msgstr ""
621 +
622 +#: includes/class-optimize-runner.php:418
623 +msgid "A target score was requested, but no iterative tuner is installed, so this was a single pass and the target was not chased."
624 +msgstr ""
625 +
626 +#. translators: %d: number of settings changed
627 +#: includes/class-optimize-runner.php:601
628 +#, php-format
629 +msgid "Applied %d change."
630 +msgid_plural "Applied %d changes."
631 +msgstr[0] ""
632 +msgstr[1] ""
633 +
634 +#. translators: %d: number of changes a real run would make
635 +#: includes/class-optimize-runner.php:614
636 +#, php-format
637 +msgid "Preview only — %d change would be applied."
638 +msgid_plural "Preview only — %d changes would be applied."
639 +msgstr[0] ""
640 +msgstr[1] ""
641 +
642 +#: includes/class-optimize-runner.php:623
643 +msgid "Everything that can be turned on safely is already on."
644 +msgstr ""
645 +
646 +#: includes/class-optimize-runner.php:634
647 +msgid "date unknown"
648 +msgstr ""
649 +
650 +#: includes/class-optimize-runner.php:636
651 +msgid "measured just now"
652 +msgstr ""
653 +
654 +#. translators: %s: human-readable duration, e.g. "2 hours"
655 +#: includes/class-optimize-runner.php:640
656 +#, php-format
657 +msgid "measured %s ago"
658 +msgstr ""
659 +
660 +#. translators: 1: performance score, 2: when it was measured
661 +#: includes/class-optimize-runner.php:647
662 +#, php-format
663 +msgid "Score: %1$d (%2$s)."
664 +msgstr ""
665 +
666 +#. translators: %d: number of riskier settings available
667 +#: includes/class-optimize-runner.php:656
668 +#, php-format
669 +msgid "%d further setting could help, but can break some sites — ask before enabling it."
670 +msgid_plural "%d further settings could help, but can break some sites — ask before enabling them."
671 +msgstr[0] ""
672 +msgstr[1] ""
673 +
674 +#. translators: %d: number of problems only the user can fix
675 +#: includes/class-optimize-runner.php:669
676 +#, php-format
677 +msgid "%d problem is outside what caching can reach."
678 +msgid_plural "%d problems are outside what caching can reach."
679 +msgstr[0] ""
680 +msgstr[1] ""
681 +
682 +#: includes/class-optimize-runner.php:749
683 +msgid "xSpeed would not change the page cache on this site."
684 +msgstr ""
685 +
686 +#: includes/class-optimize-verifier.php:71
687 +msgid "A URL is required."
688 +msgstr ""
689 +
690 +#. translators: %d: HTTP status code
691 +#: includes/class-optimize-verifier.php:158
692 +#, php-format
693 +msgid "The page returned HTTP %d."
694 +msgstr ""
695 +
696 +#: includes/class-optimize-verifier.php:169
697 +msgid "The page stopped part-way through — no closing </body>, which usually means a PHP fatal."
698 +msgstr ""
699 +
700 +#. translators: 1: before size in bytes, 2: after size in bytes
701 +#: includes/class-optimize-verifier.php:179
702 +#, php-format
703 +msgid "The page size changed from %1$d to %2$d bytes — too far to be optimization."
704 +msgstr ""
705 +
706 +#: includes/class-optimize-verifier.php:189
707 +msgid "Every stylesheet disappeared — the page would render unstyled."
708 +msgstr ""
709 +
710 +#: includes/class-optimize-verifier.php:192
711 +msgid "Every script disappeared."
712 +msgstr ""
713 +
714 +#: includes/class-optimize-verifier.php:197
715 +msgid "The page title changed — this may be an error page rather than the site."
716 +msgstr ""
717 +
718 +#: includes/class-optimizer.php:101
719 +msgid "Ran out of time before this step."
720 +msgstr ""
721 +
722 +#: includes/class-optimizer.php:146
723 +msgid "Could not load the page to check it, so the change was undone."
724 +msgstr ""
725 +
726 +#. translators: 1: median render time before, 2: after, 3: percent change.
727 +#: includes/class-optimizer.php:177
728 +#, php-format
729 +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 +msgstr ""
731 +
732 +#. translators: 1: number of URLs, 2: the sitemap failure detail.
733 +#: includes/class-preloader.php:260
734 +#, php-format
735 +msgid "Preloader queued %1$d URLs from the site content — %2$s"
736 +msgstr ""
737 +
738 +#. translators: %s: the sitemap failure detail.
739 +#: includes/class-preloader.php:268
740 +#, php-format
741 +msgid "Preloader could not start — %s"
742 +msgstr ""
743 +
744 +#. translators: 1: number of URLs, 2: plural suffix.
745 +#: includes/class-preloader.php:275
746 +#, php-format
747 +msgid "Preloader queued %1$d URL%2$s for warming."
748 +msgstr ""
749 +
750 +#. translators: 1: sitemap URL, 2: error detail.
751 +#: includes/class-preloader.php:741
752 +#, php-format
753 +msgid "Could not fetch the sitemap at %1$s — %2$s"
754 +msgstr ""
755 +
756 +#. translators: 1: sitemap URL, 2: HTTP status code.
757 +#: includes/class-preloader.php:754
758 +#, php-format
759 +msgid "Could not fetch the sitemap at %1$s — the server returned HTTP %2$d."
760 +msgstr ""
761 +
762 +#. translators: %s: cache store name, e.g. "Cloudflare edge".
763 +#: includes/class-purge-runner.php:147
764 +#, php-format
765 +msgid "%s is not enabled"
766 +msgstr ""
767 +
768 +#: includes/class-purge-runner.php:162
769 +#: assets/admin.js
770 +msgid "the purge was refused"
771 +msgstr ""
772 +
773 +#: includes/class-purge-runner.php:246
774 +msgid "Page cache (HTML, static, REST, minified assets)"
775 +msgstr ""
776 +
777 +#: includes/class-purge-runner.php:257
778 +msgid "Object cache"
779 +msgstr ""
780 +
781 +#: includes/class-purge-runner.php:263
782 +msgid "Cloudflare edge"
783 +msgstr ""
784 +
785 +#: includes/class-purge-runner.php:269
786 +#: includes/modules/Cdn/CdnModule.php:28
787 +#: includes/modules/Migration/MigrationModule.php:555
788 +msgid "CDN"
789 +msgstr ""
790 +
791 +#. translators: 1: what asked for the purge, 2: number of files removed.
792 +#: includes/class-purge-runner.php:335
793 +#, php-format
794 +msgid "Cache purged (%1$s) — %2$d file(s) removed"
795 +msgstr ""
796 +
797 +#: includes/class-purge-runner.php:359
798 +msgid "the object cache engine is unavailable"
799 +msgstr ""
800 +
801 +#: includes/class-purge-runner.php:363
802 +msgid "no persistent object cache drop-in is in use"
803 +msgstr ""
804 +
805 +#: includes/class-purge-runner.php:366
806 +msgid "the drop-in is installed but is not persisting anything"
807 +msgstr ""
808 +
809 +#. translators: %s: what asked for the purge.
810 +#: includes/class-purge-runner.php:388
811 +#, php-format
812 +msgid "Purged object cache (%s)"
813 +msgstr ""
814 +
815 +#: includes/class-purge-runner.php:398
816 +msgid "the backend refused the flush"
817 +msgstr ""
818 +
819 +#: includes/class-purge-runner.php:410
820 +msgid "the Cloudflare module is not available"
821 +msgstr ""
822 +
823 +#: includes/class-purge-runner.php:434
824 +msgid "no CDN with a purge API is configured — xSpeed's CDN module rewrites asset URLs and holds no cache of its own"
825 +msgstr ""
826 +
827 +#: includes/class-purge-ui.php:263
828 +msgid "Purge cache"
829 +msgstr ""
830 +
831 +#: includes/class-purge-ui.php:289
832 +msgid "That URL is not on this site."
833 +msgstr ""
834 +
835 +#: includes/class-purge-ui.php:292
836 +#: includes/class-purge-ui.php:697
837 +msgid "admin"
838 +msgstr ""
839 +
840 +#. translators: 1: URL path of the post, 2: number of OTHER pages also cleared.
841 +#: includes/class-purge-ui.php:414
842 +#, php-format
843 +msgid "%1$s and %2$d page that lists it"
844 +msgid_plural "%1$s and %2$d pages that list it"
845 +msgstr[0] ""
846 +msgstr[1] ""
847 +
848 +#. translators: %s: what was purged.
849 +#: includes/class-purge-ui.php:428
850 +#, php-format
851 +msgid "xSpeed: %s was not cached, so there was nothing to clear."
852 +msgstr ""
853 +
854 +#. translators: 1: what was purged, 2: number of files removed.
855 +#: includes/class-purge-ui.php:435
856 +#, php-format
857 +msgid "xSpeed: cleared the cache for %1$s (%2$d file)."
858 +msgid_plural "xSpeed: cleared the cache for %1$s (%2$d files)."
859 +msgstr[0] ""
860 +msgstr[1] ""
861 +
862 +#: includes/class-purge-ui.php:497
863 +msgid "cleared"
864 +msgstr ""
865 +
866 +#: includes/class-purge-ui.php:498
867 +msgid "was not cached"
868 +msgstr ""
869 +
870 +#: includes/class-purge-ui.php:533
871 +msgid "Purge this post"
872 +msgstr ""
873 +
874 +#: includes/class-purge-ui.php:543
875 +msgid "Purge this URL"
876 +msgstr ""
877 +
878 +#: includes/class-purge-ui.php:684
879 +msgid "That post does not exist."
880 +msgstr ""
881 +
292 882 #: includes/class-recommendations.php:47
293 883 msgid "Enable page caching"
294 884 msgstr ""
295 885
@@ -388,9 +978,9 @@
388 978 #: includes/class-recommendations.php:251
389 979 msgid "This recommendation links to a settings screen; it has no one-click fix."
390 980 msgstr ""
391 981
392 -#: includes/class-recommendations.php:263
982 +#: includes/class-recommendations.php:284
393 983 msgid "Unknown or no-longer-applicable recommendation."
394 984 msgstr ""
395 985
396 986 #: includes/class-rest-api.php:352
@@ -396,20 +986,55 @@
396 986 #: includes/class-rest-api.php:352
397 987 msgid "The id argument is required."
398 988 msgstr ""
399 989
400 -#: includes/class-rest-api.php:463
990 +#: includes/class-rest-api.php:479
401 991 msgid "dashboard"
402 992 msgstr ""
403 993
404 -#: includes/class-rest-manager.php:74
994 +#: includes/class-rest-manager.php:83
405 995 msgid "No route was found matching the URL and request method."
406 996 msgstr ""
407 997
408 -#: includes/class-rest-manager.php:136
998 +#: includes/class-rest-manager.php:145
409 999 msgid "The request could not be completed due to a server error."
410 1000 msgstr ""
411 1001
1002 +#: includes/class-scan.php:123
1003 +msgid "That does not look like a public URL the scanner can reach."
1004 +msgstr ""
1005 +
1006 +#: includes/class-scan.php:134
1007 +msgid "A scan is already running for this site."
1008 +msgstr ""
1009 +
1010 +#: includes/class-scan.php:173
1011 +msgid "The scanner is rate limited right now. Try again in a few minutes."
1012 +msgstr ""
1013 +
1014 +#: includes/class-scan.php:185
1015 +#: assets/admin.js
1016 +msgid "The scan could not be started."
1017 +msgstr ""
1018 +
1019 +#: includes/class-scan.php:221
1020 +msgid "That is not a valid scan id."
1021 +msgstr ""
1022 +
1023 +#: includes/class-scan.php:251
1024 +msgid "The scan did not complete."
1025 +msgstr ""
1026 +
1027 +#. translators: %s: transport error message.
1028 +#: includes/class-scan.php:436
1029 +#, php-format
1030 +msgid "Could not reach the scanner: %s"
1031 +msgstr ""
1032 +
1033 +#: includes/class-scan.php:446
1034 +msgid "The scanner returned an unreadable response."
1035 +msgstr ""
1036 +
412 1037 #. translators: %d: HTTP status code.
413 1038 #: includes/class-score.php:194
414 1039 #, php-format
415 1040 msgid "PageSpeed Insights returned HTTP %d."
@@ -414,81 +1039,677 @@
414 1039 #, php-format
415 1040 msgid "PageSpeed Insights returned HTTP %d."
416 1041 msgstr ""
417 1042
418 -#: includes/class-score.php:263
1043 +#: includes/class-score.php:203
1044 +msgid "Google's shared anonymous PageSpeed quota is exhausted right now — this is not a problem with your site. Add a free PageSpeed API key in the Speed Test settings, or connect this site to xSpeed Hub to run tests through it."
1045 +msgstr ""
1046 +
1047 +#: includes/class-score.php:272
419 1048 msgid "GTmetrix reported the test failed."
420 1049 msgstr ""
421 1050
422 -#: includes/class-score.php:321
1051 +#: includes/class-score.php:330
423 1052 msgid "GTmetrix requires an API key — there is no anonymous mode. Add one in the Score settings."
424 1053 msgstr ""
425 1054
426 1055 #. translators: %d: HTTP status code.
427 -#: includes/class-score.php:350
1056 +#: includes/class-score.php:359
428 1057 #, php-format
429 1058 msgid "GTmetrix returned HTTP %d. Check the API key."
430 1059 msgstr ""
431 1060
432 -#: includes/class-score.php:403
1061 +#: includes/class-score.php:412
433 1062 msgid "GTmetrix returned an unreadable response."
434 1063 msgstr ""
435 1064
1065 +#: includes/class-server.php:744
1066 +msgid "an unreadable advanced-cache.php"
1067 +msgstr ""
1068 +
1069 +#: includes/class-server.php:754
1070 +msgid "an unidentified advanced-cache.php"
1071 +msgstr ""
1072 +
1073 +#. translators: %s: setting key.
1074 +#: includes/class-settings-manager.php:563
1075 +#, php-format
1076 +msgid "\"%s\" is not set in wp-config.php by your host, so there is nothing to revert to. Set it to the value you want instead."
1077 +msgstr ""
1078 +
436 1079 #. translators: %s: video title.
437 1080 #: includes/class-video-facade.php:150
1081 +#: includes/class-video-facade.php:196
438 1082 #, php-format
439 1083 msgid "Play video: %s"
440 1084 msgstr ""
441 1085
442 1086 #: includes/class-video-facade.php:153
1087 +#: includes/class-video-facade.php:199
1088 +#: includes/class-video-facade.php:309
443 1089 msgid "Play video"
444 1090 msgstr ""
445 1091
446 -#: includes/modules/Bloat/BloatModule.php:161
1092 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:49
1093 +msgid "AI Privacy"
1094 +msgstr ""
1095 +
1096 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1097 +msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro."
1098 +msgstr ""
1099 +
1100 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1101 +msgid "Require consent before AI data collection"
1102 +msgstr ""
1103 +
1104 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1105 +msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made): privacy is a fundamental right, not a paid feature."
1106 +msgstr ""
1107 +
1108 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1109 +msgid "Consent banner text"
1110 +msgstr ""
1111 +
1112 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1113 +msgid "Shown in the cookie consent banner. Keep it factual — what you collect (page navigation, performance metrics) and why."
1114 +msgstr ""
1115 +
1116 +#: includes/modules/Bloat/BloatModule.php:38
1117 +msgid "Bloat Control"
1118 +msgstr ""
1119 +
1120 +#: includes/modules/Bloat/BloatModule.php:40
1121 +msgid "Turn off WordPress defaults you do not use — saves bytes, requests, and attack surface."
1122 +msgstr ""
1123 +
1124 +#: includes/modules/Bloat/BloatModule.php:49
1125 +msgid "Disable Emojis"
1126 +msgstr ""
1127 +
1128 +#: includes/modules/Bloat/BloatModule.php:50
1129 +msgid "Remove the emoji detection script and its inline styles from every page. Modern browsers draw emojis natively, so visitors still see them. Saves a script and an inline stylesheet per page."
1130 +msgstr ""
1131 +
1132 +#: includes/modules/Bloat/BloatModule.php:55
1133 +msgid "Disable Dashicons on Frontend"
1134 +msgstr ""
1135 +
1136 +#: includes/modules/Bloat/BloatModule.php:56
1137 +msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1138 +msgstr ""
1139 +
1140 +#: includes/modules/Bloat/BloatModule.php:61
1141 +msgid "Disable oEmbed Discovery + wp-embed.min.js"
1142 +msgstr ""
1143 +
1144 +#: includes/modules/Bloat/BloatModule.php:62
1145 +msgid "Strip the auto-embed handlers + the embed script. Posts that paste a YouTube URL will no longer auto-render the player — embed it via a block instead. Saves a request per page."
1146 +msgstr ""
1147 +
1148 +#: includes/modules/Bloat/BloatModule.php:67
1149 +msgid "Disable RSS Feeds"
1150 +msgstr ""
1151 +
1152 +#: includes/modules/Bloat/BloatModule.php:68
1153 +msgid "Return a 404 on /feed/ and similar endpoints. Useful for sites that do not publish feeds and want to cut feed-fetcher traffic."
1154 +msgstr ""
1155 +
1156 +#: includes/modules/Bloat/BloatModule.php:73
1157 +msgid "Disable XML-RPC"
1158 +msgstr ""
1159 +
1160 +#: includes/modules/Bloat/BloatModule.php:74
1161 +msgid "Disable the legacy xmlrpc.php endpoint. Cuts pingback brute-force noise; safe to disable unless you use a remote WP client (Jetpack, WordPress mobile app)."
1162 +msgstr ""
1163 +
1164 +#: includes/modules/Bloat/BloatModule.php:79
1165 +msgid "Strip jQuery Migrate on Frontend"
1166 +msgstr ""
1167 +
1168 +#: includes/modules/Bloat/BloatModule.php:80
1169 +msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1170 +msgstr ""
1171 +
1172 +#: includes/modules/Bloat/BloatModule.php:85
1173 +msgid "Strip Block-Editor Styles on Frontend"
1174 +msgstr ""
1175 +
1176 +#: includes/modules/Bloat/BloatModule.php:86
1177 +msgid "Drop editor-only stylesheets (wp-editor, wp-components, and friends) from anonymous pages. A plugin that enqueues them on the frontend usually does so by accident — they can add hundreds of KB of render-blocking CSS. Frontend block styles (wp-block-library) are never touched."
1178 +msgstr ""
1179 +
1180 +#: includes/modules/Bloat/BloatModule.php:91
1181 +msgid "Remove RSD Link"
1182 +msgstr ""
1183 +
1184 +#: includes/modules/Bloat/BloatModule.php:92
1185 +msgid "Drop the Really Simple Discovery link from the page head. Only old desktop blogging clients read it."
1186 +msgstr ""
1187 +
1188 +#: includes/modules/Bloat/BloatModule.php:97
1189 +msgid "Remove Shortlink"
1190 +msgstr ""
1191 +
1192 +#: includes/modules/Bloat/BloatModule.php:98
1193 +msgid "Drop the ?p=123 shortlink tag and header from posts and pages. The shortlinks keep working; they are just no longer advertised."
1194 +msgstr ""
1195 +
1196 +#: includes/modules/Bloat/BloatModule.php:103
1197 +msgid "Remove REST API Links"
1198 +msgstr ""
1199 +
1200 +#: includes/modules/Bloat/BloatModule.php:104
1201 +msgid "Drop the /wp-json/ discovery link tag and Link header. The REST API itself stays on; to block it, use the setting below."
1202 +msgstr ""
1203 +
1204 +#: includes/modules/Bloat/BloatModule.php:109
1205 +msgid "Hide WordPress Version"
1206 +msgstr ""
1207 +
1208 +#: includes/modules/Bloat/BloatModule.php:110
1209 +msgid "Remove the WordPress generator tag from pages and feeds, so it no longer states the WordPress version. Other plugins print their own tags; those stay. Script and style URLs still carry ?ver= numbers."
1210 +msgstr ""
1211 +
1212 +#: includes/modules/Bloat/BloatModule.php:115
1213 +msgid "Disable Self-Pingbacks"
1214 +msgstr ""
1215 +
1216 +#: includes/modules/Bloat/BloatModule.php:116
1217 +msgid "Stop WordPress from sending a pingback to your own site when a post links to another of your posts. Pingbacks to other sites are not affected."
1218 +msgstr ""
1219 +
1220 +#: includes/modules/Bloat/BloatModule.php:121
1221 +msgid "Restrict REST API to Logged-In Users"
1222 +msgstr ""
1223 +
1224 +#: includes/modules/Bloat/BloatModule.php:122
1225 +msgid "Block /wp-json/ for anonymous requests. WooCommerce checkout, contact-form submissions, and many block-editor previews need anonymous REST — keep this off unless you know your site does not depend on it."
1226 +msgstr ""
1227 +
1228 +#: includes/modules/Bloat/BloatModule.php:380
447 1229 msgid "Feeds are disabled."
448 1230 msgstr ""
449 1231
450 -#: includes/modules/Bloat/BloatModule.php:207
1232 +#: includes/modules/Bloat/BloatModule.php:429
451 1233 msgid "Anonymous REST access is disabled on this site."
452 1234 msgstr ""
453 1235
454 -#: includes/modules/BrowserCache/BrowserCacheModule.php:115
455 -msgid "nginx server config required"
1236 +#: includes/modules/BrowserCache/BrowserCacheModule.php:32
1237 +#: includes/modules/Migration/MigrationModule.php:551
1238 +msgid "Browser Cache"
456 1239 msgstr ""
457 1240
458 -#: includes/modules/BrowserCache/BrowserCacheModule.php:116
459 -msgid "Browser-cache headers need to live in your nginx config. Your updated settings 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."
1241 +#: includes/modules/BrowserCache/BrowserCacheModule.php:34
1242 +msgid "Tell browsers (and intermediate CDNs) how long to cache static assets and HTML."
460 1243 msgstr ""
461 1244
462 -#: includes/modules/BrowserCache/BrowserCacheModule.php:120
1245 +#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1246 +msgid "Enable browser cache headers"
1247 +msgstr ""
1248 +
1249 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1250 +msgid "On Apache/LiteSpeed this writes Cache-Control + Expires rules into .htaccess. On nginx it just stores the settings — you paste the snippet into your server block manually."
1251 +msgstr ""
1252 +
1253 +#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1254 +msgid "Static asset TTL (seconds)"
1255 +msgstr ""
1256 +
1257 +#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1258 +msgid "Cache lifetime for CSS, JS, fonts, images. Defaults to 1 year + immutable (the industry-standard \"fingerprinted assets never change\" pattern)."
1259 +msgstr ""
1260 +
1261 +#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1262 +msgid "HTML TTL (seconds)"
1263 +msgstr ""
1264 +
1265 +#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1266 +msgid "Cache lifetime for the HTML document itself. Keep short (default 1h) so post edits roll out same-day."
1267 +msgstr ""
1268 +
1269 +#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1270 +msgid "Browser cache is enabled but not active on the server"
1271 +msgstr ""
1272 +
1273 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1274 +msgid "Browser-cache headers need to live in your nginx config, and the live response shows they are not being sent yet — so this is on in settings but doing nothing. Your settings are included in the unified server-block snippet on the Cache panel: paste it once into your nginx vhost (or container nginx config) and reload nginx."
1275 +msgstr ""
1276 +
1277 +#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1278 +#: includes/modules/Gzip/GzipModule.php:163
463 1279 msgid "Go to the snippet"
464 1280 msgstr ""
465 1281
466 -#: includes/modules/Database/DatabaseModule.php:148
1282 +#: includes/modules/Cache/CacheModule.php:130
1283 +#: includes/modules/Migration/MigrationModule.php:547
1284 +msgid "Page Cache"
1285 +msgstr ""
1286 +
1287 +#: includes/modules/Cache/CacheModule.php:132
1288 +msgid "Page caching for non-logged-in visitors."
1289 +msgstr ""
1290 +
1291 +#: includes/modules/Cache/CacheModule.php:158
1292 +msgid "Cache Expiry (hours)"
1293 +msgstr ""
1294 +
1295 +#: includes/modules/Cache/CacheModule.php:160
1296 +msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)."
1297 +msgstr ""
1298 +
1299 +#: includes/modules/Cache/CacheModule.php:190
1300 +msgid "Excluded URLs"
1301 +msgstr ""
1302 +
1303 +#: includes/modules/Cache/CacheModule.php:191
1304 +msgid "One pattern per line. Plain text matches anywhere in the URL (e.g. /cart). Use glob for anchored matches (/cart/* matches /cart/items but not /foo/cart/bar; *.pdf matches PDFs). Prefix with ~ for a raw regex (e.g. ~wp-.*\\.php)."
1305 +msgstr ""
1306 +
1307 +#: includes/modules/Cache/CacheModule.php:200
1308 +msgid "Excluded Cookies"
1309 +msgstr ""
1310 +
1311 +#: includes/modules/Cache/CacheModule.php:201
1312 +msgid "Skip cache for any visitor whose request carries a cookie whose NAME matches one of these patterns. Plain text = \"contains\"; glob (woocommerce_*) and ~regex (~wordpress_[a-f0-9]+) supported. One per line."
1313 +msgstr ""
1314 +
1315 +#: includes/modules/Cache/CacheModule.php:207
1316 +msgid "Bypass User Agents"
1317 +msgstr ""
1318 +
1319 +#: includes/modules/Cache/CacheModule.php:208
1320 +msgid "Substring match against the visitor User-Agent. Matched UAs bypass cache (useful for screenshot bots, internal previews, monitoring). Glob + ~regex supported. One per line."
1321 +msgstr ""
1322 +
1323 +#: includes/modules/Cache/CacheModule.php:219
1324 +msgid "Ignored Query Parameters"
1325 +msgstr ""
1326 +
1327 +#: includes/modules/Cache/CacheModule.php:220
1328 +msgid "Query keys removed from the URL before computing the cache key, so /post?utm_source=x and /post share a cache entry. Defaults cover the common analytics + ad + session params. Each entry matches a whole param name — plain text is an exact name, and glob (utm_*) or ~regex are anchored too, so \"ref\" does not also match \"preference\". One per line."
1329 +msgstr ""
1330 +
1331 +#: includes/modules/Cache/CacheModule.php:225
1332 +msgid "Purge After Updates"
1333 +msgstr ""
1334 +
1335 +#: includes/modules/Cache/CacheModule.php:226
1336 +msgid "Clear the page cache when a plugin, theme or WordPress core is updated. Cached HTML is produced by the code being replaced, so leaving it in place serves pre-update markup — and links to minified assets that no longer exist — until the cache expires. Translation updates are ignored, since a language pack changes no markup a cached page depends on. Updates to xSpeed itself always purge, regardless of this setting."
1337 +msgstr ""
1338 +
1339 +#: includes/modules/Cache/CacheModule.php:231
1340 +msgid "Separate Mobile Cache"
1341 +msgstr ""
1342 +
1343 +#: includes/modules/Cache/CacheModule.php:232
1344 +msgid "Keep mobile and desktop responses in separate cache buckets. Turn on for AMP, mobile-specific themes (WPtouch / Jetpack mobile theme), or any setup that serves different HTML by device."
1345 +msgstr ""
1346 +
1347 +#: includes/modules/Cache/CacheModule.php:264
1348 +msgid "Cache In Front Of This Site"
1349 +msgstr ""
1350 +
1351 +#: includes/modules/Cache/CacheModule.php:265
1352 +msgid "Ask a CDN or proxy in front of your site not to store pages xSpeed refused to cache. Leave it on Detect automatically unless you know what is in front of you; the marked providers ignore origin headers until you configure them to respect it."
1353 +msgstr ""
1354 +
1355 +#: includes/modules/Cache/CacheModule.php:266
1356 +msgid "Cache in front of this site"
1357 +msgstr ""
1358 +
1359 +#: includes/modules/Cache/CacheModule.php:267
1360 +msgid "Naming your provider narrows the headers to the one it reads. Detect automatically works it out per request and otherwise sends a set every cache ignores unless it understands it, so it is safe not to know. Run \"wp xspeed cache edge\" to see what was detected and what gets sent."
1361 +msgstr ""
1362 +
1363 +#: includes/modules/Cache/CacheModule.php:273
1364 +msgid "Custom Edge Headers"
1365 +msgstr ""
1366 +
1367 +#: includes/modules/Cache/CacheModule.php:275
1368 +msgid "One header per line, as Name: value — for example \"Surrogate-Control: no-store\". Lines starting with # are ignored."
1369 +msgstr ""
1370 +
1371 +#: includes/modules/Cache/CacheModule.php:276
1372 +msgid "Custom edge headers"
1373 +msgstr ""
1374 +
1375 +#: includes/modules/Cache/CacheModule.php:277
1376 +msgid "These replace the headers xSpeed would have picked for your CDN. Two baselines are still added underneath: a Cache-Control, and \"X-Accel-Expires: 0\" for a page cache running in nginx on your own server. Name either one yourself and yours is used instead. Values containing $, % or a backslash are dropped — the same pairs go into nginx and Apache directives, where those cannot be escaped safely. Content-Length, Content-Encoding, Content-Type, Transfer-Encoding, Set-Cookie and Location are refused."
1377 +msgstr ""
1378 +
1379 +#: includes/modules/Cache/CacheModule.php:290
1380 +msgid "LiteSpeed Static Fast Path"
1381 +msgstr ""
1382 +
1383 +#: includes/modules/Cache/CacheModule.php:291
1384 +msgid "Serve cache hits straight from the web server via .htaccess instead of the PHP drop-in. No PHP runs on a hit, so the saving depends on how quickly PHP answers on this host — a few milliseconds on a fast server, far more where PHP is the bottleneck. The trade: LiteSpeed cannot add the X-XSpeed-Cache header to statically served pages, and those hits are not counted in the dashboard hit ratio. Leave off to keep every hit visibly tagged and counted."
1385 +msgstr ""
1386 +
1387 +#: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1388 +msgid "Advanced Cache"
1389 +msgstr ""
1390 +
1391 +#: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1392 +msgid "Cache 404s, search, feeds, and the REST API, plus custom rules and maintenance bypass."
1393 +msgstr ""
1394 +
1395 +#: includes/modules/Cdn/CdnModule.php:30
1396 +msgid "Serve static assets (images, fonts, CSS, JS) from a pull-zone CDN host like BunnyCDN, KeyCDN, or your own."
1397 +msgstr ""
1398 +
1399 +#: includes/modules/Cdn/CdnModule.php:39
1400 +msgid "Enable CDN"
1401 +msgstr ""
1402 +
1403 +#: includes/modules/Cdn/CdnModule.php:40
1404 +msgid "Rewrite static asset URLs to the CDN hostname below. Your CDN must be a pull-zone configured to fetch from this site."
1405 +msgstr ""
1406 +
1407 +#: includes/modules/Cdn/CdnModule.php:45
1408 +msgid "CDN URL"
1409 +msgstr ""
1410 +
1411 +#: includes/modules/Cdn/CdnModule.php:46
1412 +msgid "CDN hostname, e.g. cdn.example.com. https:// and trailing slashes are stripped automatically."
1413 +msgstr ""
1414 +
1415 +#: includes/modules/Cdn/CdnModule.php:53
1416 +msgid "Included File Extensions"
1417 +msgstr ""
1418 +
1419 +#: includes/modules/Cdn/CdnModule.php:54
1420 +msgid "Only URLs ending in these extensions are rewritten. Defaults cover images, fonts, CSS, JS, and common media."
1421 +msgstr ""
1422 +
1423 +#: includes/modules/Cdn/CdnModule.php:61
1424 +msgid "Excluded Patterns"
1425 +msgstr ""
1426 +
1427 +#: includes/modules/Cdn/CdnModule.php:62
1428 +msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*"
1429 +msgstr ""
1430 +
1431 +#: includes/modules/Cloudflare/CloudflareModule.php:77
1432 +msgid "Cloudflare"
1433 +msgstr ""
1434 +
1435 +#: includes/modules/Cloudflare/CloudflareModule.php:79
1436 +msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1437 +msgstr ""
1438 +
1439 +#: includes/modules/Cloudflare/CloudflareModule.php:102
1440 +msgid "Enable Cloudflare integration"
1441 +msgstr ""
1442 +
1443 +#: includes/modules/Cloudflare/CloudflareModule.php:103
1444 +msgid "Use the credentials below to verify your zone and run purges."
1445 +msgstr ""
1446 +
1447 +#: includes/modules/Cloudflare/CloudflareModule.php:113
1448 +msgid "Authentication"
1449 +msgstr ""
1450 +
1451 +#: includes/modules/Cloudflare/CloudflareModule.php:114
1452 +msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1453 +msgstr ""
1454 +
1455 +#: includes/modules/Cloudflare/CloudflareModule.php:120
1456 +msgid "API Token"
1457 +msgstr ""
1458 +
1459 +#: includes/modules/Cloudflare/CloudflareModule.php:121
1460 +msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1461 +msgstr ""
1462 +
1463 +#: includes/modules/Cloudflare/CloudflareModule.php:129
1464 +msgid "Account Email"
1465 +msgstr ""
1466 +
1467 +#: includes/modules/Cloudflare/CloudflareModule.php:130
1468 +msgid "Only used when Authentication is set to Global API Key."
1469 +msgstr ""
1470 +
1471 +#: includes/modules/Cloudflare/CloudflareModule.php:136
1472 +msgid "Global API Key"
1473 +msgstr ""
1474 +
1475 +#: includes/modules/Cloudflare/CloudflareModule.php:137
1476 +msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1477 +msgstr ""
1478 +
1479 +#: includes/modules/Cloudflare/CloudflareModule.php:143
1480 +msgid "Zone ID"
1481 +msgstr ""
1482 +
1483 +#: includes/modules/Cloudflare/CloudflareModule.php:144
1484 +msgid "The 32-character hex Zone ID from your domain overview page."
1485 +msgstr ""
1486 +
1487 +#: includes/modules/Cloudflare/CloudflareModule.php:150
1488 +msgid "Auto-purge Cloudflare on xSpeed purge"
1489 +msgstr ""
1490 +
1491 +#: includes/modules/Cloudflare/CloudflareModule.php:151
1492 +msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1493 +msgstr ""
1494 +
1495 +#. translators: %d: number of URLs that changed at once.
1496 +#: includes/modules/Cloudflare/CloudflareModule.php:480
1497 +#, php-format
1498 +msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1499 +msgstr ""
1500 +
1501 +#. translators: %d: number of URLs.
1502 +#: includes/modules/Cloudflare/CloudflareModule.php:541
1503 +#, php-format
1504 +msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1505 +msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1506 +msgstr[0] ""
1507 +msgstr[1] ""
1508 +
1509 +#. translators: %d: number of URLs purged.
1510 +#: includes/modules/Cloudflare/CloudflareModule.php:572
1511 +#, php-format
1512 +msgid "Purged %d URL from the Cloudflare edge cache"
1513 +msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1514 +msgstr[0] ""
1515 +msgstr[1] ""
1516 +
1517 +#. translators: 1: number of URLs, 2: failure reason.
1518 +#: includes/modules/Cloudflare/CloudflareModule.php:588
1519 +#, php-format
1520 +msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1521 +msgstr ""
1522 +
1523 +#: includes/modules/Cloudflare/CloudflareModule.php:590
1524 +#: includes/modules/Cloudflare/CloudflareModule.php:657
1525 +msgid "unknown error"
1526 +msgstr ""
1527 +
1528 +#: includes/modules/Cloudflare/CloudflareModule.php:606
1529 +msgid "the Cloudflare integration is switched off"
1530 +msgstr ""
1531 +
1532 +#: includes/modules/Cloudflare/CloudflareModule.php:609
1533 +msgid "no zone ID or API credentials are configured"
1534 +msgstr ""
1535 +
1536 +#. translators: %s: what asked for the purge.
1537 +#: includes/modules/Cloudflare/CloudflareModule.php:645
1538 +#, php-format
1539 +msgid "Purged the Cloudflare edge cache (%s)"
1540 +msgstr ""
1541 +
1542 +#. translators: 1: what asked for the purge, 2: failure reason.
1543 +#: includes/modules/Cloudflare/CloudflareModule.php:655
1544 +#, php-format
1545 +msgid "Cloudflare purge failed (%1$s): %2$s"
1546 +msgstr ""
1547 +
1548 +#: includes/modules/Cloudflare/CloudflareModule.php:727
1549 +msgid "Cloudflare is not fully configured."
1550 +msgstr ""
1551 +
1552 +#: includes/modules/Cloudflare/CloudflareModule.php:728
1553 +msgid "Add your API token (or Global API Key + account email) and the Zone ID, then press Verify. Until then auto-purge does nothing."
1554 +msgstr ""
1555 +
1556 +#: includes/modules/Cloudflare/CloudflareModule.php:741
1557 +msgid "Cloudflare purge is failing."
1558 +msgstr ""
1559 +
1560 +#. translators: %s: the Cloudflare API error message, or empty.
1561 +#: includes/modules/Cloudflare/CloudflareModule.php:744
1562 +#, php-format
1563 +msgid "The last edge purge was rejected by Cloudflare%s. Confirm the API token includes the \"Zone → Cache Purge\" permission for this zone — a token that can read the zone can still lack purge rights."
1564 +msgstr ""
1565 +
1566 +#: includes/modules/Cloudflare/CloudflareModule.php:753
1567 +msgid "Cloudflare credentials were rejected."
1568 +msgstr ""
1569 +
1570 +#. translators: %s: the Cloudflare API error message, or empty.
1571 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1572 +#, php-format
1573 +msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1574 +msgstr ""
1575 +
1576 +#: includes/modules/Database/DatabaseModule.php:30
1577 +msgid "Database"
1578 +msgstr ""
1579 +
1580 +#: includes/modules/Database/DatabaseModule.php:32
1581 +msgid "Scan + clean WordPress bloat (revisions, spam, transients, orphan meta) and optimize tables."
1582 +msgstr ""
1583 +
1584 +#: includes/modules/Database/DatabaseModule.php:49
1585 +msgid "Auto-Cleanup Schedule"
1586 +msgstr ""
1587 +
1588 +#: includes/modules/Database/DatabaseModule.php:50
1589 +msgid "How often to run cleanup automatically. Manual means cleanup only runs when you press the button."
1590 +msgstr ""
1591 +
1592 +#: includes/modules/Database/DatabaseModule.php:56
1593 +msgid "Auto-Cleanup Types"
1594 +msgstr ""
1595 +
1596 +#: includes/modules/Database/DatabaseModule.php:57
1597 +msgid "Which cleanup categories run on the schedule above. Leave empty to keep auto-cleanup disabled even if a schedule is set."
1598 +msgstr ""
1599 +
1600 +#: includes/modules/Database/DatabaseModule.php:62
1601 +msgid "Limit Post Revisions"
1602 +msgstr ""
1603 +
1604 +#: includes/modules/Database/DatabaseModule.php:63
1605 +msgid "Cap how many revisions WordPress keeps for each post. Cleanup removes revisions that already exist; this stops them piling up again."
1606 +msgstr ""
1607 +
1608 +#: includes/modules/Database/DatabaseModule.php:70
1609 +msgid "Revisions to Keep"
1610 +msgstr ""
1611 +
1612 +#: includes/modules/Database/DatabaseModule.php:71
1613 +msgid "Used when Limit Post Revisions is on. 0 turns revisions off completely. Older revisions are trimmed the next time each post is saved; to remove the backlog now, clean Post Revisions above."
1614 +msgstr ""
1615 +
1616 +#: includes/modules/Database/DatabaseModule.php:125
1617 +msgid "The revision limit is set outside xSpeed"
1618 +msgstr ""
1619 +
1620 +#. translators: %s: value of WP_POST_REVISIONS, e.g. 5 or false.
1621 +#: includes/modules/Database/DatabaseModule.php:128
1622 +#, php-format
1623 +msgid "WP_POST_REVISIONS is set to %s, usually in wp-config.php, so Limit Post Revisions below has no effect. Remove that definition to manage the limit here."
1624 +msgstr ""
1625 +
1626 +#: includes/modules/Database/DatabaseModule.php:232
467 1627 msgid "Provide at least one cleanup type."
468 1628 msgstr ""
469 1629
470 -#: includes/modules/Gzip/GzipModule.php:116
471 -msgid "GZIP enabled but not active on the server"
1630 +#: includes/modules/Fonts/FontsModule.php:35
1631 +msgid "Fonts"
472 1632 msgstr ""
473 1633
474 -#: includes/modules/Gzip/GzipModule.php:117
475 -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."
1634 +#: includes/modules/Fonts/FontsModule.php:37
1635 +msgid "Stop web fonts from blocking text. Adds display=swap to Google Fonts and preloads the fonts you mark critical."
476 1636 msgstr ""
477 1637
478 -#: includes/modules/Gzip/GzipModule.php:128
1638 +#: includes/modules/Fonts/FontsModule.php:46
1639 +msgid "Add font-display: swap"
1640 +msgstr ""
1641 +
1642 +#: includes/modules/Fonts/FontsModule.php:47
1643 +msgid "Append display=swap to Google Fonts URLs so text renders immediately in a fallback face while the web font loads. Blocking values already on the URL (auto, block) are rewritten to swap; a deliberate non-blocking choice (fallback, optional) is left alone."
1644 +msgstr ""
1645 +
1646 +#: includes/modules/Fonts/FontsModule.php:53
1647 +msgid "Preload Font URLs"
1648 +msgstr ""
1649 +
1650 +#: includes/modules/Fonts/FontsModule.php:54
1651 +msgid "One absolute font URL per line (woff2/woff/ttf/otf). Each becomes a <link rel=\"preload\" as=\"font\" crossorigin> in the head so the browser starts downloading before the CSS parses. Use only for fonts that render above the fold."
1652 +msgstr ""
1653 +
1654 +#: includes/modules/Gzip/GzipModule.php:35
1655 +#: includes/modules/Migration/MigrationModule.php:553
1656 +msgid "Compression"
1657 +msgstr ""
1658 +
1659 +#: includes/modules/Gzip/GzipModule.php:36
1660 +msgid "GZIP"
1661 +msgstr ""
1662 +
1663 +#: includes/modules/Gzip/GzipModule.php:38
1664 +msgid "Compress responses to reduce transfer size."
1665 +msgstr ""
1666 +
1667 +#: includes/modules/Gzip/GzipModule.php:52
1668 +msgid "Enable GZIP Compression"
1669 +msgstr ""
1670 +
1671 +#: includes/modules/Gzip/GzipModule.php:74
1672 +msgid "Compress responses before sending them. We write the .htaccess rules automatically on this server."
1673 +msgstr ""
1674 +
1675 +#: includes/modules/Gzip/GzipModule.php:77
1676 +msgid "Compress responses before sending them. nginx cannot be configured from WordPress, so the directives ship in the unified server-block snippet — see the notice below."
1677 +msgstr ""
1678 +
1679 +#: includes/modules/Gzip/GzipModule.php:79
1680 +msgid "Compress responses before sending them. On this server the directives have to be added to your server config by hand — see the notice below."
1681 +msgstr ""
1682 +
1683 +#: includes/modules/Gzip/GzipModule.php:154
479 1684 msgid "GZIP requires server config on nginx"
480 1685 msgstr ""
481 1686
482 -#: includes/modules/Gzip/GzipModule.php:129
1687 +#: includes/modules/Gzip/GzipModule.php:155
1688 +msgid "GZIP is being served by nginx"
1689 +msgstr ""
1690 +
1691 +#: includes/modules/Gzip/GzipModule.php:157
483 1692 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."
484 1693 msgstr ""
485 1694
486 -#: includes/modules/Gzip/GzipModule.php:138
1695 +#: includes/modules/Gzip/GzipModule.php:158
1696 +msgid "Responses are compressed. xSpeed cannot configure nginx from WordPress, so these directives live in the unified server-block snippet on the Cache panel — that is where to re-copy them if your server config is ever rebuilt."
1697 +msgstr ""
1698 +
1699 +#: includes/modules/Gzip/GzipModule.php:186
1700 +msgid "GZIP enabled but not active on the server"
1701 +msgstr ""
1702 +
1703 +#: includes/modules/Gzip/GzipModule.php:187
1704 +msgid "xSpeed wrote the .htaccess rules but the response still isn't gzipped. Your server may have AllowOverride disabled, another caching plugin overriding, or mod_deflate missing. Ask your host to enable GZIP on Apache."
1705 +msgstr ""
1706 +
1707 +#: includes/modules/Gzip/GzipModule.php:197
487 1708 msgid "GZIP requires server config on this server"
488 1709 msgstr ""
489 1710
490 -#: includes/modules/Gzip/GzipModule.php:139
1711 +#: includes/modules/Gzip/GzipModule.php:198
491 1712 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
492 1713 msgstr ""
493 1714
494 1715 #: includes/modules/Health/HealthModule.php:66
@@ -494,216 +1715,524 @@
494 1715 #: includes/modules/Health/HealthModule.php:66
495 1716 msgid "xSpeed static-rewrite cache"
496 1717 msgstr ""
497 1718
498 -#: includes/modules/Health/HealthModule.php:81
1719 +#: includes/modules/Health/HealthModule.php:125
499 1720 msgid "xSpeed static-rewrite cache is active"
500 1721 msgstr ""
501 1722
502 -#: includes/modules/Health/HealthModule.php:84
1723 +#: includes/modules/Health/HealthModule.php:128
1724 +#: assets/admin.js
503 1725 msgid "Performance"
504 1726 msgstr ""
505 1727
506 -#: includes/modules/Health/HealthModule.php:87
1728 +#: includes/modules/Health/HealthModule.php:131
507 1729 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
508 1730 msgstr ""
509 1731
510 -#: includes/modules/Health/HealthModule.php:93
1732 +#: includes/modules/Health/HealthModule.php:137
511 1733 msgid "xSpeed cache is disabled"
512 1734 msgstr ""
513 1735
514 -#: includes/modules/Health/HealthModule.php:95
1736 +#: includes/modules/Health/HealthModule.php:139
515 1737 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
516 1738 msgstr ""
517 1739
518 -#: includes/modules/Health/HealthModule.php:102
1740 +#: includes/modules/Health/HealthModule.php:155
1741 +msgid "xSpeed is serving cache hits through PHP (LiteSpeed)"
1742 +msgstr ""
1743 +
1744 +#: includes/modules/Health/HealthModule.php:157
1745 +msgid "Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php), so every hit is visible and counted. LiteSpeed's .htaccess engine cannot tag or log statically served files, so this is the default. To serve hits straight from the web server with no PHP (at the cost of that tagging and counting), turn on LiteSpeed Static Fast Path in xSpeed's Cache settings."
1746 +msgstr ""
1747 +
1748 +#: includes/modules/Health/HealthModule.php:159
1749 +msgid "xSpeed is serving cache hits through PHP"
1750 +msgstr ""
1751 +
1752 +#: includes/modules/Health/HealthModule.php:161
1753 +msgid "Caching is working — hits are served by the xSpeed drop-in and tagged X-XSpeed-Cache: HIT (php). The faster .htaccess fast path is off because Apache's mod_headers module is not loaded, without which a static hit could not be tagged or counted. Enable mod_headers (a2enmod headers on Debian/Ubuntu, then restart Apache) to shave roughly 20-30ms off each cache hit."
1754 +msgstr ""
1755 +
1756 +#: includes/modules/Health/HealthModule.php:163
1757 +#: includes/modules/Health/HealthModule.php:202
1758 +msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1759 +msgstr ""
1760 +
1761 +#: includes/modules/Health/HealthModule.php:165
1762 +#: includes/modules/Health/HealthModule.php:204
1763 +msgid "Separate Mobile Cache is on, so cache hits are served by the PHP drop-in to keep per-device HTML correct. Turn Separate Mobile Cache off if your site serves the same HTML to every device to regain the faster static path."
1764 +msgstr ""
1765 +
1766 +#: includes/modules/Health/HealthModule.php:169
519 1767 msgid "xSpeed .htaccess rewrite block is missing"
520 1768 msgstr ""
521 1769
522 -#: includes/modules/Health/HealthModule.php:104
1770 +#: includes/modules/Health/HealthModule.php:171
523 1771 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."
524 1772 msgstr ""
525 1773
526 -#: includes/modules/Health/HealthModule.php:111
1774 +#: includes/modules/Health/HealthModule.php:196
1775 +msgid "xSpeed nginx static rewrite is active"
1776 +msgstr ""
1777 +
1778 +#: includes/modules/Health/HealthModule.php:198
1779 +msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
1780 +msgstr ""
1781 +
1782 +#: includes/modules/Health/HealthModule.php:208
1783 +msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
1784 +msgstr ""
1785 +
1786 +#: includes/modules/Health/HealthModule.php:210
1787 +msgid "Your nginx config is correct, but pages are not reaching the static cache, so hits are served by PHP. They contain nonces, and a static file is served with no PHP — nothing could ever refresh them, so every anonymous form on the page would break once they expire. Keeping these pages on PHP is deliberate."
1788 +msgstr ""
1789 +
1790 +#: includes/modules/Health/HealthModule.php:219
1791 +msgid "xSpeed could not verify the nginx static rewrite"
1792 +msgstr ""
1793 +
1794 +#. translators: %s: the reason the probe could not complete.
1795 +#: includes/modules/Health/HealthModule.php:224
1796 +#, php-format
1797 +msgid "The check itself did not complete, so this is not evidence that your config is wrong — if you have already pasted the snippet it may well be working. Reason: %s"
1798 +msgstr ""
1799 +
1800 +#: includes/modules/Health/HealthModule.php:232
527 1801 msgid "xSpeed nginx server config required"
528 1802 msgstr ""
529 1803
530 -#: includes/modules/Health/HealthModule.php:113
1804 +#: includes/modules/Health/HealthModule.php:234
531 1805 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:"
532 1806 msgstr ""
533 1807
534 -#: includes/modules/Health/HealthModule.php:122
1808 +#: includes/modules/Health/HealthModule.php:243
535 1809 msgid "xSpeed PHP drop-in cache active"
536 1810 msgstr ""
537 1811
538 -#: includes/modules/Health/HealthModule.php:124
1812 +#: includes/modules/Health/HealthModule.php:245
539 1813 msgid "Static-rewrite caching needs Apache, LiteSpeed, or nginx. The PHP drop-in is still serving cache hits at ~85ms TTFB on this server."
540 1814 msgstr ""
541 1815
1816 +#: includes/modules/Health/HealthModule.php:251
1817 +msgid "Health"
1818 +msgstr ""
1819 +
1820 +#: includes/modules/Health/HealthModule.php:253
1821 +msgid "Diagnostics, hit ratio, and recent cache activity."
1822 +msgstr ""
1823 +
1824 +#: includes/modules/Heartbeat/HeartbeatModule.php:38
1825 +msgid "Heartbeat"
1826 +msgstr ""
1827 +
1828 +#: includes/modules/Heartbeat/HeartbeatModule.php:40
1829 +msgid "Control the WordPress Heartbeat API per context."
1830 +msgstr ""
1831 +
1832 +#: includes/modules/Heartbeat/HeartbeatModule.php:64
1833 +msgid "Dashboard"
1834 +msgstr ""
1835 +
1836 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1837 +msgid "Heartbeat behavior on /wp-admin/ screens (autosave, notifications)."
1838 +msgstr ""
1839 +
1840 +#: includes/modules/Heartbeat/HeartbeatModule.php:72
1841 +msgid "Editor"
1842 +msgstr ""
1843 +
1844 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1845 +msgid "Heartbeat in the post / block editor. Disable only if you do not need autosave or co-edit locks."
1846 +msgstr ""
1847 +
1848 +#: includes/modules/Heartbeat/HeartbeatModule.php:80
1849 +msgid "Frontend"
1850 +msgstr ""
1851 +
1852 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1853 +msgid "Controls the Heartbeat API on the public site. Only takes effect when a plugin or theme actually loads heartbeat on the frontend (e.g. WooCommerce cart fragments, membership/notification plugins) — a default WordPress site loads none there, so this has no visible effect on such sites. Recommended: Disable, to stop the admin-ajax polling those plugins add."
1854 +msgstr ""
1855 +
1856 +#: includes/modules/Heartbeat/HeartbeatModule.php:88
1857 +msgid "Throttle Frequency"
1858 +msgstr ""
1859 +
1860 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
1861 +msgid "Interval in seconds for contexts set to Throttle. 60 is a sane default; lower = faster sync but more requests."
1862 +msgstr ""
1863 +
1864 +#: includes/modules/Lazy/LazyModule.php:42
1865 +msgid "Media Optimization"
1866 +msgstr ""
1867 +
1868 +#: includes/modules/Lazy/LazyModule.php:43
1869 +msgid "Lazy Loading"
1870 +msgstr ""
1871 +
1872 +#: includes/modules/Lazy/LazyModule.php:45
1873 +msgid "Control how images, iframes, and videos load — lazy-loading, missing dimensions, and format optimization."
1874 +msgstr ""
1875 +
1876 +#: includes/modules/Lazy/LazyModule.php:59
1877 +msgid "Lazy-load Images"
1878 +msgstr ""
1879 +
1880 +#: includes/modules/Lazy/LazyModule.php:60
1881 +msgid "Add loading=\"lazy\" + decoding=\"async\" to <img> tags in post content. The first images on the page get loading=\"eager\" so the LCP image is not deferred."
1882 +msgstr ""
1883 +
1884 +#: includes/modules/Lazy/LazyModule.php:65
1885 +msgid "Lazy-load Iframes"
1886 +msgstr ""
1887 +
1888 +#: includes/modules/Lazy/LazyModule.php:66
1889 +msgid "Add loading=\"lazy\" to <iframe> tags. Useful for YouTube / Vimeo embeds + map widgets that pull a lot of bytes."
1890 +msgstr ""
1891 +
1892 +#: includes/modules/Lazy/LazyModule.php:71
1893 +msgid "Click-to-Play Video Facade"
1894 +msgstr ""
1895 +
1896 +#: includes/modules/Lazy/LazyModule.php:72
1897 +msgid "Replace YouTube and Vimeo embeds — and self-hosted <video> tags that have a poster — with the poster image and a play button. The video only loads when a visitor clicks it, so a page with embeds no longer pays ~1MB of third-party JavaScript, or the full weight of a hosted video file, for visitors who never press play. Autoplaying videos are left alone. Falls back to the normal embed when JavaScript is off."
1898 +msgstr ""
1899 +
1900 +#: includes/modules/Lazy/LazyModule.php:77
1901 +msgid "Lazy-load HTML5 Videos"
1902 +msgstr ""
1903 +
1904 +#: includes/modules/Lazy/LazyModule.php:78
1905 +msgid "Set preload=\"none\" on self-hosted <video> tags, overriding a player's own preload=\"auto\"/\"metadata\". Autoplaying videos are left alone — they need their bytes regardless. Browsers do not yet support loading=\"lazy\" on video; preload=\"none\" is the closest equivalent."
1906 +msgstr ""
1907 +
1908 +#: includes/modules/Lazy/LazyModule.php:83
1909 +msgid "Lazy-load Background Images"
1910 +msgstr ""
1911 +
1912 +#: includes/modules/Lazy/LazyModule.php:84
1913 +msgid "Hold back background images set in an element's inline style (a Cover or Group block, a page-builder section) until the element is near the screen. Uses a small script; visitors without JavaScript get every background as usual. The first N backgrounds on the page load straight away, like images. Backgrounds set in a stylesheet are not affected."
1914 +msgstr ""
1915 +
1916 +#: includes/modules/Lazy/LazyModule.php:91
1917 +msgid "Eager-load First N Images"
1918 +msgstr ""
1919 +
1920 +#: includes/modules/Lazy/LazyModule.php:92
1921 +msgid "How many images at the top of the post get loading=\"eager\". 1 is usually right (the LCP hero image). 0 to lazy-load everything. Lazy-loaded background images use the same number."
1922 +msgstr ""
1923 +
1924 +#: includes/modules/Lazy/LazyModule.php:97
1925 +msgid "Add Missing Image Dimensions"
1926 +msgstr ""
1927 +
1928 +#: includes/modules/Lazy/LazyModule.php:98
1929 +msgid "When an <img class=\"wp-image-N\"> has no width/height, look the values up from the media library and inject them. Prevents the page-layout shift that hurts CLS scores."
1930 +msgstr ""
1931 +
1932 +#: includes/modules/Lazy/LazyModule.php:104
1933 +msgid "Excluded Images"
1934 +msgstr ""
1935 +
1936 +#: includes/modules/Lazy/LazyModule.php:105
1937 +msgid "Substring patterns that, if found anywhere in the <img> / <iframe> tag (typically a class or filename), exempt that element from lazy-loading. Useful for hero / logo / sprite images. Or add data-skip-lazy to the tag directly."
1938 +msgstr ""
1939 +
542 1940 #. translators: %s: command name.
543 -#: includes/modules/Mcp/Cli_Bridge.php:120
1941 +#: includes/modules/Mcp/Cli_Bridge.php:128
544 1942 #, php-format
545 1943 msgid "Unknown command: %s. Call list_commands to see what is available."
546 1944 msgstr ""
547 1945
548 -#: includes/modules/Mcp/McpModule.php:767
1946 +#: includes/modules/Mcp/McpModule.php:149
1947 +#: assets/admin.js
1948 +msgid "MCP Server"
1949 +msgstr ""
1950 +
1951 +#: includes/modules/Mcp/McpModule.php:151
1952 +msgid "Let Claude or another AI agent run this site — purge, check stats, change settings. This is the only thing you connect an AI to, and it is free with no API key."
1953 +msgstr ""
1954 +
1955 +#: includes/modules/Mcp/McpModule.php:440
1956 +msgid "Another plugin now claims the site-wide OAuth discovery address, so xSpeed handed it over. Its own is /.well-known/oauth-protected-resource/xspeed/mcp — AI assistants already connected may ask for approval once more."
1957 +msgstr ""
1958 +
1959 +#: includes/modules/Mcp/McpModule.php:1307
549 1960 msgid "Invalid or expired attach request."
550 1961 msgstr ""
551 1962
552 -#: includes/modules/Mcp/McpModule.php:848
1963 +#: includes/modules/Mcp/McpModule.php:1423
553 1964 msgid "You must be an administrator to authorize an AI agent to control this site."
554 1965 msgstr ""
555 1966
556 -#: includes/modules/Mcp/McpModule.php:855
1967 +#: includes/modules/Mcp/McpModule.php:1430
557 1968 msgid "Security check failed. Please try connecting again."
558 1969 msgstr ""
559 1970
560 -#: includes/modules/Mcp/McpModule.php:982
1971 +#: includes/modules/Mcp/McpModule.php:1557
561 1972 msgid "Read-only — inspect cache status and settings."
562 1973 msgstr ""
563 1974
564 -#: includes/modules/Mcp/McpModule.php:983
1975 +#: includes/modules/Mcp/McpModule.php:1558
565 1976 msgid "Read & write — purge caches, toggle caching, and change settings."
566 1977 msgstr ""
567 1978
568 -#: includes/modules/Mcp/McpModule.php:984
1979 +#: includes/modules/Mcp/McpModule.php:1559
569 1980 msgid "An AI agent"
570 1981 msgstr ""
571 1982
572 -#: includes/modules/Mcp/McpModule.php:1003
1983 +#: includes/modules/Mcp/McpModule.php:1578
573 1984 msgid "Authorize AI access"
574 1985 msgstr ""
575 1986
576 -#: includes/modules/Mcp/McpModule.php:1014
1987 +#: includes/modules/Mcp/McpModule.php:1589
577 1988 msgid "Connect to xSpeed"
578 1989 msgstr ""
579 1990
580 1991 #. translators: %s: AI client name.
581 -#: includes/modules/Mcp/McpModule.php:1016
1992 +#: includes/modules/Mcp/McpModule.php:1591
582 1993 #, php-format
583 1994 msgid "%s wants to manage the cache on this site."
584 1995 msgstr ""
585 1996
586 -#: includes/modules/Mcp/McpModule.php:1017
1997 +#: includes/modules/Mcp/McpModule.php:1592
587 1998 msgid "Site"
588 1999 msgstr ""
589 2000
590 -#: includes/modules/Mcp/McpModule.php:1018
2001 +#: includes/modules/Mcp/McpModule.php:1593
591 2002 msgid "Signed in as"
592 2003 msgstr ""
593 2004
594 -#: includes/modules/Mcp/McpModule.php:1019
2005 +#: includes/modules/Mcp/McpModule.php:1594
595 2006 msgid "Access"
596 2007 msgstr ""
597 2008
598 -#: includes/modules/Mcp/McpModule.php:1024
2009 +#: includes/modules/Mcp/McpModule.php:1599
599 2010 msgid "Deny"
600 2011 msgstr ""
601 2012
602 -#: includes/modules/Mcp/McpModule.php:1025
2013 +#: includes/modules/Mcp/McpModule.php:1600
603 2014 msgid "Approve"
604 2015 msgstr ""
605 2016
606 -#: includes/modules/Mcp/McpModule.php:1035
2017 +#: includes/modules/Mcp/McpModule.php:1610
607 2018 msgid "Authorization error"
608 2019 msgstr ""
609 2020
610 -#: includes/modules/Mcp/McpModule.php:1038
2021 +#: includes/modules/Mcp/McpModule.php:1613
611 2022 msgid "Could not authorize"
612 2023 msgstr ""
613 2024
2025 +#: includes/modules/Mcp/McpModule.php:1843
2026 +msgid "An AI assistant is connected to this site. This module counts as on whenever a connection token exists, rather than having its own on/off setting."
2027 +msgstr ""
2028 +
2029 +#: includes/modules/Mcp/McpModule.php:1844
2030 +msgid "No AI assistant is connected. This module counts as on once you connect one."
2031 +msgstr ""
2032 +
614 2033 #: includes/modules/Mcp/Mcp_Auth.php:57
615 2034 msgid "Too many failed attempts. Try again later."
616 2035 msgstr ""
617 2036
618 -#: includes/modules/Mcp/Mcp_OAuth.php:145
2037 +#: includes/modules/Mcp/Mcp_Hub.php:771
2038 +msgid "Connect this site to xSpeed Hub to run a free speed test."
2039 +msgstr ""
2040 +
2041 +#: includes/modules/Mcp/Mcp_Hub.php:797
2042 +msgid "Could not reach xSpeed Hub. Please try again."
2043 +msgstr ""
2044 +
2045 +#: includes/modules/Mcp/Mcp_Hub.php:820
2046 +#: assets/admin.js
2047 +msgid "The test could not be started."
2048 +msgstr ""
2049 +
2050 +#: includes/modules/Mcp/Mcp_OAuth.php:261
2051 +msgid "Too many client registrations. Try again later."
2052 +msgstr ""
2053 +
2054 +#. translators: %d: maximum number of redirect URIs.
2055 +#: includes/modules/Mcp/Mcp_OAuth.php:277
2056 +#, php-format
2057 +msgid "At most %d redirect_uris are allowed."
2058 +msgstr ""
2059 +
2060 +#: includes/modules/Mcp/Mcp_OAuth.php:289
619 2061 msgid "At least one valid redirect_uri is required."
620 2062 msgstr ""
621 2063
622 -#: includes/modules/Mcp/Mcp_OAuth.php:195
2064 +#: includes/modules/Mcp/Mcp_OAuth.php:326
2065 +msgid "Client registration limit reached."
2066 +msgstr ""
2067 +
2068 +#: includes/modules/Mcp/Mcp_OAuth.php:345
2069 +msgid "The client registration could not be stored."
2070 +msgstr ""
2071 +
2072 +#: includes/modules/Mcp/Mcp_OAuth.php:384
623 2073 msgid "Unknown client_id."
624 2074 msgstr ""
625 2075
626 -#: includes/modules/Mcp/Mcp_OAuth.php:199
2076 +#: includes/modules/Mcp/Mcp_OAuth.php:388
627 2077 msgid "redirect_uri does not match a registered value."
628 2078 msgstr ""
629 2079
630 -#: includes/modules/Mcp/Mcp_OAuth.php:202
2080 +#: includes/modules/Mcp/Mcp_OAuth.php:391
631 2081 msgid "Only response_type=code is supported."
632 2082 msgstr ""
633 2083
634 -#: includes/modules/Mcp/Mcp_OAuth.php:206
2084 +#: includes/modules/Mcp/Mcp_OAuth.php:395
635 2085 msgid "PKCE with code_challenge_method=S256 is required."
636 2086 msgstr ""
637 2087
638 -#: includes/modules/Mcp/Mcp_Pairing.php:408
2088 +#: includes/modules/Mcp/Mcp_Pairing.php:451
639 2089 msgid "No active MCP connection to change. Connect first."
640 2090 msgstr ""
641 2091
642 2092 #. translators: %s: tool name.
643 -#: includes/modules/Mcp/Mcp_Tools.php:694
2093 +#: includes/modules/Mcp/Mcp_Tools.php:931
644 2094 #, php-format
645 2095 msgid "Unknown tool: %s"
646 2096 msgstr ""
647 2097
648 2098 #. translators: %s: tool name.
649 -#: includes/modules/Mcp/Mcp_Tools.php:722
2099 +#: includes/modules/Mcp/Mcp_Tools.php:959
650 2100 #, php-format
651 2101 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
652 2102 msgstr ""
653 2103
654 2104 #. translators: %s: comma-separated list of valid purge types.
655 -#: includes/modules/Mcp/Mcp_Tools.php:869
2105 +#: includes/modules/Mcp/Mcp_Tools.php:1240
656 2106 #, php-format
657 2107 msgid "Invalid purge type. Expected one of: %s"
658 2108 msgstr ""
659 2109
660 -#: includes/modules/Mcp/Mcp_Tools.php:878
661 -#: includes/modules/Mcp/Mcp_Tools.php:1330
2110 +#: includes/modules/Mcp/Mcp_Tools.php:1249
2111 +#: includes/modules/Mcp/Mcp_Tools.php:2261
662 2112 msgid "AI assistant"
663 2113 msgstr ""
664 2114
665 -#: includes/modules/Mcp/Mcp_Tools.php:896
2115 +#: includes/modules/Mcp/Mcp_Tools.php:1298
666 2116 msgid "The \"enabled\" parameter is required (true or false)."
667 2117 msgstr ""
668 2118
669 -#: includes/modules/Mcp/Mcp_Tools.php:926
670 -#: includes/modules/Mcp/Mcp_Tools.php:948
2119 +#: includes/modules/Mcp/Mcp_Tools.php:1378
2120 +#: includes/modules/Mcp/Mcp_Tools.php:1432
671 2121 msgid "The \"module\" parameter is required."
672 2122 msgstr ""
673 2123
674 -#: includes/modules/Mcp/Mcp_Tools.php:955
2124 +#. translators: %s: module slug.
2125 +#: includes/modules/Mcp/Mcp_Tools.php:1387
2126 +#: includes/modules/Mcp/Mcp_Tools.php:1448
2127 +#, php-format
2128 +msgid "Unknown module \"%s\"."
2129 +msgstr ""
2130 +
2131 +#: includes/modules/Mcp/Mcp_Tools.php:1439
675 2132 msgid "The \"values\" parameter must be an object of setting keys."
676 2133 msgstr ""
677 2134
678 -#: includes/modules/Mcp/Mcp_Tools.php:987
2135 +#. translators: 1: comma-separated field names, 2: module slug.
2136 +#: includes/modules/Mcp/Mcp_Tools.php:1467
2137 +#, php-format
2138 +msgid "Writing credential fields (%1$s) on \"%2$s\" needs the \"configure\" scope, which is off by default. Reconnect the MCP client granting the configure scope, or set these credentials from the xSpeed dashboard."
2139 +msgstr ""
2140 +
2141 +#. translators: %s: module slug.
2142 +#: includes/modules/Mcp/Mcp_Tools.php:1499
2143 +#, php-format
2144 +msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
2145 +msgstr ""
2146 +
2147 +#. translators: %s: module slug.
2148 +#: includes/modules/Mcp/Mcp_Tools.php:1509
2149 +#, php-format
2150 +msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
2151 +msgstr ""
2152 +
2153 +#. translators: 1: setting key, 2: wp-config.php constant name.
2154 +#: includes/modules/Mcp/Mcp_Tools.php:1578
2155 +#, php-format
2156 +msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
2157 +msgstr ""
2158 +
2159 +#. translators: 1: setting key, 2: module slug.
2160 +#: includes/modules/Mcp/Mcp_Tools.php:1586
2161 +#, php-format
2162 +msgid "\"%1$s\" is not a setting of module \"%2$s\""
2163 +msgstr ""
2164 +
2165 +#. translators: %s: comma-separated setting names.
2166 +#: includes/modules/Mcp/Mcp_Tools.php:1598
2167 +#, php-format
2168 +msgid " — did you mean: %s?"
2169 +msgstr ""
2170 +
2171 +#. translators: %s: setting key.
2172 +#: includes/modules/Mcp/Mcp_Tools.php:1608
2173 +#, php-format
2174 +msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
2175 +msgstr ""
2176 +
2177 +#. translators: 1: module slug, 2: reasons.
2178 +#: includes/modules/Mcp/Mcp_Tools.php:1617
2179 +#, php-format
2180 +msgid "Refused to update %1$s — nothing was written. %2$s"
2181 +msgstr ""
2182 +
2183 +#: includes/modules/Mcp/Mcp_Tools.php:1653
679 2184 msgid "The \"command\" parameter is required."
680 2185 msgstr ""
681 2186
682 -#: includes/modules/Mcp/Mcp_Tools.php:1157
683 -#: includes/modules/Mcp/Mcp_Tools.php:1197
2187 +#: includes/modules/Mcp/Mcp_Tools.php:1704
2188 +msgid "This preview deletes nothing. To delete what is listed, call clean_database with this confirm_token. It expires in 5 minutes and stops working if the database changes."
2189 +msgstr ""
2190 +
2191 +#: includes/modules/Mcp/Mcp_Tools.php:1798
2192 +msgid "This permanently deletes content and cannot be undone. Call scan_database first to see exactly what would be removed, then pass the confirm_token it returns."
2193 +msgstr ""
2194 +
2195 +#: includes/modules/Mcp/Mcp_Tools.php:1809
2196 +msgid "That confirm_token is unknown or has expired (they last 5 minutes). Run scan_database again and use the fresh token."
2197 +msgstr ""
2198 +
2199 +#: includes/modules/Mcp/Mcp_Tools.php:1817
2200 +msgid "The database changed since that scan, so the preview no longer describes what would be deleted. Run scan_database again and confirm against the new result."
2201 +msgstr ""
2202 +
2203 +#: includes/modules/Mcp/Mcp_Tools.php:2081
2204 +#: includes/modules/Mcp/Mcp_Tools.php:2121
684 2205 msgid "The enabled argument is required."
685 2206 msgstr ""
686 2207
687 -#: includes/modules/Mcp/Mcp_Tools.php:1161
688 -#: includes/modules/Mcp/Mcp_Tools.php:1201
2208 +#: includes/modules/Mcp/Mcp_Tools.php:2085
2209 +#: includes/modules/Mcp/Mcp_Tools.php:2125
689 2210 msgid "The enabled argument must be true or false."
690 2211 msgstr ""
691 2212
692 -#: includes/modules/Mcp/Mcp_Tools.php:1215
2213 +#: includes/modules/Mcp/Mcp_Tools.php:2139
693 2214 msgid "The action argument must be \"list\" or \"clear\"."
694 2215 msgstr ""
695 2216
696 -#: includes/modules/Mcp/Mcp_Tools.php:1254
2217 +#: includes/modules/Mcp/Mcp_Tools.php:2178
697 2218 msgid "External scores are not available on this site."
698 2219 msgstr ""
699 2220
700 -#: includes/modules/Mcp/Mcp_Tools.php:1328
2221 +#: includes/modules/Mcp/Mcp_Tools.php:2259
701 2222 msgid "The url argument is required."
702 2223 msgstr ""
703 2224
2225 +#: includes/modules/Migration/MigrationModule.php:30
2226 +msgid "Migration"
2227 +msgstr ""
2228 +
2229 +#: includes/modules/Migration/MigrationModule.php:32
2230 +msgid "Import settings from WP Rocket, W3 Total Cache, or WP Super Cache."
2231 +msgstr ""
2232 +
704 2233 #. translators: %d: number of detected caching plugins.
705 -#: includes/modules/Migration/MigrationModule.php:142
2234 +#: includes/modules/Migration/MigrationModule.php:210
706 2235 #, php-format
707 2236 msgid "Migrate to %1$s — %2$d caching plugin detected"
708 2237 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
709 2238 msgstr[0] ""
@@ -708,872 +2237,2897 @@
708 2237 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
709 2238 msgstr[0] ""
710 2239 msgstr[1] ""
711 2240
712 -#: includes/modules/Migration/MigrationModule.php:175
713 -msgid "Import your existing settings in one click instead of configuring everything by hand. Pick a source to migrate:"
2241 +#: includes/modules/Migration/MigrationModule.php:265
2242 +msgid "Speed guarantee"
714 2243 msgstr ""
715 2244
716 -#. translators: %d: number of settings xSpeed will actually import.
717 -#: includes/modules/Migration/MigrationModule.php:190
2245 +#: includes/modules/Migration/MigrationModule.php:310
2246 +msgid "Dismiss this notice"
2247 +msgstr ""
2248 +
2249 +#: includes/modules/Migration/MigrationModule.php:331
2250 +msgid "Guaranteed faster load times — or we'll tune it for you, free."
2251 +msgstr ""
2252 +
2253 +#: includes/modules/Migration/MigrationModule.php:332
2254 +msgid "Faster load times, without configuring anything by hand."
2255 +msgstr ""
2256 +
2257 +#. translators: %s: brand name, e.g. xSpeed Cache.
2258 +#: includes/modules/Migration/MigrationModule.php:345
718 2259 #, php-format
2260 +msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2261 +msgstr ""
2262 +
2263 +#. translators: 1: detected plugin name, 2: number of settings.
2264 +#: includes/modules/Migration/MigrationModule.php:355
2265 +#, php-format
2266 +msgid "%1$s detected · %2$d setting ready to import"
2267 +msgid_plural "%1$s detected · %2$d settings ready to import"
2268 +msgstr[0] ""
2269 +msgstr[1] ""
2270 +
2271 +#: includes/modules/Migration/MigrationModule.php:375
2272 +msgid "Prefer we handle it? Book a call"
2273 +msgstr ""
2274 +
2275 +#. translators: %s: brand name.
2276 +#: includes/modules/Migration/MigrationModule.php:383
2277 +#, php-format
2278 +msgid "Migrate to %s"
2279 +msgstr ""
2280 +
2281 +#. translators: %s: detected plugin name.
2282 +#: includes/modules/Migration/MigrationModule.php:399
2283 +#, php-format
2284 +msgid "Migrating deactivates %s"
2285 +msgstr ""
2286 +
2287 +#: includes/modules/Migration/MigrationModule.php:404
2288 +msgid "View migration details"
2289 +msgstr ""
2290 +
2291 +#. translators: %d: number of settings imported.
2292 +#: includes/modules/Migration/MigrationModule.php:422
2293 +#, php-format
719 2294 msgid "imports %d setting"
720 2295 msgid_plural "imports %d settings"
721 2296 msgstr[0] ""
722 2297 msgstr[1] ""
723 2298
724 -#: includes/modules/Migration/MigrationModule.php:196
725 -msgid "Import"
2299 +#: includes/modules/Migration/MigrationModule.php:428
2300 +msgid "Migrate"
726 2301 msgstr ""
727 2302
728 -#: includes/modules/Migration/MigrationModule.php:203
729 -msgid "Open Migration panel"
2303 +#: includes/modules/Migration/MigrationModule.php:548
2304 +#: includes/modules/Minify/MinifyModule.php:36
2305 +msgid "Minify"
730 2306 msgstr ""
731 2307
732 -#: includes/modules/Migration/MigrationModule.php:204
733 -msgid "Dismiss"
2308 +#: includes/modules/Migration/MigrationModule.php:549
2309 +msgid "Lazy Load"
734 2310 msgstr ""
735 2311
736 -#: includes/modules/Preloader/PreloaderModule.php:243
2312 +#: includes/modules/Migration/MigrationModule.php:550
2313 +#: includes/modules/Preloader/PreloaderModule.php:32
2314 +msgid "Preloader"
2315 +msgstr ""
2316 +
2317 +#: includes/modules/Migration/MigrationModule.php:552
2318 +#: includes/modules/ObjectCache/ObjectCacheModule.php:32
2319 +msgid "Object Cache"
2320 +msgstr ""
2321 +
2322 +#: includes/modules/Migration/MigrationModule.php:554
2323 +msgid "Bloat Removal"
2324 +msgstr ""
2325 +
2326 +#: includes/modules/Migration/MigrationModule.php:579
2327 +msgid "You do not have permission to migrate settings."
2328 +msgstr ""
2329 +
2330 +#: includes/modules/Migration/MigrationModule.php:585
2331 +msgid "No source selected."
2332 +msgstr ""
2333 +
2334 +#: includes/modules/Migration/MigrationModule.php:617
2335 +msgid "it could not be enabled"
2336 +msgstr ""
2337 +
2338 +#: includes/modules/Migration/MigrationModule.php:702
2339 +msgid "Migrating…"
2340 +msgstr ""
2341 +
2342 +#: includes/modules/Migration/MigrationModule.php:719
2343 +msgid "Migration failed."
2344 +msgstr ""
2345 +
2346 +#: includes/modules/Migration/MigrationModule.php:722
2347 +msgid "the source plugin"
2348 +msgstr ""
2349 +
2350 +#: includes/modules/Migration/MigrationModule.php:723
2351 +msgid "Review imported settings"
2352 +msgstr ""
2353 +
2354 +#: includes/modules/Migration/MigrationModule.php:734
2355 +#: includes/modules/Migration/MigrationModule.php:745
2356 +#: includes/modules/Migration/MigrationModule.php:753
2357 +msgid "settings are now running in xSpeed."
2358 +msgstr ""
2359 +
2360 +#: includes/modules/Migration/MigrationModule.php:736
2361 +#: includes/modules/Migration/MigrationModule.php:746
2362 +msgid "It has been switched off, so the two page caches cannot conflict."
2363 +msgstr ""
2364 +
2365 +#: includes/modules/Migration/MigrationModule.php:737
2366 +msgid "It is still active — switch it off when you are ready."
2367 +msgstr ""
2368 +
2369 +#: includes/modules/Migration/MigrationModule.php:738
2370 +msgid "Skipped:"
2371 +msgstr ""
2372 +
2373 +#: includes/modules/Migration/MigrationModule.php:754
2374 +msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2375 +msgstr ""
2376 +
2377 +#: includes/modules/Migration/MigrationModule.php:763
2378 +msgid "Migration could not finish."
2379 +msgstr ""
2380 +
2381 +#: includes/modules/Migration/MigrationModule.php:764
2382 +msgid "Nothing was changed — you can try again."
2383 +msgstr ""
2384 +
2385 +#. translators: %s: source plugin label.
2386 +#: includes/modules/Migration/MigrationModule.php:997
2387 +#, php-format
2388 +msgid "%s is activated across the whole network, so only a network administrator can switch it off. Your settings were imported — ask a network administrator to deactivate it."
2389 +msgstr ""
2390 +
2391 +#. translators: %s: source plugin label.
2392 +#: includes/modules/Migration/MigrationModule.php:1002
2393 +#, php-format
2394 +msgid "Your account can change settings but not switch plugins off, so %s is still active. Your settings were imported — ask an administrator to deactivate it."
2395 +msgstr ""
2396 +
2397 +#: includes/modules/Minify/MinifyModule.php:35
2398 +msgid "CSS & JavaScript"
2399 +msgstr ""
2400 +
2401 +#: includes/modules/Minify/MinifyModule.php:38
2402 +msgid "Strip whitespace and rewrite enqueued CSS / JS."
2403 +msgstr ""
2404 +
2405 +#: includes/modules/Minify/MinifyModule.php:51
2406 +msgid "Minify HTML"
2407 +msgstr ""
2408 +
2409 +#: includes/modules/Minify/MinifyModule.php:56
2410 +msgid "Strip whitespace and comments from HTML output, including inline <style> and <script> blocks. Safe on most themes. Applies to cached (logged-out) responses — view the page in a private window to see the result."
2411 +msgstr ""
2412 +
2413 +#: includes/modules/Minify/MinifyModule.php:61
2414 +msgid "Minify CSS"
2415 +msgstr ""
2416 +
2417 +#: includes/modules/Minify/MinifyModule.php:62
2418 +msgid "Compress and rewrite enqueued local stylesheets. External CSS is left untouched."
2419 +msgstr ""
2420 +
2421 +#: includes/modules/Minify/MinifyModule.php:67
2422 +msgid "Minify JavaScript"
2423 +msgstr ""
2424 +
2425 +#: includes/modules/Minify/MinifyModule.php:68
2426 +msgid "Compress enqueued local scripts. Disable if you hit script-loading conflicts on the frontend."
2427 +msgstr ""
2428 +
2429 +#: includes/modules/Minify/MinifyModule.php:73
2430 +msgid "Defer JavaScript"
2431 +msgstr ""
2432 +
2433 +#: includes/modules/Minify/MinifyModule.php:74
2434 +msgid "Add defer=\"defer\" to enqueued script tags so they execute after HTML parsing. jQuery + its hard dependencies are skipped automatically."
2435 +msgstr ""
2436 +
2437 +#: includes/modules/Minify/MinifyModule.php:79
2438 +msgid "Delay JavaScript Until Interaction"
2439 +msgstr ""
2440 +
2441 +#: includes/modules/Minify/MinifyModule.php:80
2442 +msgid "Postpone script loading until the visitor scrolls, moves the mouse, taps, or presses a key. Drastically improves first paint on script-heavy pages; can break above-the-fold scripted UI — test before leaving on. Cookie-consent banners (CookieYes, Complianz, Cookiebot, NotificationX, Cookie Notice, Borlabs, Real Cookie Banner and others) are not delayed, so the visitor is still asked before anything else runs. To delay one on purpose, name it in Delay Only These Scripts."
2443 +msgstr ""
2444 +
2445 +#: includes/modules/Minify/MinifyModule.php:85
2446 +msgid "Load CSS Asynchronously"
2447 +msgstr ""
2448 +
2449 +#: includes/modules/Minify/MinifyModule.php:86
2450 +msgid "Rewrite stylesheet link tags to load non-blocking via the print-then-all pattern. Pairs well with critical-CSS workflows; can cause a flash of unstyled content if the theme has no critical CSS."
2451 +msgstr ""
2452 +
2453 +#: includes/modules/Minify/MinifyModule.php:91
2454 +msgid "Remove Asset Query Strings"
2455 +msgstr ""
2456 +
2457 +#: includes/modules/Minify/MinifyModule.php:92
2458 +msgid "Strip ?ver=X.Y from enqueued CSS / JS URLs. Some CDN caches and proxies cache better when query strings are absent. Files under wp-content/uploads keep their version — page builders and consent plugins rewrite generated CSS there in place, and ?ver is what tells browsers to refetch it. Plugin, theme and core assets are still stripped: with Browser Cache on, an update reaches returning visitors only when their browser cache expires."
2459 +msgstr ""
2460 +
2461 +#: includes/modules/Minify/MinifyModule.php:98
2462 +msgid "Defer / Delay Exclusions"
2463 +msgstr ""
2464 +
2465 +#: includes/modules/Minify/MinifyModule.php:99
2466 +msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). Cookie-consent banners are skipped without being listed here. An entry here also wins over the same script in Delay Only These Scripts. One per line."
2467 +msgstr ""
2468 +
2469 +#: includes/modules/Minify/MinifyModule.php:113
2470 +msgid "Delay Only These Scripts"
2471 +msgstr ""
2472 +
2473 +#: includes/modules/Minify/MinifyModule.php:114
2474 +msgid "Script handles OR URL substrings. When non-empty, matching scripts are delayed, plus the known third-party tags xSpeed recognises on its own (analytics, tag managers, chat widgets, review embeds, error trackers) — so a heavy vendor script is postponed even when it is not listed here. Leave empty to delay all scripts (minus the exclusions above). Handles are the more reliable selector — a URL substring has to match the script's original URL, and minification rewrites that to a hashed cache path. Cookie-consent banners are only delayed when an entry names one, for example notificationx or cookiebot. A broad entry such as /plugins/ does not delay them. One per line."
2475 +msgstr ""
2476 +
2477 +#: includes/modules/Minify/MinifyModule.php:115
2478 +msgid "Consent banners and Delay JS"
2479 +msgstr ""
2480 +
2481 +#. translators: %s: comma-separated list of consent plugins, each followed by the word to type in parentheses.
2482 +#: includes/modules/Minify/MinifyModule.php:118
2483 +#, php-format
2484 +msgid "These consent banners load straight away, even with Delay JS on: %s. To delay one on purpose, add the word in parentheses, or the script handle, to this list. An entry that only matches part of the address, such as /plugins/ or .js, never delays a banner, and an entry in Defer / Delay Exclusions always wins."
2485 +msgstr ""
2486 +
2487 +#: includes/modules/Minify/MinifyModule.php:126
2488 +msgid "Smart Delay (Carry Inline Snippets)"
2489 +msgstr ""
2490 +
2491 +#: includes/modules/Minify/MinifyModule.php:127
2492 +msgid "Normally a script is left running at load when inline code on the page depends on it — on builder pages that keeps most scripts eager even with Delay JavaScript on. Smart Delay postpones those scripts anyway and parks their inline snippets with them; everything replays in page order on the first interaction. The most aggressive setting on this page: test menus, sliders, and toggles before leaving it on. Exclusions above still win, and consent banners still run first."
2493 +msgstr ""
2494 +
2495 +#: includes/modules/Minify/MinifyModule.php:135
2496 +msgid "Delay Failsafe Timeout (ms)"
2497 +msgstr ""
2498 +
2499 +#: includes/modules/Minify/MinifyModule.php:137
2500 +msgid "Load delayed scripts automatically after this many milliseconds when the visitor never interacts. Set to 0 for interaction-only, with no timer: a timer that fires inside a lab tool's measurement window loads the \"delayed\" scripts anyway and inflates the reported TTI. Keep a non-zero value if a delayed script must eventually run for visitors who never scroll, tap, or type."
2501 +msgstr ""
2502 +
2503 +#: includes/modules/Minify/MinifyModule.php:143
2504 +msgid "Combine CSS Files"
2505 +msgstr ""
2506 +
2507 +#: includes/modules/Minify/MinifyModule.php:144
2508 +msgid "Concatenate enqueued local stylesheets into a single file (with @import and url(…) paths resolved). External CSS is left alone. Pairs poorly with HTTP/2 push — only enable on HTTP/1.1 hosts."
2509 +msgstr ""
2510 +
2511 +#: includes/modules/Minify/MinifyModule.php:149
2512 +msgid "Combine JavaScript Files"
2513 +msgstr ""
2514 +
2515 +#: includes/modules/Minify/MinifyModule.php:150
2516 +msgid "Concatenate enqueued local scripts into a single file. External scripts + scripts marked async / deferred are left alone. Disable if you hit dependency-order issues; the combiner respects WordPress enqueue order but inline scripts attached via wp_add_inline_script can shift behavior."
2517 +msgstr ""
2518 +
2519 +#: includes/modules/Minify/MinifyModule.php:287
2520 +msgid "HTML minification is paused because WP_DEBUG is enabled in wp-config.php. Readable HTML is usually what you want while debugging, so xSpeed leaves the markup alone. Cached pages are served un-minified until WP_DEBUG is turned off."
2521 +msgstr ""
2522 +
2523 +#: includes/modules/Minify/MinifyModule.php:288
2524 +msgid "HTML minification is paused because a plugin or theme is returning true from the xspeed_skip_minify filter. Cached pages are served un-minified until that filter stops suppressing it."
2525 +msgstr ""
2526 +
2527 +#: includes/modules/Minify/MinifyModule.php:293
2528 +msgid "HTML minification is on but currently paused"
2529 +msgstr ""
2530 +
2531 +#: includes/modules/ObjectCache/ObjectCacheModule.php:34
2532 +msgid "Configure a persistent object cache (Redis / Memcached) and generate a paste-ready wp-config.php snippet."
2533 +msgstr ""
2534 +
2535 +#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2536 +msgid "Backend"
2537 +msgstr ""
2538 +
2539 +#: includes/modules/ObjectCache/ObjectCacheModule.php:62
2540 +msgid "Which cache server you intend to use. Affects the generated wp-config snippet."
2541 +msgstr ""
2542 +
2543 +#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2544 +msgid "Redis Host"
2545 +msgstr ""
2546 +
2547 +#: includes/modules/ObjectCache/ObjectCacheModule.php:69
2548 +msgid "Hostname or IP of the Redis server. Use 127.0.0.1 for a local socket on the same machine as PHP."
2549 +msgstr ""
2550 +
2551 +#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2552 +msgid "Redis Port"
2553 +msgstr ""
2554 +
2555 +#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2556 +msgid "Default Redis port is 6379."
2557 +msgstr ""
2558 +
2559 +#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2560 +msgid "Redis User"
2561 +msgstr ""
2562 +
2563 +#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2564 +msgid "Optional. Set this only if your host provisioned a dedicated Redis ACL user (Redis 6+) — e.g. some managed hosts issue a Redis User alongside the password. Leave blank to authenticate as the default user (legacy password-only Redis)."
2565 +msgstr ""
2566 +
2567 +#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2568 +msgid "Redis Password"
2569 +msgstr ""
2570 +
2571 +#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2572 +msgid "Leave blank if your Redis server runs without auth."
2573 +msgstr ""
2574 +
2575 +#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2576 +msgid "Redis Database"
2577 +msgstr ""
2578 +
2579 +#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2580 +msgid "Redis logical DB number (0-15). Use a dedicated DB per site if Redis is shared."
2581 +msgstr ""
2582 +
2583 +#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2584 +msgid "Memcached Host"
2585 +msgstr ""
2586 +
2587 +#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2588 +msgid "Used when Backend = Memcached."
2589 +msgstr ""
2590 +
2591 +#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2592 +msgid "Memcached Port"
2593 +msgstr ""
2594 +
2595 +#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2596 +msgid "Default Memcached port is 11211."
2597 +msgstr ""
2598 +
2599 +#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2600 +msgid "Cache Key Prefix"
2601 +msgstr ""
2602 +
2603 +#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2604 +msgid "Unique salt for this site's cache keys. Leave blank and xSpeed derives one automatically for this install, so sites sharing a Redis/Memcached server never collide. On ACL/namespaced Redis (e.g. xCloud), set this to the host's \"Redis Object Cache Key\" — otherwise cache writes are denied (NOPERM) and nothing persists."
2605 +msgstr ""
2606 +
2607 +#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2608 +msgid "Connection Timeout (seconds)"
2609 +msgstr ""
2610 +
2611 +#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2612 +msgid "How long to wait for a connection. Keep low (1-2s) so a misconfigured cache never stalls the page."
2613 +msgstr ""
2614 +
2615 +#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2616 +msgid "Persistent Connections"
2617 +msgstr ""
2618 +
2619 +#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2620 +msgid "Reuse the connection across PHP requests when supported. Generally a win unless the cache server complains about idle connections."
2621 +msgstr ""
2622 +
2623 +#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2624 +msgid "The object cache drop-in is installed and storing data. This is measured from the running cache, not from the settings on this page."
2625 +msgstr ""
2626 +
2627 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2628 +msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2629 +msgstr ""
2630 +
2631 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2632 +msgid "No object cache is running. Entering a host below does not switch it on by itself -- the drop-in has to be installed and connect successfully."
2633 +msgstr ""
2634 +
2635 +#: includes/modules/Preloader/PreloaderModule.php:33
2636 +msgid "Crawl Now"
2637 +msgstr ""
2638 +
2639 +#: includes/modules/Preloader/PreloaderModule.php:35
2640 +msgid "Crawl the sitemap to warm cache so visitors never hit a cold MISS."
2641 +msgstr ""
2642 +
2643 +#: includes/modules/Preloader/PreloaderModule.php:61
2644 +msgid "Your server is blocking the xSpeed cache warmer"
2645 +msgstr ""
2646 +
2647 +#. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2648 +#: includes/modules/Preloader/PreloaderModule.php:64
2649 +#, php-format
2650 +msgid "A warm request was refused with HTTP %1$d, which is how a firewall answers when it judges a request by its user-agent. Pages are not being warmed, so the first visitor to each new page waits for an uncached render. Allow the user-agent \"%2$s\" in your server's bad-bot rules — on xCloud this is the 8G firewall — or change it with the xspeed_preloader_user_agent filter. This notice clears itself once a warm gets through."
2651 +msgstr ""
2652 +
2653 +#: includes/modules/Preloader/PreloaderModule.php:77
2654 +msgid "Enable Preloader"
2655 +msgstr ""
2656 +
2657 +#: includes/modules/Preloader/PreloaderModule.php:78
2658 +msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2659 +msgstr ""
2660 +
2661 +#: includes/modules/Preloader/PreloaderModule.php:90
2662 +msgid "Schedule"
2663 +msgstr ""
2664 +
2665 +#: includes/modules/Preloader/PreloaderModule.php:91
2666 +msgid "How often to start a fresh crawl. Manual means you trigger it from the dashboard."
2667 +msgstr ""
2668 +
2669 +#: includes/modules/Preloader/PreloaderModule.php:99
2670 +msgid "Batch Size"
2671 +msgstr ""
2672 +
2673 +#: includes/modules/Preloader/PreloaderModule.php:100
2674 +msgid "URLs warmed per cron tick. Higher = faster crawl, more load on the origin."
2675 +msgstr ""
2676 +
2677 +#: includes/modules/Preloader/PreloaderModule.php:106
2678 +msgid "Sitemap URL (optional)"
2679 +msgstr ""
2680 +
2681 +#: includes/modules/Preloader/PreloaderModule.php:107
2682 +msgid "Override the auto-detected WordPress core sitemap (/wp-sitemap.xml). Leave blank for default."
2683 +msgstr ""
2684 +
2685 +#: includes/modules/Preloader/PreloaderModule.php:113
2686 +msgid "Warm new content immediately"
2687 +msgstr ""
2688 +
2689 +#: includes/modules/Preloader/PreloaderModule.php:114
2690 +msgid "When a post or page is published, fetch it once so the first visitor sees a cache HIT, not a cold MISS."
2691 +msgstr ""
2692 +
2693 +#: includes/modules/Preloader/PreloaderModule.php:120
2694 +msgid "Re-warm after comments"
2695 +msgstr ""
2696 +
2697 +#: includes/modules/Preloader/PreloaderModule.php:121
2698 +msgid "Re-warm a page after a comment is posted (Cache purges the page on comment; this fetches it back into cache)."
2699 +msgstr ""
2700 +
2701 +#: includes/modules/Preloader/PreloaderModule.php:297
737 2702 msgid "Enable the preloader before starting a crawl."
738 2703 msgstr ""
739 2704
740 -#: includes/modules/Score/ScoreModule.php:147
741 -msgid "External scores are turned off. Enable them first — this is the only feature that contacts a third party."
2705 +#: includes/modules/Privacy/PrivacyModule.php:47
2706 +msgid "Privacy & usage data"
742 2707 msgstr ""
743 2708
744 -#: includes/modules/Score/ScoreModule.php:156
2709 +#: includes/modules/Privacy/PrivacyModule.php:49
2710 +msgid "Control the usage analytics you were asked about in the setup wizard."
2711 +msgstr ""
2712 +
2713 +#: includes/modules/Privacy/PrivacyModule.php:58
2714 +msgid "Share usage data"
2715 +msgstr ""
2716 +
2717 +#: includes/modules/Privacy/PrivacyModule.php:59
2718 +msgid "Share a few basics — WordPress & PHP version, active theme & plugins, server type, and which features you enable. Never page content. Turning this off stops all collection and clears the scheduled send."
2719 +msgstr ""
2720 +
2721 +#: includes/modules/ResourceHints/ResourceHintsModule.php:60
2722 +msgid "Resource Hints"
2723 +msgstr ""
2724 +
2725 +#: includes/modules/ResourceHints/ResourceHintsModule.php:61
2726 +msgid "Hints"
2727 +msgstr ""
2728 +
2729 +#: includes/modules/ResourceHints/ResourceHintsModule.php:63
2730 +msgid "Preload the LCP hero image and preconnect to font hosts so the largest element paints sooner."
2731 +msgstr ""
2732 +
2733 +#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2734 +msgid "Enable Resource Hints"
2735 +msgstr ""
2736 +
2737 +#: includes/modules/ResourceHints/ResourceHintsModule.php:78
2738 +msgid "Master switch for the LCP-image preload + preconnect resource hints. On by default — these are safe, no-config optimizations that help every theme."
2739 +msgstr ""
2740 +
2741 +#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2742 +msgid "Preload LCP Image"
2743 +msgstr ""
2744 +
2745 +#: includes/modules/ResourceHints/ResourceHintsModule.php:84
2746 +msgid "Detect the largest above-the-fold image and emit a <link rel=\"preload\" as=\"image\" fetchpriority=\"high\"> in the head, plus fetchpriority=\"high\" on the image. This is the highest-impact fix for Largest Contentful Paint — it beats any lazy-load the theme applied."
2747 +msgstr ""
2748 +
2749 +#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2750 +msgid "Images to Preload"
2751 +msgstr ""
2752 +
2753 +#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2754 +msgid "How many of the first images on the page to preload. 1 is right for most sites (the single hero). Raise it only if the fold shows a small gallery."
2755 +msgstr ""
2756 +
2757 +#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2758 +msgid "Exclude From Preload"
2759 +msgstr ""
2760 +
2761 +#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2762 +msgid "Substring patterns (filename or class) that, if found in an <img>, exempt it from being treated as the LCP image. Useful for tracking pixels, spacers, or a decorative first image that is not the hero."
2763 +msgstr ""
2764 +
2765 +#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2766 +msgid "Always Preload These Images"
2767 +msgstr ""
2768 +
2769 +#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2770 +msgid "Image URLs (full or site-relative) to preload with high priority on every page. This is the escape hatch for an LCP image the detector cannot see — most often a hero section's CSS background-image, which carries none of the signals the automatic pick reads. Keep it to one or two images: preloading many hands them all top network priority and the page itself loses. The first three entries are used."
2771 +msgstr ""
2772 +
2773 +#: includes/modules/ResourceHints/ResourceHintsModule.php:111
2774 +msgid "Preconnect to Font Hosts"
2775 +msgstr ""
2776 +
2777 +#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2778 +msgid "When Google Fonts are detected, emit <link rel=\"preconnect\"> to fonts.googleapis.com and fonts.gstatic.com so the DNS + TLS handshake happens ahead of the font request instead of on the critical path."
2779 +msgstr ""
2780 +
2781 +#: includes/modules/ResourceHints/ResourceHintsModule.php:118
2782 +msgid "Extra Preconnect Hosts"
2783 +msgstr ""
2784 +
2785 +#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2786 +msgid "One origin per line (e.g. https://cdn.example.com) to preconnect in addition to the auto-detected font hosts. Use for a CDN or third-party origin that serves above-the-fold assets."
2787 +msgstr ""
2788 +
2789 +#: includes/modules/Score/ScoreModule.php:58
2790 +msgid "Speed Test"
2791 +msgstr ""
2792 +
2793 +#: includes/modules/Score/ScoreModule.php:64
2794 +msgid "Run a PageSpeed Insights or GTmetrix audit from the dashboard and keep the history next to your TTFB benchmark."
2795 +msgstr ""
2796 +
2797 +#: includes/modules/Score/ScoreModule.php:77
2798 +msgid "Allow speed tests"
2799 +msgstr ""
2800 +
2801 +#: includes/modules/Score/ScoreModule.php:83
2802 +msgid "Turns on automatically the first time you run a speed test — the button press is the consent. Switch it off to stop every feature, including optimize runs, from contacting a score provider."
2803 +msgstr ""
2804 +
2805 +#: includes/modules/Score/ScoreModule.php:98
2806 +#: assets/admin.js
2807 +msgid "Provider"
2808 +msgstr ""
2809 +
2810 +#: includes/modules/Score/ScoreModule.php:99
2811 +msgid "PageSpeed Insights works without an API key. GTmetrix requires one."
2812 +msgstr ""
2813 +
2814 +#: includes/modules/Score/ScoreModule.php:104
2815 +msgid "PageSpeed API key (optional)"
2816 +msgstr ""
2817 +
2818 +#: includes/modules/Score/ScoreModule.php:105
2819 +msgid "Only needed if you hit Google's anonymous rate limit. Free from cloud.google.com."
2820 +msgstr ""
2821 +
2822 +#: includes/modules/Score/ScoreModule.php:117
2823 +msgid "GTmetrix API key"
2824 +msgstr ""
2825 +
2826 +#: includes/modules/Score/ScoreModule.php:118
2827 +msgid "Required — GTmetrix has no anonymous mode. Found in your GTmetrix account settings."
2828 +msgstr ""
2829 +
2830 +#: includes/modules/Score/ScoreModule.php:127
2831 +msgid "URL to test"
2832 +msgstr ""
2833 +
2834 +#: includes/modules/Score/ScoreModule.php:128
2835 +msgid "Leave empty to test your home page."
2836 +msgstr ""
2837 +
2838 +#: includes/modules/Score/ScoreModule.php:134
2839 +msgid "Strategy"
2840 +msgstr ""
2841 +
2842 +#: includes/modules/Score/ScoreModule.php:135
2843 +msgid "PageSpeed Insights only. Mobile is what Google ranks on."
2844 +msgstr ""
2845 +
2846 +#: includes/modules/Score/ScoreModule.php:334
2847 +#: includes/modules/Score/ScoreModule.php:380
2848 +msgid "Hub-run speed tests are not enabled on this site."
2849 +msgstr ""
2850 +
2851 +#: includes/modules/Score/ScoreModule.php:443
745 2852 msgid "No URL to test."
746 2853 msgstr ""
747 2854
748 -#: src/onboarding/steps/Connect.tsx:146
2855 +#: includes/modules/Score/ScoreModule.php:540
2856 +msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2857 +msgstr ""
2858 +
2859 +#: includes/modules/Score/ScoreModule.php:619
2860 +msgid "The audit did not produce a result."
2861 +msgstr ""
2862 +
2863 +#. translators: %s: module slug.
2864 +#: includes/modules/Settings/SettingsModule.php:320
2865 +#, php-format
2866 +msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2867 +msgstr ""
2868 +
2869 +#: includes/modules/Support/SupportModule.php:28
2870 +msgid "Help & Support"
2871 +msgstr ""
2872 +
2873 +#: includes/modules/Support/SupportModule.php:30
2874 +msgid "Open a support ticket with a one-click system snapshot already attached."
2875 +msgstr ""
2876 +
2877 +#: includes/modules/Support/SupportModule.php:40
2878 +msgid "Support URL"
2879 +msgstr ""
2880 +
2881 +#: includes/modules/Support/SupportModule.php:41
2882 +msgid "Where the \"Open ticket\" button takes the user."
2883 +msgstr ""
2884 +
2885 +#: includes/modules/TurboRender/TurboRenderModule.php:89
2886 +msgid "Turbo Render"
2887 +msgstr ""
2888 +
2889 +#: includes/modules/TurboRender/TurboRenderModule.php:91
2890 +msgid "Paints the top of your page first and brings the rest in as visitors scroll. Every section still loads in full."
2891 +msgstr ""
2892 +
2893 +#: includes/modules/TurboRender/TurboRenderModule.php:100
2894 +msgid "Render as visitors scroll"
2895 +msgstr ""
2896 +
2897 +#: includes/modules/TurboRender/TurboRenderModule.php:101
2898 +msgid "Lets the browser spend its first moments on what visitors actually see, then render the lower sections just before they scroll into view. The content of your page is unchanged — it simply arrives in a smarter order."
2899 +msgstr ""
2900 +
2901 +#: includes/modules/TurboRender/TurboRenderModule.php:108
2902 +msgid "Sections to render immediately"
2903 +msgstr ""
2904 +
2905 +#: includes/modules/TurboRender/TurboRenderModule.php:109
2906 +msgid "How many sections at the top of the page are rendered right away, before any deferring begins. The default of 2 suits most layouts. Increase it if a section near the top of your page appears a moment late."
2907 +msgstr ""
2908 +
2909 +#: includes/modules/TurboRender/TurboRenderModule.php:114
2910 +msgid "Section classes"
2911 +msgstr ""
2912 +
2913 +#: includes/modules/TurboRender/TurboRenderModule.php:115
2914 +msgid "Tells xSpeed which parts of your page count as sections. The defaults cover Elementor, Divi, Bricks, Oxygen, and Beaver Builder — and when none of them match, xSpeed falls back to your page's own top-level sections automatically. Add a class here only if you want to target something specific."
2915 +msgstr ""
2916 +
2917 +#: includes/modules/TurboRender/TurboRenderModule.php:120
2918 +msgid "Excluded classes"
2919 +msgstr ""
2920 +
2921 +#: includes/modules/TurboRender/TurboRenderModule.php:121
2922 +msgid "Sections with any of these classes always render right away. Use this when a design overlaps its neighbours — a card that hangs over the section below it gets cut off at the boundary when either section is deferred."
2923 +msgstr ""
2924 +
2925 +#: xspeed.php:220
2926 +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."
2927 +msgstr ""
2928 +
2929 +#: xspeed.php:300
2930 +msgid "xSpeed Cache could not start."
2931 +msgstr ""
2932 +
2933 +#: xspeed.php:301
2934 +msgid "Some of its files are missing, so it stopped rather than take the site down with it. No new pages are being cached, but pages already in the cache are still being served and nothing clears them while the plugin is in this state. Re-install or re-upload the plugin to restore it, then purge the cache."
2935 +msgstr ""
2936 +
2937 +#. Source: src/onboarding/steps/Connect.tsx:154
2938 +#: assets/admin.js
749 2939 msgid "“clear the cache on my store,” “warm up the homepage,” “how fast is my blog?”"
750 2940 msgstr ""
751 2941
752 -#: src/components/cache/ImpactHero.tsx:76
2942 +#. Source: src/components/score/ScorePanel.tsx:96
2943 +#. Source: src/components/score/SpeedTestCard.tsx:135
2944 +#: assets/admin.js
2945 +msgid "%1$d of %2$d left"
2946 +msgstr ""
2947 +
2948 +#. Source: src/components/dropinNotice.ts:34
2949 +#: assets/admin.js
2950 +msgid "%s currently owns the page-cache file. xSpeed will replace it and serve the cached pages itself."
2951 +msgstr ""
2952 +
2953 +#. Source: src/components/purgeOutcome.ts:45
2954 +#: assets/admin.js
2955 +msgid "%s: %s"
2956 +msgstr ""
2957 +
2958 +#. Source: src/components/health/HealthCard.tsx:172
2959 +#: assets/admin.js
2960 +msgid "24-hour cache request volume"
2961 +msgstr ""
2962 +
2963 +#. Source: src/components/cache/ImpactHero.tsx:76
2964 +#: assets/admin.js
753 2965 msgid "30 days"
754 2966 msgstr ""
755 2967
756 -#: src/components/cache/ImpactHero.tsx:75
2968 +#. Source: src/components/cache/ImpactHero.tsx:75
2969 +#: assets/admin.js
757 2970 msgid "7 days"
758 2971 msgstr ""
759 2972
760 -#: src/upsell/LockedPanel.tsx:117
761 -#: src/upsell/LockedSection.tsx:99
762 -#: src/upsell/ProDemo.tsx:105
2973 +#. Source: src/components/score/ScanCard.tsx:185
2974 +#: assets/admin.js
2975 +msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2976 +msgstr ""
2977 +
2978 +#. Source: src/components/SecretField.tsx:95
2979 +#: assets/admin.js
2980 +msgid "A key is saved. Type to replace it; use ✕ to remove it."
2981 +msgstr ""
2982 +
2983 +#. Source: src/components/cache/CacheHero.tsx:245
2984 +#: assets/admin.js
2985 +msgid "Absorbed"
2986 +msgstr ""
2987 +
2988 +#. Source: src/components/CommandPalette.tsx:236
2989 +#: assets/admin.js
2990 +msgid "Action"
2991 +msgstr ""
2992 +
2993 +#. Source: src/components/Sidebar.tsx:424
2994 +#. Source: src/components/Sidebar.tsx:445
2995 +#. Source: src/upsell/ProOverview.tsx:73
2996 +#: assets/admin.js
2997 +msgid "Activate License"
2998 +msgstr ""
2999 +
3000 +#. Source: src/upsell/LockedPanel.tsx:104
3001 +#. Source: src/upsell/LockedSection.tsx:88
3002 +#. Source: src/upsell/ProDemo.tsx:92
3003 +#: assets/admin.js
763 3004 msgid "Activate your license"
764 3005 msgstr ""
765 3006
766 -#: src/upsell/LockedPanel.tsx:164
767 -#: src/upsell/LockedPanel.tsx:43
3007 +#. Source: src/upsell/LockedPanel.tsx:151
3008 +#. Source: src/upsell/LockedPanel.tsx:40
3009 +#: assets/admin.js
768 3010 msgid "Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged."
769 3011 msgstr ""
770 3012
771 -#: src/onboarding/steps/Connect.tsx:225
3013 +#. Source: src/onboarding/steps/Connect.tsx:233
3014 +#: assets/admin.js
772 3015 msgid "Add site form"
773 3016 msgstr ""
774 3017
775 -#: src/components/cache/StatDrilldown.tsx:183
3018 +#. Source: src/components/cache/StatDrilldown.tsx:192
3019 +#: assets/admin.js
776 3020 msgid "Address not recorded"
777 3021 msgstr ""
778 3022
779 -#: src/components/cache/StatDrilldown.tsx:154
3023 +#. Source: src/components/score/ScorePanel.tsx:660
3024 +#: assets/admin.js
3025 +msgid "After"
3026 +msgstr ""
3027 +
3028 +#. Source: src/components/cache/StatDrilldown.tsx:163
3029 +#: assets/admin.js
780 3030 msgid "Age"
781 3031 msgstr ""
782 3032
783 -#: src/components/score/ScorePanel.tsx:102
784 -#: src/components/score/ScorePanel.tsx:103
785 -#: src/components/score/ScorePanel.tsx:104
3033 +#. Source: src/components/score/ScorePanel.tsx:202
3034 +#. Source: src/components/score/ScorePanel.tsx:203
3035 +#. Source: src/components/score/ScorePanel.tsx:204
3036 +#: assets/admin.js
786 3037 msgid "ago"
787 3038 msgstr ""
788 3039
789 -#: src/components/overview/Recommendations.tsx:151
3040 +#. Source: src/components/overview/AiControlCard.tsx:237
3041 +#: assets/admin.js
3042 +msgid "AI connection active"
3043 +msgstr ""
3044 +
3045 +#. Source: src/components/TopBar.tsx:175
3046 +#: assets/admin.js
3047 +msgid "Already empty"
3048 +msgstr ""
3049 +
3050 +#. Source: src/components/purgeOutcome.ts:57
3051 +#: assets/admin.js
3052 +msgid "Also cleared: %s."
3053 +msgstr ""
3054 +
3055 +#. Source: src/components/overview/Recommendations.tsx:184
3056 +#: assets/admin.js
790 3057 msgid "Also worth a look"
791 3058 msgstr ""
792 3059
793 -#: src/onboarding/steps/Connect.tsx:148
3060 +#. Source: src/components/cache/CacheHero.tsx:231
3061 +#: assets/admin.js
3062 +msgid "An edge cache (Cloudflare) is in front, so this hit ratio is origin-layer only — hits served at the edge never reach the origin and aren’t counted here."
3063 +msgstr ""
3064 +
3065 +#. Source: src/components/overview/McpSessionDemo.tsx:216
3066 +#: assets/admin.js
3067 +msgid "Analyzing site…"
3068 +msgstr ""
3069 +
3070 +#. Source: src/onboarding/steps/Connect.tsx:156
3071 +#: assets/admin.js
794 3072 msgid "and it happens."
795 3073 msgstr ""
796 3074
797 -#: src/components/cache/NextBestAction.tsx:122
798 -#: src/components/overview/Recommendations.tsx:79
3075 +#. Source: src/components/dropinNotice.ts:43
3076 +#: assets/admin.js
3077 +msgid "Another page-cache file is already in wp-content. xSpeed will replace it with its own to serve cached pages."
3078 +msgstr ""
3079 +
3080 +#. Source: src/components/overview/HeroStatus.tsx:44
3081 +#: assets/admin.js
3082 +msgid "Another plugin owns the page cache on this site, so xSpeed is serving nothing."
3083 +msgstr ""
3084 +
3085 +#. Source: src/components/cache/NextBestAction.tsx:122
3086 +#. Source: src/components/overview/Recommendations.tsx:96
3087 +#: assets/admin.js
799 3088 msgid "Applied"
800 3089 msgstr ""
801 3090
802 -#: src/components/FieldSuggestionStrip.tsx:125
3091 +#. Source: src/components/overview/McpSessionDemo.tsx:211
3092 +#: assets/admin.js
3093 +msgid "Applied 3 optimizations"
3094 +msgstr ""
3095 +
3096 +#. Source: src/components/FieldSuggestionStrip.tsx:125
3097 +#: assets/admin.js
803 3098 msgid "Apply"
804 3099 msgstr ""
805 3100
806 -#: src/upsell/ProAudit.tsx:46
3101 +#. Source: src/upsell/ProAudit.tsx:46
3102 +#: assets/admin.js
807 3103 msgid "Audit failed"
808 3104 msgstr ""
809 3105
810 -#: src/components/cache/CacheBenchmark.tsx:36
3106 +#. Source: src/components/cache/StatDrilldown.tsx:325
3107 +#: assets/admin.js
3108 +msgid "Automatic cleanup has not run yet — first sweep in %s."
3109 +msgstr ""
3110 +
3111 +#. Source: src/components/cache/StatDrilldown.tsx:317
3112 +#: assets/admin.js
3113 +msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
3114 +msgstr ""
3115 +
3116 +#. Source: src/components/overview/MetricGrid.tsx:57
3117 +#: assets/admin.js
3118 +msgid "Avg saved"
3119 +msgstr ""
3120 +
3121 +#. Source: src/components/score/ScorePanel.tsx:659
3122 +#: assets/admin.js
3123 +msgid "Before"
3124 +msgstr ""
3125 +
3126 +#. Source: src/components/cache/CacheBenchmark.tsx:36
3127 +#: assets/admin.js
811 3128 msgid "Benchmark failed"
812 3129 msgstr ""
813 3130
814 -#: src/components/cache/TrendCharts.tsx:258
3131 +#. Source: src/components/cache/TrendCharts.tsx:263
3132 +#: assets/admin.js
815 3133 msgid "Benchmark trend"
816 3134 msgstr ""
817 3135
818 -#: src/components/cache/TrendCharts.tsx:134
3136 +#. Source: src/components/cache/TrendCharts.tsx:139
3137 +#: assets/admin.js
819 3138 msgid "Benchmark: cached vs uncached (ms)"
820 3139 msgstr ""
821 3140
822 -#: src/components/overview/Recommendations.tsx:191
823 -msgid "Book a free performance review and our engineers will hand-configure xSpeed Cache for your site, applying proven best practices for maximum speed, stability, and compatibility."
3141 +#. Source: src/components/overview/Recommendations.tsx:233
3142 +#: assets/admin.js
3143 +msgid "Book"
824 3144 msgstr ""
825 3145
826 -#: src/components/overview/Recommendations.tsx:200
827 -msgid "Book expert setup"
3146 +#. Source: src/components/overview/Recommendations.tsx:224
3147 +#: assets/admin.js
3148 +msgid "Book a free setup review with our team."
828 3149 msgstr ""
829 3150
830 -#: src/components/overview/FeatureMap.tsx:73
3151 +#. Source: src/components/cache/CacheHero.tsx:249
3152 +#: assets/admin.js
3153 +msgid "bot / 404 requests in 24h — excluded from the hit ratio."
3154 +msgstr ""
3155 +
3156 +#. Source: src/components/TopBar.tsx:81
3157 +#: assets/admin.js
3158 +msgid "Breadcrumb"
3159 +msgstr ""
3160 +
3161 +#. Source: src/components/overview/FeatureMap.tsx:104
3162 +#: assets/admin.js
831 3163 msgid "Browse all"
832 3164 msgstr ""
833 3165
834 -#: src/components/overview/HeroStatus.tsx:38
835 -msgid "bypassing PHP"
3166 +#. Source: src/components/sidebarGroups.ts:79
3167 +#: assets/admin.js
3168 +msgid "Cache"
836 3169 msgstr ""
837 3170
838 -#: src/components/overview/HeroStatus.tsx:77
839 -msgid "Cache active"
3171 +#. Source: src/components/purgeOutcome.ts:84
3172 +#: assets/admin.js
3173 +msgid "Cache cleared: %d file (%s)."
3174 +msgid_plural "Cache cleared: %d files (%s)."
3175 +msgstr[0] ""
3176 +msgstr[1] ""
3177 +
3178 +#. Source: src/components/purgeOutcome.ts:91
3179 +#: assets/admin.js
3180 +msgid "Cache cleared: %d file."
3181 +msgid_plural "Cache cleared: %d files."
3182 +msgstr[0] ""
3183 +msgstr[1] ""
3184 +
3185 +#. Source: src/components/purgeOutcome.ts:80
3186 +#: assets/admin.js
3187 +msgid "Cache cleared."
840 3188 msgstr ""
841 3189
842 -#: src/components/cache/CacheBenchmark.tsx:49
3190 +#. Source: src/App.tsx:331
3191 +#: assets/admin.js
3192 +msgid "Cache could not be enabled."
3193 +msgstr ""
3194 +
3195 +#. Source: src/components/health/HealthHero.tsx:28
3196 +#: assets/admin.js
3197 +msgid "Cache coverage"
3198 +msgstr ""
3199 +
3200 +#. Source: src/App.tsx:343
3201 +#: assets/admin.js
3202 +msgid "Cache disabled"
3203 +msgstr ""
3204 +
3205 +#. Source: src/App.tsx:343
3206 +#: assets/admin.js
3207 +msgid "Cache enabled"
3208 +msgstr ""
3209 +
3210 +#. Source: src/App.tsx:337
3211 +#: assets/admin.js
3212 +msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health."
3213 +msgstr ""
3214 +
3215 +#. Source: src/components/cache/CacheBenchmark.tsx:49
3216 +#: assets/admin.js
843 3217 msgid "Cache impact benchmark"
844 3218 msgstr ""
845 3219
846 -#: src/components/overview/HeroStatus.tsx:77
3220 +#. Source: src/components/overview/HeroStatus.tsx:77
3221 +#: assets/admin.js
847 3222 msgid "Cache inactive"
848 3223 msgstr ""
849 3224
850 -#: src/components/cache/CacheBenchmark.tsx:99
3225 +#. Source: src/components/cache/CacheBenchmark.tsx:99
3226 +#: assets/admin.js
851 3227 msgid "Cache is"
852 3228 msgstr ""
853 3229
854 -#: src/components/cache/CacheBenchmark.tsx:112
3230 +#. Source: src/components/cache/CacheBenchmark.tsx:112
3231 +#: assets/admin.js
855 3232 msgid "Cache is disabled — both runs hit the same uncached path. Enable Cache to see a real difference."
856 3233 msgstr ""
857 3234
858 -#: src/components/overview/MetricGrid.tsx:23
3235 +#. Source: src/components/overview/HeroStatus.tsx:77
3236 +#: assets/admin.js
3237 +msgid "Cache on, but not serving"
3238 +msgstr ""
3239 +
3240 +#. Source: src/components/overview/McpSessionDemo.tsx:228
3241 +#: assets/admin.js
3242 +msgid "Cache optimized"
3243 +msgstr ""
3244 +
3245 +#. Source: src/components/purgeOutcome.ts:53
3246 +#: assets/admin.js
3247 +msgid "Cache partly cleared."
3248 +msgstr ""
3249 +
3250 +#. Source: src/components/purgeOutcome.ts:29
3251 +#: assets/admin.js
3252 +msgid "Cache purged"
3253 +msgstr ""
3254 +
3255 +#. Source: src/components/health/HealthHero.tsx:30
3256 +#. Source: src/components/overview/MetricGrid.tsx:56
3257 +#: assets/admin.js
859 3258 msgid "Cache size"
860 3259 msgstr ""
861 3260
862 -#: src/components/overview/HeroStatus.tsx:69
3261 +#. Source: src/components/overview/HeroStatus.tsx:49
3262 +#: assets/admin.js
863 3263 msgid "Cache status"
864 3264 msgstr ""
865 3265
866 -#: src/components/cache/TrendCharts.tsx:270
3266 +#. Source: src/components/overview/AiControlCard.tsx:67
3267 +#: assets/admin.js
3268 +msgid "Cache, compression & more"
3269 +msgstr ""
3270 +
3271 +#. Source: src/components/cache/TrendCharts.tsx:275
3272 +#: assets/admin.js
867 3273 msgid "cached"
868 3274 msgstr ""
869 3275
870 -#: src/components/cache/StatDrilldown.tsx:131
871 -#: src/components/overview/MetricGrid.tsx:18
3276 +#. Source: src/components/cache/StatDrilldown.tsx:140
3277 +#. Source: src/components/health/HealthHero.tsx:29
3278 +#. Source: src/components/overview/MetricGrid.tsx:55
3279 +#: assets/admin.js
872 3280 msgid "Cached pages"
873 3281 msgstr ""
874 3282
875 -#: src/components/cache/ImpactHero.tsx:90
3283 +#. Source: src/components/cache/ImpactHero.tsx:90
3284 +#: assets/admin.js
876 3285 msgid "cached pages in 24h — saving your visitors"
877 3286 msgstr ""
878 3287
879 -#: src/components/SettingsSearch.tsx:251
880 -msgid "Clear search"
3288 +#. Source: src/components/CacheSwitch.tsx:180
3289 +#: assets/admin.js
3290 +msgid "Caching"
881 3291 msgstr ""
882 3292
883 -#: src/components/cache/CacheBenchmark.tsx:126
3293 +#. Source: src/components/CacheSwitch.tsx:174
3294 +#: assets/admin.js
3295 +msgid "Caching — loading"
3296 +msgstr ""
3297 +
3298 +#. Source: src/components/CacheSwitch.tsx:261
3299 +#. Source: src/components/cache/CacheHero.tsx:177
3300 +#: assets/admin.js
3301 +msgid "Cancel"
3302 +msgstr ""
3303 +
3304 +#. Source: src/components/sidebarGroups.ts:95
3305 +#: assets/admin.js
3306 +msgid "CDN and Cloudflare edge delivery."
3307 +msgstr ""
3308 +
3309 +#. Source: src/components/score/ScorePanel.tsx:661
3310 +#: assets/admin.js
3311 +msgid "Change"
3312 +msgstr ""
3313 +
3314 +#. Source: src/components/score/ScorePanel.tsx:190
3315 +#: assets/admin.js
3316 +msgid "Change across the runs shown"
3317 +msgstr ""
3318 +
3319 +#. Source: src/components/overview/AiControlCard.tsx:240
3320 +#: assets/admin.js
3321 +msgid "Checking your AI connection…"
3322 +msgstr ""
3323 +
3324 +#. Source: src/components/overview/ScoreCard.tsx:195
3325 +#: assets/admin.js
3326 +msgid "Checking your score"
3327 +msgstr ""
3328 +
3329 +#. Source: src/components/database/DatabaseCleanerPanel.tsx:297
3330 +#: assets/admin.js
3331 +msgid "Cleaning"
3332 +msgstr ""
3333 +
3334 +#. Source: src/components/score/ScorePanel.tsx:652
3335 +#: assets/admin.js
3336 +msgid "Clear"
3337 +msgstr ""
3338 +
3339 +#. Source: src/components/TopBar.tsx:173
3340 +#: assets/admin.js
3341 +msgid "Cleared"
3342 +msgstr ""
3343 +
3344 +#. Source: src/components/purgeOutcome.ts:62
3345 +#: assets/admin.js
3346 +msgid "Cleared: %s."
3347 +msgstr ""
3348 +
3349 +#. Source: src/components/cache/CacheBenchmark.tsx:126
3350 +#: assets/admin.js
884 3351 msgid "Click \"Run benchmark\" to compare load times."
885 3352 msgstr ""
886 3353
887 -#: src/components/Sidebar.tsx:192
888 -msgid "Cmd/Ctrl + K"
3354 +#. Source: src/components/Sidebar.tsx:219
3355 +#. Source: src/components/Sidebar.tsx:266
3356 +#: assets/admin.js
3357 +msgid "Close navigation"
889 3358 msgstr ""
890 3359
891 -#: src/components/Sidebar.tsx:497
892 -msgid "Collapse"
3360 +#. Source: src/components/Sidebar.tsx:284
3361 +#. Source: src/components/Sidebar.tsx:289
3362 +#: assets/admin.js
3363 +msgid "Collapse sidebar"
893 3364 msgstr ""
894 3365
895 -#: src/components/Sidebar.tsx:482
896 -#: src/components/Sidebar.tsx:488
897 -#: src/components/Sidebar.tsx:489
898 -msgid "Collapse sidebar"
3366 +#. Source: src/components/CommandPalette.tsx:172
3367 +#: assets/admin.js
3368 +msgid "Command palette"
899 3369 msgstr ""
900 3370
901 -#: src/upsell/LockedPanel.tsx:138
3371 +#. Source: src/components/score/ScorePanel.tsx:724
3372 +#: assets/admin.js
3373 +msgid "Compare"
3374 +msgstr ""
3375 +
3376 +#. Source: src/upsell/LockedPanel.tsx:125
3377 +#: assets/admin.js
902 3378 msgid "Compare plans"
903 3379 msgstr ""
904 3380
905 -#: src/components/cache/CacheBenchmark.tsx:52
3381 +#. Source: src/components/score/ScorePanel.tsx:754
3382 +#: assets/admin.js
3383 +msgid "Compare this run"
3384 +msgstr ""
3385 +
3386 +#. Source: src/components/cache/CacheBenchmark.tsx:52
3387 +#: assets/admin.js
906 3388 msgid "Compare your homepage with and without cache."
907 3389 msgstr ""
908 3390
909 -#: src/onboarding/steps/Connect.tsx:116
3391 +#. Source: src/components/overview/McpSessionDemo.tsx:229
3392 +#: assets/admin.js
3393 +msgid "Compression enabled"
3394 +msgstr ""
3395 +
3396 +#. Source: src/components/score/ConnectHubModal.tsx:151
3397 +#: assets/admin.js
3398 +msgid "Connect"
3399 +msgstr ""
3400 +
3401 +#. Source: src/components/sidebarGroups.ts:120
3402 +#: assets/admin.js
3403 +msgid "Connect an AI agent to this site, and control what AI features may use."
3404 +msgstr ""
3405 +
3406 +#. Source: src/components/TopBar.tsx:138
3407 +#: assets/admin.js
3408 +msgid "Connect Hub"
3409 +msgstr ""
3410 +
3411 +#. Source: src/components/score/ConnectHubModal.tsx:113
3412 +#: assets/admin.js
3413 +msgid "Connect this site to xSpeed Hub to run GTmetrix tests from here."
3414 +msgstr ""
3415 +
3416 +#. Source: src/onboarding/steps/Connect.tsx:124
3417 +#: assets/admin.js
910 3418 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."
911 3419 msgstr ""
912 3420
913 -#: src/components/overview/HubCard.tsx:126
3421 +#. Source: src/components/overview/HubCard.tsx:126
3422 +#: assets/admin.js
914 3423 msgid "Connect to control caching remotely, drive it from AI agents, and manage all your sites in one place."
915 3424 msgstr ""
916 3425
917 -#: src/components/overview/HubCard.tsx:133
918 -#: src/components/overview/HubCard.tsx:140
3426 +#. Source: src/components/overview/HubCard.tsx:133
3427 +#. Source: src/components/overview/HubCard.tsx:140
3428 +#: assets/admin.js
919 3429 msgid "Connect to Hub"
920 3430 msgstr ""
921 3431
922 -#: src/onboarding/steps/Connect.tsx:187
3432 +#. Source: src/onboarding/steps/Connect.tsx:195
3433 +#: assets/admin.js
923 3434 msgid "Connect to xSpeed Hub"
924 3435 msgstr ""
925 3436
926 -#: src/components/overview/HubCard.tsx:104
3437 +#. Source: src/components/overview/AiControlCard.tsx:325
3438 +#: assets/admin.js
3439 +msgid "Connect with MCP"
3440 +msgstr ""
3441 +
3442 +#. Source: src/components/overview/AiControlCard.tsx:291
3443 +#: assets/admin.js
3444 +msgid "Connect your AI agent through MCP — then just ask it to analyze and optimize your site."
3445 +msgstr ""
3446 +
3447 +#. Source: src/components/overview/HubCard.tsx:104
3448 +#: assets/admin.js
927 3449 msgid "Connected"
928 3450 msgstr ""
929 3451
930 -#: src/components/overview/HubCard.tsx:113
3452 +#. Source: src/components/score/ConnectHubModal.tsx:105
3453 +#: assets/admin.js
3454 +msgid "Connected — starting your test…"
3455 +msgstr ""
3456 +
3457 +#. Source: src/components/overview/HubCard.tsx:113
3458 +#: assets/admin.js
931 3459 msgid "Connected as"
932 3460 msgstr ""
933 3461
934 -#: src/onboarding/steps/Connect.tsx:60
3462 +#. Source: src/onboarding/steps/Connect.tsx:68
3463 +#: assets/admin.js
935 3464 msgid "Connected as %s. Your caching is ready to manage from anywhere."
936 3465 msgstr ""
937 3466
938 -#: src/onboarding/steps/Connect.tsx:57
3467 +#. Source: src/onboarding/steps/Connect.tsx:65
3468 +#: assets/admin.js
939 3469 msgid "Connected to xSpeed Hub"
940 3470 msgstr ""
941 3471
942 -#: src/components/overview/HubCard.tsx:113
3472 +#. Source: src/components/score/ScanCard.tsx:221
3473 +#: assets/admin.js
3474 +msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3475 +msgstr ""
3476 +
3477 +#. Source: src/components/RewriteAlert.tsx:102
3478 +#: assets/admin.js
3479 +msgid "Containerized nginx detected — paste into your container config"
3480 +msgstr ""
3481 +
3482 +#. Source: src/components/overview/AiControlCard.tsx:286
3483 +#: assets/admin.js
3484 +msgid "Control and optimize your site with AI"
3485 +msgstr ""
3486 +
3487 +#. Source: src/components/overview/HubCard.tsx:113
3488 +#: assets/admin.js
943 3489 msgid "Control caching remotely and from AI agents."
944 3490 msgstr ""
945 3491
946 -#: src/components/overview/HubCard.tsx:114
3492 +#. Source: src/components/overview/HubCard.tsx:114
3493 +#: assets/admin.js
947 3494 msgid "Control caching remotely, drive it from AI agents, and manage your sites in one place."
948 3495 msgstr ""
949 3496
950 -#: src/components/overview/Recommendations.tsx:81
3497 +#. Source: src/components/overview/AiControlCard.tsx:237
3498 +#: assets/admin.js
3499 +msgid "Control xSpeed with AI"
3500 +msgstr ""
3501 +
3502 +#. Source: src/components/overview/McpSessionDemo.tsx:230
3503 +#: assets/admin.js
3504 +msgid "Core Web Vitals checked"
3505 +msgstr ""
3506 +
3507 +#. Source: src/components/overview/Recommendations.tsx:98
3508 +#: assets/admin.js
951 3509 msgid "Could not apply that fix"
952 3510 msgstr ""
953 3511
954 -#: src/components/cache/NextBestAction.tsx:68
3512 +#. Source: src/components/cache/NextBestAction.tsx:68
3513 +#: assets/admin.js
955 3514 msgid "Could not apply the fix."
956 3515 msgstr ""
957 3516
958 -#: src/components/score/ScorePanel.tsx:142
3517 +#. Source: src/components/score/ScorePanel.tsx:283
3518 +#: assets/admin.js
959 3519 msgid "Could not check the test status."
960 3520 msgstr ""
961 3521
962 -#: src/components/Sidebar.tsx:477
963 -msgid "Dark Mode"
3522 +#. Source: src/components/sidebarGroups.ts:109
3523 +#: assets/admin.js
3524 +msgid "Database cleanup, migration and logs."
964 3525 msgstr ""
965 3526
966 -#: src/components/overview/OverviewFooter.tsx:24
3527 +#. Source: src/components/DefinedInConfig.tsx:71
3528 +#: assets/admin.js
3529 +msgid "Defined in wp-config.php as"
3530 +msgstr ""
3531 +
3532 +#. Source: src/components/overview/ScoreCard.tsx:185
3533 +#: assets/admin.js
3534 +msgid "desktop"
3535 +msgstr ""
3536 +
3537 +#. Source: src/components/overview/ScoreCard.tsx:90
3538 +#. Source: src/components/score/ScanCard.tsx:281
3539 +#: assets/admin.js
3540 +msgid "Desktop"
3541 +msgstr ""
3542 +
3543 +#. Source: src/components/FieldSuggestionStrip.tsx:132
3544 +#: assets/admin.js
3545 +msgid "Dismiss"
3546 +msgstr ""
3547 +
3548 +#. Source: src/components/MobileSeparateAlert.tsx:72
3549 +#. Source: src/components/RewriteAlert.tsx:116
3550 +#: assets/admin.js
3551 +msgid "Dismiss banner"
3552 +msgstr ""
3553 +
3554 +#. Source: src/components/overview/OverviewFooter.tsx:24
3555 +#: assets/admin.js
967 3556 msgid "Documentation"
968 3557 msgstr ""
969 3558
970 -#: src/components/overview/HeroStatus.tsx:98
971 -msgid "Enable the cache to preload pages."
3559 +#. Source: src/components/cache/NextBestAction.tsx:85
3560 +#: assets/admin.js
3561 +msgid "Every deterministic check passes — your configuration looks healthy."
972 3562 msgstr ""
973 3563
974 -#: src/components/cache/NextBestAction.tsx:85
975 -msgid "Every deterministic check passes — your configuration looks healthy."
3564 +#. Source: src/upsell/ProOverview.tsx:51
3565 +#: assets/admin.js
3566 +msgid "Every feature below is unlocked and available from its own page. This screen stays as a reference for what Pro adds — manage your license from the License page."
976 3567 msgstr ""
977 3568
978 -#: src/components/Sidebar.tsx:482
979 -#: src/components/Sidebar.tsx:488
980 -#: src/components/Sidebar.tsx:489
3569 +#. Source: src/components/CacheSwitch.tsx:232
3570 +#: assets/admin.js
3571 +msgid "Every page will be served uncached until you turn it back on."
3572 +msgstr ""
3573 +
3574 +#. Source: src/upsell/ProOverview.tsx:47
3575 +#: assets/admin.js
3576 +msgid "Everything in Free, plus the heavy lifting."
3577 +msgstr ""
3578 +
3579 +#. Source: src/components/overview/McpSessionDemo.tsx:221
3580 +#: assets/admin.js
3581 +msgid "Example session"
3582 +msgstr ""
3583 +
3584 +#. Source: src/components/Sidebar.tsx:284
3585 +#. Source: src/components/Sidebar.tsx:289
3586 +#: assets/admin.js
981 3587 msgid "Expand sidebar"
982 3588 msgstr ""
983 3589
984 -#: src/components/score/ScorePanel.tsx:185
985 -msgid "External score"
3590 +#. Source: src/components/mcp/McpActivity.tsx:181
3591 +#: assets/admin.js
3592 +msgid "failed"
986 3593 msgstr ""
987 3594
988 -#: src/components/score/ScorePanel.tsx:209
989 -msgid "External scores are off. Turning them on lets you run an audit from here — nothing is sent anywhere until you press Test."
3595 +#. Source: src/App.tsx:347
3596 +#: assets/admin.js
3597 +msgid "Failed to disable cache"
990 3598 msgstr ""
991 3599
992 -#: src/components/cache/CacheBenchmark.tsx:99
3600 +#. Source: src/App.tsx:347
3601 +#: assets/admin.js
3602 +msgid "Failed to enable cache"
3603 +msgstr ""
3604 +
3605 +#. Source: src/App.tsx:286
3606 +#: assets/admin.js
3607 +msgid "Failed to load"
3608 +msgstr ""
3609 +
3610 +#. Source: src/components/cache/CacheBenchmark.tsx:99
3611 +#: assets/admin.js
993 3612 msgid "faster"
994 3613 msgstr ""
995 3614
996 -#: src/components/cache/ImpactHero.tsx:96
3615 +#. Source: src/components/cache/ImpactHero.tsx:96
3616 +#: assets/admin.js
997 3617 msgid "faster per page"
998 3618 msgstr ""
999 3619
1000 -#: src/components/overview/FeatureMap.tsx:73
3620 +#. Source: src/components/overview/FeatureMap.tsx:104
3621 +#: assets/admin.js
1001 3622 msgid "features"
1002 3623 msgstr ""
1003 3624
1004 -#: src/components/overview/FeatureMap.tsx:61
1005 -msgid "Features"
3625 +#. Source: src/components/score/ConnectHubModal.tsx:157
3626 +#: assets/admin.js
3627 +msgid "Finish in the tab that opened, then come back here."
1006 3628 msgstr ""
1007 3629
1008 -#: src/onboarding/steps/Connect.tsx:190
3630 +#. Source: src/onboarding/steps/Connect.tsx:198
3631 +#: assets/admin.js
1009 3632 msgid "Free forever"
1010 3633 msgstr ""
1011 3634
1012 -#: src/onboarding/steps/Connect.tsx:162
3635 +#. Source: src/components/score/ScorePanel.tsx:466
3636 +#: assets/admin.js
3637 +msgid "Free tests included with your plan"
3638 +msgstr ""
3639 +
3640 +#. Source: src/components/DefinedInConfig.tsx:50
3641 +#: assets/admin.js
3642 +msgid "from wp-config.php"
3643 +msgstr ""
3644 +
3645 +#. Source: src/components/score/ScanCard.tsx:358
3646 +#: assets/admin.js
3647 +msgid "Full report"
3648 +msgstr ""
3649 +
3650 +#. Source: src/onboarding/steps/Connect.tsx:170
3651 +#: assets/admin.js
1013 3652 msgid "Get more over time"
1014 3653 msgstr ""
1015 3654
1016 -#: src/onboarding/steps/Connect.tsx:126
1017 -#: src/onboarding/steps/Connect.tsx:73
3655 +#. Source: src/onboarding/steps/Connect.tsx:134
3656 +#. Source: src/onboarding/steps/Connect.tsx:81
3657 +#: assets/admin.js
1018 3658 msgid "Go to Dashboard"
1019 3659 msgstr ""
1020 3660
1021 -#: src/components/overview/OverviewFooter.tsx:20
3661 +#. Source: src/onboarding/OnboardingApp.tsx:165
3662 +#: assets/admin.js
3663 +msgid "Go to the dashboard"
3664 +msgstr ""
3665 +
3666 +#. Source: src/components/overview/ScoreCard.tsx:277
3667 +#: assets/admin.js
3668 +msgid "good"
3669 +msgstr ""
3670 +
3671 +#. Source: src/components/score/ScanCard.tsx:261
3672 +#. Source: src/components/score/ScanCard.tsx:302
3673 +#: assets/admin.js
3674 +msgid "Grade"
3675 +msgstr ""
3676 +
3677 +#. Source: src/components/score/SpeedTestCard.tsx:122
3678 +#: assets/admin.js
3679 +msgid "GTmetrix test"
3680 +msgstr ""
3681 +
3682 +#. Source: src/components/sidebarGroups.ts:100
3683 +#: assets/admin.js
3684 +msgid "Health & insights"
3685 +msgstr ""
3686 +
3687 +#. Source: src/components/health/HealthHero.tsx:35
3688 +#: assets/admin.js
3689 +msgid "Health summary"
3690 +msgstr ""
3691 +
3692 +#. Source: src/components/overview/OverviewFooter.tsx:20
3693 +#: assets/admin.js
1022 3694 msgid "Help and resources"
1023 3695 msgstr ""
1024 3696
1025 -#: src/components/overview/OverviewFooter.tsx:28
3697 +#. Source: src/components/overview/OverviewFooter.tsx:28
3698 +#: assets/admin.js
1026 3699 msgid "Help and support"
1027 3700 msgstr ""
1028 3701
1029 -#: src/upsell/ProAudit.tsx:82
3702 +#. Source: src/upsell/ProAudit.tsx:82
3703 +#: assets/admin.js
1030 3704 msgid "Hide"
1031 3705 msgstr ""
1032 3706
1033 -#: src/components/cache/TrendCharts.tsx:120
1034 -#: src/components/overview/MetricGrid.tsx:13
3707 +#. Source: src/components/cache/TrendCharts.tsx:125
3708 +#. Source: src/components/health/HealthHero.tsx:42
3709 +#. Source: src/components/overview/MetricGrid.tsx:45
3710 +#: assets/admin.js
1035 3711 msgid "Hit ratio"
1036 3712 msgstr ""
1037 3713
1038 -#: src/components/cache/TrendCharts.tsx:83
3714 +#. Source: src/components/cache/CacheHero.tsx:217
3715 +#: assets/admin.js
3716 +msgid "Hit Ratio · 24h"
3717 +msgstr ""
3718 +
3719 +#. Source: src/components/cache/CacheHero.tsx:217
3720 +#: assets/admin.js
3721 +msgid "Hit Ratio · 24h · origin"
3722 +msgstr ""
3723 +
3724 +#. Source: src/components/health/HealthHero.tsx:42
3725 +#: assets/admin.js
3726 +msgid "Hit ratio (PHP-served only)"
3727 +msgstr ""
3728 +
3729 +#. Source: src/components/cache/TrendCharts.tsx:83
3730 +#: assets/admin.js
1039 3731 msgid "Hit ratio and benchmark history, with your settings changes marked."
1040 3732 msgstr ""
1041 3733
1042 -#: src/components/cache/TrendCharts.tsx:222
3734 +#. Source: src/components/cache/TrendCharts.tsx:227
3735 +#: assets/admin.js
1043 3736 msgid "Hit ratio trend"
1044 3737 msgstr ""
1045 3738
1046 -#: src/components/cache/ImpactHero.tsx:107
3739 +#. Source: src/components/cache/ImpactHero.tsx:107
3740 +#: assets/admin.js
1047 3741 msgid "hits"
1048 3742 msgstr ""
1049 3743
1050 -#: src/components/cache/ImpactHero.tsx:30
3744 +#. Source: src/components/health/HealthHero.tsx:31
3745 +#: assets/admin.js
3746 +msgid "hits + misses"
3747 +msgstr ""
3748 +
3749 +#. Source: src/components/cache/ImpactHero.tsx:30
3750 +#: assets/admin.js
1051 3751 msgid "hrs"
1052 3752 msgstr ""
1053 3753
1054 -#: src/onboarding/steps/Connect.tsx:124
3754 +#. Source: src/components/TopBar.tsx:138
3755 +#: assets/admin.js
3756 +msgid "Hub connected"
3757 +msgstr ""
3758 +
3759 +#. Source: src/onboarding/steps/Connect.tsx:132
3760 +#: assets/admin.js
1055 3761 msgid "I'll connect later"
1056 3762 msgstr ""
1057 3763
1058 -#: src/components/Sidebar.tsx:278
1059 -msgid "in"
3764 +#. Source: src/components/overview/AiControlCard.tsx:63
3765 +#: assets/admin.js
3766 +msgid "Improve performance"
1060 3767 msgstr ""
1061 3768
1062 -#: src/components/cache/CacheHero.tsx:114
3769 +#. Source: src/components/OverrideConfirm.tsx:33
3770 +#: assets/admin.js
3771 +msgid "in wp-config.php — usually written by your host. If you manage it here, later changes your host makes to it will be ignored."
3772 +msgstr ""
3773 +
3774 +#. Source: src/components/score/ConnectHubModal.tsx:116
3775 +#: assets/admin.js
3776 +msgid "It takes a few seconds."
3777 +msgstr ""
3778 +
3779 +#. Source: src/components/cache/CacheHero.tsx:220
3780 +#: assets/admin.js
1063 3781 msgid "jump to the hit-ratio trend"
1064 3782 msgstr ""
1065 3783
1066 -#: src/components/score/ScorePanel.tsx:101
3784 +#. Source: src/components/overview/AiControlCard.tsx:71
3785 +#: assets/admin.js
3786 +msgid "Just ask"
3787 +msgstr ""
3788 +
3789 +#. Source: src/components/score/ScorePanel.tsx:201
3790 +#: assets/admin.js
1067 3791 msgid "just now"
1068 3792 msgstr ""
1069 3793
1070 -#: src/onboarding/steps/Connect.tsx:144
3794 +#. Source: src/onboarding/steps/Connect.tsx:152
3795 +#: assets/admin.js
1071 3796 msgid "Just say what you want"
1072 3797 msgstr ""
1073 3798
1074 -#: src/components/overview/MetricGrid.tsx:30
3799 +#. Source: src/components/overview/MetricGrid.tsx:61
3800 +#: assets/admin.js
1075 3801 msgid "Key metrics"
1076 3802 msgstr ""
1077 3803
1078 -#: src/components/overview/MetricGrid.tsx:15
3804 +#. Source: src/components/overview/MetricGrid.tsx:53
3805 +#: assets/admin.js
1079 3806 msgid "last 24 hours"
1080 3807 msgstr ""
1081 3808
1082 -#: src/components/cache/ImpactHero.tsx:74
3809 +#. Source: src/components/cache/ImpactHero.tsx:74
3810 +#: assets/admin.js
1083 3811 msgid "last 24h"
1084 3812 msgstr ""
1085 3813
1086 -#: src/components/cache/TrendCharts.tsx:236
3814 +#. Source: src/components/overview/HeroStatus.tsx:87
3815 +#: assets/admin.js
3816 +msgid "Last purged"
3817 +msgstr ""
3818 +
3819 +#. Source: src/components/cache/TrendCharts.tsx:241
3820 +#: assets/admin.js
1087 3821 msgid "Latest"
1088 3822 msgstr ""
1089 3823
1090 -#: src/upsell/ProTeaser.tsx:65
3824 +#. Source: src/upsell/ProTeaser.tsx:65
3825 +#: assets/admin.js
1091 3826 msgid "Learn more about Pro"
1092 3827 msgstr ""
1093 3828
1094 -#: src/components/overview/Recommendations.tsx:188
1095 -msgid "Let our cache experts optimize your site"
3829 +#. Source: src/upsell/LockedSection.tsx:70
3830 +#. Source: src/upsell/ProDemo.tsx:60
3831 +#: assets/admin.js
3832 +msgid "License"
1096 3833 msgstr ""
1097 3834
1098 -#: src/upsell/LockedSection.tsx:81
1099 -#: src/upsell/ProDemo.tsx:73
1100 -msgid "License"
3835 +#. Source: src/components/sidebarGroups.ts:128
3836 +#: assets/admin.js
3837 +msgid "License, branding, multisite and support."
1101 3838 msgstr ""
1102 3839
1103 -#: src/components/Sidebar.tsx:477
1104 -msgid "Light Mode"
3840 +#. Source: src/components/overview/ScoreCard.tsx:205
3841 +#: assets/admin.js
3842 +msgid "Lighthouse performance, from your latest xSpeed Scan."
1105 3843 msgstr ""
1106 3844
1107 -#: src/onboarding/steps/Connect.tsx:87
3845 +#. Source: src/components/score/ScanCard.tsx:284
3846 +#: assets/admin.js
3847 +msgid "Lighthouse performance, out of 100"
3848 +msgstr ""
3849 +
3850 +#. Source: src/components/cache/CacheHero.tsx:238
3851 +#: assets/admin.js
3852 +msgid "LiteSpeed Static Fast Path is on: cache hits are served by the web server with no PHP, carry no X-XSpeed-Cache header, and are not counted here — so a low ratio reflects the trade you chose, not a broken cache."
3853 +msgstr ""
3854 +
3855 +#. Source: src/App.tsx:456
3856 +#. Source: src/components/GroupLanding.tsx:67
3857 +#. Source: src/components/LogsView.tsx:35
3858 +#: assets/admin.js
3859 +msgid "Logs"
3860 +msgstr ""
3861 +
3862 +#. Source: src/components/OverrideConfirm.tsx:41
3863 +#: assets/admin.js
3864 +msgid "Manage here"
3865 +msgstr ""
3866 +
3867 +#. Source: src/upsell/ProOverview.tsx:65
3868 +#: assets/admin.js
3869 +msgid "Manage license"
3870 +msgstr ""
3871 +
3872 +#. Source: src/components/overview/AiControlCard.tsx:249
3873 +#: assets/admin.js
3874 +msgid "Manage MCP"
3875 +msgstr ""
3876 +
3877 +#. Source: src/components/DefinedInConfig.tsx:81
3878 +#. Source: src/components/DefinedInConfig.tsx:82
3879 +#: assets/admin.js
3880 +msgid "Manage this setting here instead"
3881 +msgstr ""
3882 +
3883 +#. Source: src/components/OverrideConfirm.tsx:28
3884 +#: assets/admin.js
3885 +msgid "Manage this setting here?"
3886 +msgstr ""
3887 +
3888 +#. Source: src/onboarding/steps/Connect.tsx:95
3889 +#: assets/admin.js
1108 3890 msgid "Manage this site from the central xSpeed Hub dashboard"
1109 3891 msgstr ""
1110 3892
1111 -#: src/components/SettingsSearch.tsx:274
1112 -msgid "match"
3893 +#. Source: src/components/overview/AiControlCard.tsx:72
3894 +#: assets/admin.js
3895 +msgid "Manage xSpeed through conversation"
1113 3896 msgstr ""
1114 3897
1115 -#: src/components/SettingsSearch.tsx:274
1116 -msgid "matches"
3898 +#. Source: src/components/Sidebar.tsx:395
3899 +#. Source: src/components/Sidebar.tsx:402
3900 +#: assets/admin.js
3901 +msgid "Manage your license"
1117 3902 msgstr ""
1118 3903
1119 -#: src/components/cache/ImpactHero.tsx:29
3904 +#. Source: src/components/overview/AiControlCard.tsx:242
3905 +#: assets/admin.js
3906 +msgid "MCP is connected and ready — your AI agent can purge, tune and benchmark this site."
3907 +msgstr ""
3908 +
3909 +#. Source: src/components/overview/ScoreCard.tsx:210
3910 +#: assets/admin.js
3911 +msgid "Measured on your home page by an external audit."
3912 +msgstr ""
3913 +
3914 +#. Source: src/components/score/ScorePanel.tsx:658
3915 +#: assets/admin.js
3916 +msgid "Metric"
3917 +msgstr ""
3918 +
3919 +#. Source: src/components/cache/ImpactHero.tsx:29
3920 +#: assets/admin.js
1120 3921 msgid "min"
1121 3922 msgstr ""
1122 3923
1123 -#: src/components/cache/NextBestAction.tsx:101
3924 +#. Source: src/components/sidebarGroups.ts:88
3925 +#: assets/admin.js
3926 +msgid "Minify, compress, lazy-load, fonts and hints."
3927 +msgstr ""
3928 +
3929 +#. Source: src/components/overview/ScoreCard.tsx:185
3930 +#. Source: src/components/score/ScanCard.tsx:294
3931 +#: assets/admin.js
3932 +msgid "mobile"
3933 +msgstr ""
3934 +
3935 +#. Source: src/components/overview/ScoreCard.tsx:91
3936 +#. Source: src/components/score/ScanCard.tsx:281
3937 +#: assets/admin.js
3938 +msgid "Mobile"
3939 +msgstr ""
3940 +
3941 +#. Source: src/components/Sidebar.tsx:334
3942 +#. Source: src/components/Sidebar.tsx:370
3943 +#: assets/admin.js
3944 +msgid "module on"
3945 +msgstr ""
3946 +
3947 +#. Source: src/components/Sidebar.tsx:335
3948 +#. Source: src/components/Sidebar.tsx:371
3949 +#: assets/admin.js
3950 +msgid "modules on"
3951 +msgstr ""
3952 +
3953 +#. Source: src/components/cache/NextBestAction.tsx:101
3954 +#: assets/admin.js
1124 3955 msgid "more after this"
1125 3956 msgstr ""
1126 3957
1127 -#: src/components/overview/HubCard.tsx:148
3958 +#. Source: src/components/overview/HubCard.tsx:148
3959 +#: assets/admin.js
1128 3960 msgid "More options"
1129 3961 msgstr ""
1130 3962
1131 -#: src/components/cache/CacheBenchmark.tsx:104
3963 +#. Source: src/components/cache/CacheBenchmark.tsx:104
3964 +#: assets/admin.js
1132 3965 msgid "Negligible difference — page is cheap to render or cache is cold."
1133 3966 msgstr ""
1134 3967
1135 -#: src/onboarding/steps/Connect.tsx:164
3968 +#. Source: src/components/sidebarGroups.ts:93
3969 +#: assets/admin.js
3970 +msgid "Network"
3971 +msgstr ""
3972 +
3973 +#. Source: src/components/overview/HeroStatus.tsx:87
3974 +#: assets/admin.js
3975 +msgid "never"
3976 +msgstr ""
3977 +
3978 +#. Source: src/components/overview/ScoreCard.tsx:181
3979 +#: assets/admin.js
3980 +msgid "Never scanned"
3981 +msgstr ""
3982 +
3983 +#. Source: src/onboarding/steps/Connect.tsx:172
3984 +#: assets/admin.js
1136 3985 msgid "new Hub features arrive automatically, free."
1137 3986 msgstr ""
1138 3987
1139 -#: src/components/cache/NextBestAction.tsx:98
3988 +#. Source: src/components/cache/NextBestAction.tsx:98
3989 +#: assets/admin.js
1140 3990 msgid "Next best action"
1141 3991 msgstr ""
1142 3992
1143 -#: src/components/score/ScorePanel.tsx:190
3993 +#. Source: src/components/RewriteAlert.tsx:98
3994 +#: assets/admin.js
3995 +msgid "nginx detected — configure for max cache speed"
3996 +msgstr ""
3997 +
3998 +#. Source: src/components/LogsView.tsx:45
3999 +#: assets/admin.js
4000 +msgid "No activity recorded yet."
4001 +msgstr ""
4002 +
4003 +#. Source: src/components/score/ScorePanel.tsx:449
4004 +#: assets/admin.js
1144 4005 msgid "No audit run yet."
1145 4006 msgstr ""
1146 4007
1147 -#: src/onboarding/steps/Connect.tsx:190
4008 +#. Source: src/onboarding/steps/Connect.tsx:198
4009 +#: assets/admin.js
1148 4010 msgid "No card, no catch"
1149 4011 msgstr ""
1150 4012
1151 -#: src/onboarding/steps/Connect.tsx:156
4013 +#. Source: src/components/score/ScorePanel.tsx:193
4014 +#. Source: src/components/score/ScorePanel.tsx:696
4015 +#: assets/admin.js
4016 +msgid "no change"
4017 +msgstr ""
4018 +
4019 +#. Source: src/components/overview/ScoreCard.tsx:181
4020 +#: assets/admin.js
4021 +msgid "No completed scan"
4022 +msgstr ""
4023 +
4024 +#. Source: src/onboarding/steps/Connect.tsx:164
4025 +#: assets/admin.js
1152 4026 msgid "no logging into each dashboard separately."
1153 4027 msgstr ""
1154 4028
1155 -#: src/components/SettingsSearch.tsx:275
1156 -#: src/components/Sidebar.tsx:257
4029 +#. Source: src/components/CommandPalette.tsx:203
4030 +#: assets/admin.js
1157 4031 msgid "No matches"
1158 4032 msgstr ""
1159 4033
1160 -#: src/components/cache/StatDrilldown.tsx:305
4034 +#. Source: src/components/overview/ScoreCard.tsx:224
4035 +#: assets/admin.js
4036 +msgid "No performance score measured yet"
4037 +msgstr ""
4038 +
4039 +#. Source: src/components/cache/StatDrilldown.tsx:338
4040 +#: assets/admin.js
1161 4041 msgid "No purges recorded yet."
1162 4042 msgstr ""
1163 4043
1164 -#: src/components/cache/NextBestAction.tsx:82
4044 +#. Source: src/components/cache/NextBestAction.tsx:82
4045 +#: assets/admin.js
1165 4046 msgid "No recommendations right now"
1166 4047 msgstr ""
1167 4048
1168 -#: src/onboarding/steps/Connect.tsx:213
4049 +#. Source: src/onboarding/steps/Connect.tsx:221
4050 +#: assets/admin.js
1169 4051 msgid "No redirect? Connect with a token instead."
1170 4052 msgstr ""
1171 4053
1172 -#: src/components/score/ScorePanel.tsx:242
1173 -msgid "Not reported by this provider."
4054 +#. Source: src/components/ScoreRing.tsx:60
4055 +#: assets/admin.js
4056 +msgid "No score measured yet"
1174 4057 msgstr ""
1175 4058
1176 -#: src/components/cache/StatDrilldown.tsx:135
4059 +#. Source: src/components/overview/ScoreCard.tsx:196
4060 +#: assets/admin.js
4061 +msgid "No score yet"
4062 +msgstr ""
4063 +
4064 +#. Source: src/components/score/SpeedTestCard.tsx:126
4065 +#: assets/admin.js
4066 +msgid "No tests left this month."
4067 +msgstr ""
4068 +
4069 +#. Source: src/components/score/ConnectHubModal.tsx:142
4070 +#: assets/admin.js
4071 +msgid "Not now"
4072 +msgstr ""
4073 +
4074 +#. Source: src/components/cache/StatDrilldown.tsx:144
4075 +#: assets/admin.js
1177 4076 msgid "Nothing cached yet. Visit a page as a logged-out visitor to warm the cache."
1178 4077 msgstr ""
1179 4078
1180 -#: src/components/cache/StatDrilldown.tsx:238
4079 +#. Source: src/components/score/ScorePanel.tsx:495
4080 +#: assets/admin.js
4081 +msgid "Nothing is sent anywhere until you press this."
4082 +msgstr ""
4083 +
4084 +#. Source: src/components/cache/StatDrilldown.tsx:247
4085 +#: assets/admin.js
1181 4086 msgid "Nothing on disk yet."
1182 4087 msgstr ""
1183 4088
1184 -#: src/onboarding/steps/Connect.tsx:81
4089 +#. Source: src/components/overview/ScoreCard.tsx:271
4090 +#: assets/admin.js
4091 +msgid "now"
4092 +msgstr ""
4093 +
4094 +#. Source: src/onboarding/steps/Connect.tsx:89
4095 +#: assets/admin.js
1185 4096 msgid "Now unlocked"
1186 4097 msgstr ""
1187 4098
1188 -#: src/components/cache/StatDrilldown.tsx:202
4099 +#. Source: src/components/GroupLanding.tsx:92
4100 +#. Source: src/components/Sidebar.tsx:334
4101 +#. Source: src/components/Sidebar.tsx:335
4102 +#. Source: src/components/Sidebar.tsx:370
4103 +#. Source: src/components/Sidebar.tsx:371
4104 +#. Source: src/components/cache/StatDrilldown.tsx:211
4105 +#: assets/admin.js
1189 4106 msgid "of"
1190 4107 msgstr ""
1191 4108
1192 -#: src/components/cache/ImpactHero.tsx:94
4109 +#. Source: src/components/health/HealthHero.tsx:28
4110 +#: assets/admin.js
4111 +msgid "of cache features on"
4112 +msgstr ""
4113 +
4114 +#. Source: src/components/cache/ImpactHero.tsx:94
4115 +#: assets/admin.js
1193 4116 msgid "of combined wait time"
1194 4117 msgstr ""
1195 4118
1196 -#: src/components/overview/FeatureMap.tsx:38
4119 +#. Source: src/components/GroupLanding.tsx:42
4120 +#. Source: src/components/ModuleHeader.tsx:33
4121 +#. Source: src/components/overview/FeatureMap.tsx:51
4122 +#: assets/admin.js
1197 4123 msgid "Off"
1198 4124 msgstr ""
1199 4125
1200 -#: src/components/overview/FeatureMap.tsx:33
4126 +#. Source: src/components/GroupLanding.tsx:92
4127 +#: assets/admin.js
4128 +msgid "on"
4129 +msgstr ""
4130 +
4131 +#. Source: src/components/GroupLanding.tsx:38
4132 +#. Source: src/components/ModuleHeader.tsx:29
4133 +#. Source: src/components/overview/FeatureMap.tsx:46
4134 +#: assets/admin.js
1201 4135 msgid "On"
1202 4136 msgstr ""
1203 4137
1204 -#: src/components/overview/MetricGrid.tsx:25
4138 +#. Source: src/components/OverrideConfirm.tsx:36
4139 +#: assets/admin.js
4140 +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."
4141 +msgstr ""
4142 +
4143 +#. Source: src/components/health/HealthHero.tsx:30
4144 +#. Source: src/components/overview/MetricGrid.tsx:56
4145 +#: assets/admin.js
1205 4146 msgid "on disk"
1206 4147 msgstr ""
1207 4148
1208 -#: src/onboarding/steps/Connect.tsx:227
4149 +#. Source: src/onboarding/steps/Connect.tsx:235
4150 +#: assets/admin.js
1209 4151 msgid "on your xSpeed Hub account."
1210 4152 msgstr ""
1211 4153
1212 -#: src/onboarding/steps/Connect.tsx:85
4154 +#. Source: src/onboarding/OnboardingApp.tsx:156
4155 +#: assets/admin.js
4156 +msgid "Onboarding data unavailable"
4157 +msgstr ""
4158 +
4159 +#. Source: src/onboarding/steps/Connect.tsx:93
4160 +#: assets/admin.js
1213 4161 msgid "One AI connection controls the cache on every site you connect"
1214 4162 msgstr ""
1215 4163
1216 -#: src/components/overview/HubCard.tsx:118
4164 +#. Source: src/components/overview/HubCard.tsx:118
4165 +#: assets/admin.js
1217 4166 msgid "Open Hub dashboard"
1218 4167 msgstr ""
1219 4168
1220 -#: src/components/score/ScorePanel.tsx:303
1221 -msgid "Open the tested page"
4169 +#. Source: src/components/overview/AiControlCard.tsx:249
4170 +#: assets/admin.js
4171 +msgid "Open MCP"
1222 4172 msgstr ""
1223 4173
1224 -#: src/components/cache/StatDrilldown.tsx:152
4174 +#. Source: src/components/TopBar.tsx:88
4175 +#: assets/admin.js
4176 +msgid "Open navigation"
4177 +msgstr ""
4178 +
4179 +#. Source: src/components/score/ScorePanel.tsx:785
4180 +#: assets/admin.js
4181 +msgid "Open the full report"
4182 +msgstr ""
4183 +
4184 +#. Source: src/components/sidebarGroups.ts:86
4185 +#: assets/admin.js
4186 +msgid "Optimization"
4187 +msgstr ""
4188 +
4189 +#. Source: src/components/overview/AiControlCard.tsx:66
4190 +#: assets/admin.js
4191 +msgid "Optimize automatically"
4192 +msgstr ""
4193 +
4194 +#. Source: src/components/overview/McpSessionDemo.tsx:197
4195 +#: assets/admin.js
4196 +msgid "Optimize my site for better PageSpeed."
4197 +msgstr ""
4198 +
4199 +#. Source: src/components/ScoreRing.tsx:61
4200 +#. Source: src/components/overview/ScoreCard.tsx:225
4201 +#: assets/admin.js
4202 +msgid "out of 100"
4203 +msgstr ""
4204 +
4205 +#. Source: src/components/overview/ScoreCard.tsx:209
4206 +#: assets/admin.js
4207 +msgid "Over a month old — may not reflect the site now."
4208 +msgstr ""
4209 +
4210 +#. Source: src/components/cache/StatDrilldown.tsx:161
4211 +#: assets/admin.js
1225 4212 msgid "Page"
1226 4213 msgstr ""
1227 4214
1228 -#: src/components/overview/HeroStatus.tsx:38
1229 -#: src/components/overview/HeroStatus.tsx:40
1230 -msgid "pages cached"
4215 +#. Source: src/components/sidebarGroups.ts:81
4216 +#: assets/admin.js
4217 +msgid "Page, object and browser caching, plus preload."
1231 4218 msgstr ""
1232 4219
1233 -#: src/components/cache/StatDrilldown.tsx:269
4220 +#. Source: src/components/cache/StatDrilldown.tsx:278
4221 +#: assets/admin.js
1234 4222 msgid "Pages without one are compressed by the server when requested."
1235 4223 msgstr ""
1236 4224
1237 -#: src/onboarding/steps/Connect.tsx:218
4225 +#. Source: src/components/overview/McpSessionDemo.tsx:286
4226 +#: assets/admin.js
4227 +msgid "PageSpeed"
4228 +msgstr ""
4229 +
4230 +#. Source: src/components/overview/AiControlCard.tsx:63
4231 +#: assets/admin.js
4232 +msgid "PageSpeed & Core Web Vitals"
4233 +msgstr ""
4234 +
4235 +#. Source: src/components/score/ScanCard.tsx:314
4236 +#: assets/admin.js
4237 +msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
4238 +msgstr ""
4239 +
4240 +#. Source: src/components/TopBar.tsx:177
4241 +#: assets/admin.js
4242 +msgid "Partly cleared"
4243 +msgstr ""
4244 +
4245 +#. Source: src/components/migration/MigrationPanel.tsx:800
4246 +#: assets/admin.js
4247 +msgid "Paste an xSpeed profile JSON here, or choose a .json file below."
4248 +msgstr ""
4249 +
4250 +#. Source: src/onboarding/steps/Connect.tsx:226
4251 +#: assets/admin.js
1238 4252 msgid "Paste this site’s URL + token into the"
1239 4253 msgstr ""
1240 4254
1241 -#: src/components/cache/StatDrilldown.tsx:268
4255 +#. Source: src/components/overview/MetricGrid.tsx:57
4256 +#: assets/admin.js
4257 +msgid "per page load"
4258 +msgstr ""
4259 +
4260 +#. Source: src/components/ScoreRing.tsx:61
4261 +#. Source: src/components/overview/ScoreCard.tsx:225
4262 +#. Source: src/components/overview/ScoreCard.tsx:254
4263 +#. Source: src/components/score/ScorePanel.tsx:442
4264 +#: assets/admin.js
4265 +msgid "Performance score"
4266 +msgstr ""
4267 +
4268 +#. Source: src/components/score/SpeedTestCard.tsx:127
4269 +#: assets/admin.js
4270 +msgid "Performance score and Core Web Vitals for your home page."
4271 +msgstr ""
4272 +
4273 +#. Source: src/components/score/ScorePanel.tsx:448
4274 +#: assets/admin.js
4275 +msgid "Performance score and Core Web Vitals."
4276 +msgstr ""
4277 +
4278 +#. Source: src/components/overview/MetricGrid.tsx:52
4279 +#: assets/admin.js
4280 +msgid "PHP-served only — static fast path hits are not counted"
4281 +msgstr ""
4282 +
4283 +#. Source: src/components/score/ScorePanel.tsx:713
4284 +#: assets/admin.js
4285 +msgid "Pick one more run to compare."
4286 +msgstr ""
4287 +
4288 +#. Source: src/components/score/ScorePanel.tsx:714
4289 +#: assets/admin.js
4290 +msgid "Pick two runs to compare them."
4291 +msgstr ""
4292 +
4293 +#. Source: src/components/cache/StatDrilldown.tsx:277
4294 +#: assets/admin.js
1242 4295 msgid "Precompressed copies on disk:"
1243 4296 msgstr ""
1244 4297
1245 -#: src/components/overview/HeroStatus.tsx:102
4298 +#. Source: src/components/CommandPalette.tsx:59
4299 +#: assets/admin.js
1246 4300 msgid "Preload"
1247 4301 msgstr ""
1248 4302
1249 -#: src/components/overview/HeroStatus.tsx:60
4303 +#. Source: src/App.tsx:423
4304 +#: assets/admin.js
1250 4305 msgid "Preload could not start"
1251 4306 msgstr ""
1252 4307
1253 -#: src/components/overview/HeroStatus.tsx:58
1254 -msgid "Preload started"
4308 +#. Source: src/App.tsx:422
4309 +#: assets/admin.js
4310 +msgid "Preload could not start: %s"
1255 4311 msgstr ""
1256 4312
1257 -#: src/upsell/ProDemo.tsx:131
4313 +#. Source: src/App.tsx:410
4314 +#: assets/admin.js
4315 +msgid "Preload found no pages to warm"
4316 +msgstr ""
4317 +
4318 +#. Source: src/App.tsx:409
4319 +#: assets/admin.js
4320 +msgid "Preload found no pages to warm: %s"
4321 +msgstr ""
4322 +
4323 +#. Source: src/App.tsx:399
4324 +#: assets/admin.js
4325 +msgid "Preloading %d page"
4326 +msgid_plural "Preloading %d pages"
4327 +msgstr[0] ""
4328 +msgstr[1] ""
4329 +
4330 +#. Source: src/upsell/ProDemo.tsx:118
4331 +#: assets/admin.js
1258 4332 msgid "Preview"
1259 4333 msgstr ""
1260 4334
1261 -#: src/components/overview/FeatureMap.tsx:25
1262 -#: src/upsell/LockedSection.tsx:81
1263 -#: src/upsell/ProAudit.tsx:66
1264 -#: src/upsell/ProDemo.tsx:73
1265 -#: src/upsell/ProTeaser.tsx:45
4335 +#. Source: src/components/Sidebar.tsx:300
4336 +#: assets/admin.js
4337 +msgid "Primary"
4338 +msgstr ""
4339 +
4340 +#. Source: src/components/GroupLanding.tsx:32
4341 +#. Source: src/components/ModuleHeader.tsx:23
4342 +#. Source: src/components/Tabs.tsx:97
4343 +#. Source: src/components/migration/MigrationPanel.tsx:650
4344 +#. Source: src/components/overview/FeatureMap.tsx:38
4345 +#. Source: src/upsell/LockedSection.tsx:70
4346 +#. Source: src/upsell/ProAudit.tsx:66
4347 +#. Source: src/upsell/ProDemo.tsx:60
4348 +#. Source: src/upsell/ProTeaser.tsx:45
4349 +#: assets/admin.js
1266 4350 msgid "Pro"
1267 4351 msgstr ""
1268 4352
1269 -#: src/upsell/LockedPanel.tsx:95
4353 +#. Source: src/upsell/LockedPanel.tsx:82
4354 +#. Source: src/upsell/ProOverview.tsx:40
4355 +#: assets/admin.js
1270 4356 msgid "Pro — license needed"
1271 4357 msgstr ""
1272 4358
1273 -#: src/components/Sidebar.tsx:329
1274 -#: src/components/Sidebar.tsx:428
1275 -#: src/upsell/LockedPanel.tsx:95
4359 +#. Source: src/upsell/LockedPanel.tsx:82
4360 +#: assets/admin.js
1276 4361 msgid "Pro feature"
1277 4362 msgstr ""
1278 4363
1279 -#: src/upsell/LockedPanel.tsx:165
1280 -#: src/upsell/LockedPanel.tsx:44
4364 +#. Source: src/upsell/ProOverview.tsx:46
4365 +#: assets/admin.js
4366 +msgid "Pro is licensed on this site."
4367 +msgstr ""
4368 +
4369 +#. Source: src/upsell/ProOverview.tsx:54
4370 +#: assets/admin.js
4371 +msgid "Pro layers deeper optimization, real-user insight, and automation on top of the cache you already run. Nothing you have set up changes."
4372 +msgstr ""
4373 +
4374 +#. Source: src/components/Sidebar.tsx:395
4375 +#. Source: src/components/Sidebar.tsx:411
4376 +#. Source: src/upsell/ProOverview.tsx:38
4377 +#: assets/admin.js
4378 +msgid "Pro Licensed"
4379 +msgstr ""
4380 +
4381 +#. Source: src/upsell/LockedPanel.tsx:152
4382 +#. Source: src/upsell/LockedPanel.tsx:41
4383 +#: assets/admin.js
1281 4384 msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged."
1282 4385 msgstr ""
1283 4386
1284 -#: src/components/overview/HeroStatus.tsx:92
4387 +#. Source: src/components/migration/MigrationPanel.tsx:802
4388 +#: assets/admin.js
4389 +msgid "Profile JSON to import"
4390 +msgstr ""
4391 +
4392 +#. Source: src/components/score/ScanCard.tsx:95
4393 +#: assets/admin.js
4394 +msgid "pts"
4395 +msgstr ""
4396 +
4397 +#. Source: src/components/CommandPalette.tsx:58
4398 +#. Source: src/components/TopBar.tsx:180
4399 +#: assets/admin.js
1285 4400 msgid "Purge all"
1286 4401 msgstr ""
1287 4402
1288 -#: src/components/cache/StatDrilldown.tsx:301
4403 +#. Source: src/App.tsx:370
4404 +#. Source: src/components/TopBar.tsx:179
4405 +#: assets/admin.js
4406 +msgid "Purge failed"
4407 +msgstr ""
4408 +
4409 +#. Source: src/App.tsx:370
4410 +#: assets/admin.js
4411 +msgid "Purge failed: %s"
4412 +msgstr ""
4413 +
4414 +#. Source: src/components/purgeOutcome.ts:54
4415 +#: assets/admin.js
4416 +msgid "Purge failed."
4417 +msgstr ""
4418 +
4419 +#. Source: src/components/cache/StatDrilldown.tsx:331
4420 +#: assets/admin.js
1289 4421 msgid "Purge history"
1290 4422 msgstr ""
1291 4423
1292 -#: src/onboarding/steps/Connect.tsx:86
4424 +#. Source: src/onboarding/steps/Connect.tsx:94
4425 +#: assets/admin.js
1293 4426 msgid "Purge, benchmark, preload and tune settings by asking your AI"
1294 4427 msgstr ""
1295 4428
1296 -#: src/components/cache/CacheBenchmark.tsx:67
1297 -#: src/upsell/ProAudit.tsx:92
4429 +#. Source: src/components/score/ScanCard.tsx:329
4430 +#: assets/admin.js
4431 +msgid "ranked by points recovered"
4432 +msgstr ""
4433 +
4434 +#. Source: src/components/cache/CacheBenchmark.tsx:67
4435 +#. Source: src/upsell/ProAudit.tsx:92
4436 +#: assets/admin.js
1298 4437 msgid "Re-run"
1299 4438 msgstr ""
1300 4439
1301 -#: src/components/cache/ImpactHero.tsx:84
4440 +#. Source: src/components/mcp/McpActivity.tsx:194
4441 +#: assets/admin.js
4442 +msgid "read-only call"
4443 +msgstr ""
4444 +
4445 +#. Source: src/components/overview/ScoreCard.tsx:202
4446 +#: assets/admin.js
4447 +msgid "Reading your latest result."
4448 +msgstr ""
4449 +
4450 +#. Source: src/components/cache/ImpactHero.tsx:84
4451 +#: assets/admin.js
1302 4452 msgid "Real visitor impact"
1303 4453 msgstr ""
1304 4454
1305 -#: src/components/overview/ActivityStrip.tsx:49
1306 -#: src/components/overview/ActivityStrip.tsx:51
4455 +#. Source: src/components/overview/ActivityStrip.tsx:49
4456 +#. Source: src/components/overview/ActivityStrip.tsx:51
4457 +#: assets/admin.js
1307 4458 msgid "Recent activity"
1308 4459 msgstr ""
1309 4460
1310 -#: src/components/cache/TrendCharts.tsx:148
4461 +#. Source: src/components/LogsView.tsx:36
4462 +#: assets/admin.js
4463 +msgid "Recent cache and settings activity on this site."
4464 +msgstr ""
4465 +
4466 +#. Source: src/components/GroupLanding.tsx:67
4467 +#: assets/admin.js
4468 +msgid "Recent cache and settings activity."
4469 +msgstr ""
4470 +
4471 +#. Source: src/components/cache/TrendCharts.tsx:153
4472 +#: assets/admin.js
1311 4473 msgid "Recent changes"
1312 4474 msgstr ""
1313 4475
1314 -#: src/components/overview/Recommendations.tsx:102
1315 -#: src/components/overview/Recommendations.tsx:99
1316 -msgid "Recommendations"
4476 +#. Source: src/components/overview/Recommendations.tsx:119
4477 +#. Source: src/components/overview/Recommendations.tsx:123
4478 +#: assets/admin.js
4479 +msgid "Recommended for your site"
1317 4480 msgstr ""
1318 4481
1319 -#: src/components/FieldSuggestionStrip.tsx:116
4482 +#. Source: src/components/FieldSuggestionStrip.tsx:116
4483 +#: assets/admin.js
1320 4484 msgid "Recommended:"
1321 4485 msgstr ""
1322 4486
1323 -#: src/components/cache/StatDrilldown.tsx:95
4487 +#. Source: src/components/cache/StatDrilldown.tsx:104
4488 +#: assets/admin.js
1324 4489 msgid "Refresh"
1325 4490 msgstr ""
1326 4491
1327 -#: src/components/cache/TrendCharts.tsx:108
4492 +#. Source: src/components/mcp/McpActivity.tsx:137
4493 +#: assets/admin.js
4494 +msgid "Refresh activity log"
4495 +msgstr ""
4496 +
4497 +#. Source: src/components/cache/TrendCharts.tsx:113
4498 +#: assets/admin.js
1328 4499 msgid "Refresh trends"
1329 4500 msgstr ""
1330 4501
1331 -#: src/components/overview/OverviewFooter.tsx:32
4502 +#. Source: src/components/SecretField.tsx:116
4503 +#: assets/admin.js
4504 +msgid "Remove"
4505 +msgstr ""
4506 +
4507 +#. Source: src/components/SecretField.tsx:115
4508 +#: assets/admin.js
4509 +msgid "Remove the saved key"
4510 +msgstr ""
4511 +
4512 +#. Source: src/components/dropinNotice.ts:46
4513 +#: assets/admin.js
4514 +msgid "Replace and enable"
4515 +msgstr ""
4516 +
4517 +#. Source: src/components/dropinNotice.ts:42
4518 +#: assets/admin.js
4519 +msgid "Replace the existing cache file?"
4520 +msgstr ""
4521 +
4522 +#. Source: src/components/health/HealthHero.tsx:31
4523 +#: assets/admin.js
4524 +msgid "Requests (24h)"
4525 +msgstr ""
4526 +
4527 +#. Source: src/components/CommandPalette.tsx:210
4528 +#: assets/admin.js
4529 +msgid "Results"
4530 +msgstr ""
4531 +
4532 +#. Source: src/components/overview/OverviewFooter.tsx:32
4533 +#: assets/admin.js
1332 4534 msgid "Review us on WordPress.org"
1333 4535 msgstr ""
1334 4536
1335 -#: src/components/cache/CacheBenchmark.tsx:67
4537 +#. Source: src/components/overview/ScoreCard.tsx:198
4538 +#: assets/admin.js
4539 +msgid "Room to go faster"
4540 +msgstr ""
4541 +
4542 +#. Source: src/components/score/ConnectHubModal.tsx:101
4543 +#: assets/admin.js
4544 +msgid "Run a GTmetrix test"
4545 +msgstr ""
4546 +
4547 +#. Source: src/components/score/ScorePanel.tsx:478
4548 +#: assets/admin.js
4549 +msgid "Run a GTmetrix test on this site"
4550 +msgstr ""
4551 +
4552 +#. Source: src/components/overview/ScoreCard.tsx:295
4553 +#. Source: src/components/score/ScanCard.tsx:197
4554 +#: assets/admin.js
4555 +msgid "Run a scan"
4556 +msgstr ""
4557 +
4558 +#. Source: src/components/cache/CacheBenchmark.tsx:67
4559 +#: assets/admin.js
1336 4560 msgid "Run benchmark"
1337 4561 msgstr ""
1338 4562
1339 -#: src/onboarding/steps/Connect.tsx:154
4563 +#. Source: src/onboarding/steps/Connect.tsx:162
4564 +#: assets/admin.js
1340 4565 msgid "Run every site from one place"
1341 4566 msgstr ""
1342 4567
1343 -#: src/components/score/ScorePanel.tsx:277
4568 +#. Source: src/components/score/ScorePanel.tsx:620
4569 +#: assets/admin.js
1344 4570 msgid "Run history"
1345 4571 msgstr ""
1346 4572
1347 -#: src/upsell/ProAudit.tsx:92
4573 +#. Source: src/upsell/ProAudit.tsx:92
4574 +#: assets/admin.js
1348 4575 msgid "Run Pro audit"
1349 4576 msgstr ""
1350 4577
1351 -#: src/components/cache/TrendCharts.tsx:139
4578 +#. Source: src/components/score/SpeedTestCard.tsx:147
4579 +#: assets/admin.js
4580 +msgid "Run test"
4581 +msgstr ""
4582 +
4583 +#. Source: src/components/cache/TrendCharts.tsx:144
4584 +#: assets/admin.js
1352 4585 msgid "Run the benchmark at least twice to see a trend."
1353 4586 msgstr ""
1354 4587
1355 -#: src/components/cache/ImpactHero.tsx:65
4588 +#. Source: src/components/cache/ImpactHero.tsx:65
4589 +#: assets/admin.js
1356 4590 msgid "Run the benchmark once and this card shows how much combined wait time the cache saves your visitors."
1357 4591 msgstr ""
1358 4592
1359 -#: src/onboarding/steps/Connect.tsx:115
4593 +#. Source: src/onboarding/steps/Connect.tsx:123
4594 +#: assets/admin.js
1360 4595 msgid "Run your site just by asking"
1361 4596 msgstr ""
1362 4597
1363 -#: src/components/score/ScorePanel.tsx:203
4598 +#. Source: src/components/score/ScorePanel.tsx:499
4599 +#: assets/admin.js
1364 4600 msgid "Running…"
1365 4601 msgstr ""
1366 4602
1367 -#: src/components/cache/ImpactHero.tsx:107
4603 +#. Source: src/components/SaveIndicator.tsx:108
4604 +#: assets/admin.js
4605 +msgid "Save failed — your change was not saved"
4606 +msgstr ""
4607 +
4608 +#. Source: src/components/cache/ImpactHero.tsx:107
4609 +#: assets/admin.js
1368 4610 msgid "saved across"
1369 4611 msgstr ""
1370 4612
1371 -#: src/components/cache/CacheBenchmark.tsx:100
4613 +#. Source: src/components/cache/CacheBenchmark.tsx:100
4614 +#: assets/admin.js
1372 4615 msgid "saved per request"
1373 4616 msgstr ""
1374 4617
1375 -#: src/components/SaveIndicator.tsx:93
4618 +#. Source: src/components/SaveIndicator.tsx:118
4619 +#: assets/admin.js
1376 4620 msgid "Saving changes…"
1377 4621 msgstr ""
1378 4622
1379 -#: src/upsell/ProAudit.tsx:70
4623 +#. Source: src/components/score/ScanCard.tsx:197
4624 +#: assets/admin.js
4625 +msgid "Scan again"
4626 +msgstr ""
4627 +
4628 +#. Source: src/components/score/ScanCard.tsx:197
4629 +#: assets/admin.js
4630 +msgid "Scanning…"
4631 +msgstr ""
4632 +
4633 +#. Source: src/upsell/ProAudit.tsx:70
4634 +#: assets/admin.js
1380 4635 msgid "Scans your current settings + 24h cache stats and shows exactly which Pro features would help."
1381 4636 msgstr ""
1382 4637
1383 -#: src/components/SettingsSearch.tsx:243
1384 -#: src/components/SettingsSearch.tsx:244
1385 -#: src/components/Sidebar.tsx:192
1386 -#: src/components/Sidebar.tsx:201
1387 -msgid "Search settings"
4638 +#. Source: src/components/overview/ScoreCard.tsx:229
4639 +#. Source: src/components/score/ScorePanel.tsx:728
4640 +#: assets/admin.js
4641 +msgid "Score"
1388 4642 msgstr ""
1389 4643
1390 -#: src/onboarding/steps/Connect.tsx:175
4644 +#. Source: src/components/score/ScorePanel.tsx:525
4645 +#: assets/admin.js
4646 +msgid "score out of 100"
4647 +msgstr ""
4648 +
4649 +#. Source: src/components/overview/ScoreCard.tsx:98
4650 +#: assets/admin.js
4651 +msgid "Score strategy"
4652 +msgstr ""
4653 +
4654 +#. Source: src/components/TopBar.tsx:114
4655 +#. Source: src/components/TopBar.tsx:119
4656 +#: assets/admin.js
4657 +msgid "Search"
4658 +msgstr ""
4659 +
4660 +#. Source: src/components/CommandPalette.tsx:186
4661 +#: assets/admin.js
4662 +msgid "Search settings, modules, actions"
4663 +msgstr ""
4664 +
4665 +#. Source: src/components/CommandPalette.tsx:192
4666 +#: assets/admin.js
4667 +msgid "Search settings, modules, actions…"
4668 +msgstr ""
4669 +
4670 +#. Source: src/onboarding/steps/Connect.tsx:183
4671 +#: assets/admin.js
1391 4672 msgid "See everything it does."
1392 4673 msgstr ""
1393 4674
1394 -#: src/components/overview/MetricGrid.tsx:20
4675 +#. Source: src/components/overview/ScoreCard.tsx:206
4676 +#: assets/admin.js
4677 +msgid "See how this site performs for real visitors."
4678 +msgstr ""
4679 +
4680 +#. Source: src/components/health/HealthHero.tsx:29
4681 +#. Source: src/components/overview/MetricGrid.tsx:55
4682 +#: assets/admin.js
1395 4683 msgid "served without PHP"
1396 4684 msgstr ""
1397 4685
1398 -#: src/components/cache/ImpactHero.tsx:66
1399 -msgid "Serving cached pages… impact numbers appear once today’s hits accumulate."
4686 +#. Source: src/components/RewriteAlert.tsx:106
4687 +#: assets/admin.js
4688 +msgid "Server config missing — cache running on PHP fallback"
1400 4689 msgstr ""
1401 4690
1402 -#: src/components/overview/HeroStatus.tsx:38
1403 -msgid "Serving from"
4691 +#. Source: src/components/cache/ImpactHero.tsx:66
4692 +#: assets/admin.js
4693 +msgid "Serving cached pages… impact numbers appear once today’s hits accumulate."
1404 4694 msgstr ""
1405 4695
1406 -#: src/components/overview/HeroStatus.tsx:40
1407 -msgid "Serving from the PHP cache"
4696 +#. Source: src/components/SecretField.tsx:89
4697 +#: assets/admin.js
4698 +msgid "Set in wp-config.php"
1408 4699 msgstr ""
1409 4700
1410 -#: src/components/SaveIndicator.tsx:88
4701 +#. Source: src/components/SaveIndicator.tsx:113
4702 +#: assets/admin.js
1411 4703 msgid "Settings saved"
1412 4704 msgstr ""
1413 4705
1414 -#: src/upsell/ProAudit.tsx:82
4706 +#. Source: src/upsell/ProAudit.tsx:82
4707 +#: assets/admin.js
1415 4708 msgid "Show"
1416 4709 msgstr ""
1417 4710
1418 -#: src/components/overview/FeatureMap.tsx:73
4711 +#. Source: src/components/overview/FeatureMap.tsx:104
4712 +#: assets/admin.js
1419 4713 msgid "Show less"
1420 4714 msgstr ""
1421 4715
1422 -#: src/components/cache/CacheHero.tsx:108
4716 +#. Source: src/components/cache/CacheHero.tsx:214
4717 +#: assets/admin.js
1423 4718 msgid "show what cleared the cache and why"
1424 4719 msgstr ""
1425 4720
1426 -#: src/components/cache/CacheHero.tsx:101
4721 +#. Source: src/components/cache/CacheHero.tsx:207
4722 +#: assets/admin.js
1427 4723 msgid "show what is taking the space"
1428 4724 msgstr ""
1429 4725
1430 -#: src/components/cache/CacheHero.tsx:94
4726 +#. Source: src/components/cache/CacheHero.tsx:200
4727 +#: assets/admin.js
1431 4728 msgid "show which pages are cached"
1432 4729 msgstr ""
1433 4730
1434 -#: src/components/cache/StatDrilldown.tsx:202
4731 +#. Source: src/components/cache/StatDrilldown.tsx:211
4732 +#: assets/admin.js
1435 4733 msgid "Showing"
1436 4734 msgstr ""
1437 4735
1438 -#: src/onboarding/steps/Connect.tsx:230
4736 +#. Source: src/components/overview/ScoreCard.tsx:208
4737 +#: assets/admin.js
4738 +msgid "Showing your last completed scan."
4739 +msgstr ""
4740 +
4741 +#. Source: src/onboarding/steps/Connect.tsx:238
4742 +#: assets/admin.js
1439 4743 msgid "Site URL"
1440 4744 msgstr ""
1441 4745
1442 -#: src/components/cache/StatDrilldown.tsx:153
4746 +#. Source: src/components/cache/StatDrilldown.tsx:162
4747 +#: assets/admin.js
1443 4748 msgid "Size"
1444 4749 msgstr ""
1445 4750
1446 -#: src/components/cache/StatDrilldown.tsx:155
4751 +#. Source: src/components/sidebarGroups.ts:102
4752 +#: assets/admin.js
4753 +msgid "Speed score, diagnostics and analytics."
4754 +msgstr ""
4755 +
4756 +#. Source: src/components/score/ScorePanel.tsx:427
4757 +#: assets/admin.js
4758 +msgid "Speed test"
4759 +msgstr ""
4760 +
4761 +#. Source: src/components/RewriteAlert.tsx:92
4762 +#: assets/admin.js
4763 +msgid "Static rewrite may not be available on this host"
4764 +msgstr ""
4765 +
4766 +#. Source: src/components/cache/StatDrilldown.tsx:164
4767 +#: assets/admin.js
1447 4768 msgid "Stored"
1448 4769 msgstr ""
1449 4770
1450 -#: src/components/Sidebar.tsx:466
1451 -#: src/components/Sidebar.tsx:473
1452 -msgid "Switch to dark"
4771 +#. Source: src/components/mcp/McpActivity.tsx:175
4772 +#: assets/admin.js
4773 +msgid "succeeded"
1453 4774 msgstr ""
1454 4775
1455 -#: src/components/Sidebar.tsx:466
1456 -#: src/components/Sidebar.tsx:473
1457 -msgid "Switch to light"
4776 +#. Source: src/components/TopBar.tsx:144
4777 +#: assets/admin.js
4778 +msgid "Switch to dark mode"
1458 4779 msgstr ""
1459 4780
1460 -#: src/components/cache/TrendCharts.tsx:240
4781 +#. Source: src/components/TopBar.tsx:144
4782 +#: assets/admin.js
4783 +msgid "Switch to light mode"
4784 +msgstr ""
4785 +
4786 +#. Source: src/components/dropinNotice.ts:37
4787 +#: assets/admin.js
4788 +msgid "Take over and enable"
4789 +msgstr ""
4790 +
4791 +#. Source: src/components/dropinNotice.ts:33
4792 +#: assets/admin.js
4793 +msgid "Take over the page cache from %s?"
4794 +msgstr ""
4795 +
4796 +#. Source: src/components/cache/TrendCharts.tsx:245
4797 +#: assets/admin.js
1461 4798 msgid "target ≥80%"
1462 4799 msgstr ""
1463 4800
1464 -#: src/components/score/ScorePanel.tsx:203
4801 +#. Source: src/components/score/ScorePanel.tsx:499
4802 +#: assets/admin.js
1465 4803 msgid "Test now"
1466 4804 msgstr ""
1467 4805
1468 -#: src/components/score/ScorePanel.tsx:168
1469 -msgid "The test could not be started."
4806 +#. Source: src/components/score/ScorePanel.tsx:485
4807 +#: assets/admin.js
4808 +msgid "Test with GTmetrix"
1470 4809 msgstr ""
1471 4810
1472 -#: src/components/cache/StatDrilldown.tsx:142
4811 +#. Source: src/components/score/ScorePanel.tsx:485
4812 +#. Source: src/components/score/SpeedTestCard.tsx:147
4813 +#: assets/admin.js
4814 +msgid "Testing…"
4815 +msgstr ""
4816 +
4817 +#. Source: src/components/purgeOutcome.ts:70
4818 +#: assets/admin.js
4819 +msgid "The cache was already empty, so there was nothing to clear."
4820 +msgstr ""
4821 +
4822 +#. Source: src/components/overview/ScoreCard.tsx:207
4823 +#: assets/admin.js
4824 +msgid "The last scan did not complete."
4825 +msgstr ""
4826 +
4827 +#. Source: src/components/purgeOutcome.ts:78
4828 +#: assets/admin.js
4829 +msgid "The page cache was already empty."
4830 +msgstr ""
4831 +
4832 +#. Source: src/components/purgeOutcome.ts:63
4833 +#: assets/admin.js
4834 +msgid "There was nothing to clear."
4835 +msgstr ""
4836 +
4837 +#. Source: src/components/cache/StatDrilldown.tsx:151
4838 +#: assets/admin.js
1473 4839 msgid "This cache is large enough that the scan stopped early — the list below is a recent sample, not every page."
1474 4840 msgstr ""
1475 4841
1476 -#: src/components/Sidebar.tsx:472
1477 -msgid "Toggle theme"
4842 +#. Source: src/components/SecretField.tsx:93
4843 +#: assets/admin.js
4844 +msgid "This credential is defined in wp-config.php and cannot be changed here."
1478 4845 msgstr ""
1479 4846
1480 -#: src/onboarding/steps/Connect.tsx:234
4847 +#. Source: src/components/score/ScanCard.tsx:222
4848 +#: assets/admin.js
4849 +msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4850 +msgstr ""
4851 +
4852 +#. Source: src/components/score/ConnectHubModal.tsx:127
4853 +#: assets/admin.js
4854 +msgid "This site looks local, so it may not be reachable for testing. Your own GTmetrix API key works either way — see the settings below."
4855 +msgstr ""
4856 +
4857 +#. Source: src/components/OverrideConfirm.tsx:31
4858 +#: assets/admin.js
4859 +msgid "This value comes from"
4860 +msgstr ""
4861 +
4862 +#. Source: src/onboarding/steps/Connect.tsx:242
4863 +#: assets/admin.js
1481 4864 msgid "Token"
1482 4865 msgstr ""
1483 4866
1484 -#: src/components/cache/TrendCharts.tsx:81
4867 +#. Source: src/components/LogsView.tsx:34
4868 +#. Source: src/components/sidebarGroups.ts:107
4869 +#: assets/admin.js
4870 +msgid "Tools"
4871 +msgstr ""
4872 +
4873 +#. Source: src/components/cache/TrendCharts.tsx:81
4874 +#: assets/admin.js
1485 4875 msgid "Trends"
1486 4876 msgstr ""
1487 4877
1488 -#: src/components/cache/TrendCharts.tsx:126
4878 +#. Source: src/components/cache/TrendCharts.tsx:131
4879 +#: assets/admin.js
1489 4880 msgid "Trends appear after a couple of days of traffic. The daily series is being collected now."
1490 4881 msgstr ""
1491 4882
1492 -#: src/components/score/ScorePanel.tsx:199
1493 -msgid "Turn on external scores below first."
4883 +#. Source: src/components/CacheSwitch.tsx:176
4884 +#: assets/admin.js
4885 +msgid "Turn caching off"
1494 4886 msgstr ""
1495 4887
1496 -#: src/components/overview/HeroStatus.tsx:32
4888 +#. Source: src/components/CacheSwitch.tsx:223
4889 +#: assets/admin.js
4890 +msgid "Turn caching off?"
4891 +msgstr ""
4892 +
4893 +#. Source: src/components/CacheSwitch.tsx:177
4894 +#: assets/admin.js
4895 +msgid "Turn caching on"
4896 +msgstr ""
4897 +
4898 +#. Source: src/components/CacheSwitch.tsx:250
4899 +#: assets/admin.js
4900 +msgid "Turn off"
4901 +msgstr ""
4902 +
4903 +#. Source: src/components/overview/HeroStatus.tsx:42
4904 +#: assets/admin.js
1497 4905 msgid "Turn on the page cache to start serving pages instantly."
1498 4906 msgstr ""
1499 4907
1500 -#: src/components/cache/TrendCharts.tsx:273
4908 +#. Source: src/components/cache/TrendCharts.tsx:278
4909 +#: assets/admin.js
1501 4910 msgid "uncached"
1502 4911 msgstr ""
1503 4912
1504 -#: src/onboarding/steps/Connect.tsx:190
4913 +#. Source: src/onboarding/steps/Connect.tsx:198
4914 +#: assets/admin.js
1505 4915 msgid "Under a minute"
1506 4916 msgstr ""
1507 4917
1508 -#: src/upsell/LockedPanel.tsx:129
1509 -#: src/upsell/LockedSection.tsx:109
1510 -#: src/upsell/ProAudit.tsx:113
1511 -#: src/upsell/ProDemo.tsx:115
4918 +#. Source: src/components/Sidebar.tsx:424
4919 +#. Source: src/components/Sidebar.tsx:445
4920 +#. Source: src/upsell/LockedPanel.tsx:116
4921 +#. Source: src/upsell/LockedSection.tsx:98
4922 +#. Source: src/upsell/ProAudit.tsx:113
4923 +#. Source: src/upsell/ProDemo.tsx:102
4924 +#. Source: src/upsell/ProOverview.tsx:83
4925 +#: assets/admin.js
1512 4926 msgid "Upgrade to Pro"
1513 4927 msgstr ""
1514 4928
1515 -#: src/upsell/LockedPanel.tsx:152
4929 +#. Source: src/components/DefinedInConfig.tsx:60
4930 +#: assets/admin.js
4931 +msgid "Use the host value"
4932 +msgstr ""
4933 +
4934 +#. Source: src/components/overview/ScoreCard.tsx:295
4935 +#: assets/admin.js
4936 +msgid "View details"
4937 +msgstr ""
4938 +
4939 +#. Source: src/components/score/ScorePanel.tsx:566
4940 +#: assets/admin.js
4941 +msgid "View on GTmetrix"
4942 +msgstr ""
4943 +
4944 +#. Source: src/components/score/SpeedTestCard.tsx:164
4945 +#: assets/admin.js
4946 +msgid "View the result"
4947 +msgstr ""
4948 +
4949 +#. Source: src/components/score/ConnectHubModal.tsx:151
4950 +#: assets/admin.js
4951 +msgid "Waiting for connection…"
4952 +msgstr ""
4953 +
4954 +#. Source: src/components/overview/Recommendations.tsx:221
4955 +#: assets/admin.js
4956 +msgid "Want a hand?"
4957 +msgstr ""
4958 +
4959 +#. Source: src/onboarding/OnboardingApp.tsx:159
4960 +#: assets/admin.js
4961 +msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard."
4962 +msgstr ""
4963 +
4964 +#. Source: src/components/overview/AiControlCard.tsx:247
4965 +#: assets/admin.js
4966 +msgid "We couldn't read this site's AI connection status. Open MCP to check."
4967 +msgstr ""
4968 +
4969 +#. Source: src/upsell/LockedPanel.tsx:139
4970 +#: assets/admin.js
1516 4971 msgid "What this adds"
1517 4972 msgstr ""
1518 4973
1519 -#: src/upsell/ProAudit.tsx:62
4974 +#. Source: src/components/score/ScanCard.tsx:327
4975 +#: assets/admin.js
4976 +msgid "What to fix next"
4977 +msgstr ""
4978 +
4979 +#. Source: src/components/score/ScorePanel.tsx:578
4980 +#: assets/admin.js
4981 +msgid "What to improve"
4982 +msgstr ""
4983 +
4984 +#. Source: src/upsell/ProAudit.tsx:62
4985 +#: assets/admin.js
1520 4986 msgid "What would Pro do for your site?"
1521 4987 msgstr ""
1522 4988
1523 -#: src/components/cache/StatDrilldown.tsx:234
4989 +#. Source: src/components/score/ScorePanel.tsx:726
4990 +#: assets/admin.js
4991 +msgid "When"
4992 +msgstr ""
4993 +
4994 +#. Source: src/components/cache/StatDrilldown.tsx:243
4995 +#: assets/admin.js
1524 4996 msgid "Where the cache size goes"
1525 4997 msgstr ""
1526 4998
1527 -#: src/components/cache/CacheBenchmark.tsx:88
4999 +#. Source: src/components/ModuleHeader.tsx:55
5000 +#: assets/admin.js
5001 +msgid "Why this is off"
5002 +msgstr ""
5003 +
5004 +#. Source: src/components/ModuleHeader.tsx:55
5005 +#: assets/admin.js
5006 +msgid "Why this is on"
5007 +msgstr ""
5008 +
5009 +#. Source: src/components/cache/CacheBenchmark.tsx:88
5010 +#: assets/admin.js
1528 5011 msgid "With cache"
1529 5012 msgstr ""
1530 5013
1531 -#: src/components/cache/CacheBenchmark.tsx:82
5014 +#. Source: src/components/cache/CacheBenchmark.tsx:82
5015 +#: assets/admin.js
1532 5016 msgid "Without cache"
1533 5017 msgstr ""
1534 5018
1535 -#: src/components/overview/HubCard.tsx:79
1536 -#: src/components/overview/HubCard.tsx:95
1537 -#: src/components/overview/HubCard.tsx:99
5019 +#. Source: src/components/mcp/McpActivity.tsx:200
5020 +#: assets/admin.js
5021 +msgid "write call"
5022 +msgstr ""
5023 +
5024 +#. Source: src/components/overview/HubCard.tsx:79
5025 +#. Source: src/components/overview/HubCard.tsx:95
5026 +#. Source: src/components/overview/HubCard.tsx:99
5027 +#: assets/admin.js
1538 5028 msgid "xSpeed Hub"
1539 5029 msgstr ""
1540 5030
1541 -#: src/onboarding/steps/Connect.tsx:132
5031 +#. Source: src/onboarding/steps/Connect.tsx:140
5032 +#: assets/admin.js
1542 5033 msgid "xSpeed Hub error"
1543 5034 msgstr ""
1544 5035
1545 -#: src/upsell/LockedPanel.tsx:109
5036 +#. Source: src/upsell/ProOverview.tsx:41
5037 +#: assets/admin.js
5038 +msgid "xSpeed Pro"
5039 +msgstr ""
5040 +
5041 +#. Source: src/upsell/ProOverview.tsx:53
5042 +#: assets/admin.js
5043 +msgid "xSpeed Pro is installed — activate your license to unlock every feature below. Your current settings stay exactly as they are."
5044 +msgstr ""
5045 +
5046 +#. Source: src/upsell/LockedPanel.tsx:96
5047 +#: assets/admin.js
1546 5048 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
1547 5049 msgstr ""
1548 5050
1549 -#: src/components/cache/ImpactHero.tsx:88
5051 +#. Source: src/components/score/ScanCard.tsx:173
5052 +#. Source: src/components/score/ScanCard.tsx:183
5053 +#. Source: src/components/score/ScanCard.tsx:304
5054 +#. Source: src/components/score/ScorePanel.tsx:426
5055 +#: assets/admin.js
5056 +msgid "xSpeed Scan"
5057 +msgstr ""
5058 +
5059 +#. Source: src/components/score/ScanCard.tsx:264
5060 +#: assets/admin.js
5061 +msgid "xSpeed Scan, out of 100"
5062 +msgstr ""
5063 +
5064 +#. Source: src/components/cache/ImpactHero.tsx:88
5065 +#: assets/admin.js
1550 5066 msgid "xSpeed served"
1551 5067 msgstr ""
1552 5068
1553 -#: src/onboarding/steps/Connect.tsx:68
5069 +#. Source: src/components/score/ScorePanel.tsx:477
5070 +#: assets/admin.js
5071 +msgid "You have used this month’s free tests."
5072 +msgstr ""
5073 +
5074 +#. Source: src/onboarding/steps/Connect.tsx:76
5075 +#: assets/admin.js
1554 5076 msgid "You're all set"
1555 5077 msgstr ""
1556 5078
1557 -#: src/components/overview/Recommendations.tsx:113
5079 +#. Source: src/components/overview/Recommendations.tsx:134
5080 +#: assets/admin.js
1558 5081 msgid "You're all set — no recommendations right now."
1559 5082 msgstr ""
1560 5083
1561 -#: src/onboarding/steps/Connect.tsx:61
5084 +#. Source: src/components/RewriteAlert.tsx:94
5085 +#: assets/admin.js
5086 +msgid "Your cache still works on every request — xSpeed's PHP drop-in is serving cached HTML, so nothing is broken. But this site sits behind a reverse proxy or CDN, which usually means a managed/containerized host where the nginx that serves requests isn't one you can edit. The extra-fast server-level rewrite (5–15ms static hits) needs that nginx, so it likely can't be enabled here — and that's also why the cache HIT log stays empty (nginx never serves the static file, so there's nothing to log). If you DO control the request-terminating nginx, use the snippet in the \"Server config\" panel below."
5087 +msgstr ""
5088 +
5089 +#. Source: src/components/RewriteAlert.tsx:103
5090 +#: assets/admin.js
5091 +msgid "Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. For the full server-level rewrite, copy the snippet from the \"Server config\" panel below into your container's nginx config (typically docker/nginx.conf next to your docker-compose.yml). The host nginx in front of your container only proxies traffic; pasting there has no effect."
5092 +msgstr ""
5093 +
5094 +#. Source: src/components/RewriteAlert.tsx:107
5095 +#: assets/admin.js
5096 +msgid "Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. To engage the faster server-level rewrite, toggle Cache off and on to reinstall the .htaccess block, and confirm AllowOverride is enabled for your site."
5097 +msgstr ""
5098 +
5099 +#. Source: src/components/RewriteAlert.tsx:99
5100 +#: assets/admin.js
5101 +msgid "Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. To shave additional latency, copy the snippet from the \"Server config\" panel below into your nginx vhost (typically /etc/nginx/sites-enabled/<your-site>) and reload nginx so cached pages skip PHP entirely."
5102 +msgstr ""
5103 +
5104 +#. Source: src/onboarding/steps/Connect.tsx:69
5105 +#: assets/admin.js
1562 5106 msgid "Your caching is ready to manage from anywhere."
1563 5107 msgstr ""
1564 5108
1565 -#: src/components/overview/FeatureMap.tsx:64
1566 -msgid "Your features"
5109 +#. Source: src/upsell/ProOverview.tsx:113
5110 +#: assets/admin.js
5111 +msgid "Your Free tier keeps working exactly as it does today."
1567 5112 msgstr ""
1568 5113
1569 -#: src/onboarding/steps/Connect.tsx:138
5114 +#. Source: src/onboarding/steps/Connect.tsx:146
5115 +#: assets/admin.js
1570 5116 msgid "Your Hub is home base for all your sites. Once connected, you can:"
1571 5117 msgstr ""
1572 5118
1573 -#: src/App.tsx:352
1574 -msgid "Your site at a glance"
5119 +#. Source: src/components/overview/FeatureMap.tsx:92
5120 +#. Source: src/components/overview/FeatureMap.tsx:95
5121 +#: assets/admin.js
5122 +msgid "Your setup"
1575 5123 msgstr ""
1576 5124
1577 -#: src/components/overview/HeroStatus.tsx:36
1578 -msgid "your web server"
5125 +#. Source: src/components/overview/ScoreCard.tsx:197
5126 +#: assets/admin.js
5127 +msgid "Your site is fast"
5128 +msgstr ""
5129 +
5130 +#. Source: src/components/DefinedInConfig.tsx:46
5131 +#: assets/admin.js
5132 +msgid "Your value is used instead of"
1579 5133 msgstr ""