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 +729 -330 1.3.0 → 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.3.0\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-09-13T15:28:39+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:7176
19 +#: includes/class-cache.php:8804
20 20 #: includes/class-deactivation-feedback.php:189
21 21 msgid "xSpeed Cache"
22 22 msgstr ""
23 23
@@ -37,9 +37,9 @@
37 37 msgstr ""
38 38
39 39 #: includes/class-admin.php:153
40 40 #: includes/class-admin.php:243
41 -#: includes/class-cache.php:7190
41 +#: includes/class-cache.php:8818
42 42 #: assets/admin.js
43 43 msgid "Settings"
44 44 msgstr ""
45 45
@@ -129,185 +129,185 @@
129 129 msgid "Clears this post and the pages that list it — the homepage, its archive and the neighbouring posts. The rest of the site keeps its cache."
130 130 msgstr ""
131 131
132 132 #. translators: 1: cause of the purge, 2: URL or path, 3: number of files removed.
133 -#: includes/class-cache.php:2950
133 +#: includes/class-cache.php: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:3711
138 +#: includes/class-cache.php:5123
139 139 msgid "Purge All"
140 140 msgstr ""
141 141
142 -#: includes/class-cache.php:3715
142 +#: includes/class-cache.php:5127
143 143 msgid "Purge Page / Static Cache"
144 144 msgstr ""
145 145
146 -#: includes/class-cache.php:3719
146 +#: includes/class-cache.php:5131
147 147 msgid "Purge CSS / JS Cache"
148 148 msgstr ""
149 149
150 -#: includes/class-cache.php:3723
150 +#: includes/class-cache.php:5135
151 151 msgid "Purge Object Cache"
152 152 msgstr ""
153 153
154 -#: includes/class-cache.php:3727
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:3885
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:3891
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:4112
170 +#: includes/class-cache.php:5630
171 171 msgid "advanced-cache.php cannot be read, so xSpeed cannot tell whose page cache is installed."
172 172 msgstr ""
173 173
174 174 #. translators: %s: the page-caching plugin that owns advanced-cache.php.
175 -#: includes/class-cache.php:4119
175 +#: includes/class-cache.php:5637
176 176 #, php-format
177 177 msgid "%s is serving the page cache. Turn the xSpeed cache off and on again to take it over."
178 178 msgstr ""
179 179
180 -#: includes/class-cache.php:4122
180 +#: includes/class-cache.php:5640
181 181 msgid "Another plugin is serving the page cache. Turn the xSpeed cache off and on again to take it over."
182 182 msgstr ""
183 183
184 -#: includes/class-cache.php:4188
184 +#: includes/class-cache.php:5710
185 185 msgid "Could not lock page-cache ownership. Try again."
186 186 msgstr ""
187 187
188 -#: includes/class-cache.php:4194
188 +#: includes/class-cache.php:5716
189 189 msgid "Page-cache ownership changed while xSpeed was checking it. Nothing was changed; try again."
190 190 msgstr ""
191 191
192 192 #. translators: %s: the page-caching plugin that owns advanced-cache.php.
193 -#: includes/class-cache.php:4268
193 +#: includes/class-cache.php:5790
194 194 #, php-format
195 195 msgid "%s owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over."
196 196 msgstr ""
197 197
198 -#: includes/class-cache.php:4271
198 +#: includes/class-cache.php:5793
199 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 200 msgstr ""
201 201
202 -#: includes/class-cache.php:4301
202 +#: includes/class-cache.php:5823
203 203 msgid "Could not write wp-content/advanced-cache.php. Check filesystem permissions."
204 204 msgstr ""
205 205
206 -#: includes/class-cache.php:4358
206 +#: includes/class-cache.php:5880
207 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 208 msgstr ""
209 209
210 -#: includes/class-cache.php:4359
210 +#: includes/class-cache.php:5881
211 211 msgid "xSpeed could not verify the complete page-cache write, and wp-config.php is not writable. Its changes were rolled back."
212 212 msgstr ""
213 213
214 -#: includes/class-cache.php:4361
214 +#: includes/class-cache.php:5883
215 215 msgid "xSpeed could not verify the complete page-cache write. Its changes were rolled back."
216 216 msgstr ""
217 217
218 -#: includes/class-cache.php:4376
218 +#: includes/class-cache.php:5898
219 219 msgid "xSpeed could not save the page-cache setting. Its file changes were rolled back."
220 220 msgstr ""
221 221
222 -#: includes/class-cache.php:4468
222 +#: includes/class-cache.php:5990
223 223 msgid "xSpeed could not safely remove its WP_CACHE setting. The cache remains enabled."
224 224 msgstr ""
225 225
226 -#: includes/class-cache.php:4483
226 +#: includes/class-cache.php:6005
227 227 msgid "xSpeed could not remove its page-cache drop-in. The cache remains enabled."
228 228 msgstr ""
229 229
230 -#: includes/class-cache.php:4484
230 +#: includes/class-cache.php:6006
231 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 232 msgstr ""
233 233
234 -#: includes/class-cache.php:4501
234 +#: includes/class-cache.php:6023
235 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 236 msgstr ""
237 237
238 -#: includes/class-cache.php:4519
238 +#: includes/class-cache.php:6041
239 239 msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. The cache remains enabled."
240 240 msgstr ""
241 241
242 -#: includes/class-cache.php:4520
242 +#: includes/class-cache.php:6042
243 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 244 msgstr ""
245 245
246 -#: includes/class-cache.php:4531
246 +#: includes/class-cache.php:6053
247 247 msgid "xSpeed could not save the disabled state."
248 248 msgstr ""
249 249
250 -#: includes/class-cache.php:4535
250 +#: includes/class-cache.php:6057
251 251 msgid "xSpeed could not save the disabled state. The page cache was restored."
252 252 msgstr ""
253 253
254 254 #. translators: 1: the refusal reason, 2: a page-caching plugin's name.
255 -#: includes/class-cache.php:6682
255 +#: includes/class-cache.php:8296
256 256 #, php-format
257 257 msgid "%1$s %2$s is also active on this site — deactivate its page cache before enabling xSpeed."
258 258 msgstr ""
259 259
260 260 #. translators: 1: the refusal reason, 2: comma-separated page-caching plugin names.
261 -#: includes/class-cache.php:6689
261 +#: includes/class-cache.php:8303
262 262 #, php-format
263 263 msgid "%1$s These page caches are also active on this site: %2$s. Deactivate them before enabling xSpeed."
264 264 msgstr ""
265 265
266 266 #. translators: %s: comma-separated list of page-caching plugin names.
267 -#: includes/class-cache.php:6744
267 +#: includes/class-cache.php:8358
268 268 #, php-format
269 269 msgid "More than one page cache is active on this site (%s). Turn off the other page caches before enabling xSpeed."
270 270 msgstr ""
271 271
272 -#: includes/class-cache.php:6751
272 +#: includes/class-cache.php:8365
273 273 #, php-format
274 274 msgid "%s is active or owns advanced-cache.php. Deactivate its page cache before enabling xSpeed."
275 275 msgstr ""
276 276
277 -#: includes/class-cache.php:6754
277 +#: includes/class-cache.php:8368
278 278 msgid "WP_CACHE is true but no page-cache drop-in owner can be proved. xSpeed will not claim it."
279 279 msgstr ""
280 280
281 -#: includes/class-cache.php:6755
281 +#: includes/class-cache.php:8369
282 282 msgid "wp-config.php defines WP_CACHE more than once. Remove the duplicate before enabling the cache."
283 283 msgstr ""
284 284
285 -#: includes/class-cache.php:6756
285 +#: includes/class-cache.php:8370
286 286 msgid "WP_CACHE is set from an expression in wp-config.php. xSpeed will not rewrite it."
287 287 msgstr ""
288 288
289 -#: includes/class-cache.php:6757
289 +#: includes/class-cache.php:8371
290 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 291 msgstr ""
292 292
293 -#: includes/class-cache.php:6758
293 +#: includes/class-cache.php:8372
294 294 msgid "wp-config.php cannot be read, so xSpeed cannot safely change page-cache ownership."
295 295 msgstr ""
296 296
297 -#: includes/class-cache.php:6759
297 +#: includes/class-cache.php:8373
298 298 msgid "advanced-cache.php is occupied but its owner cannot be proved. xSpeed will not replace it."
299 299 msgstr ""
300 300
301 -#: includes/class-cache.php:6760
301 +#: includes/class-cache.php:8374
302 302 msgid "advanced-cache.php cannot be read, so xSpeed cannot prove its owner."
303 303 msgstr ""
304 304
305 -#: includes/class-cache.php:6762
305 +#: includes/class-cache.php:8376
306 306 msgid "The page-cache field is occupied or cannot be verified. xSpeed will not change it."
307 307 msgstr ""
308 308
309 -#: includes/class-cache.php:7259
309 +#: includes/class-cache.php:8887
310 310 #: includes/class-purge-ui.php:278
311 311 #: includes/class-purge-ui.php:675
312 312 msgid "Unauthorized."
313 313 msgstr ""
@@ -729,33 +729,33 @@
729 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 730 msgstr ""
731 731
732 732 #. translators: 1: number of URLs, 2: the sitemap failure detail.
733 -#: includes/class-preloader.php:151
733 +#: includes/class-preloader.php:260
734 734 #, php-format
735 735 msgid "Preloader queued %1$d URLs from the site content — %2$s"
736 736 msgstr ""
737 737
738 738 #. translators: %s: the sitemap failure detail.
739 -#: includes/class-preloader.php:159
739 +#: includes/class-preloader.php:268
740 740 #, php-format
741 741 msgid "Preloader could not start — %s"
742 742 msgstr ""
743 743
744 744 #. translators: 1: number of URLs, 2: plural suffix.
745 -#: includes/class-preloader.php:166
745 +#: includes/class-preloader.php:275
746 746 #, php-format
747 747 msgid "Preloader queued %1$d URL%2$s for warming."
748 748 msgstr ""
749 749
750 750 #. translators: 1: sitemap URL, 2: error detail.
751 -#: includes/class-preloader.php:622
751 +#: includes/class-preloader.php:741
752 752 #, php-format
753 753 msgid "Could not fetch the sitemap at %1$s — %2$s"
754 754 msgstr ""
755 755
756 756 #. translators: 1: sitemap URL, 2: HTTP status code.
757 -#: includes/class-preloader.php:635
757 +#: includes/class-preloader.php:754
758 758 #, php-format
759 759 msgid "Could not fetch the sitemap at %1$s — the server returned HTTP %2$d."
760 760 msgstr ""
761 761
@@ -765,8 +765,9 @@
765 765 msgid "%s is not enabled"
766 766 msgstr ""
767 767
768 768 #: includes/class-purge-runner.php:162
769 +#: assets/admin.js
769 770 msgid "the purge was refused"
770 771 msgstr ""
771 772
772 773 #: includes/class-purge-runner.php:246
@@ -787,40 +788,40 @@
787 788 msgid "CDN"
788 789 msgstr ""
789 790
790 791 #. translators: 1: what asked for the purge, 2: number of files removed.
791 -#: includes/class-purge-runner.php:322
792 +#: includes/class-purge-runner.php:335
792 793 #, php-format
793 794 msgid "Cache purged (%1$s) — %2$d file(s) removed"
794 795 msgstr ""
795 796
796 -#: includes/class-purge-runner.php:346
797 +#: includes/class-purge-runner.php:359
797 798 msgid "the object cache engine is unavailable"
798 799 msgstr ""
799 800
800 -#: includes/class-purge-runner.php:350
801 +#: includes/class-purge-runner.php:363
801 802 msgid "no persistent object cache drop-in is in use"
802 803 msgstr ""
803 804
804 -#: includes/class-purge-runner.php:353
805 +#: includes/class-purge-runner.php:366
805 806 msgid "the drop-in is installed but is not persisting anything"
806 807 msgstr ""
807 808
808 809 #. translators: %s: what asked for the purge.
809 -#: includes/class-purge-runner.php:375
810 +#: includes/class-purge-runner.php:388
810 811 #, php-format
811 812 msgid "Purged object cache (%s)"
812 813 msgstr ""
813 814
814 -#: includes/class-purge-runner.php:385
815 +#: includes/class-purge-runner.php:398
815 816 msgid "the backend refused the flush"
816 817 msgstr ""
817 818
818 -#: includes/class-purge-runner.php:397
819 +#: includes/class-purge-runner.php:410
819 820 msgid "the Cloudflare module is not available"
820 821 msgstr ""
821 822
822 -#: includes/class-purge-runner.php:421
823 +#: includes/class-purge-runner.php:434
823 824 msgid "no CDN with a purge API is configured — xSpeed's CDN module rewrites asset URLs and holds no cache of its own"
824 825 msgstr ""
825 826
826 827 #: includes/class-purge-ui.php:263
@@ -985,9 +986,9 @@
985 986 #: includes/class-rest-api.php:352
986 987 msgid "The id argument is required."
987 988 msgstr ""
988 989
989 -#: includes/class-rest-api.php:472
990 +#: includes/class-rest-api.php:479
990 991 msgid "dashboard"
991 992 msgstr ""
992 993
993 994 #: includes/class-rest-manager.php:83
@@ -1083,8 +1084,9 @@
1083 1084 msgstr ""
1084 1085
1085 1086 #: includes/class-video-facade.php:153
1086 1087 #: includes/class-video-facade.php:199
1088 +#: includes/class-video-facade.php:309
1087 1089 msgid "Play video"
1088 1090 msgstr ""
1089 1091
1090 1092 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -1091,9 +1093,9 @@
1091 1093 msgid "AI Privacy"
1092 1094 msgstr ""
1093 1095
1094 1096 #: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1095 -msgid "Govern whether AI-powered features (Pro) may collect data from your visitors. The off-switch is here in Free because privacy is a fundamental right, not a paid feature."
1097 +msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro."
1096 1098 msgstr ""
1097 1099
1098 1100 #: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1099 1101 msgid "Require consent before AI data collection"
@@ -1099,9 +1101,9 @@
1099 1101 msgid "Require consent before AI data collection"
1100 1102 msgstr ""
1101 1103
1102 1104 #: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1103 -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)."
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."
1104 1106 msgstr ""
1105 1107
1106 1108 #: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1107 1109 msgid "Consent banner text"
@@ -1119,60 +1121,116 @@
1119 1121 msgid "Turn off WordPress defaults you do not use — saves bytes, requests, and attack surface."
1120 1122 msgstr ""
1121 1123
1122 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
1123 1133 msgid "Disable Dashicons on Frontend"
1124 1134 msgstr ""
1125 1135
1126 -#: includes/modules/Bloat/BloatModule.php:50
1136 +#: includes/modules/Bloat/BloatModule.php:56
1127 1137 msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1128 1138 msgstr ""
1129 1139
1130 -#: includes/modules/Bloat/BloatModule.php:55
1140 +#: includes/modules/Bloat/BloatModule.php:61
1131 1141 msgid "Disable oEmbed Discovery + wp-embed.min.js"
1132 1142 msgstr ""
1133 1143
1134 -#: includes/modules/Bloat/BloatModule.php:56
1144 +#: includes/modules/Bloat/BloatModule.php:62
1135 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."
1136 1146 msgstr ""
1137 1147
1138 -#: includes/modules/Bloat/BloatModule.php:61
1148 +#: includes/modules/Bloat/BloatModule.php:67
1139 1149 msgid "Disable RSS Feeds"
1140 1150 msgstr ""
1141 1151
1142 -#: includes/modules/Bloat/BloatModule.php:62
1152 +#: includes/modules/Bloat/BloatModule.php:68
1143 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."
1144 1154 msgstr ""
1145 1155
1146 -#: includes/modules/Bloat/BloatModule.php:67
1156 +#: includes/modules/Bloat/BloatModule.php:73
1147 1157 msgid "Disable XML-RPC"
1148 1158 msgstr ""
1149 1159
1150 -#: includes/modules/Bloat/BloatModule.php:68
1160 +#: includes/modules/Bloat/BloatModule.php:74
1151 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)."
1152 1162 msgstr ""
1153 1163
1154 -#: includes/modules/Bloat/BloatModule.php:73
1164 +#: includes/modules/Bloat/BloatModule.php:79
1155 1165 msgid "Strip jQuery Migrate on Frontend"
1156 1166 msgstr ""
1157 1167
1158 -#: includes/modules/Bloat/BloatModule.php:74
1168 +#: includes/modules/Bloat/BloatModule.php:80
1159 1169 msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1160 1170 msgstr ""
1161 1171
1162 -#: includes/modules/Bloat/BloatModule.php:79
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
1163 1221 msgid "Restrict REST API to Logged-In Users"
1164 1222 msgstr ""
1165 1223
1166 -#: includes/modules/Bloat/BloatModule.php:80
1224 +#: includes/modules/Bloat/BloatModule.php:122
1167 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."
1168 1226 msgstr ""
1169 1227
1170 -#: includes/modules/Bloat/BloatModule.php:180
1228 +#: includes/modules/Bloat/BloatModule.php:380
1171 1229 msgid "Feeds are disabled."
1172 1230 msgstr ""
1173 1231
1174 -#: includes/modules/Bloat/BloatModule.php:229
1232 +#: includes/modules/Bloat/BloatModule.php:429
1175 1233 msgid "Anonymous REST access is disabled on this site."
1176 1234 msgstr ""
1177 1235
1178 1236 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
@@ -1237,56 +1295,96 @@
1237 1295 #: includes/modules/Cache/CacheModule.php:160
1238 1296 msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)."
1239 1297 msgstr ""
1240 1298
1241 -#: includes/modules/Cache/CacheModule.php:188
1299 +#: includes/modules/Cache/CacheModule.php:190
1242 1300 msgid "Excluded URLs"
1243 1301 msgstr ""
1244 1302
1245 -#: includes/modules/Cache/CacheModule.php:189
1303 +#: includes/modules/Cache/CacheModule.php:191
1246 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)."
1247 1305 msgstr ""
1248 1306
1249 -#: includes/modules/Cache/CacheModule.php:198
1307 +#: includes/modules/Cache/CacheModule.php:200
1250 1308 msgid "Excluded Cookies"
1251 1309 msgstr ""
1252 1310
1253 -#: includes/modules/Cache/CacheModule.php:199
1311 +#: includes/modules/Cache/CacheModule.php:201
1254 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."
1255 1313 msgstr ""
1256 1314
1257 -#: includes/modules/Cache/CacheModule.php:205
1315 +#: includes/modules/Cache/CacheModule.php:207
1258 1316 msgid "Bypass User Agents"
1259 1317 msgstr ""
1260 1318
1261 -#: includes/modules/Cache/CacheModule.php:206
1319 +#: includes/modules/Cache/CacheModule.php:208
1262 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."
1263 1321 msgstr ""
1264 1322
1265 -#: includes/modules/Cache/CacheModule.php:217
1323 +#: includes/modules/Cache/CacheModule.php:219
1266 1324 msgid "Ignored Query Parameters"
1267 1325 msgstr ""
1268 1326
1269 -#: includes/modules/Cache/CacheModule.php:218
1327 +#: includes/modules/Cache/CacheModule.php:220
1270 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."
1271 1329 msgstr ""
1272 1330
1273 -#: includes/modules/Cache/CacheModule.php:223
1331 +#: includes/modules/Cache/CacheModule.php:225
1274 1332 msgid "Purge After Updates"
1275 1333 msgstr ""
1276 1334
1277 -#: includes/modules/Cache/CacheModule.php:224
1335 +#: includes/modules/Cache/CacheModule.php:226
1278 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."
1279 1337 msgstr ""
1280 1338
1281 -#: includes/modules/Cache/CacheModule.php:229
1339 +#: includes/modules/Cache/CacheModule.php:231
1282 1340 msgid "Separate Mobile Cache"
1283 1341 msgstr ""
1284 1342
1285 -#: includes/modules/Cache/CacheModule.php:230
1343 +#: includes/modules/Cache/CacheModule.php:232
1286 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."
1287 1345 msgstr ""
1288 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 +
1289 1387 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1290 1388 msgid "Advanced Cache"
1291 1389 msgstr ""
1292 1390
@@ -1329,120 +1427,149 @@
1329 1427 #: includes/modules/Cdn/CdnModule.php:62
1330 1428 msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*"
1331 1429 msgstr ""
1332 1430
1333 -#: includes/modules/Cloudflare/CloudflareModule.php:40
1431 +#: includes/modules/Cloudflare/CloudflareModule.php:77
1334 1432 msgid "Cloudflare"
1335 1433 msgstr ""
1336 1434
1337 -#: includes/modules/Cloudflare/CloudflareModule.php:42
1435 +#: includes/modules/Cloudflare/CloudflareModule.php:79
1338 1436 msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1339 1437 msgstr ""
1340 1438
1341 -#: includes/modules/Cloudflare/CloudflareModule.php:65
1439 +#: includes/modules/Cloudflare/CloudflareModule.php:102
1342 1440 msgid "Enable Cloudflare integration"
1343 1441 msgstr ""
1344 1442
1345 -#: includes/modules/Cloudflare/CloudflareModule.php:66
1443 +#: includes/modules/Cloudflare/CloudflareModule.php:103
1346 1444 msgid "Use the credentials below to verify your zone and run purges."
1347 1445 msgstr ""
1348 1446
1349 -#: includes/modules/Cloudflare/CloudflareModule.php:76
1447 +#: includes/modules/Cloudflare/CloudflareModule.php:113
1350 1448 msgid "Authentication"
1351 1449 msgstr ""
1352 1450
1353 -#: includes/modules/Cloudflare/CloudflareModule.php:77
1451 +#: includes/modules/Cloudflare/CloudflareModule.php:114
1354 1452 msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1355 1453 msgstr ""
1356 1454
1357 -#: includes/modules/Cloudflare/CloudflareModule.php:83
1455 +#: includes/modules/Cloudflare/CloudflareModule.php:120
1358 1456 msgid "API Token"
1359 1457 msgstr ""
1360 1458
1361 -#: includes/modules/Cloudflare/CloudflareModule.php:84
1459 +#: includes/modules/Cloudflare/CloudflareModule.php:121
1362 1460 msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1363 1461 msgstr ""
1364 1462
1365 -#: includes/modules/Cloudflare/CloudflareModule.php:92
1463 +#: includes/modules/Cloudflare/CloudflareModule.php:129
1366 1464 msgid "Account Email"
1367 1465 msgstr ""
1368 1466
1369 -#: includes/modules/Cloudflare/CloudflareModule.php:93
1467 +#: includes/modules/Cloudflare/CloudflareModule.php:130
1370 1468 msgid "Only used when Authentication is set to Global API Key."
1371 1469 msgstr ""
1372 1470
1373 -#: includes/modules/Cloudflare/CloudflareModule.php:99
1471 +#: includes/modules/Cloudflare/CloudflareModule.php:136
1374 1472 msgid "Global API Key"
1375 1473 msgstr ""
1376 1474
1377 -#: includes/modules/Cloudflare/CloudflareModule.php:100
1475 +#: includes/modules/Cloudflare/CloudflareModule.php:137
1378 1476 msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1379 1477 msgstr ""
1380 1478
1381 -#: includes/modules/Cloudflare/CloudflareModule.php:106
1479 +#: includes/modules/Cloudflare/CloudflareModule.php:143
1382 1480 msgid "Zone ID"
1383 1481 msgstr ""
1384 1482
1385 -#: includes/modules/Cloudflare/CloudflareModule.php:107
1483 +#: includes/modules/Cloudflare/CloudflareModule.php:144
1386 1484 msgid "The 32-character hex Zone ID from your domain overview page."
1387 1485 msgstr ""
1388 1486
1389 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1487 +#: includes/modules/Cloudflare/CloudflareModule.php:150
1390 1488 msgid "Auto-purge Cloudflare on xSpeed purge"
1391 1489 msgstr ""
1392 1490
1393 -#: includes/modules/Cloudflare/CloudflareModule.php:114
1491 +#: includes/modules/Cloudflare/CloudflareModule.php:151
1394 1492 msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1395 1493 msgstr ""
1396 1494
1397 -#: includes/modules/Cloudflare/CloudflareModule.php:238
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
1398 1529 msgid "the Cloudflare integration is switched off"
1399 1530 msgstr ""
1400 1531
1401 -#: includes/modules/Cloudflare/CloudflareModule.php:241
1532 +#: includes/modules/Cloudflare/CloudflareModule.php:609
1402 1533 msgid "no zone ID or API credentials are configured"
1403 1534 msgstr ""
1404 1535
1405 1536 #. translators: %s: what asked for the purge.
1406 -#: includes/modules/Cloudflare/CloudflareModule.php:277
1537 +#: includes/modules/Cloudflare/CloudflareModule.php:645
1407 1538 #, php-format
1408 1539 msgid "Purged the Cloudflare edge cache (%s)"
1409 1540 msgstr ""
1410 1541
1411 1542 #. translators: 1: what asked for the purge, 2: failure reason.
1412 -#: includes/modules/Cloudflare/CloudflareModule.php:287
1543 +#: includes/modules/Cloudflare/CloudflareModule.php:655
1413 1544 #, php-format
1414 1545 msgid "Cloudflare purge failed (%1$s): %2$s"
1415 1546 msgstr ""
1416 1547
1417 -#: includes/modules/Cloudflare/CloudflareModule.php:289
1418 -msgid "unknown error"
1419 -msgstr ""
1420 -
1421 -#: includes/modules/Cloudflare/CloudflareModule.php:359
1548 +#: includes/modules/Cloudflare/CloudflareModule.php:727
1422 1549 msgid "Cloudflare is not fully configured."
1423 1550 msgstr ""
1424 1551
1425 -#: includes/modules/Cloudflare/CloudflareModule.php:360
1552 +#: includes/modules/Cloudflare/CloudflareModule.php:728
1426 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."
1427 1554 msgstr ""
1428 1555
1429 -#: includes/modules/Cloudflare/CloudflareModule.php:373
1556 +#: includes/modules/Cloudflare/CloudflareModule.php:741
1430 1557 msgid "Cloudflare purge is failing."
1431 1558 msgstr ""
1432 1559
1433 1560 #. translators: %s: the Cloudflare API error message, or empty.
1434 -#: includes/modules/Cloudflare/CloudflareModule.php:376
1561 +#: includes/modules/Cloudflare/CloudflareModule.php:744
1435 1562 #, php-format
1436 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."
1437 1564 msgstr ""
1438 1565
1439 -#: includes/modules/Cloudflare/CloudflareModule.php:385
1566 +#: includes/modules/Cloudflare/CloudflareModule.php:753
1440 1567 msgid "Cloudflare credentials were rejected."
1441 1568 msgstr ""
1442 1569
1443 1570 #. translators: %s: the Cloudflare API error message, or empty.
1444 -#: includes/modules/Cloudflare/CloudflareModule.php:388
1571 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1445 1572 #, php-format
1446 1573 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1447 1574 msgstr ""
1448 1575
@@ -1469,9 +1596,35 @@
1469 1596 #: includes/modules/Database/DatabaseModule.php:57
1470 1597 msgid "Which cleanup categories run on the schedule above. Leave empty to keep auto-cleanup disabled even if a schedule is set."
1471 1598 msgstr ""
1472 1599
1473 -#: includes/modules/Database/DatabaseModule.php:149
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
1474 1627 msgid "Provide at least one cleanup type."
1475 1628 msgstr ""
1476 1629
1477 1630 #: includes/modules/Fonts/FontsModule.php:35
@@ -1562,74 +1715,110 @@
1562 1715 #: includes/modules/Health/HealthModule.php:66
1563 1716 msgid "xSpeed static-rewrite cache"
1564 1717 msgstr ""
1565 1718
1566 -#: includes/modules/Health/HealthModule.php:81
1719 +#: includes/modules/Health/HealthModule.php:125
1567 1720 msgid "xSpeed static-rewrite cache is active"
1568 1721 msgstr ""
1569 1722
1570 -#: includes/modules/Health/HealthModule.php:84
1723 +#: includes/modules/Health/HealthModule.php:128
1571 1724 #: assets/admin.js
1572 1725 msgid "Performance"
1573 1726 msgstr ""
1574 1727
1575 -#: includes/modules/Health/HealthModule.php:87
1728 +#: includes/modules/Health/HealthModule.php:131
1576 1729 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1577 1730 msgstr ""
1578 1731
1579 -#: includes/modules/Health/HealthModule.php:93
1732 +#: includes/modules/Health/HealthModule.php:137
1580 1733 msgid "xSpeed cache is disabled"
1581 1734 msgstr ""
1582 1735
1583 -#: includes/modules/Health/HealthModule.php:95
1736 +#: includes/modules/Health/HealthModule.php:139
1584 1737 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1585 1738 msgstr ""
1586 1739
1587 -#: includes/modules/Health/HealthModule.php:108
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
1588 1749 msgid "xSpeed is serving cache hits through PHP"
1589 1750 msgstr ""
1590 1751
1591 -#: includes/modules/Health/HealthModule.php:110
1752 +#: includes/modules/Health/HealthModule.php:161
1592 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."
1593 1754 msgstr ""
1594 1755
1595 -#: includes/modules/Health/HealthModule.php:112
1756 +#: includes/modules/Health/HealthModule.php:163
1757 +#: includes/modules/Health/HealthModule.php:202
1596 1758 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1597 1759 msgstr ""
1598 1760
1599 -#: includes/modules/Health/HealthModule.php:114
1761 +#: includes/modules/Health/HealthModule.php:165
1762 +#: includes/modules/Health/HealthModule.php:204
1600 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."
1601 1764 msgstr ""
1602 1765
1603 -#: includes/modules/Health/HealthModule.php:116
1766 +#: includes/modules/Health/HealthModule.php:169
1604 1767 msgid "xSpeed .htaccess rewrite block is missing"
1605 1768 msgstr ""
1606 1769
1607 -#: includes/modules/Health/HealthModule.php:118
1770 +#: includes/modules/Health/HealthModule.php:171
1608 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."
1609 1772 msgstr ""
1610 1773
1611 -#: includes/modules/Health/HealthModule.php:125
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
1612 1801 msgid "xSpeed nginx server config required"
1613 1802 msgstr ""
1614 1803
1615 -#: includes/modules/Health/HealthModule.php:127
1804 +#: includes/modules/Health/HealthModule.php:234
1616 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:"
1617 1806 msgstr ""
1618 1807
1619 -#: includes/modules/Health/HealthModule.php:136
1808 +#: includes/modules/Health/HealthModule.php:243
1620 1809 msgid "xSpeed PHP drop-in cache active"
1621 1810 msgstr ""
1622 1811
1623 -#: includes/modules/Health/HealthModule.php:138
1812 +#: includes/modules/Health/HealthModule.php:245
1624 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."
1625 1814 msgstr ""
1626 1815
1627 -#: includes/modules/Health/HealthModule.php:144
1816 +#: includes/modules/Health/HealthModule.php:251
1628 1817 msgid "Health"
1629 1818 msgstr ""
1630 1819
1631 -#: includes/modules/Health/HealthModule.php:146
1820 +#: includes/modules/Health/HealthModule.php:253
1632 1821 msgid "Diagnostics, hit ratio, and recent cache activity."
1633 1822 msgstr ""
1634 1823
1635 1824 #: includes/modules/Heartbeat/HeartbeatModule.php:38
@@ -1715,29 +1904,37 @@
1715 1904 #: includes/modules/Lazy/LazyModule.php:78
1716 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."
1717 1906 msgstr ""
1718 1907
1719 -#: includes/modules/Lazy/LazyModule.php:85
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
1720 1917 msgid "Eager-load First N Images"
1721 1918 msgstr ""
1722 1919
1723 -#: includes/modules/Lazy/LazyModule.php:86
1724 -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."
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."
1725 1922 msgstr ""
1726 1923
1727 -#: includes/modules/Lazy/LazyModule.php:91
1924 +#: includes/modules/Lazy/LazyModule.php:97
1728 1925 msgid "Add Missing Image Dimensions"
1729 1926 msgstr ""
1730 1927
1731 -#: includes/modules/Lazy/LazyModule.php:92
1928 +#: includes/modules/Lazy/LazyModule.php:98
1732 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."
1733 1930 msgstr ""
1734 1931
1735 -#: includes/modules/Lazy/LazyModule.php:98
1932 +#: includes/modules/Lazy/LazyModule.php:104
1736 1933 msgid "Excluded Images"
1737 1934 msgstr ""
1738 1935
1739 -#: includes/modules/Lazy/LazyModule.php:99
1936 +#: includes/modules/Lazy/LazyModule.php:105
1740 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."
1741 1938 msgstr ""
1742 1939
1743 1940 #. translators: %s: command name.
@@ -1745,88 +1942,92 @@
1745 1942 #, php-format
1746 1943 msgid "Unknown command: %s. Call list_commands to see what is available."
1747 1944 msgstr ""
1748 1945
1749 -#: includes/modules/Mcp/McpModule.php:111
1946 +#: includes/modules/Mcp/McpModule.php:149
1750 1947 #: assets/admin.js
1751 1948 msgid "MCP Server"
1752 1949 msgstr ""
1753 1950
1754 -#: includes/modules/Mcp/McpModule.php:113
1755 -msgid "Control this site's cache from Claude and other AI agents."
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."
1756 1953 msgstr ""
1757 1954
1758 -#: includes/modules/Mcp/McpModule.php:979
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
1759 1960 msgid "Invalid or expired attach request."
1760 1961 msgstr ""
1761 1962
1762 -#: includes/modules/Mcp/McpModule.php:1093
1963 +#: includes/modules/Mcp/McpModule.php:1423
1763 1964 msgid "You must be an administrator to authorize an AI agent to control this site."
1764 1965 msgstr ""
1765 1966
1766 -#: includes/modules/Mcp/McpModule.php:1100
1967 +#: includes/modules/Mcp/McpModule.php:1430
1767 1968 msgid "Security check failed. Please try connecting again."
1768 1969 msgstr ""
1769 1970
1770 -#: includes/modules/Mcp/McpModule.php:1227
1971 +#: includes/modules/Mcp/McpModule.php:1557
1771 1972 msgid "Read-only — inspect cache status and settings."
1772 1973 msgstr ""
1773 1974
1774 -#: includes/modules/Mcp/McpModule.php:1228
1975 +#: includes/modules/Mcp/McpModule.php:1558
1775 1976 msgid "Read & write — purge caches, toggle caching, and change settings."
1776 1977 msgstr ""
1777 1978
1778 -#: includes/modules/Mcp/McpModule.php:1229
1979 +#: includes/modules/Mcp/McpModule.php:1559
1779 1980 msgid "An AI agent"
1780 1981 msgstr ""
1781 1982
1782 -#: includes/modules/Mcp/McpModule.php:1248
1983 +#: includes/modules/Mcp/McpModule.php:1578
1783 1984 msgid "Authorize AI access"
1784 1985 msgstr ""
1785 1986
1786 -#: includes/modules/Mcp/McpModule.php:1259
1987 +#: includes/modules/Mcp/McpModule.php:1589
1787 1988 msgid "Connect to xSpeed"
1788 1989 msgstr ""
1789 1990
1790 1991 #. translators: %s: AI client name.
1791 -#: includes/modules/Mcp/McpModule.php:1261
1992 +#: includes/modules/Mcp/McpModule.php:1591
1792 1993 #, php-format
1793 1994 msgid "%s wants to manage the cache on this site."
1794 1995 msgstr ""
1795 1996
1796 -#: includes/modules/Mcp/McpModule.php:1262
1997 +#: includes/modules/Mcp/McpModule.php:1592
1797 1998 msgid "Site"
1798 1999 msgstr ""
1799 2000
1800 -#: includes/modules/Mcp/McpModule.php:1263
2001 +#: includes/modules/Mcp/McpModule.php:1593
1801 2002 msgid "Signed in as"
1802 2003 msgstr ""
1803 2004
1804 -#: includes/modules/Mcp/McpModule.php:1264
2005 +#: includes/modules/Mcp/McpModule.php:1594
1805 2006 msgid "Access"
1806 2007 msgstr ""
1807 2008
1808 -#: includes/modules/Mcp/McpModule.php:1269
2009 +#: includes/modules/Mcp/McpModule.php:1599
1809 2010 msgid "Deny"
1810 2011 msgstr ""
1811 2012
1812 -#: includes/modules/Mcp/McpModule.php:1270
2013 +#: includes/modules/Mcp/McpModule.php:1600
1813 2014 msgid "Approve"
1814 2015 msgstr ""
1815 2016
1816 -#: includes/modules/Mcp/McpModule.php:1280
2017 +#: includes/modules/Mcp/McpModule.php:1610
1817 2018 msgid "Authorization error"
1818 2019 msgstr ""
1819 2020
1820 -#: includes/modules/Mcp/McpModule.php:1283
2021 +#: includes/modules/Mcp/McpModule.php:1613
1821 2022 msgid "Could not authorize"
1822 2023 msgstr ""
1823 2024
1824 -#: includes/modules/Mcp/McpModule.php:1513
2025 +#: includes/modules/Mcp/McpModule.php:1843
1825 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."
1826 2027 msgstr ""
1827 2028
1828 -#: includes/modules/Mcp/McpModule.php:1514
2029 +#: includes/modules/Mcp/McpModule.php:1844
1829 2030 msgid "No AI assistant is connected. This module counts as on once you connect one."
1830 2031 msgstr ""
1831 2032
1832 2033 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1845,47 +2046,47 @@
1845 2046 #: assets/admin.js
1846 2047 msgid "The test could not be started."
1847 2048 msgstr ""
1848 2049
1849 -#: includes/modules/Mcp/Mcp_OAuth.php:213
2050 +#: includes/modules/Mcp/Mcp_OAuth.php:261
1850 2051 msgid "Too many client registrations. Try again later."
1851 2052 msgstr ""
1852 2053
1853 2054 #. translators: %d: maximum number of redirect URIs.
1854 -#: includes/modules/Mcp/Mcp_OAuth.php:229
2055 +#: includes/modules/Mcp/Mcp_OAuth.php:277
1855 2056 #, php-format
1856 2057 msgid "At most %d redirect_uris are allowed."
1857 2058 msgstr ""
1858 2059
1859 -#: includes/modules/Mcp/Mcp_OAuth.php:241
2060 +#: includes/modules/Mcp/Mcp_OAuth.php:289
1860 2061 msgid "At least one valid redirect_uri is required."
1861 2062 msgstr ""
1862 2063
1863 -#: includes/modules/Mcp/Mcp_OAuth.php:278
2064 +#: includes/modules/Mcp/Mcp_OAuth.php:326
1864 2065 msgid "Client registration limit reached."
1865 2066 msgstr ""
1866 2067
1867 -#: includes/modules/Mcp/Mcp_OAuth.php:297
2068 +#: includes/modules/Mcp/Mcp_OAuth.php:345
1868 2069 msgid "The client registration could not be stored."
1869 2070 msgstr ""
1870 2071
1871 -#: includes/modules/Mcp/Mcp_OAuth.php:336
2072 +#: includes/modules/Mcp/Mcp_OAuth.php:384
1872 2073 msgid "Unknown client_id."
1873 2074 msgstr ""
1874 2075
1875 -#: includes/modules/Mcp/Mcp_OAuth.php:340
2076 +#: includes/modules/Mcp/Mcp_OAuth.php:388
1876 2077 msgid "redirect_uri does not match a registered value."
1877 2078 msgstr ""
1878 2079
1879 -#: includes/modules/Mcp/Mcp_OAuth.php:343
2080 +#: includes/modules/Mcp/Mcp_OAuth.php:391
1880 2081 msgid "Only response_type=code is supported."
1881 2082 msgstr ""
1882 2083
1883 -#: includes/modules/Mcp/Mcp_OAuth.php:347
2084 +#: includes/modules/Mcp/Mcp_OAuth.php:395
1884 2085 msgid "PKCE with code_challenge_method=S256 is required."
1885 2086 msgstr ""
1886 2087
1887 -#: includes/modules/Mcp/Mcp_Pairing.php:408
2088 +#: includes/modules/Mcp/Mcp_Pairing.php:451
1888 2089 msgid "No active MCP connection to change. Connect first."
1889 2090 msgstr ""
1890 2091
1891 2092 #. translators: %s: tool name.
@@ -2099,9 +2300,9 @@
2099 2300 msgid "Migrate"
2100 2301 msgstr ""
2101 2302
2102 2303 #: includes/modules/Migration/MigrationModule.php:548
2103 -#: includes/modules/Minify/MinifyModule.php:35
2304 +#: includes/modules/Minify/MinifyModule.php:36
2104 2305 msgid "Minify"
2105 2306 msgstr ""
2106 2307
2107 2308 #: includes/modules/Migration/MigrationModule.php:549
@@ -2192,121 +2393,139 @@
2192 2393 #, php-format
2193 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."
2194 2395 msgstr ""
2195 2396
2196 -#: includes/modules/Minify/MinifyModule.php:34
2397 +#: includes/modules/Minify/MinifyModule.php:35
2197 2398 msgid "CSS & JavaScript"
2198 2399 msgstr ""
2199 2400
2200 -#: includes/modules/Minify/MinifyModule.php:37
2401 +#: includes/modules/Minify/MinifyModule.php:38
2201 2402 msgid "Strip whitespace and rewrite enqueued CSS / JS."
2202 2403 msgstr ""
2203 2404
2204 -#: includes/modules/Minify/MinifyModule.php:50
2405 +#: includes/modules/Minify/MinifyModule.php:51
2205 2406 msgid "Minify HTML"
2206 2407 msgstr ""
2207 2408
2208 -#: includes/modules/Minify/MinifyModule.php:55
2409 +#: includes/modules/Minify/MinifyModule.php:56
2209 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."
2210 2411 msgstr ""
2211 2412
2212 -#: includes/modules/Minify/MinifyModule.php:60
2413 +#: includes/modules/Minify/MinifyModule.php:61
2213 2414 msgid "Minify CSS"
2214 2415 msgstr ""
2215 2416
2216 -#: includes/modules/Minify/MinifyModule.php:61
2417 +#: includes/modules/Minify/MinifyModule.php:62
2217 2418 msgid "Compress and rewrite enqueued local stylesheets. External CSS is left untouched."
2218 2419 msgstr ""
2219 2420
2220 -#: includes/modules/Minify/MinifyModule.php:66
2421 +#: includes/modules/Minify/MinifyModule.php:67
2221 2422 msgid "Minify JavaScript"
2222 2423 msgstr ""
2223 2424
2224 -#: includes/modules/Minify/MinifyModule.php:67
2425 +#: includes/modules/Minify/MinifyModule.php:68
2225 2426 msgid "Compress enqueued local scripts. Disable if you hit script-loading conflicts on the frontend."
2226 2427 msgstr ""
2227 2428
2228 -#: includes/modules/Minify/MinifyModule.php:72
2429 +#: includes/modules/Minify/MinifyModule.php:73
2229 2430 msgid "Defer JavaScript"
2230 2431 msgstr ""
2231 2432
2232 -#: includes/modules/Minify/MinifyModule.php:73
2433 +#: includes/modules/Minify/MinifyModule.php:74
2233 2434 msgid "Add defer=\"defer\" to enqueued script tags so they execute after HTML parsing. jQuery + its hard dependencies are skipped automatically."
2234 2435 msgstr ""
2235 2436
2236 -#: includes/modules/Minify/MinifyModule.php:78
2437 +#: includes/modules/Minify/MinifyModule.php:79
2237 2438 msgid "Delay JavaScript Until Interaction"
2238 2439 msgstr ""
2239 2440
2240 -#: includes/modules/Minify/MinifyModule.php:79
2241 -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."
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."
2242 2443 msgstr ""
2243 2444
2244 -#: includes/modules/Minify/MinifyModule.php:84
2445 +#: includes/modules/Minify/MinifyModule.php:85
2245 2446 msgid "Load CSS Asynchronously"
2246 2447 msgstr ""
2247 2448
2248 -#: includes/modules/Minify/MinifyModule.php:85
2449 +#: includes/modules/Minify/MinifyModule.php:86
2249 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."
2250 2451 msgstr ""
2251 2452
2252 -#: includes/modules/Minify/MinifyModule.php:90
2453 +#: includes/modules/Minify/MinifyModule.php:91
2253 2454 msgid "Remove Asset Query Strings"
2254 2455 msgstr ""
2255 2456
2256 -#: includes/modules/Minify/MinifyModule.php:91
2457 +#: includes/modules/Minify/MinifyModule.php:92
2257 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."
2258 2459 msgstr ""
2259 2460
2260 -#: includes/modules/Minify/MinifyModule.php:97
2461 +#: includes/modules/Minify/MinifyModule.php:98
2261 2462 msgid "Defer / Delay Exclusions"
2262 2463 msgstr ""
2263 2464
2264 -#: includes/modules/Minify/MinifyModule.php:98
2265 -msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). One per line."
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."
2266 2467 msgstr ""
2267 2468
2268 -#: includes/modules/Minify/MinifyModule.php:112
2469 +#: includes/modules/Minify/MinifyModule.php:113
2269 2470 msgid "Delay Only These Scripts"
2270 2471 msgstr ""
2271 2472
2272 -#: includes/modules/Minify/MinifyModule.php:113
2273 -msgid "Script handles OR URL substrings. When non-empty, matching scripts are delayed, plus the known third-party tags xSpeed recognises on its own (analytics, tag managers, chat widgets, review embeds, error trackers) — so a heavy vendor script is postponed even when it is not listed here. Leave empty to delay all scripts (minus the exclusions above). Handles are the more reliable selector — a URL substring has to match the script's original URL, and minification rewrites that to a hashed cache path. One per line."
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."
2274 2475 msgstr ""
2275 2476
2276 -#: includes/modules/Minify/MinifyModule.php:121
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
2277 2496 msgid "Delay Failsafe Timeout (ms)"
2278 2497 msgstr ""
2279 2498
2280 -#: includes/modules/Minify/MinifyModule.php:123
2499 +#: includes/modules/Minify/MinifyModule.php:137
2281 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."
2282 2501 msgstr ""
2283 2502
2284 -#: includes/modules/Minify/MinifyModule.php:129
2503 +#: includes/modules/Minify/MinifyModule.php:143
2285 2504 msgid "Combine CSS Files"
2286 2505 msgstr ""
2287 2506
2288 -#: includes/modules/Minify/MinifyModule.php:130
2507 +#: includes/modules/Minify/MinifyModule.php:144
2289 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."
2290 2509 msgstr ""
2291 2510
2292 -#: includes/modules/Minify/MinifyModule.php:135
2511 +#: includes/modules/Minify/MinifyModule.php:149
2293 2512 msgid "Combine JavaScript Files"
2294 2513 msgstr ""
2295 2514
2296 -#: includes/modules/Minify/MinifyModule.php:136
2515 +#: includes/modules/Minify/MinifyModule.php:150
2297 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."
2298 2517 msgstr ""
2299 2518
2300 -#: includes/modules/Minify/MinifyModule.php:273
2519 +#: includes/modules/Minify/MinifyModule.php:287
2301 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."
2302 2521 msgstr ""
2303 2522
2304 -#: includes/modules/Minify/MinifyModule.php:274
2523 +#: includes/modules/Minify/MinifyModule.php:288
2305 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."
2306 2525 msgstr ""
2307 2526
2308 -#: includes/modules/Minify/MinifyModule.php:279
2527 +#: includes/modules/Minify/MinifyModule.php:293
2309 2528 msgid "HTML minification is on but currently paused"
2310 2529 msgstr ""
2311 2530
2312 2531 #: includes/modules/ObjectCache/ObjectCacheModule.php:34
@@ -2420,60 +2639,86 @@
2420 2639 #: includes/modules/Preloader/PreloaderModule.php:35
2421 2640 msgid "Crawl the sitemap to warm cache so visitors never hit a cold MISS."
2422 2641 msgstr ""
2423 2642
2424 -#: includes/modules/Preloader/PreloaderModule.php:48
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
2425 2654 msgid "Enable Preloader"
2426 2655 msgstr ""
2427 2656
2428 -#: includes/modules/Preloader/PreloaderModule.php:49
2657 +#: includes/modules/Preloader/PreloaderModule.php:78
2429 2658 msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2430 2659 msgstr ""
2431 2660
2432 -#: includes/modules/Preloader/PreloaderModule.php:61
2661 +#: includes/modules/Preloader/PreloaderModule.php:90
2433 2662 msgid "Schedule"
2434 2663 msgstr ""
2435 2664
2436 -#: includes/modules/Preloader/PreloaderModule.php:62
2665 +#: includes/modules/Preloader/PreloaderModule.php:91
2437 2666 msgid "How often to start a fresh crawl. Manual means you trigger it from the dashboard."
2438 2667 msgstr ""
2439 2668
2440 -#: includes/modules/Preloader/PreloaderModule.php:70
2669 +#: includes/modules/Preloader/PreloaderModule.php:99
2441 2670 msgid "Batch Size"
2442 2671 msgstr ""
2443 2672
2444 -#: includes/modules/Preloader/PreloaderModule.php:71
2673 +#: includes/modules/Preloader/PreloaderModule.php:100
2445 2674 msgid "URLs warmed per cron tick. Higher = faster crawl, more load on the origin."
2446 2675 msgstr ""
2447 2676
2448 -#: includes/modules/Preloader/PreloaderModule.php:77
2677 +#: includes/modules/Preloader/PreloaderModule.php:106
2449 2678 msgid "Sitemap URL (optional)"
2450 2679 msgstr ""
2451 2680
2452 -#: includes/modules/Preloader/PreloaderModule.php:78
2681 +#: includes/modules/Preloader/PreloaderModule.php:107
2453 2682 msgid "Override the auto-detected WordPress core sitemap (/wp-sitemap.xml). Leave blank for default."
2454 2683 msgstr ""
2455 2684
2456 -#: includes/modules/Preloader/PreloaderModule.php:84
2685 +#: includes/modules/Preloader/PreloaderModule.php:113
2457 2686 msgid "Warm new content immediately"
2458 2687 msgstr ""
2459 2688
2460 -#: includes/modules/Preloader/PreloaderModule.php:85
2689 +#: includes/modules/Preloader/PreloaderModule.php:114
2461 2690 msgid "When a post or page is published, fetch it once so the first visitor sees a cache HIT, not a cold MISS."
2462 2691 msgstr ""
2463 2692
2464 -#: includes/modules/Preloader/PreloaderModule.php:91
2693 +#: includes/modules/Preloader/PreloaderModule.php:120
2465 2694 msgid "Re-warm after comments"
2466 2695 msgstr ""
2467 2696
2468 -#: includes/modules/Preloader/PreloaderModule.php:92
2697 +#: includes/modules/Preloader/PreloaderModule.php:121
2469 2698 msgid "Re-warm a page after a comment is posted (Cache purges the page on comment; this fetches it back into cache)."
2470 2699 msgstr ""
2471 2700
2472 -#: includes/modules/Preloader/PreloaderModule.php:268
2701 +#: includes/modules/Preloader/PreloaderModule.php:297
2473 2702 msgid "Enable the preloader before starting a crawl."
2474 2703 msgstr ""
2475 2704
2705 +#: includes/modules/Privacy/PrivacyModule.php:47
2706 +msgid "Privacy & usage data"
2707 +msgstr ""
2708 +
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 +
2476 2721 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2477 2722 msgid "Resource Hints"
2478 2723 msgstr ""
2479 2724
@@ -2636,8 +2881,48 @@
2636 2881 #: includes/modules/Support/SupportModule.php:41
2637 2882 msgid "Where the \"Open ticket\" button takes the user."
2638 2883 msgstr ""
2639 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 +
2640 2925 #: xspeed.php:220
2641 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."
2642 2927 msgstr ""
2643 2928
@@ -2664,8 +2949,13 @@
2664 2949 #: assets/admin.js
2665 2950 msgid "%s currently owns the page-cache file. xSpeed will replace it and serve the cached pages itself."
2666 2951 msgstr ""
2667 2952
2953 +#. Source: src/components/purgeOutcome.ts:45
2954 +#: assets/admin.js
2955 +msgid "%s: %s"
2956 +msgstr ""
2957 +
2668 2958 #. Source: src/components/health/HealthCard.tsx:172
2669 2959 #: assets/admin.js
2670 2960 msgid "24-hour cache request volume"
2671 2961 msgstr ""
@@ -2689,9 +2979,9 @@
2689 2979 #: assets/admin.js
2690 2980 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2691 2981 msgstr ""
2692 2982
2693 -#. Source: src/components/cache/CacheHero.tsx:243
2983 +#. Source: src/components/cache/CacheHero.tsx:245
2694 2984 #: assets/admin.js
2695 2985 msgid "Absorbed"
2696 2986 msgstr ""
2697 2987
@@ -2700,9 +2990,9 @@
2700 2990 msgid "Action"
2701 2991 msgstr ""
2702 2992
2703 2993 #. Source: src/components/Sidebar.tsx:424
2704 -#. Source: src/components/Sidebar.tsx:442
2994 +#. Source: src/components/Sidebar.tsx:445
2705 2995 #. Source: src/upsell/ProOverview.tsx:73
2706 2996 #: assets/admin.js
2707 2997 msgid "Activate License"
2708 2998 msgstr ""
@@ -2707,10 +2997,10 @@
2707 2997 msgid "Activate License"
2708 2998 msgstr ""
2709 2999
2710 3000 #. Source: src/upsell/LockedPanel.tsx:104
2711 -#. Source: src/upsell/LockedSection.tsx:87
2712 -#. Source: src/upsell/ProDemo.tsx:91
3001 +#. Source: src/upsell/LockedSection.tsx:88
3002 +#. Source: src/upsell/ProDemo.tsx:92
2713 3003 #: assets/admin.js
2714 3004 msgid "Activate your license"
2715 3005 msgstr ""
2716 3006
@@ -2724,9 +3014,9 @@
2724 3014 #: assets/admin.js
2725 3015 msgid "Add site form"
2726 3016 msgstr ""
2727 3017
2728 -#. Source: src/components/cache/StatDrilldown.tsx:197
3018 +#. Source: src/components/cache/StatDrilldown.tsx:192
2729 3019 #: assets/admin.js
2730 3020 msgid "Address not recorded"
2731 3021 msgstr ""
2732 3022
@@ -2734,9 +3024,9 @@
2734 3024 #: assets/admin.js
2735 3025 msgid "After"
2736 3026 msgstr ""
2737 3027
2738 -#. Source: src/components/cache/StatDrilldown.tsx:168
3028 +#. Source: src/components/cache/StatDrilldown.tsx:163
2739 3029 #: assets/admin.js
2740 3030 msgid "Age"
2741 3031 msgstr ""
2742 3032
@@ -2751,14 +3041,24 @@
2751 3041 #: assets/admin.js
2752 3042 msgid "AI connection active"
2753 3043 msgstr ""
2754 3044
2755 -#. Source: src/components/overview/Recommendations.tsx:181
3045 +#. Source: src/components/TopBar.tsx:175
2756 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
2757 3057 msgid "Also worth a look"
2758 3058 msgstr ""
2759 3059
2760 -#. Source: src/components/cache/CacheHero.tsx:236
3060 +#. Source: src/components/cache/CacheHero.tsx:231
2761 3061 #: assets/admin.js
2762 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."
2763 3063 msgstr ""
2764 3064
@@ -2802,19 +3102,19 @@
2802 3102 #: assets/admin.js
2803 3103 msgid "Audit failed"
2804 3104 msgstr ""
2805 3105
2806 -#. Source: src/components/cache/StatDrilldown.tsx:330
3106 +#. Source: src/components/cache/StatDrilldown.tsx:325
2807 3107 #: assets/admin.js
2808 3108 msgid "Automatic cleanup has not run yet — first sweep in %s."
2809 3109 msgstr ""
2810 3110
2811 -#. Source: src/components/cache/StatDrilldown.tsx:322
3111 +#. Source: src/components/cache/StatDrilldown.tsx:317
2812 3112 #: assets/admin.js
2813 3113 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2814 3114 msgstr ""
2815 3115
2816 -#. Source: src/components/overview/MetricGrid.tsx:47
3116 +#. Source: src/components/overview/MetricGrid.tsx:57
2817 3117 #: assets/admin.js
2818 3118 msgid "Avg saved"
2819 3119 msgstr ""
2820 3120
@@ -2827,34 +3127,34 @@
2827 3127 #: assets/admin.js
2828 3128 msgid "Benchmark failed"
2829 3129 msgstr ""
2830 3130
2831 -#. Source: src/components/cache/TrendCharts.tsx:258
3131 +#. Source: src/components/cache/TrendCharts.tsx:263
2832 3132 #: assets/admin.js
2833 3133 msgid "Benchmark trend"
2834 3134 msgstr ""
2835 3135
2836 -#. Source: src/components/cache/TrendCharts.tsx:134
3136 +#. Source: src/components/cache/TrendCharts.tsx:139
2837 3137 #: assets/admin.js
2838 3138 msgid "Benchmark: cached vs uncached (ms)"
2839 3139 msgstr ""
2840 3140
2841 -#. Source: src/components/overview/Recommendations.tsx:230
3141 +#. Source: src/components/overview/Recommendations.tsx:233
2842 3142 #: assets/admin.js
2843 3143 msgid "Book"
2844 3144 msgstr ""
2845 3145
2846 -#. Source: src/components/overview/Recommendations.tsx:221
3146 +#. Source: src/components/overview/Recommendations.tsx:224
2847 3147 #: assets/admin.js
2848 3148 msgid "Book a free setup review with our team."
2849 3149 msgstr ""
2850 3150
2851 -#. Source: src/components/cache/CacheHero.tsx:247
3151 +#. Source: src/components/cache/CacheHero.tsx:249
2852 3152 #: assets/admin.js
2853 3153 msgid "bot / 404 requests in 24h — excluded from the hit ratio."
2854 3154 msgstr ""
2855 3155
2856 -#. Source: src/components/TopBar.tsx:77
3156 +#. Source: src/components/TopBar.tsx:81
2857 3157 #: assets/admin.js
2858 3158 msgid "Breadcrumb"
2859 3159 msgstr ""
2860 3160
@@ -2862,15 +3162,34 @@
2862 3162 #: assets/admin.js
2863 3163 msgid "Browse all"
2864 3164 msgstr ""
2865 3165
2866 -#. Source: src/components/sidebarGroups.ts:69
3166 +#. Source: src/components/sidebarGroups.ts:79
2867 3167 #: assets/admin.js
2868 3168 msgid "Cache"
2869 3169 msgstr ""
2870 3170
2871 -#. Source: src/App.tsx:309
3171 +#. Source: src/components/purgeOutcome.ts:84
2872 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."
3188 +msgstr ""
3189 +
3190 +#. Source: src/App.tsx:331
3191 +#: assets/admin.js
2873 3192 msgid "Cache could not be enabled."
2874 3193 msgstr ""
2875 3194
2876 3195 #. Source: src/components/health/HealthHero.tsx:28
@@ -2877,19 +3196,19 @@
2877 3196 #: assets/admin.js
2878 3197 msgid "Cache coverage"
2879 3198 msgstr ""
2880 3199
2881 -#. Source: src/App.tsx:321
3200 +#. Source: src/App.tsx:343
2882 3201 #: assets/admin.js
2883 3202 msgid "Cache disabled"
2884 3203 msgstr ""
2885 3204
2886 -#. Source: src/App.tsx:321
3205 +#. Source: src/App.tsx:343
2887 3206 #: assets/admin.js
2888 3207 msgid "Cache enabled"
2889 3208 msgstr ""
2890 3209
2891 -#. Source: src/App.tsx:315
3210 +#. Source: src/App.tsx:337
2892 3211 #: assets/admin.js
2893 3212 msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health."
2894 3213 msgstr ""
2895 3214
@@ -2922,15 +3241,20 @@
2922 3241 #: assets/admin.js
2923 3242 msgid "Cache optimized"
2924 3243 msgstr ""
2925 3244
2926 -#. Source: src/App.tsx:339
3245 +#. Source: src/components/purgeOutcome.ts:53
2927 3246 #: assets/admin.js
3247 +msgid "Cache partly cleared."
3248 +msgstr ""
3249 +
3250 +#. Source: src/components/purgeOutcome.ts:29
3251 +#: assets/admin.js
2928 3252 msgid "Cache purged"
2929 3253 msgstr ""
2930 3254
2931 3255 #. Source: src/components/health/HealthHero.tsx:30
2932 -#. Source: src/components/overview/MetricGrid.tsx:46
3256 +#. Source: src/components/overview/MetricGrid.tsx:56
2933 3257 #: assets/admin.js
2934 3258 msgid "Cache size"
2935 3259 msgstr ""
2936 3260
@@ -2943,16 +3267,16 @@
2943 3267 #: assets/admin.js
2944 3268 msgid "Cache, compression & more"
2945 3269 msgstr ""
2946 3270
2947 -#. Source: src/components/cache/TrendCharts.tsx:270
3271 +#. Source: src/components/cache/TrendCharts.tsx:275
2948 3272 #: assets/admin.js
2949 3273 msgid "cached"
2950 3274 msgstr ""
2951 3275
2952 -#. Source: src/components/cache/StatDrilldown.tsx:145
3276 +#. Source: src/components/cache/StatDrilldown.tsx:140
2953 3277 #. Source: src/components/health/HealthHero.tsx:29
2954 -#. Source: src/components/overview/MetricGrid.tsx:45
3278 +#. Source: src/components/overview/MetricGrid.tsx:55
2955 3279 #: assets/admin.js
2956 3280 msgid "Cached pages"
2957 3281 msgstr ""
2958 3282
@@ -2971,14 +3295,14 @@
2971 3295 msgid "Caching — loading"
2972 3296 msgstr ""
2973 3297
2974 3298 #. Source: src/components/CacheSwitch.tsx:261
2975 -#. Source: src/components/cache/CacheHero.tsx:182
3299 +#. Source: src/components/cache/CacheHero.tsx:177
2976 3300 #: assets/admin.js
2977 3301 msgid "Cancel"
2978 3302 msgstr ""
2979 3303
2980 -#. Source: src/components/sidebarGroups.ts:85
3304 +#. Source: src/components/sidebarGroups.ts:95
2981 3305 #: assets/admin.js
2982 3306 msgid "CDN and Cloudflare edge delivery."
2983 3307 msgstr ""
2984 3308
@@ -3011,8 +3335,18 @@
3011 3335 #: assets/admin.js
3012 3336 msgid "Clear"
3013 3337 msgstr ""
3014 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 +
3015 3349 #. Source: src/components/cache/CacheBenchmark.tsx:126
3016 3350 #: assets/admin.js
3017 3351 msgid "Click \"Run benchmark\" to compare load times."
3018 3352 msgstr ""
@@ -3063,10 +3397,15 @@
3063 3397 #: assets/admin.js
3064 3398 msgid "Connect"
3065 3399 msgstr ""
3066 3400
3067 -#. Source: src/components/TopBar.tsx:142
3401 +#. Source: src/components/sidebarGroups.ts:120
3068 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
3069 3408 msgid "Connect Hub"
3070 3409 msgstr ""
3071 3410
3072 3411 #. Source: src/components/score/ConnectHubModal.tsx:113
@@ -3179,9 +3518,9 @@
3179 3518 #: assets/admin.js
3180 3519 msgid "Could not check the test status."
3181 3520 msgstr ""
3182 3521
3183 -#. Source: src/components/sidebarGroups.ts:99
3522 +#. Source: src/components/sidebarGroups.ts:109
3184 3523 #: assets/admin.js
3185 3524 msgid "Database cleanup, migration and logs."
3186 3525 msgstr ""
3187 3526
@@ -3252,19 +3591,19 @@
3252 3591 #: assets/admin.js
3253 3592 msgid "failed"
3254 3593 msgstr ""
3255 3594
3256 -#. Source: src/App.tsx:325
3595 +#. Source: src/App.tsx:347
3257 3596 #: assets/admin.js
3258 3597 msgid "Failed to disable cache"
3259 3598 msgstr ""
3260 3599
3261 -#. Source: src/App.tsx:325
3600 +#. Source: src/App.tsx:347
3262 3601 #: assets/admin.js
3263 3602 msgid "Failed to enable cache"
3264 3603 msgstr ""
3265 3604
3266 -#. Source: src/App.tsx:273
3605 +#. Source: src/App.tsx:286
3267 3606 #: assets/admin.js
3268 3607 msgid "Failed to load"
3269 3608 msgstr ""
3270 3609
@@ -3318,9 +3657,9 @@
3318 3657 #: assets/admin.js
3319 3658 msgid "Go to Dashboard"
3320 3659 msgstr ""
3321 3660
3322 -#. Source: src/onboarding/OnboardingApp.tsx:161
3661 +#. Source: src/onboarding/OnboardingApp.tsx:165
3323 3662 #: assets/admin.js
3324 3663 msgid "Go to the dashboard"
3325 3664 msgstr ""
3326 3665
@@ -3339,9 +3678,9 @@
3339 3678 #: assets/admin.js
3340 3679 msgid "GTmetrix test"
3341 3680 msgstr ""
3342 3681
3343 -#. Source: src/components/sidebarGroups.ts:90
3682 +#. Source: src/components/sidebarGroups.ts:100
3344 3683 #: assets/admin.js
3345 3684 msgid "Health & insights"
3346 3685 msgstr ""
3347 3686
@@ -3364,31 +3703,36 @@
3364 3703 #: assets/admin.js
3365 3704 msgid "Hide"
3366 3705 msgstr ""
3367 3706
3368 -#. Source: src/components/cache/TrendCharts.tsx:120
3369 -#. Source: src/components/health/HealthHero.tsx:37
3370 -#. Source: src/components/overview/MetricGrid.tsx:44
3707 +#. Source: src/components/cache/TrendCharts.tsx:125
3708 +#. Source: src/components/health/HealthHero.tsx:42
3709 +#. Source: src/components/overview/MetricGrid.tsx:45
3371 3710 #: assets/admin.js
3372 3711 msgid "Hit ratio"
3373 3712 msgstr ""
3374 3713
3375 -#. Source: src/components/cache/CacheHero.tsx:222
3714 +#. Source: src/components/cache/CacheHero.tsx:217
3376 3715 #: assets/admin.js
3377 3716 msgid "Hit Ratio · 24h"
3378 3717 msgstr ""
3379 3718
3380 -#. Source: src/components/cache/CacheHero.tsx:222
3719 +#. Source: src/components/cache/CacheHero.tsx:217
3381 3720 #: assets/admin.js
3382 3721 msgid "Hit Ratio · 24h · origin"
3383 3722 msgstr ""
3384 3723
3724 +#. Source: src/components/health/HealthHero.tsx:42
3725 +#: assets/admin.js
3726 +msgid "Hit ratio (PHP-served only)"
3727 +msgstr ""
3728 +
3385 3729 #. Source: src/components/cache/TrendCharts.tsx:83
3386 3730 #: assets/admin.js
3387 3731 msgid "Hit ratio and benchmark history, with your settings changes marked."
3388 3732 msgstr ""
3389 3733
3390 -#. Source: src/components/cache/TrendCharts.tsx:222
3734 +#. Source: src/components/cache/TrendCharts.tsx:227
3391 3735 #: assets/admin.js
3392 3736 msgid "Hit ratio trend"
3393 3737 msgstr ""
3394 3738
@@ -3406,18 +3750,13 @@
3406 3750 #: assets/admin.js
3407 3751 msgid "hrs"
3408 3752 msgstr ""
3409 3753
3410 -#. Source: src/components/TopBar.tsx:142
3754 +#. Source: src/components/TopBar.tsx:138
3411 3755 #: assets/admin.js
3412 3756 msgid "Hub connected"
3413 3757 msgstr ""
3414 3758
3415 -#. Source: src/components/sidebarGroups.ts:106
3416 -#: assets/admin.js
3417 -msgid "Hub, MCP access, AI provider and privacy."
3418 -msgstr ""
3419 -
3420 3759 #. Source: src/onboarding/steps/Connect.tsx:132
3421 3760 #: assets/admin.js
3422 3761 msgid "I'll connect later"
3423 3762 msgstr ""
@@ -3436,9 +3775,9 @@
3436 3775 #: assets/admin.js
3437 3776 msgid "It takes a few seconds."
3438 3777 msgstr ""
3439 3778
3440 -#. Source: src/components/cache/CacheHero.tsx:225
3779 +#. Source: src/components/cache/CacheHero.tsx:220
3441 3780 #: assets/admin.js
3442 3781 msgid "jump to the hit-ratio trend"
3443 3782 msgstr ""
3444 3783
@@ -3456,14 +3795,14 @@
3456 3795 #: assets/admin.js
3457 3796 msgid "Just say what you want"
3458 3797 msgstr ""
3459 3798
3460 -#. Source: src/components/overview/MetricGrid.tsx:51
3799 +#. Source: src/components/overview/MetricGrid.tsx:61
3461 3800 #: assets/admin.js
3462 3801 msgid "Key metrics"
3463 3802 msgstr ""
3464 3803
3465 -#. Source: src/components/overview/MetricGrid.tsx:44
3804 +#. Source: src/components/overview/MetricGrid.tsx:53
3466 3805 #: assets/admin.js
3467 3806 msgid "last 24 hours"
3468 3807 msgstr ""
3469 3808
@@ -3476,9 +3815,9 @@
3476 3815 #: assets/admin.js
3477 3816 msgid "Last purged"
3478 3817 msgstr ""
3479 3818
3480 -#. Source: src/components/cache/TrendCharts.tsx:236
3819 +#. Source: src/components/cache/TrendCharts.tsx:241
3481 3820 #: assets/admin.js
3482 3821 msgid "Latest"
3483 3822 msgstr ""
3484 3823
@@ -3486,15 +3825,15 @@
3486 3825 #: assets/admin.js
3487 3826 msgid "Learn more about Pro"
3488 3827 msgstr ""
3489 3828
3490 -#. Source: src/upsell/LockedSection.tsx:69
3491 -#. Source: src/upsell/ProDemo.tsx:59
3829 +#. Source: src/upsell/LockedSection.tsx:70
3830 +#. Source: src/upsell/ProDemo.tsx:60
3492 3831 #: assets/admin.js
3493 3832 msgid "License"
3494 3833 msgstr ""
3495 3834
3496 -#. Source: src/components/sidebarGroups.ts:113
3835 +#. Source: src/components/sidebarGroups.ts:128
3497 3836 #: assets/admin.js
3498 3837 msgid "License, branding, multisite and support."
3499 3838 msgstr ""
3500 3839
@@ -3507,9 +3846,14 @@
3507 3846 #: assets/admin.js
3508 3847 msgid "Lighthouse performance, out of 100"
3509 3848 msgstr ""
3510 3849
3511 -#. Source: src/App.tsx:384
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
3512 3856 #. Source: src/components/GroupLanding.tsx:67
3513 3857 #. Source: src/components/LogsView.tsx:35
3514 3858 #: assets/admin.js
3515 3859 msgid "Logs"
@@ -3576,9 +3920,9 @@
3576 3920 #: assets/admin.js
3577 3921 msgid "min"
3578 3922 msgstr ""
3579 3923
3580 -#. Source: src/components/sidebarGroups.ts:78
3924 +#. Source: src/components/sidebarGroups.ts:88
3581 3925 #: assets/admin.js
3582 3926 msgid "Minify, compress, lazy-load, fonts and hints."
3583 3927 msgstr ""
3584 3928
@@ -3620,9 +3964,9 @@
3620 3964 #: assets/admin.js
3621 3965 msgid "Negligible difference — page is cheap to render or cache is cold."
3622 3966 msgstr ""
3623 3967
3624 -#. Source: src/components/sidebarGroups.ts:83
3968 +#. Source: src/components/sidebarGroups.ts:93
3625 3969 #: assets/admin.js
3626 3970 msgid "Network"
3627 3971 msgstr ""
3628 3972
@@ -3691,9 +4035,9 @@
3691 4035 #: assets/admin.js
3692 4036 msgid "No performance score measured yet"
3693 4037 msgstr ""
3694 4038
3695 -#. Source: src/components/cache/StatDrilldown.tsx:343
4039 +#. Source: src/components/cache/StatDrilldown.tsx:338
3696 4040 #: assets/admin.js
3697 4041 msgid "No purges recorded yet."
3698 4042 msgstr ""
3699 4043
@@ -3726,9 +4070,9 @@
3726 4070 #: assets/admin.js
3727 4071 msgid "Not now"
3728 4072 msgstr ""
3729 4073
3730 -#. Source: src/components/cache/StatDrilldown.tsx:149
4074 +#. Source: src/components/cache/StatDrilldown.tsx:144
3731 4075 #: assets/admin.js
3732 4076 msgid "Nothing cached yet. Visit a page as a logged-out visitor to warm the cache."
3733 4077 msgstr ""
3734 4078
@@ -3736,9 +4080,9 @@
3736 4080 #: assets/admin.js
3737 4081 msgid "Nothing is sent anywhere until you press this."
3738 4082 msgstr ""
3739 4083
3740 -#. Source: src/components/cache/StatDrilldown.tsx:252
4084 +#. Source: src/components/cache/StatDrilldown.tsx:247
3741 4085 #: assets/admin.js
3742 4086 msgid "Nothing on disk yet."
3743 4087 msgstr ""
3744 4088
@@ -3756,9 +4100,9 @@
3756 4100 #. Source: src/components/Sidebar.tsx:334
3757 4101 #. Source: src/components/Sidebar.tsx:335
3758 4102 #. Source: src/components/Sidebar.tsx:370
3759 4103 #. Source: src/components/Sidebar.tsx:371
3760 -#. Source: src/components/cache/StatDrilldown.tsx:216
4104 +#. Source: src/components/cache/StatDrilldown.tsx:211
3761 4105 #: assets/admin.js
3762 4106 msgid "of"
3763 4107 msgstr ""
3764 4108
@@ -3796,9 +4140,9 @@
3796 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."
3797 4141 msgstr ""
3798 4142
3799 4143 #. Source: src/components/health/HealthHero.tsx:30
3800 -#. Source: src/components/overview/MetricGrid.tsx:46
4144 +#. Source: src/components/overview/MetricGrid.tsx:56
3801 4145 #: assets/admin.js
3802 4146 msgid "on disk"
3803 4147 msgstr ""
3804 4148
@@ -3806,9 +4150,9 @@
3806 4150 #: assets/admin.js
3807 4151 msgid "on your xSpeed Hub account."
3808 4152 msgstr ""
3809 4153
3810 -#. Source: src/onboarding/OnboardingApp.tsx:152
4154 +#. Source: src/onboarding/OnboardingApp.tsx:156
3811 4155 #: assets/admin.js
3812 4156 msgid "Onboarding data unavailable"
3813 4157 msgstr ""
3814 4158
@@ -3826,9 +4170,9 @@
3826 4170 #: assets/admin.js
3827 4171 msgid "Open MCP"
3828 4172 msgstr ""
3829 4173
3830 -#. Source: src/components/TopBar.tsx:84
4174 +#. Source: src/components/TopBar.tsx:88
3831 4175 #: assets/admin.js
3832 4176 msgid "Open navigation"
3833 4177 msgstr ""
3834 4178
@@ -3836,9 +4180,9 @@
3836 4180 #: assets/admin.js
3837 4181 msgid "Open the full report"
3838 4182 msgstr ""
3839 4183
3840 -#. Source: src/components/sidebarGroups.ts:76
4184 +#. Source: src/components/sidebarGroups.ts:86
3841 4185 #: assets/admin.js
3842 4186 msgid "Optimization"
3843 4187 msgstr ""
3844 4188
@@ -3862,19 +4206,19 @@
3862 4206 #: assets/admin.js
3863 4207 msgid "Over a month old — may not reflect the site now."
3864 4208 msgstr ""
3865 4209
3866 -#. Source: src/components/cache/StatDrilldown.tsx:166
4210 +#. Source: src/components/cache/StatDrilldown.tsx:161
3867 4211 #: assets/admin.js
3868 4212 msgid "Page"
3869 4213 msgstr ""
3870 4214
3871 -#. Source: src/components/sidebarGroups.ts:71
4215 +#. Source: src/components/sidebarGroups.ts:81
3872 4216 #: assets/admin.js
3873 4217 msgid "Page, object and browser caching, plus preload."
3874 4218 msgstr ""
3875 4219
3876 -#. Source: src/components/cache/StatDrilldown.tsx:283
4220 +#. Source: src/components/cache/StatDrilldown.tsx:278
3877 4221 #: assets/admin.js
3878 4222 msgid "Pages without one are compressed by the server when requested."
3879 4223 msgstr ""
3880 4224
@@ -3892,10 +4236,15 @@
3892 4236 #: assets/admin.js
3893 4237 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
3894 4238 msgstr ""
3895 4239
3896 -#. Source: src/components/migration/MigrationPanel.tsx:795
4240 +#. Source: src/components/TopBar.tsx:177
3897 4241 #: assets/admin.js
4242 +msgid "Partly cleared"
4243 +msgstr ""
4244 +
4245 +#. Source: src/components/migration/MigrationPanel.tsx:800
4246 +#: assets/admin.js
3898 4247 msgid "Paste an xSpeed profile JSON here, or choose a .json file below."
3899 4248 msgstr ""
3900 4249
3901 4250 #. Source: src/onboarding/steps/Connect.tsx:226
@@ -3902,9 +4251,9 @@
3902 4251 #: assets/admin.js
3903 4252 msgid "Paste this site’s URL + token into the"
3904 4253 msgstr ""
3905 4254
3906 -#. Source: src/components/overview/MetricGrid.tsx:47
4255 +#. Source: src/components/overview/MetricGrid.tsx:57
3907 4256 #: assets/admin.js
3908 4257 msgid "per page load"
3909 4258 msgstr ""
3910 4259
@@ -3925,8 +4274,13 @@
3925 4274 #: assets/admin.js
3926 4275 msgid "Performance score and Core Web Vitals."
3927 4276 msgstr ""
3928 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 +
3929 4283 #. Source: src/components/score/ScorePanel.tsx:713
3930 4284 #: assets/admin.js
3931 4285 msgid "Pick one more run to compare."
3932 4286 msgstr ""
@@ -3935,9 +4289,9 @@
3935 4289 #: assets/admin.js
3936 4290 msgid "Pick two runs to compare them."
3937 4291 msgstr ""
3938 4292
3939 -#. Source: src/components/cache/StatDrilldown.tsx:282
4293 +#. Source: src/components/cache/StatDrilldown.tsx:277
3940 4294 #: assets/admin.js
3941 4295 msgid "Precompressed copies on disk:"
3942 4296 msgstr ""
3943 4297
@@ -3945,20 +4299,37 @@
3945 4299 #: assets/admin.js
3946 4300 msgid "Preload"
3947 4301 msgstr ""
3948 4302
3949 -#. Source: src/App.tsx:354
4303 +#. Source: src/App.tsx:423
3950 4304 #: assets/admin.js
3951 4305 msgid "Preload could not start"
3952 4306 msgstr ""
3953 4307
3954 -#. Source: src/App.tsx:352
4308 +#. Source: src/App.tsx:422
3955 4309 #: assets/admin.js
3956 -msgid "Preload started"
4310 +msgid "Preload could not start: %s"
3957 4311 msgstr ""
3958 4312
3959 -#. Source: src/upsell/ProDemo.tsx:117
4313 +#. Source: src/App.tsx:410
3960 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
3961 4332 msgid "Preview"
3962 4333 msgstr ""
3963 4334
3964 4335 #. Source: src/components/Sidebar.tsx:300
@@ -3967,12 +4338,14 @@
3967 4338 msgstr ""
3968 4339
3969 4340 #. Source: src/components/GroupLanding.tsx:32
3970 4341 #. Source: src/components/ModuleHeader.tsx:23
4342 +#. Source: src/components/Tabs.tsx:97
4343 +#. Source: src/components/migration/MigrationPanel.tsx:650
3971 4344 #. Source: src/components/overview/FeatureMap.tsx:38
3972 -#. Source: src/upsell/LockedSection.tsx:69
4345 +#. Source: src/upsell/LockedSection.tsx:70
3973 4346 #. Source: src/upsell/ProAudit.tsx:66
3974 -#. Source: src/upsell/ProDemo.tsx:59
4347 +#. Source: src/upsell/ProDemo.tsx:60
3975 4348 #. Source: src/upsell/ProTeaser.tsx:45
3976 4349 #: assets/admin.js
3977 4350 msgid "Pro"
3978 4351 msgstr ""
@@ -4010,9 +4383,9 @@
4010 4383 #: assets/admin.js
4011 4384 msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged."
4012 4385 msgstr ""
4013 4386
4014 -#. Source: src/components/migration/MigrationPanel.tsx:797
4387 +#. Source: src/components/migration/MigrationPanel.tsx:802
4015 4388 #: assets/admin.js
4016 4389 msgid "Profile JSON to import"
4017 4390 msgstr ""
4018 4391
@@ -4021,20 +4394,31 @@
4021 4394 msgid "pts"
4022 4395 msgstr ""
4023 4396
4024 4397 #. Source: src/components/CommandPalette.tsx:58
4025 -#. Source: src/components/TopBar.tsx:134
4398 +#. Source: src/components/TopBar.tsx:180
4026 4399 #: assets/admin.js
4027 4400 msgid "Purge all"
4028 4401 msgstr ""
4029 4402
4030 -#. Source: src/App.tsx:341
4403 +#. Source: src/App.tsx:370
4404 +#. Source: src/components/TopBar.tsx:179
4031 4405 #: assets/admin.js
4032 4406 msgid "Purge failed"
4033 4407 msgstr ""
4034 4408
4035 -#. Source: src/components/cache/StatDrilldown.tsx:336
4409 +#. Source: src/App.tsx:370
4036 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
4037 4421 msgid "Purge history"
4038 4422 msgstr ""
4039 4423
4040 4424 #. Source: src/onboarding/steps/Connect.tsx:94
@@ -4083,15 +4467,15 @@
4083 4467 #: assets/admin.js
4084 4468 msgid "Recent cache and settings activity."
4085 4469 msgstr ""
4086 4470
4087 -#. Source: src/components/cache/TrendCharts.tsx:148
4471 +#. Source: src/components/cache/TrendCharts.tsx:153
4088 4472 #: assets/admin.js
4089 4473 msgid "Recent changes"
4090 4474 msgstr ""
4091 4475
4092 -#. Source: src/components/overview/Recommendations.tsx:116
4093 -#. Source: src/components/overview/Recommendations.tsx:120
4476 +#. Source: src/components/overview/Recommendations.tsx:119
4477 +#. Source: src/components/overview/Recommendations.tsx:123
4094 4478 #: assets/admin.js
4095 4479 msgid "Recommended for your site"
4096 4480 msgstr ""
4097 4481
@@ -4099,9 +4483,9 @@
4099 4483 #: assets/admin.js
4100 4484 msgid "Recommended:"
4101 4485 msgstr ""
4102 4486
4103 -#. Source: src/components/cache/StatDrilldown.tsx:109
4487 +#. Source: src/components/cache/StatDrilldown.tsx:104
4104 4488 #: assets/admin.js
4105 4489 msgid "Refresh"
4106 4490 msgstr ""
4107 4491
@@ -4109,9 +4493,9 @@
4109 4493 #: assets/admin.js
4110 4494 msgid "Refresh activity log"
4111 4495 msgstr ""
4112 4496
4113 -#. Source: src/components/cache/TrendCharts.tsx:108
4497 +#. Source: src/components/cache/TrendCharts.tsx:113
4114 4498 #: assets/admin.js
4115 4499 msgid "Refresh trends"
4116 4500 msgstr ""
4117 4501
@@ -4195,9 +4579,9 @@
4195 4579 #: assets/admin.js
4196 4580 msgid "Run test"
4197 4581 msgstr ""
4198 4582
4199 -#. Source: src/components/cache/TrendCharts.tsx:139
4583 +#. Source: src/components/cache/TrendCharts.tsx:144
4200 4584 #: assets/admin.js
4201 4585 msgid "Run the benchmark at least twice to see a trend."
4202 4586 msgstr ""
4203 4587
@@ -4266,10 +4650,10 @@
4266 4650 #: assets/admin.js
4267 4651 msgid "Score strategy"
4268 4652 msgstr ""
4269 4653
4270 -#. Source: src/components/TopBar.tsx:110
4271 -#. Source: src/components/TopBar.tsx:115
4654 +#. Source: src/components/TopBar.tsx:114
4655 +#. Source: src/components/TopBar.tsx:119
4272 4656 #: assets/admin.js
4273 4657 msgid "Search"
4274 4658 msgstr ""
4275 4659
@@ -4293,9 +4677,9 @@
4293 4677 msgid "See how this site performs for real visitors."
4294 4678 msgstr ""
4295 4679
4296 4680 #. Source: src/components/health/HealthHero.tsx:29
4297 -#. Source: src/components/overview/MetricGrid.tsx:45
4681 +#. Source: src/components/overview/MetricGrid.tsx:55
4298 4682 #: assets/admin.js
4299 4683 msgid "served without PHP"
4300 4684 msgstr ""
4301 4685
@@ -4328,24 +4712,24 @@
4328 4712 #: assets/admin.js
4329 4713 msgid "Show less"
4330 4714 msgstr ""
4331 4715
4332 -#. Source: src/components/cache/CacheHero.tsx:219
4716 +#. Source: src/components/cache/CacheHero.tsx:214
4333 4717 #: assets/admin.js
4334 4718 msgid "show what cleared the cache and why"
4335 4719 msgstr ""
4336 4720
4337 -#. Source: src/components/cache/CacheHero.tsx:212
4721 +#. Source: src/components/cache/CacheHero.tsx:207
4338 4722 #: assets/admin.js
4339 4723 msgid "show what is taking the space"
4340 4724 msgstr ""
4341 4725
4342 -#. Source: src/components/cache/CacheHero.tsx:205
4726 +#. Source: src/components/cache/CacheHero.tsx:200
4343 4727 #: assets/admin.js
4344 4728 msgid "show which pages are cached"
4345 4729 msgstr ""
4346 4730
4347 -#. Source: src/components/cache/StatDrilldown.tsx:216
4731 +#. Source: src/components/cache/StatDrilldown.tsx:211
4348 4732 #: assets/admin.js
4349 4733 msgid "Showing"
4350 4734 msgstr ""
4351 4735
@@ -4358,14 +4742,14 @@
4358 4742 #: assets/admin.js
4359 4743 msgid "Site URL"
4360 4744 msgstr ""
4361 4745
4362 -#. Source: src/components/cache/StatDrilldown.tsx:167
4746 +#. Source: src/components/cache/StatDrilldown.tsx:162
4363 4747 #: assets/admin.js
4364 4748 msgid "Size"
4365 4749 msgstr ""
4366 4750
4367 -#. Source: src/components/sidebarGroups.ts:92
4751 +#. Source: src/components/sidebarGroups.ts:102
4368 4752 #: assets/admin.js
4369 4753 msgid "Speed score, diagnostics and analytics."
4370 4754 msgstr ""
4371 4755
@@ -4378,9 +4762,9 @@
4378 4762 #: assets/admin.js
4379 4763 msgid "Static rewrite may not be available on this host"
4380 4764 msgstr ""
4381 4765
4382 -#. Source: src/components/cache/StatDrilldown.tsx:169
4766 +#. Source: src/components/cache/StatDrilldown.tsx:164
4383 4767 #: assets/admin.js
4384 4768 msgid "Stored"
4385 4769 msgstr ""
4386 4770
@@ -4388,14 +4772,14 @@
4388 4772 #: assets/admin.js
4389 4773 msgid "succeeded"
4390 4774 msgstr ""
4391 4775
4392 -#. Source: src/components/TopBar.tsx:148
4776 +#. Source: src/components/TopBar.tsx:144
4393 4777 #: assets/admin.js
4394 4778 msgid "Switch to dark mode"
4395 4779 msgstr ""
4396 4780
4397 -#. Source: src/components/TopBar.tsx:148
4781 +#. Source: src/components/TopBar.tsx:144
4398 4782 #: assets/admin.js
4399 4783 msgid "Switch to light mode"
4400 4784 msgstr ""
4401 4785
@@ -4408,9 +4792,9 @@
4408 4792 #: assets/admin.js
4409 4793 msgid "Take over the page cache from %s?"
4410 4794 msgstr ""
4411 4795
4412 -#. Source: src/components/cache/TrendCharts.tsx:240
4796 +#. Source: src/components/cache/TrendCharts.tsx:245
4413 4797 #: assets/admin.js
4414 4798 msgid "target ≥80%"
4415 4799 msgstr ""
4416 4800
@@ -4429,15 +4813,30 @@
4429 4813 #: assets/admin.js
4430 4814 msgid "Testing…"
4431 4815 msgstr ""
4432 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 +
4433 4822 #. Source: src/components/overview/ScoreCard.tsx:207
4434 4823 #: assets/admin.js
4435 4824 msgid "The last scan did not complete."
4436 4825 msgstr ""
4437 4826
4438 -#. Source: src/components/cache/StatDrilldown.tsx:156
4827 +#. Source: src/components/purgeOutcome.ts:78
4439 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
4440 4839 msgid "This cache is large enough that the scan stopped early — the list below is a recent sample, not every page."
4441 4840 msgstr ""
4442 4841
4443 4842 #. Source: src/components/SecretField.tsx:93
@@ -4465,9 +4864,9 @@
4465 4864 msgid "Token"
4466 4865 msgstr ""
4467 4866
4468 4867 #. Source: src/components/LogsView.tsx:34
4469 -#. Source: src/components/sidebarGroups.ts:97
4868 +#. Source: src/components/sidebarGroups.ts:107
4470 4869 #: assets/admin.js
4471 4870 msgid "Tools"
4472 4871 msgstr ""
4473 4872
@@ -4475,9 +4874,9 @@
4475 4874 #: assets/admin.js
4476 4875 msgid "Trends"
4477 4876 msgstr ""
4478 4877
4479 -#. Source: src/components/cache/TrendCharts.tsx:126
4878 +#. Source: src/components/cache/TrendCharts.tsx:131
4480 4879 #: assets/admin.js
4481 4880 msgid "Trends appear after a couple of days of traffic. The daily series is being collected now."
4482 4881 msgstr ""
4483 4882
@@ -4505,9 +4904,9 @@
4505 4904 #: assets/admin.js
4506 4905 msgid "Turn on the page cache to start serving pages instantly."
4507 4906 msgstr ""
4508 4907
4509 -#. Source: src/components/cache/TrendCharts.tsx:273
4908 +#. Source: src/components/cache/TrendCharts.tsx:278
4510 4909 #: assets/admin.js
4511 4910 msgid "uncached"
4512 4911 msgstr ""
4513 4912
@@ -4516,13 +4915,13 @@
4516 4915 msgid "Under a minute"
4517 4916 msgstr ""
4518 4917
4519 4918 #. Source: src/components/Sidebar.tsx:424
4520 -#. Source: src/components/Sidebar.tsx:442
4919 +#. Source: src/components/Sidebar.tsx:445
4521 4920 #. Source: src/upsell/LockedPanel.tsx:116
4522 -#. Source: src/upsell/LockedSection.tsx:97
4921 +#. Source: src/upsell/LockedSection.tsx:98
4523 4922 #. Source: src/upsell/ProAudit.tsx:113
4524 -#. Source: src/upsell/ProDemo.tsx:101
4923 +#. Source: src/upsell/ProDemo.tsx:102
4525 4924 #. Source: src/upsell/ProOverview.tsx:83
4526 4925 #: assets/admin.js
4527 4926 msgid "Upgrade to Pro"
4528 4927 msgstr ""
@@ -4551,14 +4950,14 @@
4551 4950 #: assets/admin.js
4552 4951 msgid "Waiting for connection…"
4553 4952 msgstr ""
4554 4953
4555 -#. Source: src/components/overview/Recommendations.tsx:218
4954 +#. Source: src/components/overview/Recommendations.tsx:221
4556 4955 #: assets/admin.js
4557 4956 msgid "Want a hand?"
4558 4957 msgstr ""
4559 4958
4560 -#. Source: src/onboarding/OnboardingApp.tsx:155
4959 +#. Source: src/onboarding/OnboardingApp.tsx:159
4561 4960 #: assets/admin.js
4562 4961 msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard."
4563 4962 msgstr ""
4564 4963
@@ -4591,9 +4990,9 @@
4591 4990 #: assets/admin.js
4592 4991 msgid "When"
4593 4992 msgstr ""
4594 4993
4595 -#. Source: src/components/cache/StatDrilldown.tsx:248
4994 +#. Source: src/components/cache/StatDrilldown.tsx:243
4596 4995 #: assets/admin.js
4597 4996 msgid "Where the cache size goes"
4598 4997 msgstr ""
4599 4998
@@ -4676,9 +5075,9 @@
4676 5075 #: assets/admin.js
4677 5076 msgid "You're all set"
4678 5077 msgstr ""
4679 5078
4680 -#. Source: src/components/overview/Recommendations.tsx:131
5079 +#. Source: src/components/overview/Recommendations.tsx:134
4681 5080 #: assets/admin.js
4682 5081 msgid "You're all set — no recommendations right now."
4683 5082 msgstr ""
4684 5083