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 +580 -264 1.3.2 → 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.2\n"
5 +"Project-Id-Version: xSpeed Cache 1.3.6\n"
6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/xspeed\n"
7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8 8 "Language-Team: LANGUAGE <[email protected]>\n"
9 9 "MIME-Version: 1.0\n"
@@ -8,9 +8,9 @@
8 8 "Language-Team: LANGUAGE <[email protected]>\n"
9 9 "MIME-Version: 1.0\n"
10 10 "Content-Type: text/plain; charset=UTF-8\n"
11 11 "Content-Transfer-Encoding: 8bit\n"
12 -"POT-Creation-Date: 2026-09-15T12:19:23+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:7953
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:7967
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:3445
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:4398
138 +#: includes/class-cache.php:5123
139 139 msgid "Purge All"
140 140 msgstr ""
141 141
142 -#: includes/class-cache.php:4402
142 +#: includes/class-cache.php:5127
143 143 msgid "Purge Page / Static Cache"
144 144 msgstr ""
145 145
146 -#: includes/class-cache.php:4406
146 +#: includes/class-cache.php:5131
147 147 msgid "Purge CSS / JS Cache"
148 148 msgstr ""
149 149
150 -#: includes/class-cache.php:4410
150 +#: includes/class-cache.php:5135
151 151 msgid "Purge Object Cache"
152 152 msgstr ""
153 153
154 -#: includes/class-cache.php:4414
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:4661
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:4667
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:4888
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:4895
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:4898
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:4964
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:4970
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:5044
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:5047
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:5077
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:5134
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:5135
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:5137
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:5152
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:5244
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:5259
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:5260
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:5277
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:5295
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:5296
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:5307
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:5311
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:7459
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:7466
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:7521
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:7528
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:7531
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:7532
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:7533
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:7534
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:7535
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:7536
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:7537
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:7539
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:8036
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
@@ -986,9 +986,9 @@
986 986 #: includes/class-rest-api.php:352
987 987 msgid "The id argument is required."
988 988 msgstr ""
989 989
990 -#: includes/class-rest-api.php:472
990 +#: includes/class-rest-api.php:479
991 991 msgid "dashboard"
992 992 msgstr ""
993 993
994 994 #: includes/class-rest-manager.php:83
@@ -1084,8 +1084,9 @@
1084 1084 msgstr ""
1085 1085
1086 1086 #: includes/class-video-facade.php:153
1087 1087 #: includes/class-video-facade.php:199
1088 +#: includes/class-video-facade.php:309
1088 1089 msgid "Play video"
1089 1090 msgstr ""
1090 1091
1091 1092 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -1092,9 +1093,9 @@
1092 1093 msgid "AI Privacy"
1093 1094 msgstr ""
1094 1095
1095 1096 #: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1096 -msgid "Govern whether AI-powered features (Pro) may collect data from your visitors. The off-switch is here in Free because privacy is a fundamental right, not a paid feature."
1097 +msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro."
1097 1098 msgstr ""
1098 1099
1099 1100 #: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1100 1101 msgid "Require consent before AI data collection"
@@ -1100,9 +1101,9 @@
1100 1101 msgid "Require consent before AI data collection"
1101 1102 msgstr ""
1102 1103
1103 1104 #: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1104 -msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made)."
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."
1105 1106 msgstr ""
1106 1107
1107 1108 #: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1108 1109 msgid "Consent banner text"
@@ -1120,60 +1121,116 @@
1120 1121 msgid "Turn off WordPress defaults you do not use — saves bytes, requests, and attack surface."
1121 1122 msgstr ""
1122 1123
1123 1124 #: includes/modules/Bloat/BloatModule.php:49
1125 +msgid "Disable Emojis"
1126 +msgstr ""
1127 +
1128 +#: includes/modules/Bloat/BloatModule.php:50
1129 +msgid "Remove the emoji detection script and its inline styles from every page. Modern browsers draw emojis natively, so visitors still see them. Saves a script and an inline stylesheet per page."
1130 +msgstr ""
1131 +
1132 +#: includes/modules/Bloat/BloatModule.php:55
1124 1133 msgid "Disable Dashicons on Frontend"
1125 1134 msgstr ""
1126 1135
1127 -#: includes/modules/Bloat/BloatModule.php:50
1136 +#: includes/modules/Bloat/BloatModule.php:56
1128 1137 msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1129 1138 msgstr ""
1130 1139
1131 -#: includes/modules/Bloat/BloatModule.php:55
1140 +#: includes/modules/Bloat/BloatModule.php:61
1132 1141 msgid "Disable oEmbed Discovery + wp-embed.min.js"
1133 1142 msgstr ""
1134 1143
1135 -#: includes/modules/Bloat/BloatModule.php:56
1144 +#: includes/modules/Bloat/BloatModule.php:62
1136 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."
1137 1146 msgstr ""
1138 1147
1139 -#: includes/modules/Bloat/BloatModule.php:61
1148 +#: includes/modules/Bloat/BloatModule.php:67
1140 1149 msgid "Disable RSS Feeds"
1141 1150 msgstr ""
1142 1151
1143 -#: includes/modules/Bloat/BloatModule.php:62
1152 +#: includes/modules/Bloat/BloatModule.php:68
1144 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."
1145 1154 msgstr ""
1146 1155
1147 -#: includes/modules/Bloat/BloatModule.php:67
1156 +#: includes/modules/Bloat/BloatModule.php:73
1148 1157 msgid "Disable XML-RPC"
1149 1158 msgstr ""
1150 1159
1151 -#: includes/modules/Bloat/BloatModule.php:68
1160 +#: includes/modules/Bloat/BloatModule.php:74
1152 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)."
1153 1162 msgstr ""
1154 1163
1155 -#: includes/modules/Bloat/BloatModule.php:73
1164 +#: includes/modules/Bloat/BloatModule.php:79
1156 1165 msgid "Strip jQuery Migrate on Frontend"
1157 1166 msgstr ""
1158 1167
1159 -#: includes/modules/Bloat/BloatModule.php:74
1168 +#: includes/modules/Bloat/BloatModule.php:80
1160 1169 msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1161 1170 msgstr ""
1162 1171
1163 -#: 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
1164 1221 msgid "Restrict REST API to Logged-In Users"
1165 1222 msgstr ""
1166 1223
1167 -#: includes/modules/Bloat/BloatModule.php:80
1224 +#: includes/modules/Bloat/BloatModule.php:122
1168 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."
1169 1226 msgstr ""
1170 1227
1171 -#: includes/modules/Bloat/BloatModule.php:180
1228 +#: includes/modules/Bloat/BloatModule.php:380
1172 1229 msgid "Feeds are disabled."
1173 1230 msgstr ""
1174 1231
1175 -#: includes/modules/Bloat/BloatModule.php:229
1232 +#: includes/modules/Bloat/BloatModule.php:429
1176 1233 msgid "Anonymous REST access is disabled on this site."
1177 1234 msgstr ""
1178 1235
1179 1236 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
@@ -1238,56 +1295,96 @@
1238 1295 #: includes/modules/Cache/CacheModule.php:160
1239 1296 msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)."
1240 1297 msgstr ""
1241 1298
1242 -#: includes/modules/Cache/CacheModule.php:188
1299 +#: includes/modules/Cache/CacheModule.php:190
1243 1300 msgid "Excluded URLs"
1244 1301 msgstr ""
1245 1302
1246 -#: includes/modules/Cache/CacheModule.php:189
1303 +#: includes/modules/Cache/CacheModule.php:191
1247 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)."
1248 1305 msgstr ""
1249 1306
1250 -#: includes/modules/Cache/CacheModule.php:198
1307 +#: includes/modules/Cache/CacheModule.php:200
1251 1308 msgid "Excluded Cookies"
1252 1309 msgstr ""
1253 1310
1254 -#: includes/modules/Cache/CacheModule.php:199
1311 +#: includes/modules/Cache/CacheModule.php:201
1255 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."
1256 1313 msgstr ""
1257 1314
1258 -#: includes/modules/Cache/CacheModule.php:205
1315 +#: includes/modules/Cache/CacheModule.php:207
1259 1316 msgid "Bypass User Agents"
1260 1317 msgstr ""
1261 1318
1262 -#: includes/modules/Cache/CacheModule.php:206
1319 +#: includes/modules/Cache/CacheModule.php:208
1263 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."
1264 1321 msgstr ""
1265 1322
1266 -#: includes/modules/Cache/CacheModule.php:217
1323 +#: includes/modules/Cache/CacheModule.php:219
1267 1324 msgid "Ignored Query Parameters"
1268 1325 msgstr ""
1269 1326
1270 -#: includes/modules/Cache/CacheModule.php:218
1327 +#: includes/modules/Cache/CacheModule.php:220
1271 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."
1272 1329 msgstr ""
1273 1330
1274 -#: includes/modules/Cache/CacheModule.php:223
1331 +#: includes/modules/Cache/CacheModule.php:225
1275 1332 msgid "Purge After Updates"
1276 1333 msgstr ""
1277 1334
1278 -#: includes/modules/Cache/CacheModule.php:224
1335 +#: includes/modules/Cache/CacheModule.php:226
1279 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."
1280 1337 msgstr ""
1281 1338
1282 -#: includes/modules/Cache/CacheModule.php:229
1339 +#: includes/modules/Cache/CacheModule.php:231
1283 1340 msgid "Separate Mobile Cache"
1284 1341 msgstr ""
1285 1342
1286 -#: includes/modules/Cache/CacheModule.php:230
1343 +#: includes/modules/Cache/CacheModule.php:232
1287 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."
1288 1345 msgstr ""
1289 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 +
1290 1387 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1291 1388 msgid "Advanced Cache"
1292 1389 msgstr ""
1293 1390
@@ -1330,120 +1427,149 @@
1330 1427 #: includes/modules/Cdn/CdnModule.php:62
1331 1428 msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*"
1332 1429 msgstr ""
1333 1430
1334 -#: includes/modules/Cloudflare/CloudflareModule.php:40
1431 +#: includes/modules/Cloudflare/CloudflareModule.php:77
1335 1432 msgid "Cloudflare"
1336 1433 msgstr ""
1337 1434
1338 -#: includes/modules/Cloudflare/CloudflareModule.php:42
1435 +#: includes/modules/Cloudflare/CloudflareModule.php:79
1339 1436 msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1340 1437 msgstr ""
1341 1438
1342 -#: includes/modules/Cloudflare/CloudflareModule.php:65
1439 +#: includes/modules/Cloudflare/CloudflareModule.php:102
1343 1440 msgid "Enable Cloudflare integration"
1344 1441 msgstr ""
1345 1442
1346 -#: includes/modules/Cloudflare/CloudflareModule.php:66
1443 +#: includes/modules/Cloudflare/CloudflareModule.php:103
1347 1444 msgid "Use the credentials below to verify your zone and run purges."
1348 1445 msgstr ""
1349 1446
1350 -#: includes/modules/Cloudflare/CloudflareModule.php:76
1447 +#: includes/modules/Cloudflare/CloudflareModule.php:113
1351 1448 msgid "Authentication"
1352 1449 msgstr ""
1353 1450
1354 -#: includes/modules/Cloudflare/CloudflareModule.php:77
1451 +#: includes/modules/Cloudflare/CloudflareModule.php:114
1355 1452 msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1356 1453 msgstr ""
1357 1454
1358 -#: includes/modules/Cloudflare/CloudflareModule.php:83
1455 +#: includes/modules/Cloudflare/CloudflareModule.php:120
1359 1456 msgid "API Token"
1360 1457 msgstr ""
1361 1458
1362 -#: includes/modules/Cloudflare/CloudflareModule.php:84
1459 +#: includes/modules/Cloudflare/CloudflareModule.php:121
1363 1460 msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1364 1461 msgstr ""
1365 1462
1366 -#: includes/modules/Cloudflare/CloudflareModule.php:92
1463 +#: includes/modules/Cloudflare/CloudflareModule.php:129
1367 1464 msgid "Account Email"
1368 1465 msgstr ""
1369 1466
1370 -#: includes/modules/Cloudflare/CloudflareModule.php:93
1467 +#: includes/modules/Cloudflare/CloudflareModule.php:130
1371 1468 msgid "Only used when Authentication is set to Global API Key."
1372 1469 msgstr ""
1373 1470
1374 -#: includes/modules/Cloudflare/CloudflareModule.php:99
1471 +#: includes/modules/Cloudflare/CloudflareModule.php:136
1375 1472 msgid "Global API Key"
1376 1473 msgstr ""
1377 1474
1378 -#: includes/modules/Cloudflare/CloudflareModule.php:100
1475 +#: includes/modules/Cloudflare/CloudflareModule.php:137
1379 1476 msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1380 1477 msgstr ""
1381 1478
1382 -#: includes/modules/Cloudflare/CloudflareModule.php:106
1479 +#: includes/modules/Cloudflare/CloudflareModule.php:143
1383 1480 msgid "Zone ID"
1384 1481 msgstr ""
1385 1482
1386 -#: includes/modules/Cloudflare/CloudflareModule.php:107
1483 +#: includes/modules/Cloudflare/CloudflareModule.php:144
1387 1484 msgid "The 32-character hex Zone ID from your domain overview page."
1388 1485 msgstr ""
1389 1486
1390 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1487 +#: includes/modules/Cloudflare/CloudflareModule.php:150
1391 1488 msgid "Auto-purge Cloudflare on xSpeed purge"
1392 1489 msgstr ""
1393 1490
1394 -#: includes/modules/Cloudflare/CloudflareModule.php:114
1491 +#: includes/modules/Cloudflare/CloudflareModule.php:151
1395 1492 msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1396 1493 msgstr ""
1397 1494
1398 -#: 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
1399 1529 msgid "the Cloudflare integration is switched off"
1400 1530 msgstr ""
1401 1531
1402 -#: includes/modules/Cloudflare/CloudflareModule.php:241
1532 +#: includes/modules/Cloudflare/CloudflareModule.php:609
1403 1533 msgid "no zone ID or API credentials are configured"
1404 1534 msgstr ""
1405 1535
1406 1536 #. translators: %s: what asked for the purge.
1407 -#: includes/modules/Cloudflare/CloudflareModule.php:277
1537 +#: includes/modules/Cloudflare/CloudflareModule.php:645
1408 1538 #, php-format
1409 1539 msgid "Purged the Cloudflare edge cache (%s)"
1410 1540 msgstr ""
1411 1541
1412 1542 #. translators: 1: what asked for the purge, 2: failure reason.
1413 -#: includes/modules/Cloudflare/CloudflareModule.php:287
1543 +#: includes/modules/Cloudflare/CloudflareModule.php:655
1414 1544 #, php-format
1415 1545 msgid "Cloudflare purge failed (%1$s): %2$s"
1416 1546 msgstr ""
1417 1547
1418 -#: includes/modules/Cloudflare/CloudflareModule.php:289
1419 -msgid "unknown error"
1420 -msgstr ""
1421 -
1422 -#: includes/modules/Cloudflare/CloudflareModule.php:359
1548 +#: includes/modules/Cloudflare/CloudflareModule.php:727
1423 1549 msgid "Cloudflare is not fully configured."
1424 1550 msgstr ""
1425 1551
1426 -#: includes/modules/Cloudflare/CloudflareModule.php:360
1552 +#: includes/modules/Cloudflare/CloudflareModule.php:728
1427 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."
1428 1554 msgstr ""
1429 1555
1430 -#: includes/modules/Cloudflare/CloudflareModule.php:373
1556 +#: includes/modules/Cloudflare/CloudflareModule.php:741
1431 1557 msgid "Cloudflare purge is failing."
1432 1558 msgstr ""
1433 1559
1434 1560 #. translators: %s: the Cloudflare API error message, or empty.
1435 -#: includes/modules/Cloudflare/CloudflareModule.php:376
1561 +#: includes/modules/Cloudflare/CloudflareModule.php:744
1436 1562 #, php-format
1437 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."
1438 1564 msgstr ""
1439 1565
1440 -#: includes/modules/Cloudflare/CloudflareModule.php:385
1566 +#: includes/modules/Cloudflare/CloudflareModule.php:753
1441 1567 msgid "Cloudflare credentials were rejected."
1442 1568 msgstr ""
1443 1569
1444 1570 #. translators: %s: the Cloudflare API error message, or empty.
1445 -#: includes/modules/Cloudflare/CloudflareModule.php:388
1571 +#: includes/modules/Cloudflare/CloudflareModule.php:756
1446 1572 #, php-format
1447 1573 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1448 1574 msgstr ""
1449 1575
@@ -1470,9 +1596,35 @@
1470 1596 #: includes/modules/Database/DatabaseModule.php:57
1471 1597 msgid "Which cleanup categories run on the schedule above. Leave empty to keep auto-cleanup disabled even if a schedule is set."
1472 1598 msgstr ""
1473 1599
1474 -#: 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
1475 1627 msgid "Provide at least one cleanup type."
1476 1628 msgstr ""
1477 1629
1478 1630 #: includes/modules/Fonts/FontsModule.php:35
@@ -1563,74 +1715,110 @@
1563 1715 #: includes/modules/Health/HealthModule.php:66
1564 1716 msgid "xSpeed static-rewrite cache"
1565 1717 msgstr ""
1566 1718
1567 -#: includes/modules/Health/HealthModule.php:81
1719 +#: includes/modules/Health/HealthModule.php:125
1568 1720 msgid "xSpeed static-rewrite cache is active"
1569 1721 msgstr ""
1570 1722
1571 -#: includes/modules/Health/HealthModule.php:84
1723 +#: includes/modules/Health/HealthModule.php:128
1572 1724 #: assets/admin.js
1573 1725 msgid "Performance"
1574 1726 msgstr ""
1575 1727
1576 -#: includes/modules/Health/HealthModule.php:87
1728 +#: includes/modules/Health/HealthModule.php:131
1577 1729 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1578 1730 msgstr ""
1579 1731
1580 -#: includes/modules/Health/HealthModule.php:93
1732 +#: includes/modules/Health/HealthModule.php:137
1581 1733 msgid "xSpeed cache is disabled"
1582 1734 msgstr ""
1583 1735
1584 -#: includes/modules/Health/HealthModule.php:95
1736 +#: includes/modules/Health/HealthModule.php:139
1585 1737 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1586 1738 msgstr ""
1587 1739
1588 -#: 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
1589 1749 msgid "xSpeed is serving cache hits through PHP"
1590 1750 msgstr ""
1591 1751
1592 -#: includes/modules/Health/HealthModule.php:110
1752 +#: includes/modules/Health/HealthModule.php:161
1593 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."
1594 1754 msgstr ""
1595 1755
1596 -#: includes/modules/Health/HealthModule.php:112
1756 +#: includes/modules/Health/HealthModule.php:163
1757 +#: includes/modules/Health/HealthModule.php:202
1597 1758 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1598 1759 msgstr ""
1599 1760
1600 -#: includes/modules/Health/HealthModule.php:114
1761 +#: includes/modules/Health/HealthModule.php:165
1762 +#: includes/modules/Health/HealthModule.php:204
1601 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."
1602 1764 msgstr ""
1603 1765
1604 -#: includes/modules/Health/HealthModule.php:116
1766 +#: includes/modules/Health/HealthModule.php:169
1605 1767 msgid "xSpeed .htaccess rewrite block is missing"
1606 1768 msgstr ""
1607 1769
1608 -#: includes/modules/Health/HealthModule.php:118
1770 +#: includes/modules/Health/HealthModule.php:171
1609 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."
1610 1772 msgstr ""
1611 1773
1612 -#: 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
1613 1801 msgid "xSpeed nginx server config required"
1614 1802 msgstr ""
1615 1803
1616 -#: includes/modules/Health/HealthModule.php:127
1804 +#: includes/modules/Health/HealthModule.php:234
1617 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:"
1618 1806 msgstr ""
1619 1807
1620 -#: includes/modules/Health/HealthModule.php:136
1808 +#: includes/modules/Health/HealthModule.php:243
1621 1809 msgid "xSpeed PHP drop-in cache active"
1622 1810 msgstr ""
1623 1811
1624 -#: includes/modules/Health/HealthModule.php:138
1812 +#: includes/modules/Health/HealthModule.php:245
1625 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."
1626 1814 msgstr ""
1627 1815
1628 -#: includes/modules/Health/HealthModule.php:144
1816 +#: includes/modules/Health/HealthModule.php:251
1629 1817 msgid "Health"
1630 1818 msgstr ""
1631 1819
1632 -#: includes/modules/Health/HealthModule.php:146
1820 +#: includes/modules/Health/HealthModule.php:253
1633 1821 msgid "Diagnostics, hit ratio, and recent cache activity."
1634 1822 msgstr ""
1635 1823
1636 1824 #: includes/modules/Heartbeat/HeartbeatModule.php:38
@@ -1716,29 +1904,37 @@
1716 1904 #: includes/modules/Lazy/LazyModule.php:78
1717 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."
1718 1906 msgstr ""
1719 1907
1720 -#: 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
1721 1917 msgid "Eager-load First N Images"
1722 1918 msgstr ""
1723 1919
1724 -#: includes/modules/Lazy/LazyModule.php:86
1725 -msgid "How many images at the top of the post get loading=\"eager\". 1 is usually right (the LCP hero image). 0 to lazy-load everything."
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."
1726 1922 msgstr ""
1727 1923
1728 -#: includes/modules/Lazy/LazyModule.php:91
1924 +#: includes/modules/Lazy/LazyModule.php:97
1729 1925 msgid "Add Missing Image Dimensions"
1730 1926 msgstr ""
1731 1927
1732 -#: includes/modules/Lazy/LazyModule.php:92
1928 +#: includes/modules/Lazy/LazyModule.php:98
1733 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."
1734 1930 msgstr ""
1735 1931
1736 -#: includes/modules/Lazy/LazyModule.php:98
1932 +#: includes/modules/Lazy/LazyModule.php:104
1737 1933 msgid "Excluded Images"
1738 1934 msgstr ""
1739 1935
1740 -#: includes/modules/Lazy/LazyModule.php:99
1936 +#: includes/modules/Lazy/LazyModule.php:105
1741 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."
1742 1938 msgstr ""
1743 1939
1744 1940 #. translators: %s: command name.
@@ -1746,88 +1942,92 @@
1746 1942 #, php-format
1747 1943 msgid "Unknown command: %s. Call list_commands to see what is available."
1748 1944 msgstr ""
1749 1945
1750 -#: includes/modules/Mcp/McpModule.php:111
1946 +#: includes/modules/Mcp/McpModule.php:149
1751 1947 #: assets/admin.js
1752 1948 msgid "MCP Server"
1753 1949 msgstr ""
1754 1950
1755 -#: includes/modules/Mcp/McpModule.php:113
1756 -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."
1757 1953 msgstr ""
1758 1954
1759 -#: 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
1760 1960 msgid "Invalid or expired attach request."
1761 1961 msgstr ""
1762 1962
1763 -#: includes/modules/Mcp/McpModule.php:1093
1963 +#: includes/modules/Mcp/McpModule.php:1423
1764 1964 msgid "You must be an administrator to authorize an AI agent to control this site."
1765 1965 msgstr ""
1766 1966
1767 -#: includes/modules/Mcp/McpModule.php:1100
1967 +#: includes/modules/Mcp/McpModule.php:1430
1768 1968 msgid "Security check failed. Please try connecting again."
1769 1969 msgstr ""
1770 1970
1771 -#: includes/modules/Mcp/McpModule.php:1227
1971 +#: includes/modules/Mcp/McpModule.php:1557
1772 1972 msgid "Read-only — inspect cache status and settings."
1773 1973 msgstr ""
1774 1974
1775 -#: includes/modules/Mcp/McpModule.php:1228
1975 +#: includes/modules/Mcp/McpModule.php:1558
1776 1976 msgid "Read & write — purge caches, toggle caching, and change settings."
1777 1977 msgstr ""
1778 1978
1779 -#: includes/modules/Mcp/McpModule.php:1229
1979 +#: includes/modules/Mcp/McpModule.php:1559
1780 1980 msgid "An AI agent"
1781 1981 msgstr ""
1782 1982
1783 -#: includes/modules/Mcp/McpModule.php:1248
1983 +#: includes/modules/Mcp/McpModule.php:1578
1784 1984 msgid "Authorize AI access"
1785 1985 msgstr ""
1786 1986
1787 -#: includes/modules/Mcp/McpModule.php:1259
1987 +#: includes/modules/Mcp/McpModule.php:1589
1788 1988 msgid "Connect to xSpeed"
1789 1989 msgstr ""
1790 1990
1791 1991 #. translators: %s: AI client name.
1792 -#: includes/modules/Mcp/McpModule.php:1261
1992 +#: includes/modules/Mcp/McpModule.php:1591
1793 1993 #, php-format
1794 1994 msgid "%s wants to manage the cache on this site."
1795 1995 msgstr ""
1796 1996
1797 -#: includes/modules/Mcp/McpModule.php:1262
1997 +#: includes/modules/Mcp/McpModule.php:1592
1798 1998 msgid "Site"
1799 1999 msgstr ""
1800 2000
1801 -#: includes/modules/Mcp/McpModule.php:1263
2001 +#: includes/modules/Mcp/McpModule.php:1593
1802 2002 msgid "Signed in as"
1803 2003 msgstr ""
1804 2004
1805 -#: includes/modules/Mcp/McpModule.php:1264
2005 +#: includes/modules/Mcp/McpModule.php:1594
1806 2006 msgid "Access"
1807 2007 msgstr ""
1808 2008
1809 -#: includes/modules/Mcp/McpModule.php:1269
2009 +#: includes/modules/Mcp/McpModule.php:1599
1810 2010 msgid "Deny"
1811 2011 msgstr ""
1812 2012
1813 -#: includes/modules/Mcp/McpModule.php:1270
2013 +#: includes/modules/Mcp/McpModule.php:1600
1814 2014 msgid "Approve"
1815 2015 msgstr ""
1816 2016
1817 -#: includes/modules/Mcp/McpModule.php:1280
2017 +#: includes/modules/Mcp/McpModule.php:1610
1818 2018 msgid "Authorization error"
1819 2019 msgstr ""
1820 2020
1821 -#: includes/modules/Mcp/McpModule.php:1283
2021 +#: includes/modules/Mcp/McpModule.php:1613
1822 2022 msgid "Could not authorize"
1823 2023 msgstr ""
1824 2024
1825 -#: includes/modules/Mcp/McpModule.php:1513
2025 +#: includes/modules/Mcp/McpModule.php:1843
1826 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."
1827 2027 msgstr ""
1828 2028
1829 -#: includes/modules/Mcp/McpModule.php:1514
2029 +#: includes/modules/Mcp/McpModule.php:1844
1830 2030 msgid "No AI assistant is connected. This module counts as on once you connect one."
1831 2031 msgstr ""
1832 2032
1833 2033 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1846,47 +2046,47 @@
1846 2046 #: assets/admin.js
1847 2047 msgid "The test could not be started."
1848 2048 msgstr ""
1849 2049
1850 -#: includes/modules/Mcp/Mcp_OAuth.php:213
2050 +#: includes/modules/Mcp/Mcp_OAuth.php:261
1851 2051 msgid "Too many client registrations. Try again later."
1852 2052 msgstr ""
1853 2053
1854 2054 #. translators: %d: maximum number of redirect URIs.
1855 -#: includes/modules/Mcp/Mcp_OAuth.php:229
2055 +#: includes/modules/Mcp/Mcp_OAuth.php:277
1856 2056 #, php-format
1857 2057 msgid "At most %d redirect_uris are allowed."
1858 2058 msgstr ""
1859 2059
1860 -#: includes/modules/Mcp/Mcp_OAuth.php:241
2060 +#: includes/modules/Mcp/Mcp_OAuth.php:289
1861 2061 msgid "At least one valid redirect_uri is required."
1862 2062 msgstr ""
1863 2063
1864 -#: includes/modules/Mcp/Mcp_OAuth.php:278
2064 +#: includes/modules/Mcp/Mcp_OAuth.php:326
1865 2065 msgid "Client registration limit reached."
1866 2066 msgstr ""
1867 2067
1868 -#: includes/modules/Mcp/Mcp_OAuth.php:297
2068 +#: includes/modules/Mcp/Mcp_OAuth.php:345
1869 2069 msgid "The client registration could not be stored."
1870 2070 msgstr ""
1871 2071
1872 -#: includes/modules/Mcp/Mcp_OAuth.php:336
2072 +#: includes/modules/Mcp/Mcp_OAuth.php:384
1873 2073 msgid "Unknown client_id."
1874 2074 msgstr ""
1875 2075
1876 -#: includes/modules/Mcp/Mcp_OAuth.php:340
2076 +#: includes/modules/Mcp/Mcp_OAuth.php:388
1877 2077 msgid "redirect_uri does not match a registered value."
1878 2078 msgstr ""
1879 2079
1880 -#: includes/modules/Mcp/Mcp_OAuth.php:343
2080 +#: includes/modules/Mcp/Mcp_OAuth.php:391
1881 2081 msgid "Only response_type=code is supported."
1882 2082 msgstr ""
1883 2083
1884 -#: includes/modules/Mcp/Mcp_OAuth.php:347
2084 +#: includes/modules/Mcp/Mcp_OAuth.php:395
1885 2085 msgid "PKCE with code_challenge_method=S256 is required."
1886 2086 msgstr ""
1887 2087
1888 -#: includes/modules/Mcp/Mcp_Pairing.php:408
2088 +#: includes/modules/Mcp/Mcp_Pairing.php:451
1889 2089 msgid "No active MCP connection to change. Connect first."
1890 2090 msgstr ""
1891 2091
1892 2092 #. translators: %s: tool name.
@@ -2100,9 +2300,9 @@
2100 2300 msgid "Migrate"
2101 2301 msgstr ""
2102 2302
2103 2303 #: includes/modules/Migration/MigrationModule.php:548
2104 -#: includes/modules/Minify/MinifyModule.php:35
2304 +#: includes/modules/Minify/MinifyModule.php:36
2105 2305 msgid "Minify"
2106 2306 msgstr ""
2107 2307
2108 2308 #: includes/modules/Migration/MigrationModule.php:549
@@ -2193,121 +2393,139 @@
2193 2393 #, php-format
2194 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."
2195 2395 msgstr ""
2196 2396
2197 -#: includes/modules/Minify/MinifyModule.php:34
2397 +#: includes/modules/Minify/MinifyModule.php:35
2198 2398 msgid "CSS & JavaScript"
2199 2399 msgstr ""
2200 2400
2201 -#: includes/modules/Minify/MinifyModule.php:37
2401 +#: includes/modules/Minify/MinifyModule.php:38
2202 2402 msgid "Strip whitespace and rewrite enqueued CSS / JS."
2203 2403 msgstr ""
2204 2404
2205 -#: includes/modules/Minify/MinifyModule.php:50
2405 +#: includes/modules/Minify/MinifyModule.php:51
2206 2406 msgid "Minify HTML"
2207 2407 msgstr ""
2208 2408
2209 -#: includes/modules/Minify/MinifyModule.php:55
2409 +#: includes/modules/Minify/MinifyModule.php:56
2210 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."
2211 2411 msgstr ""
2212 2412
2213 -#: includes/modules/Minify/MinifyModule.php:60
2413 +#: includes/modules/Minify/MinifyModule.php:61
2214 2414 msgid "Minify CSS"
2215 2415 msgstr ""
2216 2416
2217 -#: includes/modules/Minify/MinifyModule.php:61
2417 +#: includes/modules/Minify/MinifyModule.php:62
2218 2418 msgid "Compress and rewrite enqueued local stylesheets. External CSS is left untouched."
2219 2419 msgstr ""
2220 2420
2221 -#: includes/modules/Minify/MinifyModule.php:66
2421 +#: includes/modules/Minify/MinifyModule.php:67
2222 2422 msgid "Minify JavaScript"
2223 2423 msgstr ""
2224 2424
2225 -#: includes/modules/Minify/MinifyModule.php:67
2425 +#: includes/modules/Minify/MinifyModule.php:68
2226 2426 msgid "Compress enqueued local scripts. Disable if you hit script-loading conflicts on the frontend."
2227 2427 msgstr ""
2228 2428
2229 -#: includes/modules/Minify/MinifyModule.php:72
2429 +#: includes/modules/Minify/MinifyModule.php:73
2230 2430 msgid "Defer JavaScript"
2231 2431 msgstr ""
2232 2432
2233 -#: includes/modules/Minify/MinifyModule.php:73
2433 +#: includes/modules/Minify/MinifyModule.php:74
2234 2434 msgid "Add defer=\"defer\" to enqueued script tags so they execute after HTML parsing. jQuery + its hard dependencies are skipped automatically."
2235 2435 msgstr ""
2236 2436
2237 -#: includes/modules/Minify/MinifyModule.php:78
2437 +#: includes/modules/Minify/MinifyModule.php:79
2238 2438 msgid "Delay JavaScript Until Interaction"
2239 2439 msgstr ""
2240 2440
2241 -#: includes/modules/Minify/MinifyModule.php:79
2242 -msgid "Postpone script loading until the visitor scrolls, moves the mouse, taps, or presses a key. Drastically improves first paint on script-heavy pages; can break above-the-fold scripted UI — test before leaving on."
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."
2243 2443 msgstr ""
2244 2444
2245 -#: includes/modules/Minify/MinifyModule.php:84
2445 +#: includes/modules/Minify/MinifyModule.php:85
2246 2446 msgid "Load CSS Asynchronously"
2247 2447 msgstr ""
2248 2448
2249 -#: includes/modules/Minify/MinifyModule.php:85
2449 +#: includes/modules/Minify/MinifyModule.php:86
2250 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."
2251 2451 msgstr ""
2252 2452
2253 -#: includes/modules/Minify/MinifyModule.php:90
2453 +#: includes/modules/Minify/MinifyModule.php:91
2254 2454 msgid "Remove Asset Query Strings"
2255 2455 msgstr ""
2256 2456
2257 -#: includes/modules/Minify/MinifyModule.php:91
2457 +#: includes/modules/Minify/MinifyModule.php:92
2258 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."
2259 2459 msgstr ""
2260 2460
2261 -#: includes/modules/Minify/MinifyModule.php:97
2461 +#: includes/modules/Minify/MinifyModule.php:98
2262 2462 msgid "Defer / Delay Exclusions"
2263 2463 msgstr ""
2264 2464
2265 -#: includes/modules/Minify/MinifyModule.php:98
2266 -msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). One per line."
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."
2267 2467 msgstr ""
2268 2468
2269 -#: includes/modules/Minify/MinifyModule.php:112
2469 +#: includes/modules/Minify/MinifyModule.php:113
2270 2470 msgid "Delay Only These Scripts"
2271 2471 msgstr ""
2272 2472
2273 -#: includes/modules/Minify/MinifyModule.php:113
2274 -msgid "Script handles OR URL substrings. When non-empty, matching scripts are delayed, plus the known third-party tags xSpeed recognises on its own (analytics, tag managers, chat widgets, review embeds, error trackers) — so a heavy vendor script is postponed even when it is not listed here. Leave empty to delay all scripts (minus the exclusions above). Handles are the more reliable selector — a URL substring has to match the script's original URL, and minification rewrites that to a hashed cache path. One per line."
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."
2275 2475 msgstr ""
2276 2476
2277 -#: 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
2278 2496 msgid "Delay Failsafe Timeout (ms)"
2279 2497 msgstr ""
2280 2498
2281 -#: includes/modules/Minify/MinifyModule.php:123
2499 +#: includes/modules/Minify/MinifyModule.php:137
2282 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."
2283 2501 msgstr ""
2284 2502
2285 -#: includes/modules/Minify/MinifyModule.php:129
2503 +#: includes/modules/Minify/MinifyModule.php:143
2286 2504 msgid "Combine CSS Files"
2287 2505 msgstr ""
2288 2506
2289 -#: includes/modules/Minify/MinifyModule.php:130
2507 +#: includes/modules/Minify/MinifyModule.php:144
2290 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."
2291 2509 msgstr ""
2292 2510
2293 -#: includes/modules/Minify/MinifyModule.php:135
2511 +#: includes/modules/Minify/MinifyModule.php:149
2294 2512 msgid "Combine JavaScript Files"
2295 2513 msgstr ""
2296 2514
2297 -#: includes/modules/Minify/MinifyModule.php:136
2515 +#: includes/modules/Minify/MinifyModule.php:150
2298 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."
2299 2517 msgstr ""
2300 2518
2301 -#: includes/modules/Minify/MinifyModule.php:273
2519 +#: includes/modules/Minify/MinifyModule.php:287
2302 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."
2303 2521 msgstr ""
2304 2522
2305 -#: includes/modules/Minify/MinifyModule.php:274
2523 +#: includes/modules/Minify/MinifyModule.php:288
2306 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."
2307 2525 msgstr ""
2308 2526
2309 -#: includes/modules/Minify/MinifyModule.php:279
2527 +#: includes/modules/Minify/MinifyModule.php:293
2310 2528 msgid "HTML minification is on but currently paused"
2311 2529 msgstr ""
2312 2530
2313 2531 #: includes/modules/ObjectCache/ObjectCacheModule.php:34
@@ -2421,60 +2639,86 @@
2421 2639 #: includes/modules/Preloader/PreloaderModule.php:35
2422 2640 msgid "Crawl the sitemap to warm cache so visitors never hit a cold MISS."
2423 2641 msgstr ""
2424 2642
2425 -#: 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
2426 2654 msgid "Enable Preloader"
2427 2655 msgstr ""
2428 2656
2429 -#: includes/modules/Preloader/PreloaderModule.php:49
2657 +#: includes/modules/Preloader/PreloaderModule.php:78
2430 2658 msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2431 2659 msgstr ""
2432 2660
2433 -#: includes/modules/Preloader/PreloaderModule.php:61
2661 +#: includes/modules/Preloader/PreloaderModule.php:90
2434 2662 msgid "Schedule"
2435 2663 msgstr ""
2436 2664
2437 -#: includes/modules/Preloader/PreloaderModule.php:62
2665 +#: includes/modules/Preloader/PreloaderModule.php:91
2438 2666 msgid "How often to start a fresh crawl. Manual means you trigger it from the dashboard."
2439 2667 msgstr ""
2440 2668
2441 -#: includes/modules/Preloader/PreloaderModule.php:70
2669 +#: includes/modules/Preloader/PreloaderModule.php:99
2442 2670 msgid "Batch Size"
2443 2671 msgstr ""
2444 2672
2445 -#: includes/modules/Preloader/PreloaderModule.php:71
2673 +#: includes/modules/Preloader/PreloaderModule.php:100
2446 2674 msgid "URLs warmed per cron tick. Higher = faster crawl, more load on the origin."
2447 2675 msgstr ""
2448 2676
2449 -#: includes/modules/Preloader/PreloaderModule.php:77
2677 +#: includes/modules/Preloader/PreloaderModule.php:106
2450 2678 msgid "Sitemap URL (optional)"
2451 2679 msgstr ""
2452 2680
2453 -#: includes/modules/Preloader/PreloaderModule.php:78
2681 +#: includes/modules/Preloader/PreloaderModule.php:107
2454 2682 msgid "Override the auto-detected WordPress core sitemap (/wp-sitemap.xml). Leave blank for default."
2455 2683 msgstr ""
2456 2684
2457 -#: includes/modules/Preloader/PreloaderModule.php:84
2685 +#: includes/modules/Preloader/PreloaderModule.php:113
2458 2686 msgid "Warm new content immediately"
2459 2687 msgstr ""
2460 2688
2461 -#: includes/modules/Preloader/PreloaderModule.php:85
2689 +#: includes/modules/Preloader/PreloaderModule.php:114
2462 2690 msgid "When a post or page is published, fetch it once so the first visitor sees a cache HIT, not a cold MISS."
2463 2691 msgstr ""
2464 2692
2465 -#: includes/modules/Preloader/PreloaderModule.php:91
2693 +#: includes/modules/Preloader/PreloaderModule.php:120
2466 2694 msgid "Re-warm after comments"
2467 2695 msgstr ""
2468 2696
2469 -#: includes/modules/Preloader/PreloaderModule.php:92
2697 +#: includes/modules/Preloader/PreloaderModule.php:121
2470 2698 msgid "Re-warm a page after a comment is posted (Cache purges the page on comment; this fetches it back into cache)."
2471 2699 msgstr ""
2472 2700
2473 -#: includes/modules/Preloader/PreloaderModule.php:268
2701 +#: includes/modules/Preloader/PreloaderModule.php:297
2474 2702 msgid "Enable the preloader before starting a crawl."
2475 2703 msgstr ""
2476 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 +
2477 2721 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2478 2722 msgid "Resource Hints"
2479 2723 msgstr ""
2480 2724
@@ -2637,8 +2881,48 @@
2637 2881 #: includes/modules/Support/SupportModule.php:41
2638 2882 msgid "Where the \"Open ticket\" button takes the user."
2639 2883 msgstr ""
2640 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 +
2641 2925 #: xspeed.php:220
2642 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."
2643 2927 msgstr ""
2644 2928
@@ -2695,9 +2979,9 @@
2695 2979 #: assets/admin.js
2696 2980 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2697 2981 msgstr ""
2698 2982
2699 -#. Source: src/components/cache/CacheHero.tsx:238
2983 +#. Source: src/components/cache/CacheHero.tsx:245
2700 2984 #: assets/admin.js
2701 2985 msgid "Absorbed"
2702 2986 msgstr ""
2703 2987
@@ -2767,9 +3051,9 @@
2767 3051 #: assets/admin.js
2768 3052 msgid "Also cleared: %s."
2769 3053 msgstr ""
2770 3054
2771 -#. Source: src/components/overview/Recommendations.tsx:181
3055 +#. Source: src/components/overview/Recommendations.tsx:184
2772 3056 #: assets/admin.js
2773 3057 msgid "Also worth a look"
2774 3058 msgstr ""
2775 3059
@@ -2828,9 +3112,9 @@
2828 3112 #: assets/admin.js
2829 3113 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2830 3114 msgstr ""
2831 3115
2832 -#. Source: src/components/overview/MetricGrid.tsx:47
3116 +#. Source: src/components/overview/MetricGrid.tsx:57
2833 3117 #: assets/admin.js
2834 3118 msgid "Avg saved"
2835 3119 msgstr ""
2836 3120
@@ -2843,29 +3127,29 @@
2843 3127 #: assets/admin.js
2844 3128 msgid "Benchmark failed"
2845 3129 msgstr ""
2846 3130
2847 -#. Source: src/components/cache/TrendCharts.tsx:258
3131 +#. Source: src/components/cache/TrendCharts.tsx:263
2848 3132 #: assets/admin.js
2849 3133 msgid "Benchmark trend"
2850 3134 msgstr ""
2851 3135
2852 -#. Source: src/components/cache/TrendCharts.tsx:134
3136 +#. Source: src/components/cache/TrendCharts.tsx:139
2853 3137 #: assets/admin.js
2854 3138 msgid "Benchmark: cached vs uncached (ms)"
2855 3139 msgstr ""
2856 3140
2857 -#. Source: src/components/overview/Recommendations.tsx:230
3141 +#. Source: src/components/overview/Recommendations.tsx:233
2858 3142 #: assets/admin.js
2859 3143 msgid "Book"
2860 3144 msgstr ""
2861 3145
2862 -#. Source: src/components/overview/Recommendations.tsx:221
3146 +#. Source: src/components/overview/Recommendations.tsx:224
2863 3147 #: assets/admin.js
2864 3148 msgid "Book a free setup review with our team."
2865 3149 msgstr ""
2866 3150
2867 -#. Source: src/components/cache/CacheHero.tsx:242
3151 +#. Source: src/components/cache/CacheHero.tsx:249
2868 3152 #: assets/admin.js
2869 3153 msgid "bot / 404 requests in 24h — excluded from the hit ratio."
2870 3154 msgstr ""
2871 3155
@@ -2878,9 +3162,9 @@
2878 3162 #: assets/admin.js
2879 3163 msgid "Browse all"
2880 3164 msgstr ""
2881 3165
2882 -#. Source: src/components/sidebarGroups.ts:69
3166 +#. Source: src/components/sidebarGroups.ts:79
2883 3167 #: assets/admin.js
2884 3168 msgid "Cache"
2885 3169 msgstr ""
2886 3170
@@ -2968,9 +3252,9 @@
2968 3252 msgid "Cache purged"
2969 3253 msgstr ""
2970 3254
2971 3255 #. Source: src/components/health/HealthHero.tsx:30
2972 -#. Source: src/components/overview/MetricGrid.tsx:46
3256 +#. Source: src/components/overview/MetricGrid.tsx:56
2973 3257 #: assets/admin.js
2974 3258 msgid "Cache size"
2975 3259 msgstr ""
2976 3260
@@ -2983,9 +3267,9 @@
2983 3267 #: assets/admin.js
2984 3268 msgid "Cache, compression & more"
2985 3269 msgstr ""
2986 3270
2987 -#. Source: src/components/cache/TrendCharts.tsx:270
3271 +#. Source: src/components/cache/TrendCharts.tsx:275
2988 3272 #: assets/admin.js
2989 3273 msgid "cached"
2990 3274 msgstr ""
2991 3275
@@ -2990,9 +3274,9 @@
2990 3274 msgstr ""
2991 3275
2992 3276 #. Source: src/components/cache/StatDrilldown.tsx:140
2993 3277 #. Source: src/components/health/HealthHero.tsx:29
2994 -#. Source: src/components/overview/MetricGrid.tsx:45
3278 +#. Source: src/components/overview/MetricGrid.tsx:55
2995 3279 #: assets/admin.js
2996 3280 msgid "Cached pages"
2997 3281 msgstr ""
2998 3282
@@ -3016,9 +3300,9 @@
3016 3300 #: assets/admin.js
3017 3301 msgid "Cancel"
3018 3302 msgstr ""
3019 3303
3020 -#. Source: src/components/sidebarGroups.ts:85
3304 +#. Source: src/components/sidebarGroups.ts:95
3021 3305 #: assets/admin.js
3022 3306 msgid "CDN and Cloudflare edge delivery."
3023 3307 msgstr ""
3024 3308
@@ -3113,8 +3397,13 @@
3113 3397 #: assets/admin.js
3114 3398 msgid "Connect"
3115 3399 msgstr ""
3116 3400
3401 +#. Source: src/components/sidebarGroups.ts:120
3402 +#: assets/admin.js
3403 +msgid "Connect an AI agent to this site, and control what AI features may use."
3404 +msgstr ""
3405 +
3117 3406 #. Source: src/components/TopBar.tsx:138
3118 3407 #: assets/admin.js
3119 3408 msgid "Connect Hub"
3120 3409 msgstr ""
@@ -3229,9 +3518,9 @@
3229 3518 #: assets/admin.js
3230 3519 msgid "Could not check the test status."
3231 3520 msgstr ""
3232 3521
3233 -#. Source: src/components/sidebarGroups.ts:99
3522 +#. Source: src/components/sidebarGroups.ts:109
3234 3523 #: assets/admin.js
3235 3524 msgid "Database cleanup, migration and logs."
3236 3525 msgstr ""
3237 3526
@@ -3368,9 +3657,9 @@
3368 3657 #: assets/admin.js
3369 3658 msgid "Go to Dashboard"
3370 3659 msgstr ""
3371 3660
3372 -#. Source: src/onboarding/OnboardingApp.tsx:161
3661 +#. Source: src/onboarding/OnboardingApp.tsx:165
3373 3662 #: assets/admin.js
3374 3663 msgid "Go to the dashboard"
3375 3664 msgstr ""
3376 3665
@@ -3389,9 +3678,9 @@
3389 3678 #: assets/admin.js
3390 3679 msgid "GTmetrix test"
3391 3680 msgstr ""
3392 3681
3393 -#. Source: src/components/sidebarGroups.ts:90
3682 +#. Source: src/components/sidebarGroups.ts:100
3394 3683 #: assets/admin.js
3395 3684 msgid "Health & insights"
3396 3685 msgstr ""
3397 3686
@@ -3414,11 +3703,11 @@
3414 3703 #: assets/admin.js
3415 3704 msgid "Hide"
3416 3705 msgstr ""
3417 3706
3418 -#. Source: src/components/cache/TrendCharts.tsx:120
3419 -#. Source: src/components/health/HealthHero.tsx:37
3420 -#. 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
3421 3710 #: assets/admin.js
3422 3711 msgid "Hit ratio"
3423 3712 msgstr ""
3424 3713
@@ -3431,14 +3720,19 @@
3431 3720 #: assets/admin.js
3432 3721 msgid "Hit Ratio · 24h · origin"
3433 3722 msgstr ""
3434 3723
3724 +#. Source: src/components/health/HealthHero.tsx:42
3725 +#: assets/admin.js
3726 +msgid "Hit ratio (PHP-served only)"
3727 +msgstr ""
3728 +
3435 3729 #. Source: src/components/cache/TrendCharts.tsx:83
3436 3730 #: assets/admin.js
3437 3731 msgid "Hit ratio and benchmark history, with your settings changes marked."
3438 3732 msgstr ""
3439 3733
3440 -#. Source: src/components/cache/TrendCharts.tsx:222
3734 +#. Source: src/components/cache/TrendCharts.tsx:227
3441 3735 #: assets/admin.js
3442 3736 msgid "Hit ratio trend"
3443 3737 msgstr ""
3444 3738
@@ -3461,13 +3755,8 @@
3461 3755 #: assets/admin.js
3462 3756 msgid "Hub connected"
3463 3757 msgstr ""
3464 3758
3465 -#. Source: src/components/sidebarGroups.ts:106
3466 -#: assets/admin.js
3467 -msgid "Hub, MCP access, AI provider and privacy."
3468 -msgstr ""
3469 -
3470 3759 #. Source: src/onboarding/steps/Connect.tsx:132
3471 3760 #: assets/admin.js
3472 3761 msgid "I'll connect later"
3473 3762 msgstr ""
@@ -3506,14 +3795,14 @@
3506 3795 #: assets/admin.js
3507 3796 msgid "Just say what you want"
3508 3797 msgstr ""
3509 3798
3510 -#. Source: src/components/overview/MetricGrid.tsx:51
3799 +#. Source: src/components/overview/MetricGrid.tsx:61
3511 3800 #: assets/admin.js
3512 3801 msgid "Key metrics"
3513 3802 msgstr ""
3514 3803
3515 -#. Source: src/components/overview/MetricGrid.tsx:44
3804 +#. Source: src/components/overview/MetricGrid.tsx:53
3516 3805 #: assets/admin.js
3517 3806 msgid "last 24 hours"
3518 3807 msgstr ""
3519 3808
@@ -3526,9 +3815,9 @@
3526 3815 #: assets/admin.js
3527 3816 msgid "Last purged"
3528 3817 msgstr ""
3529 3818
3530 -#. Source: src/components/cache/TrendCharts.tsx:236
3819 +#. Source: src/components/cache/TrendCharts.tsx:241
3531 3820 #: assets/admin.js
3532 3821 msgid "Latest"
3533 3822 msgstr ""
3534 3823
@@ -3542,9 +3831,9 @@
3542 3831 #: assets/admin.js
3543 3832 msgid "License"
3544 3833 msgstr ""
3545 3834
3546 -#. Source: src/components/sidebarGroups.ts:113
3835 +#. Source: src/components/sidebarGroups.ts:128
3547 3836 #: assets/admin.js
3548 3837 msgid "License, branding, multisite and support."
3549 3838 msgstr ""
3550 3839
@@ -3557,9 +3846,14 @@
3557 3846 #: assets/admin.js
3558 3847 msgid "Lighthouse performance, out of 100"
3559 3848 msgstr ""
3560 3849
3561 -#. Source: src/App.tsx:420
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
3562 3856 #. Source: src/components/GroupLanding.tsx:67
3563 3857 #. Source: src/components/LogsView.tsx:35
3564 3858 #: assets/admin.js
3565 3859 msgid "Logs"
@@ -3626,9 +3920,9 @@
3626 3920 #: assets/admin.js
3627 3921 msgid "min"
3628 3922 msgstr ""
3629 3923
3630 -#. Source: src/components/sidebarGroups.ts:78
3924 +#. Source: src/components/sidebarGroups.ts:88
3631 3925 #: assets/admin.js
3632 3926 msgid "Minify, compress, lazy-load, fonts and hints."
3633 3927 msgstr ""
3634 3928
@@ -3670,9 +3964,9 @@
3670 3964 #: assets/admin.js
3671 3965 msgid "Negligible difference — page is cheap to render or cache is cold."
3672 3966 msgstr ""
3673 3967
3674 -#. Source: src/components/sidebarGroups.ts:83
3968 +#. Source: src/components/sidebarGroups.ts:93
3675 3969 #: assets/admin.js
3676 3970 msgid "Network"
3677 3971 msgstr ""
3678 3972
@@ -3846,9 +4140,9 @@
3846 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."
3847 4141 msgstr ""
3848 4142
3849 4143 #. Source: src/components/health/HealthHero.tsx:30
3850 -#. Source: src/components/overview/MetricGrid.tsx:46
4144 +#. Source: src/components/overview/MetricGrid.tsx:56
3851 4145 #: assets/admin.js
3852 4146 msgid "on disk"
3853 4147 msgstr ""
3854 4148
@@ -3856,9 +4150,9 @@
3856 4150 #: assets/admin.js
3857 4151 msgid "on your xSpeed Hub account."
3858 4152 msgstr ""
3859 4153
3860 -#. Source: src/onboarding/OnboardingApp.tsx:152
4154 +#. Source: src/onboarding/OnboardingApp.tsx:156
3861 4155 #: assets/admin.js
3862 4156 msgid "Onboarding data unavailable"
3863 4157 msgstr ""
3864 4158
@@ -3886,9 +4180,9 @@
3886 4180 #: assets/admin.js
3887 4181 msgid "Open the full report"
3888 4182 msgstr ""
3889 4183
3890 -#. Source: src/components/sidebarGroups.ts:76
4184 +#. Source: src/components/sidebarGroups.ts:86
3891 4185 #: assets/admin.js
3892 4186 msgid "Optimization"
3893 4187 msgstr ""
3894 4188
@@ -3917,9 +4211,9 @@
3917 4211 #: assets/admin.js
3918 4212 msgid "Page"
3919 4213 msgstr ""
3920 4214
3921 -#. Source: src/components/sidebarGroups.ts:71
4215 +#. Source: src/components/sidebarGroups.ts:81
3922 4216 #: assets/admin.js
3923 4217 msgid "Page, object and browser caching, plus preload."
3924 4218 msgstr ""
3925 4219
@@ -3957,9 +4251,9 @@
3957 4251 #: assets/admin.js
3958 4252 msgid "Paste this site’s URL + token into the"
3959 4253 msgstr ""
3960 4254
3961 -#. Source: src/components/overview/MetricGrid.tsx:47
4255 +#. Source: src/components/overview/MetricGrid.tsx:57
3962 4256 #: assets/admin.js
3963 4257 msgid "per page load"
3964 4258 msgstr ""
3965 4259
@@ -3980,8 +4274,13 @@
3980 4274 #: assets/admin.js
3981 4275 msgid "Performance score and Core Web Vitals."
3982 4276 msgstr ""
3983 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 +
3984 4283 #. Source: src/components/score/ScorePanel.tsx:713
3985 4284 #: assets/admin.js
3986 4285 msgid "Pick one more run to compare."
3987 4286 msgstr ""
@@ -4000,18 +4299,35 @@
4000 4299 #: assets/admin.js
4001 4300 msgid "Preload"
4002 4301 msgstr ""
4003 4302
4004 -#. Source: src/App.tsx:390
4303 +#. Source: src/App.tsx:423
4005 4304 #: assets/admin.js
4006 4305 msgid "Preload could not start"
4007 4306 msgstr ""
4008 4307
4009 -#. Source: src/App.tsx:388
4308 +#. Source: src/App.tsx:422
4010 4309 #: assets/admin.js
4011 -msgid "Preload started"
4310 +msgid "Preload could not start: %s"
4012 4311 msgstr ""
4013 4312
4313 +#. Source: src/App.tsx:410
4314 +#: assets/admin.js
4315 +msgid "Preload found no pages to warm"
4316 +msgstr ""
4317 +
4318 +#. Source: src/App.tsx:409
4319 +#: assets/admin.js
4320 +msgid "Preload found no pages to warm: %s"
4321 +msgstr ""
4322 +
4323 +#. Source: src/App.tsx:399
4324 +#: assets/admin.js
4325 +msgid "Preloading %d page"
4326 +msgid_plural "Preloading %d pages"
4327 +msgstr[0] ""
4328 +msgstr[1] ""
4329 +
4014 4330 #. Source: src/upsell/ProDemo.tsx:118
4015 4331 #: assets/admin.js
4016 4332 msgid "Preview"
4017 4333 msgstr ""
@@ -4151,15 +4467,15 @@
4151 4467 #: assets/admin.js
4152 4468 msgid "Recent cache and settings activity."
4153 4469 msgstr ""
4154 4470
4155 -#. Source: src/components/cache/TrendCharts.tsx:148
4471 +#. Source: src/components/cache/TrendCharts.tsx:153
4156 4472 #: assets/admin.js
4157 4473 msgid "Recent changes"
4158 4474 msgstr ""
4159 4475
4160 -#. Source: src/components/overview/Recommendations.tsx:116
4161 -#. Source: src/components/overview/Recommendations.tsx:120
4476 +#. Source: src/components/overview/Recommendations.tsx:119
4477 +#. Source: src/components/overview/Recommendations.tsx:123
4162 4478 #: assets/admin.js
4163 4479 msgid "Recommended for your site"
4164 4480 msgstr ""
4165 4481
@@ -4177,9 +4493,9 @@
4177 4493 #: assets/admin.js
4178 4494 msgid "Refresh activity log"
4179 4495 msgstr ""
4180 4496
4181 -#. Source: src/components/cache/TrendCharts.tsx:108
4497 +#. Source: src/components/cache/TrendCharts.tsx:113
4182 4498 #: assets/admin.js
4183 4499 msgid "Refresh trends"
4184 4500 msgstr ""
4185 4501
@@ -4263,9 +4579,9 @@
4263 4579 #: assets/admin.js
4264 4580 msgid "Run test"
4265 4581 msgstr ""
4266 4582
4267 -#. Source: src/components/cache/TrendCharts.tsx:139
4583 +#. Source: src/components/cache/TrendCharts.tsx:144
4268 4584 #: assets/admin.js
4269 4585 msgid "Run the benchmark at least twice to see a trend."
4270 4586 msgstr ""
4271 4587
@@ -4361,9 +4677,9 @@
4361 4677 msgid "See how this site performs for real visitors."
4362 4678 msgstr ""
4363 4679
4364 4680 #. Source: src/components/health/HealthHero.tsx:29
4365 -#. Source: src/components/overview/MetricGrid.tsx:45
4681 +#. Source: src/components/overview/MetricGrid.tsx:55
4366 4682 #: assets/admin.js
4367 4683 msgid "served without PHP"
4368 4684 msgstr ""
4369 4685
@@ -4431,9 +4747,9 @@
4431 4747 #: assets/admin.js
4432 4748 msgid "Size"
4433 4749 msgstr ""
4434 4750
4435 -#. Source: src/components/sidebarGroups.ts:92
4751 +#. Source: src/components/sidebarGroups.ts:102
4436 4752 #: assets/admin.js
4437 4753 msgid "Speed score, diagnostics and analytics."
4438 4754 msgstr ""
4439 4755
@@ -4476,9 +4792,9 @@
4476 4792 #: assets/admin.js
4477 4793 msgid "Take over the page cache from %s?"
4478 4794 msgstr ""
4479 4795
4480 -#. Source: src/components/cache/TrendCharts.tsx:240
4796 +#. Source: src/components/cache/TrendCharts.tsx:245
4481 4797 #: assets/admin.js
4482 4798 msgid "target ≥80%"
4483 4799 msgstr ""
4484 4800
@@ -4548,9 +4864,9 @@
4548 4864 msgid "Token"
4549 4865 msgstr ""
4550 4866
4551 4867 #. Source: src/components/LogsView.tsx:34
4552 -#. Source: src/components/sidebarGroups.ts:97
4868 +#. Source: src/components/sidebarGroups.ts:107
4553 4869 #: assets/admin.js
4554 4870 msgid "Tools"
4555 4871 msgstr ""
4556 4872
@@ -4558,9 +4874,9 @@
4558 4874 #: assets/admin.js
4559 4875 msgid "Trends"
4560 4876 msgstr ""
4561 4877
4562 -#. Source: src/components/cache/TrendCharts.tsx:126
4878 +#. Source: src/components/cache/TrendCharts.tsx:131
4563 4879 #: assets/admin.js
4564 4880 msgid "Trends appear after a couple of days of traffic. The daily series is being collected now."
4565 4881 msgstr ""
4566 4882
@@ -4588,9 +4904,9 @@
4588 4904 #: assets/admin.js
4589 4905 msgid "Turn on the page cache to start serving pages instantly."
4590 4906 msgstr ""
4591 4907
4592 -#. Source: src/components/cache/TrendCharts.tsx:273
4908 +#. Source: src/components/cache/TrendCharts.tsx:278
4593 4909 #: assets/admin.js
4594 4910 msgid "uncached"
4595 4911 msgstr ""
4596 4912
@@ -4634,14 +4950,14 @@
4634 4950 #: assets/admin.js
4635 4951 msgid "Waiting for connection…"
4636 4952 msgstr ""
4637 4953
4638 -#. Source: src/components/overview/Recommendations.tsx:218
4954 +#. Source: src/components/overview/Recommendations.tsx:221
4639 4955 #: assets/admin.js
4640 4956 msgid "Want a hand?"
4641 4957 msgstr ""
4642 4958
4643 -#. Source: src/onboarding/OnboardingApp.tsx:155
4959 +#. Source: src/onboarding/OnboardingApp.tsx:159
4644 4960 #: assets/admin.js
4645 4961 msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard."
4646 4962 msgstr ""
4647 4963
@@ -4759,9 +5075,9 @@
4759 5075 #: assets/admin.js
4760 5076 msgid "You're all set"
4761 5077 msgstr ""
4762 5078
4763 -#. Source: src/components/overview/Recommendations.tsx:131
5079 +#. Source: src/components/overview/Recommendations.tsx:134
4764 5080 #: assets/admin.js
4765 5081 msgid "You're all set — no recommendations right now."
4766 5082 msgstr ""
4767 5083