PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.3.7
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.3.7
1.3.7 1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 All 33 releases
← All changes | languages/xspeed.pot +986 -642 1.3.2 → 1.3.7 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.7\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-10-01T06:08:12+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:8967
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:8981
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:4213
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:5268
139 139 msgid "Purge All"
140 140 msgstr ""
141 141
142 -#: includes/class-cache.php:4402
142 +#: includes/class-cache.php:5272
143 143 msgid "Purge Page / Static Cache"
144 144 msgstr ""
145 145
146 -#: includes/class-cache.php:4406
146 +#: includes/class-cache.php:5276
147 147 msgid "Purge CSS / JS Cache"
148 148 msgstr ""
149 149
150 -#: includes/class-cache.php:4410
150 +#: includes/class-cache.php:5280
151 151 msgid "Purge Object Cache"
152 152 msgstr ""
153 153
154 -#: includes/class-cache.php:4414
154 +#: includes/class-cache.php:5284
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:5531
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:5537
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:5775
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:5782
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:5785
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:5860
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:5866
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:5940
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:5943
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:5973
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:6030
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:6031
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:6033
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:6048
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:6140
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:6155
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:6156
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:6173
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:6191
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:6192
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:6203
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:6207
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:8451
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:8458
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:8513
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:8520
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:8523
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:8524
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:8525
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:8526
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:8527
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:8528
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:8529
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:8531
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:9050
310 310 #: includes/class-purge-ui.php:278
311 311 #: includes/class-purge-ui.php:675
312 312 msgid "Unauthorized."
313 313 msgstr ""
@@ -429,8 +429,9 @@
429 429 msgid "Page cache lifetime %1$ds cannot be expressed in whole hours — importing as %2$dh."
430 430 msgstr ""
431 431
432 432 #: includes/class-migration.php:358
433 +#: includes/modules/ObjectCache/ObjectCacheModule.php:103
433 434 msgid "Redis password"
434 435 msgstr ""
435 436
436 437 #: includes/class-migration.php:359
@@ -555,9 +556,9 @@
555 556 msgid "Scripts do not run until the visitor interacts. Sliders, counters and anything that animates on load may sit still until first touch, and a script that expects to run immediately can misbehave."
556 557 msgstr ""
557 558
558 559 #: includes/class-optimize-diagnosis.php:525
559 -msgid "Stylesheets load without blocking the first paint, so a theme with no critical CSS can flash unstyled for a moment. It also moves styling to after first paint, which can INCREASE layout shift on a page that already shifts."
560 +msgid "Stylesheets load without blocking the first paint only on pages that have critical CSS; elsewhere only font stylesheets change. Where it applies, styling moves to after first paint, which can INCREASE layout shift on a page that already shifts."
560 561 msgstr ""
561 562
562 563 #: includes/class-optimize-diagnosis.php:526
563 564 msgid "Older themes and plugins still depend on it. Removing it broke a real page with \"jQuery.Deferred exception: e.indexOf is not a function\" — an error the page-level check cannot see, because the HTML arrives intact and only the browser notices."
@@ -729,33 +730,33 @@
729 730 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 731 msgstr ""
731 732
732 733 #. translators: 1: number of URLs, 2: the sitemap failure detail.
733 -#: includes/class-preloader.php:151
734 +#: includes/class-preloader.php:260
734 735 #, php-format
735 736 msgid "Preloader queued %1$d URLs from the site content — %2$s"
736 737 msgstr ""
737 738
738 739 #. translators: %s: the sitemap failure detail.
739 -#: includes/class-preloader.php:159
740 +#: includes/class-preloader.php:268
740 741 #, php-format
741 742 msgid "Preloader could not start — %s"
742 743 msgstr ""
743 744
744 745 #. translators: 1: number of URLs, 2: plural suffix.
745 -#: includes/class-preloader.php:166
746 +#: includes/class-preloader.php:275
746 747 #, php-format
747 748 msgid "Preloader queued %1$d URL%2$s for warming."
748 749 msgstr ""
749 750
750 751 #. translators: 1: sitemap URL, 2: error detail.
751 -#: includes/class-preloader.php:622
752 +#: includes/class-preloader.php:745
752 753 #, php-format
753 754 msgid "Could not fetch the sitemap at %1$s — %2$s"
754 755 msgstr ""
755 756
756 757 #. translators: 1: sitemap URL, 2: HTTP status code.
757 -#: includes/class-preloader.php:635
758 +#: includes/class-preloader.php:758
758 759 #, php-format
759 760 msgid "Could not fetch the sitemap at %1$s — the server returned HTTP %2$d."
760 761 msgstr ""
761 762
@@ -783,9 +784,9 @@
783 784 msgstr ""
784 785
785 786 #: includes/class-purge-runner.php:269
786 787 #: includes/modules/Cdn/CdnModule.php:28
787 -#: includes/modules/Migration/MigrationModule.php:555
788 +#: includes/modules/Migration/MigrationModule.php:556
788 789 msgid "CDN"
789 790 msgstr ""
790 791
791 792 #. translators: 1: what asked for the purge, 2: number of files removed.
@@ -947,8 +948,9 @@
947 948 msgid "Your hit ratio is %d%% — most visitors hit a cold cache. The preloader crawls your sitemap so pages are warm before anyone asks."
948 949 msgstr ""
949 950
950 951 #: includes/class-recommendations.php:148
952 +#: includes/modules/Preloader/PreloaderModule.php:78
951 953 msgid "Enable preloader"
952 954 msgstr ""
953 955
954 956 #: includes/class-recommendations.php:158
@@ -986,9 +988,9 @@
986 988 #: includes/class-rest-api.php:352
987 989 msgid "The id argument is required."
988 990 msgstr ""
989 991
990 -#: includes/class-rest-api.php:472
992 +#: includes/class-rest-api.php:479
991 993 msgid "dashboard"
992 994 msgstr ""
993 995
994 996 #: includes/class-rest-manager.php:83
@@ -1061,13 +1063,13 @@
1061 1063 #: includes/class-score.php:412
1062 1064 msgid "GTmetrix returned an unreadable response."
1063 1065 msgstr ""
1064 1066
1065 -#: includes/class-server.php:744
1067 +#: includes/class-server.php:746
1066 1068 msgid "an unreadable advanced-cache.php"
1067 1069 msgstr ""
1068 1070
1069 -#: includes/class-server.php:754
1071 +#: includes/class-server.php:756
1070 1072 msgid "an unidentified advanced-cache.php"
1071 1073 msgstr ""
1072 1074
1073 1075 #. translators: %s: setting key.
@@ -1084,8 +1086,9 @@
1084 1086 msgstr ""
1085 1087
1086 1088 #: includes/class-video-facade.php:153
1087 1089 #: includes/class-video-facade.php:199
1090 +#: includes/class-video-facade.php:309
1088 1091 msgid "Play video"
1089 1092 msgstr ""
1090 1093
1091 1094 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -1092,25 +1095,25 @@
1092 1095 msgid "AI Privacy"
1093 1096 msgstr ""
1094 1097
1095 1098 #: 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."
1099 +msgid "Choose whether AI features may use visitor data, with or without Pro."
1097 1100 msgstr ""
1098 1101
1099 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1100 -msgid "Require consent before AI data collection"
1102 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1103 +msgid "Ask visitors for consent"
1101 1104 msgstr ""
1102 1105
1103 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1104 -msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made)."
1106 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:72
1107 +msgid "When on, AI features only record a visitor's data after they accept the consent banner. Turn it off only where the law does not require consent, as GDPR does."
1105 1108 msgstr ""
1106 1109
1107 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1110 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1108 1111 msgid "Consent banner text"
1109 1112 msgstr ""
1110 1113
1111 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1112 -msgid "Shown in the cookie consent banner. Keep it factual — what you collect (page navigation, performance metrics) and why."
1114 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:78
1115 +msgid "The text of the consent banner. Say plainly what you collect, such as page visits and speed data, and why."
1113 1116 msgstr ""
1114 1117
1115 1118 #: includes/modules/Bloat/BloatModule.php:38
1116 1119 msgid "Bloat Control"
@@ -1116,334 +1119,459 @@
1116 1119 msgid "Bloat Control"
1117 1120 msgstr ""
1118 1121
1119 1122 #: includes/modules/Bloat/BloatModule.php:40
1120 -msgid "Turn off WordPress defaults you do not use — saves bytes, requests, and attack surface."
1123 +msgid "Turns off WordPress features you do not use, so pages load less."
1121 1124 msgstr ""
1122 1125
1123 -#: includes/modules/Bloat/BloatModule.php:49
1124 -msgid "Disable Dashicons on Frontend"
1125 -msgstr ""
1126 -
1127 1126 #: includes/modules/Bloat/BloatModule.php:50
1128 -msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1127 +msgid "Disable emojis"
1129 1128 msgstr ""
1130 1129
1131 -#: includes/modules/Bloat/BloatModule.php:55
1132 -msgid "Disable oEmbed Discovery + wp-embed.min.js"
1130 +#: includes/modules/Bloat/BloatModule.php:51
1131 +msgid "Remove the emoji detection script and its inline styles from every page. Modern browsers draw emojis natively, so visitors still see them. Saves a script and an inline stylesheet per page."
1133 1132 msgstr ""
1134 1133
1135 1134 #: includes/modules/Bloat/BloatModule.php:56
1136 -msgid "Strip the auto-embed handlers + the embed script. Posts that paste a YouTube URL will no longer auto-render the player — embed it via a block instead. Saves a request per page."
1135 +msgid "Remove Dashicons for visitors"
1137 1136 msgstr ""
1138 1137
1139 -#: includes/modules/Bloat/BloatModule.php:61
1140 -msgid "Disable RSS Feeds"
1138 +#: includes/modules/Bloat/BloatModule.php:57
1139 +msgid "Removes the WordPress admin icon font for logged-out visitors. Most themes do not use it, and it saves about 45 KB."
1141 1140 msgstr ""
1142 1141
1143 1142 #: includes/modules/Bloat/BloatModule.php:62
1144 -msgid "Return a 404 on /feed/ and similar endpoints. Useful for sites that do not publish feeds and want to cut feed-fetcher traffic."
1143 +msgid "Disable auto-embeds"
1145 1144 msgstr ""
1146 1145
1147 -#: includes/modules/Bloat/BloatModule.php:67
1148 -msgid "Disable XML-RPC"
1146 +#: includes/modules/Bloat/BloatModule.php:63
1147 +msgid "Removes the embed script, saving one request per page. A pasted YouTube link no longer turns into a player, so use an embed block."
1149 1148 msgstr ""
1150 1149
1151 1150 #: includes/modules/Bloat/BloatModule.php:68
1152 -msgid "Disable the legacy xmlrpc.php endpoint. Cuts pingback brute-force noise; safe to disable unless you use a remote WP client (Jetpack, WordPress mobile app)."
1151 +msgid "Disable RSS feeds"
1153 1152 msgstr ""
1154 1153
1155 -#: includes/modules/Bloat/BloatModule.php:73
1156 -msgid "Strip jQuery Migrate on Frontend"
1154 +#: includes/modules/Bloat/BloatModule.php:69
1155 +msgid "Feed addresses such as /feed/ return \"not found\". Use this if your site has no feed readers."
1157 1156 msgstr ""
1158 1157
1159 1158 #: includes/modules/Bloat/BloatModule.php:74
1160 -msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1159 +msgid "Disable XML-RPC"
1161 1160 msgstr ""
1162 1161
1163 -#: includes/modules/Bloat/BloatModule.php:79
1164 -msgid "Restrict REST API to Logged-In Users"
1162 +#: includes/modules/Bloat/BloatModule.php:75
1163 +msgid "Turns off the old xmlrpc.php file that attackers often target. Leave this off if you use Jetpack or the WordPress mobile app."
1165 1164 msgstr ""
1166 1165
1167 1166 #: includes/modules/Bloat/BloatModule.php:80
1168 -msgid "Block /wp-json/ for anonymous requests. WooCommerce checkout, contact-form submissions, and many block-editor previews need anonymous REST — keep this off unless you know your site does not depend on it."
1167 +msgid "Remove jQuery Migrate"
1169 1168 msgstr ""
1170 1169
1171 -#: includes/modules/Bloat/BloatModule.php:180
1170 +#: includes/modules/Bloat/BloatModule.php:81
1171 +msgid "Removes a script that old themes and plugins need, from pages visitors see. Saves about 10 KB and is safe on current themes."
1172 +msgstr ""
1173 +
1174 +#: includes/modules/Bloat/BloatModule.php:86
1175 +msgid "Remove editor styles for visitors"
1176 +msgstr ""
1177 +
1178 +#: includes/modules/Bloat/BloatModule.php:87
1179 +msgid "Removes block editor CSS that some plugins load on public pages by mistake, which can add hundreds of KB. Block styles for visitors stay."
1180 +msgstr ""
1181 +
1182 +#: includes/modules/Bloat/BloatModule.php:92
1183 +msgid "Remove RSD link"
1184 +msgstr ""
1185 +
1186 +#: includes/modules/Bloat/BloatModule.php:93
1187 +msgid "Drop the Really Simple Discovery link from the page head. Only old desktop blogging clients read it."
1188 +msgstr ""
1189 +
1190 +#: includes/modules/Bloat/BloatModule.php:98
1191 +msgid "Remove shortlink"
1192 +msgstr ""
1193 +
1194 +#: includes/modules/Bloat/BloatModule.php:99
1195 +msgid "Drop the ?p=123 shortlink tag and header from posts and pages. The shortlinks keep working; they are just no longer advertised."
1196 +msgstr ""
1197 +
1198 +#: includes/modules/Bloat/BloatModule.php:104
1199 +msgid "Remove REST API links"
1200 +msgstr ""
1201 +
1202 +#: includes/modules/Bloat/BloatModule.php:105
1203 +msgid "Drop the /wp-json/ discovery link tag and Link header. The REST API itself stays on; to block it, use the setting below."
1204 +msgstr ""
1205 +
1206 +#: includes/modules/Bloat/BloatModule.php:110
1207 +msgid "Hide WordPress version"
1208 +msgstr ""
1209 +
1210 +#: includes/modules/Bloat/BloatModule.php:111
1211 +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."
1212 +msgstr ""
1213 +
1214 +#: includes/modules/Bloat/BloatModule.php:116
1215 +msgid "Disable self-pingbacks"
1216 +msgstr ""
1217 +
1218 +#: includes/modules/Bloat/BloatModule.php:117
1219 +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."
1220 +msgstr ""
1221 +
1222 +#: includes/modules/Bloat/BloatModule.php:122
1223 +msgid "REST API for logged-in users only"
1224 +msgstr ""
1225 +
1226 +#: includes/modules/Bloat/BloatModule.php:123
1227 +msgid "Blocks /wp-json/ for logged-out visitors. This breaks WooCommerce checkout and many contact forms, so keep it off unless you are sure."
1228 +msgstr ""
1229 +
1230 +#: includes/modules/Bloat/BloatModule.php:393
1172 1231 msgid "Feeds are disabled."
1173 1232 msgstr ""
1174 1233
1175 -#: includes/modules/Bloat/BloatModule.php:229
1234 +#: includes/modules/Bloat/BloatModule.php:450
1176 1235 msgid "Anonymous REST access is disabled on this site."
1177 1236 msgstr ""
1178 1237
1179 1238 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
1180 -#: includes/modules/Migration/MigrationModule.php:551
1239 +#: includes/modules/Migration/MigrationModule.php:552
1181 1240 msgid "Browser Cache"
1182 1241 msgstr ""
1183 1242
1184 1243 #: includes/modules/BrowserCache/BrowserCacheModule.php:34
1185 -msgid "Tell browsers (and intermediate CDNs) how long to cache static assets and HTML."
1244 +msgid "Tells browsers and CDNs how long to keep your files and pages."
1186 1245 msgstr ""
1187 1246
1188 -#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1247 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1189 1248 msgid "Enable browser cache headers"
1190 1249 msgstr ""
1191 1250
1192 -#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1193 -msgid "On Apache/LiteSpeed this writes Cache-Control + Expires rules into .htaccess. On nginx it just stores the settings — you paste the snippet into your server block manually."
1251 +#: includes/modules/BrowserCache/BrowserCacheModule.php:45
1252 +msgid "On Apache and LiteSpeed, xSpeed adds the rules to .htaccess for you. On nginx, you copy the snippet into your server config."
1194 1253 msgstr ""
1195 1254
1196 -#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1197 -msgid "Static asset TTL (seconds)"
1255 +#: includes/modules/BrowserCache/BrowserCacheModule.php:52
1256 +msgid "File lifetime (seconds)"
1198 1257 msgstr ""
1199 1258
1200 -#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1201 -msgid "Cache lifetime for CSS, JS, fonts, images. Defaults to 1 year + immutable (the industry-standard \"fingerprinted assets never change\" pattern)."
1259 +#: includes/modules/BrowserCache/BrowserCacheModule.php:54
1260 +msgid "How long browsers keep CSS, JS, fonts and images. The default is 1 year, which suits files that change name when they change."
1202 1261 msgstr ""
1203 1262
1204 -#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1205 -msgid "HTML TTL (seconds)"
1263 +#: includes/modules/BrowserCache/BrowserCacheModule.php:62
1264 +msgid "Page lifetime (seconds)"
1206 1265 msgstr ""
1207 1266
1208 -#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1209 -msgid "Cache lifetime for the HTML document itself. Keep short (default 1h) so post edits roll out same-day."
1267 +#: includes/modules/BrowserCache/BrowserCacheModule.php:64
1268 +msgid "How long browsers keep the page itself. Keep it short (default 1 hour) so visitors see your edits the same day."
1210 1269 msgstr ""
1211 1270
1212 -#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1271 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1213 1272 msgid "Browser cache is enabled but not active on the server"
1214 1273 msgstr ""
1215 1274
1216 -#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1275 +#: includes/modules/BrowserCache/BrowserCacheModule.php:129
1217 1276 msgid "Browser-cache headers need to live in your nginx config, and the live response shows they are not being sent yet — so this is on in settings but doing nothing. Your settings are included in the unified server-block snippet on the Cache panel: paste it once into your nginx vhost (or container nginx config) and reload nginx."
1218 1277 msgstr ""
1219 1278
1220 -#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1221 -#: includes/modules/Gzip/GzipModule.php:163
1279 +#: includes/modules/BrowserCache/BrowserCacheModule.php:133
1280 +#: includes/modules/Gzip/GzipModule.php:164
1222 1281 msgid "Go to the snippet"
1223 1282 msgstr ""
1224 1283
1225 -#: includes/modules/Cache/CacheModule.php:130
1226 -#: includes/modules/Migration/MigrationModule.php:547
1284 +#: includes/modules/Cache/CacheModule.php:169
1285 +#: includes/modules/Migration/MigrationModule.php:548
1227 1286 msgid "Page Cache"
1228 1287 msgstr ""
1229 1288
1230 -#: includes/modules/Cache/CacheModule.php:132
1231 -msgid "Page caching for non-logged-in visitors."
1289 +#: includes/modules/Cache/CacheModule.php:171
1290 +msgid "Saves each page as a file and serves it to logged-out visitors."
1232 1291 msgstr ""
1233 1292
1234 -#: includes/modules/Cache/CacheModule.php:158
1235 -msgid "Cache Expiry (hours)"
1293 +#: includes/modules/Cache/CacheModule.php:198
1294 +msgid "Cache expiry (hours)"
1236 1295 msgstr ""
1237 1296
1238 -#: includes/modules/Cache/CacheModule.php:160
1239 -msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)."
1297 +#: includes/modules/Cache/CacheModule.php:200
1298 +msgid "How long a cached page is kept before xSpeed builds it again. 1 to 720 hours (30 days)."
1240 1299 msgstr ""
1241 1300
1242 -#: includes/modules/Cache/CacheModule.php:188
1301 +#: includes/modules/Cache/CacheModule.php:230
1243 1302 msgid "Excluded URLs"
1244 1303 msgstr ""
1245 1304
1246 -#: includes/modules/Cache/CacheModule.php:189
1247 -msgid "One pattern per line. Plain text matches anywhere in the URL (e.g. /cart). Use glob for anchored matches (/cart/* matches /cart/items but not /foo/cart/bar; *.pdf matches PDFs). Prefix with ~ for a raw regex (e.g. ~wp-.*\\.php)."
1305 +#: includes/modules/Cache/CacheModule.php:231
1306 +msgid "Pages whose URL matches a line here are never cached. Plain text matches anywhere (/cart). A pattern with * matches from the start of the path: /cart/* matches /cart/items but not /shop/cart/items. ~ starts a regex."
1248 1307 msgstr ""
1249 1308
1250 -#: includes/modules/Cache/CacheModule.php:198
1251 -msgid "Excluded Cookies"
1309 +#: includes/modules/Cache/CacheModule.php:240
1310 +msgid "Excluded cookies"
1252 1311 msgstr ""
1253 1312
1254 -#: includes/modules/Cache/CacheModule.php:199
1255 -msgid "Skip cache for any visitor whose request carries a cookie whose NAME matches one of these patterns. Plain text = \"contains\"; glob (woocommerce_*) and ~regex (~wordpress_[a-f0-9]+) supported. One per line."
1313 +#: includes/modules/Cache/CacheModule.php:241
1314 +msgid "Visitors with a cookie whose name matches a line here always get a fresh page. One per line; * and ~regex work."
1256 1315 msgstr ""
1257 1316
1258 -#: includes/modules/Cache/CacheModule.php:205
1259 -msgid "Bypass User Agents"
1317 +#: includes/modules/Cache/CacheModule.php:247
1318 +msgid "Excluded browsers and bots"
1260 1319 msgstr ""
1261 1320
1262 -#: includes/modules/Cache/CacheModule.php:206
1263 -msgid "Substring match against the visitor User-Agent. Matched UAs bypass cache (useful for screenshot bots, internal previews, monitoring). Glob + ~regex supported. One per line."
1321 +#: includes/modules/Cache/CacheModule.php:248
1322 +msgid "Visitors whose user agent contains a line here always get a fresh page. Useful for screenshot bots and uptime monitors."
1264 1323 msgstr ""
1265 1324
1266 -#: includes/modules/Cache/CacheModule.php:217
1267 -msgid "Ignored Query Parameters"
1325 +#: includes/modules/Cache/CacheModule.php:259
1326 +msgid "Ignored query parameters"
1268 1327 msgstr ""
1269 1328
1270 -#: includes/modules/Cache/CacheModule.php:218
1271 -msgid "Query keys removed from the URL before computing the cache key, so /post?utm_source=x and /post share a cache entry. Defaults cover the common analytics + ad + session params. Each entry matches a whole param name — plain text is an exact name, and glob (utm_*) or ~regex are anchored too, so \"ref\" does not also match \"preference\". One per line."
1329 +#: includes/modules/Cache/CacheModule.php:261
1330 +msgid "URL parameters to ignore, so /post?utm_source=x gets the same cached page as /post. Each line matches a whole parameter name."
1272 1331 msgstr ""
1273 1332
1274 -#: includes/modules/Cache/CacheModule.php:223
1275 -msgid "Purge After Updates"
1333 +#: includes/modules/Cache/CacheModule.php:266
1334 +msgid "Clear cache after updates"
1276 1335 msgstr ""
1277 1336
1278 -#: includes/modules/Cache/CacheModule.php:224
1279 -msgid "Clear the page cache when a plugin, theme or WordPress core is updated. Cached HTML is produced by the code being replaced, so leaving it in place serves pre-update markup — and links to minified assets that no longer exist — until the cache expires. Translation updates are ignored, since a language pack changes no markup a cached page depends on. Updates to xSpeed itself always purge, regardless of this setting."
1337 +#: includes/modules/Cache/CacheModule.php:267
1338 +msgid "Clear the page cache when a plugin, theme or WordPress is updated, so visitors never get old pages with broken asset links."
1280 1339 msgstr ""
1281 1340
1282 -#: includes/modules/Cache/CacheModule.php:229
1283 -msgid "Separate Mobile Cache"
1341 +#: includes/modules/Cache/CacheModule.php:272
1342 +msgid "Separate mobile cache"
1284 1343 msgstr ""
1285 1344
1286 -#: includes/modules/Cache/CacheModule.php:230
1287 -msgid "Keep mobile and desktop responses in separate cache buckets. Turn on for AMP, mobile-specific themes (WPtouch / Jetpack mobile theme), or any setup that serves different HTML by device."
1345 +#: includes/modules/Cache/CacheModule.php:273
1346 +msgid "Keep a separate cached copy for phones. Turn on only if your theme or plugins show different pages on mobile."
1288 1347 msgstr ""
1289 1348
1349 +#: includes/modules/Cache/CacheModule.php:305
1350 +msgid "CDN or proxy in front"
1351 +msgstr ""
1352 +
1353 +#: includes/modules/Cache/CacheModule.php:306
1354 +msgid "Tells your CDN or proxy not to store pages xSpeed does not cache. Leave on Detect automatically unless you know your provider."
1355 +msgstr ""
1356 +
1357 +#: includes/modules/Cache/CacheModule.php:308
1358 +msgid "Cache in front of this site"
1359 +msgstr ""
1360 +
1361 +#: includes/modules/Cache/CacheModule.php:309
1362 +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."
1363 +msgstr ""
1364 +
1365 +#: includes/modules/Cache/CacheModule.php:315
1366 +msgid "Custom CDN headers"
1367 +msgstr ""
1368 +
1369 +#: includes/modules/Cache/CacheModule.php:318
1370 +msgid "One header per line, as Name: value, for example \"Surrogate-Control: no-store\". Lines starting with # are ignored."
1371 +msgstr ""
1372 +
1373 +#: includes/modules/Cache/CacheModule.php:319
1374 +msgid "Custom edge headers"
1375 +msgstr ""
1376 +
1377 +#: includes/modules/Cache/CacheModule.php:320
1378 +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."
1379 +msgstr ""
1380 +
1381 +#: includes/modules/Cache/CacheModule.php:333
1382 +msgid "LiteSpeed static fast path"
1383 +msgstr ""
1384 +
1385 +#: includes/modules/Cache/CacheModule.php:335
1386 +msgid "LiteSpeed serves cached pages without running PHP, which is faster on slow hosts. These visits are not counted in the dashboard hit ratio."
1387 +msgstr ""
1388 +
1290 1389 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1291 1390 msgid "Advanced Cache"
1292 1391 msgstr ""
1293 1392
1294 1393 #: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1295 -msgid "Cache 404s, search, feeds, and the REST API, plus custom rules and maintenance bypass."
1394 +msgid "Caches more page types: 404s, search, feeds and the REST API."
1296 1395 msgstr ""
1297 1396
1298 1397 #: includes/modules/Cdn/CdnModule.php:30
1299 -msgid "Serve static assets (images, fonts, CSS, JS) from a pull-zone CDN host like BunnyCDN, KeyCDN, or your own."
1398 +msgid "Serve images, fonts, CSS and JS from a CDN such as BunnyCDN or KeyCDN."
1300 1399 msgstr ""
1301 1400
1302 -#: includes/modules/Cdn/CdnModule.php:39
1401 +#: includes/modules/Cdn/CdnModule.php:40
1303 1402 msgid "Enable CDN"
1304 1403 msgstr ""
1305 1404
1306 -#: includes/modules/Cdn/CdnModule.php:40
1307 -msgid "Rewrite static asset URLs to the CDN hostname below. Your CDN must be a pull-zone configured to fetch from this site."
1405 +#: includes/modules/Cdn/CdnModule.php:41
1406 +msgid "Load static files from the CDN address below. Set up the CDN to pull files from this site first."
1308 1407 msgstr ""
1309 1408
1310 -#: includes/modules/Cdn/CdnModule.php:45
1409 +#: includes/modules/Cdn/CdnModule.php:46
1311 1410 msgid "CDN URL"
1312 1411 msgstr ""
1313 1412
1314 -#: includes/modules/Cdn/CdnModule.php:46
1315 -msgid "CDN hostname, e.g. cdn.example.com. https:// and trailing slashes are stripped automatically."
1413 +#: includes/modules/Cdn/CdnModule.php:47
1414 +msgid "The CDN address, for example cdn.example.com. xSpeed removes https:// and any trailing slash."
1316 1415 msgstr ""
1317 1416
1318 -#: includes/modules/Cdn/CdnModule.php:53
1319 -msgid "Included File Extensions"
1417 +#: includes/modules/Cdn/CdnModule.php:54
1418 +msgid "File types to serve"
1320 1419 msgstr ""
1321 1420
1322 -#: includes/modules/Cdn/CdnModule.php:54
1323 -msgid "Only URLs ending in these extensions are rewritten. Defaults cover images, fonts, CSS, JS, and common media."
1421 +#: includes/modules/Cdn/CdnModule.php:55
1422 +msgid "Only files with these extensions load from the CDN. The defaults cover images, fonts, CSS, JS and common media."
1324 1423 msgstr ""
1325 1424
1326 -#: includes/modules/Cdn/CdnModule.php:61
1327 -msgid "Excluded Patterns"
1425 +#: includes/modules/Cdn/CdnModule.php:62
1426 +msgid "Excluded paths"
1328 1427 msgstr ""
1329 1428
1330 -#: includes/modules/Cdn/CdnModule.php:62
1331 -msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*"
1429 +#: includes/modules/Cdn/CdnModule.php:63
1430 +msgid "Files whose path matches a pattern load from your server, not the CDN. Use * as a wildcard, for example /private/* or *.pdf."
1332 1431 msgstr ""
1333 1432
1334 -#: includes/modules/Cloudflare/CloudflareModule.php:40
1433 +#: includes/modules/Cloudflare/CloudflareModule.php:77
1335 1434 msgid "Cloudflare"
1336 1435 msgstr ""
1337 1436
1338 -#: includes/modules/Cloudflare/CloudflareModule.php:42
1339 -msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1437 +#: includes/modules/Cloudflare/CloudflareModule.php:79
1438 +msgid "Clear the Cloudflare cache whenever xSpeed clears its own cache."
1340 1439 msgstr ""
1341 1440
1342 -#: includes/modules/Cloudflare/CloudflareModule.php:65
1343 -msgid "Enable Cloudflare integration"
1441 +#: includes/modules/Cloudflare/CloudflareModule.php:103
1442 +msgid "Connect Cloudflare"
1344 1443 msgstr ""
1345 1444
1346 -#: includes/modules/Cloudflare/CloudflareModule.php:66
1347 -msgid "Use the credentials below to verify your zone and run purges."
1445 +#: includes/modules/Cloudflare/CloudflareModule.php:104
1446 +msgid "Lets xSpeed clear the Cloudflare cache for your domain, using the details below."
1348 1447 msgstr ""
1349 1448
1350 -#: includes/modules/Cloudflare/CloudflareModule.php:76
1449 +#: includes/modules/Cloudflare/CloudflareModule.php:114
1351 1450 msgid "Authentication"
1352 1451 msgstr ""
1353 1452
1354 -#: includes/modules/Cloudflare/CloudflareModule.php:77
1355 -msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1453 +#: includes/modules/Cloudflare/CloudflareModule.php:115
1454 +msgid "An API token is safer and recommended. The older Global API Key also needs your account email."
1356 1455 msgstr ""
1357 1456
1358 -#: includes/modules/Cloudflare/CloudflareModule.php:83
1457 +#: includes/modules/Cloudflare/CloudflareModule.php:121
1359 1458 msgid "API Token"
1360 1459 msgstr ""
1361 1460
1362 -#: includes/modules/Cloudflare/CloudflareModule.php:84
1363 -msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1461 +#: includes/modules/Cloudflare/CloudflareModule.php:122
1462 +msgid "Create one at dash.cloudflare.com → My Profile → API Tokens. Give it the \"Zone → Cache Purge\" and \"Zone Settings\" permissions."
1364 1463 msgstr ""
1365 1464
1366 -#: includes/modules/Cloudflare/CloudflareModule.php:92
1367 -msgid "Account Email"
1465 +#: includes/modules/Cloudflare/CloudflareModule.php:130
1466 +msgid "Account email"
1368 1467 msgstr ""
1369 1468
1370 -#: includes/modules/Cloudflare/CloudflareModule.php:93
1371 -msgid "Only used when Authentication is set to Global API Key."
1469 +#: includes/modules/Cloudflare/CloudflareModule.php:131
1470 +msgid "The email address of your Cloudflare account."
1372 1471 msgstr ""
1373 1472
1374 -#: includes/modules/Cloudflare/CloudflareModule.php:99
1473 +#: includes/modules/Cloudflare/CloudflareModule.php:137
1375 1474 msgid "Global API Key"
1376 1475 msgstr ""
1377 1476
1378 -#: includes/modules/Cloudflare/CloudflareModule.php:100
1379 -msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1477 +#: includes/modules/Cloudflare/CloudflareModule.php:138
1478 +msgid "Find it at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1380 1479 msgstr ""
1381 1480
1382 -#: includes/modules/Cloudflare/CloudflareModule.php:106
1481 +#: includes/modules/Cloudflare/CloudflareModule.php:144
1383 1482 msgid "Zone ID"
1384 1483 msgstr ""
1385 1484
1386 -#: includes/modules/Cloudflare/CloudflareModule.php:107
1387 -msgid "The 32-character hex Zone ID from your domain overview page."
1485 +#: includes/modules/Cloudflare/CloudflareModule.php:145
1486 +msgid "The 32-character Zone ID shown on your domain overview page in Cloudflare."
1388 1487 msgstr ""
1389 1488
1390 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1391 -msgid "Auto-purge Cloudflare on xSpeed purge"
1489 +#: includes/modules/Cloudflare/CloudflareModule.php:151
1490 +msgid "Clear Cloudflare with xSpeed"
1392 1491 msgstr ""
1393 1492
1394 -#: includes/modules/Cloudflare/CloudflareModule.php:114
1395 -msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1493 +#: includes/modules/Cloudflare/CloudflareModule.php:152
1494 +msgid "Clear the Cloudflare cache each time xSpeed clears its own, for example after you save a post."
1396 1495 msgstr ""
1397 1496
1398 -#: includes/modules/Cloudflare/CloudflareModule.php:238
1497 +#. translators: %d: number of URLs that changed at once.
1498 +#: includes/modules/Cloudflare/CloudflareModule.php:481
1499 +#, php-format
1500 +msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1501 +msgstr ""
1502 +
1503 +#. translators: %d: number of URLs.
1504 +#: includes/modules/Cloudflare/CloudflareModule.php:542
1505 +#, php-format
1506 +msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1507 +msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1508 +msgstr[0] ""
1509 +msgstr[1] ""
1510 +
1511 +#. translators: %d: number of URLs purged.
1512 +#: includes/modules/Cloudflare/CloudflareModule.php:573
1513 +#, php-format
1514 +msgid "Purged %d URL from the Cloudflare edge cache"
1515 +msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1516 +msgstr[0] ""
1517 +msgstr[1] ""
1518 +
1519 +#. translators: 1: number of URLs, 2: failure reason.
1520 +#: includes/modules/Cloudflare/CloudflareModule.php:589
1521 +#, php-format
1522 +msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1523 +msgstr ""
1524 +
1525 +#: includes/modules/Cloudflare/CloudflareModule.php:591
1526 +#: includes/modules/Cloudflare/CloudflareModule.php:658
1527 +msgid "unknown error"
1528 +msgstr ""
1529 +
1530 +#: includes/modules/Cloudflare/CloudflareModule.php:607
1399 1531 msgid "the Cloudflare integration is switched off"
1400 1532 msgstr ""
1401 1533
1402 -#: includes/modules/Cloudflare/CloudflareModule.php:241
1534 +#: includes/modules/Cloudflare/CloudflareModule.php:610
1403 1535 msgid "no zone ID or API credentials are configured"
1404 1536 msgstr ""
1405 1537
1406 1538 #. translators: %s: what asked for the purge.
1407 -#: includes/modules/Cloudflare/CloudflareModule.php:277
1539 +#: includes/modules/Cloudflare/CloudflareModule.php:646
1408 1540 #, php-format
1409 1541 msgid "Purged the Cloudflare edge cache (%s)"
1410 1542 msgstr ""
1411 1543
1412 1544 #. translators: 1: what asked for the purge, 2: failure reason.
1413 -#: includes/modules/Cloudflare/CloudflareModule.php:287
1545 +#: includes/modules/Cloudflare/CloudflareModule.php:656
1414 1546 #, php-format
1415 1547 msgid "Cloudflare purge failed (%1$s): %2$s"
1416 1548 msgstr ""
1417 1549
1418 -#: includes/modules/Cloudflare/CloudflareModule.php:289
1419 -msgid "unknown error"
1420 -msgstr ""
1421 -
1422 -#: includes/modules/Cloudflare/CloudflareModule.php:359
1550 +#: includes/modules/Cloudflare/CloudflareModule.php:728
1423 1551 msgid "Cloudflare is not fully configured."
1424 1552 msgstr ""
1425 1553
1426 -#: includes/modules/Cloudflare/CloudflareModule.php:360
1554 +#: includes/modules/Cloudflare/CloudflareModule.php:729
1427 1555 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 1556 msgstr ""
1429 1557
1430 -#: includes/modules/Cloudflare/CloudflareModule.php:373
1558 +#: includes/modules/Cloudflare/CloudflareModule.php:742
1431 1559 msgid "Cloudflare purge is failing."
1432 1560 msgstr ""
1433 1561
1434 1562 #. translators: %s: the Cloudflare API error message, or empty.
1435 -#: includes/modules/Cloudflare/CloudflareModule.php:376
1563 +#: includes/modules/Cloudflare/CloudflareModule.php:745
1436 1564 #, php-format
1437 1565 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 1566 msgstr ""
1439 1567
1440 -#: includes/modules/Cloudflare/CloudflareModule.php:385
1568 +#: includes/modules/Cloudflare/CloudflareModule.php:754
1441 1569 msgid "Cloudflare credentials were rejected."
1442 1570 msgstr ""
1443 1571
1444 1572 #. translators: %s: the Cloudflare API error message, or empty.
1445 -#: includes/modules/Cloudflare/CloudflareModule.php:388
1573 +#: includes/modules/Cloudflare/CloudflareModule.php:757
1446 1574 #, php-format
1447 1575 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1448 1576 msgstr ""
1449 1577
@@ -1451,28 +1579,54 @@
1451 1579 msgid "Database"
1452 1580 msgstr ""
1453 1581
1454 1582 #: includes/modules/Database/DatabaseModule.php:32
1455 -msgid "Scan + clean WordPress bloat (revisions, spam, transients, orphan meta) and optimize tables."
1583 +msgid "Remove old revisions, spam and other leftovers, and optimize database tables."
1456 1584 msgstr ""
1457 1585
1458 -#: includes/modules/Database/DatabaseModule.php:49
1459 -msgid "Auto-Cleanup Schedule"
1586 +#: includes/modules/Database/DatabaseModule.php:50
1587 +msgid "Automatic cleanup"
1460 1588 msgstr ""
1461 1589
1462 -#: includes/modules/Database/DatabaseModule.php:50
1463 -msgid "How often to run cleanup automatically. Manual means cleanup only runs when you press the button."
1590 +#: includes/modules/Database/DatabaseModule.php:51
1591 +msgid "How often xSpeed cleans the database on its own. Manual means it only cleans when you press the button."
1464 1592 msgstr ""
1465 1593
1466 -#: includes/modules/Database/DatabaseModule.php:56
1467 -msgid "Auto-Cleanup Types"
1594 +#: includes/modules/Database/DatabaseModule.php:57
1595 +msgid "What to clean automatically"
1468 1596 msgstr ""
1469 1597
1470 -#: includes/modules/Database/DatabaseModule.php:57
1471 -msgid "Which cleanup categories run on the schedule above. Leave empty to keep auto-cleanup disabled even if a schedule is set."
1598 +#: includes/modules/Database/DatabaseModule.php:58
1599 +msgid "The items the scheduled cleanup removes. If you leave this empty, nothing is cleaned, even with a schedule set."
1472 1600 msgstr ""
1473 1601
1474 -#: includes/modules/Database/DatabaseModule.php:149
1602 +#: includes/modules/Database/DatabaseModule.php:70
1603 +msgid "Limit post revisions"
1604 +msgstr ""
1605 +
1606 +#: includes/modules/Database/DatabaseModule.php:71
1607 +msgid "Cap how many revisions WordPress keeps for each post. Cleanup removes revisions that already exist; this stops them piling up again."
1608 +msgstr ""
1609 +
1610 +#: includes/modules/Database/DatabaseModule.php:78
1611 +msgid "Revisions to keep"
1612 +msgstr ""
1613 +
1614 +#: includes/modules/Database/DatabaseModule.php:79
1615 +msgid "0 turns revisions off completely. Older revisions are trimmed the next time each post is saved; to remove the backlog now, clean Post Revisions above."
1616 +msgstr ""
1617 +
1618 +#: includes/modules/Database/DatabaseModule.php:134
1619 +msgid "The revision limit is set outside xSpeed"
1620 +msgstr ""
1621 +
1622 +#. translators: %s: value of WP_POST_REVISIONS, e.g. 5 or false.
1623 +#: includes/modules/Database/DatabaseModule.php:137
1624 +#, php-format
1625 +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."
1626 +msgstr ""
1627 +
1628 +#: includes/modules/Database/DatabaseModule.php:241
1475 1629 msgid "Provide at least one cleanup type."
1476 1630 msgstr ""
1477 1631
1478 1632 #: includes/modules/Fonts/FontsModule.php:35
@@ -1479,29 +1633,29 @@
1479 1633 msgid "Fonts"
1480 1634 msgstr ""
1481 1635
1482 1636 #: includes/modules/Fonts/FontsModule.php:37
1483 -msgid "Stop web fonts from blocking text. Adds display=swap to Google Fonts and preloads the fonts you mark critical."
1637 +msgid "Shows text right away while web fonts load, and preloads key fonts."
1484 1638 msgstr ""
1485 1639
1486 -#: includes/modules/Fonts/FontsModule.php:46
1487 -msgid "Add font-display: swap"
1640 +#: includes/modules/Fonts/FontsModule.php:47
1641 +msgid "Show text while fonts load"
1488 1642 msgstr ""
1489 1643
1490 -#: includes/modules/Fonts/FontsModule.php:47
1491 -msgid "Append display=swap to Google Fonts URLs so text renders immediately in a fallback face while the web font loads. Blocking values already on the URL (auto, block) are rewritten to swap; a deliberate non-blocking choice (fallback, optional) is left alone."
1644 +#: includes/modules/Fonts/FontsModule.php:48
1645 +msgid "Google Fonts text shows at once in a standard font, then switches when the web font arrives."
1492 1646 msgstr ""
1493 1647
1494 -#: includes/modules/Fonts/FontsModule.php:53
1495 -msgid "Preload Font URLs"
1648 +#: includes/modules/Fonts/FontsModule.php:54
1649 +msgid "Fonts to preload"
1496 1650 msgstr ""
1497 1651
1498 -#: includes/modules/Fonts/FontsModule.php:54
1499 -msgid "One absolute font URL per line (woff2/woff/ttf/otf). Each becomes a <link rel=\"preload\" as=\"font\" crossorigin> in the head so the browser starts downloading before the CSS parses. Use only for fonts that render above the fold."
1652 +#: includes/modules/Fonts/FontsModule.php:55
1653 +msgid "One full font file URL per line (woff2, woff, ttf or otf). The browser fetches these first, so list only fonts used at the top of the page."
1500 1654 msgstr ""
1501 1655
1502 1656 #: includes/modules/Gzip/GzipModule.php:35
1503 -#: includes/modules/Migration/MigrationModule.php:553
1657 +#: includes/modules/Migration/MigrationModule.php:554
1504 1658 msgid "Compression"
1505 1659 msgstr ""
1506 1660
1507 1661 #: includes/modules/Gzip/GzipModule.php:36
@@ -1508,56 +1662,56 @@
1508 1662 msgid "GZIP"
1509 1663 msgstr ""
1510 1664
1511 1665 #: includes/modules/Gzip/GzipModule.php:38
1512 -msgid "Compress responses to reduce transfer size."
1666 +msgid "Compresses pages and files so they download faster."
1513 1667 msgstr ""
1514 1668
1515 -#: includes/modules/Gzip/GzipModule.php:52
1516 -msgid "Enable GZIP Compression"
1669 +#: includes/modules/Gzip/GzipModule.php:53
1670 +msgid "Enable Gzip compression"
1517 1671 msgstr ""
1518 1672
1519 -#: includes/modules/Gzip/GzipModule.php:74
1520 -msgid "Compress responses before sending them. We write the .htaccess rules automatically on this server."
1673 +#: includes/modules/Gzip/GzipModule.php:75
1674 +msgid "Compresses pages and files before sending them. xSpeed adds the .htaccess rules for you on this server."
1521 1675 msgstr ""
1522 1676
1523 -#: includes/modules/Gzip/GzipModule.php:77
1524 -msgid "Compress responses before sending them. nginx cannot be configured from WordPress, so the directives ship in the unified server-block snippet — see the notice below."
1677 +#: includes/modules/Gzip/GzipModule.php:78
1678 +msgid "Compresses pages and files before sending them. On nginx you add the rules to your server config yourself. See the notice below."
1525 1679 msgstr ""
1526 1680
1527 -#: includes/modules/Gzip/GzipModule.php:79
1528 -msgid "Compress responses before sending them. On this server the directives have to be added to your server config by hand — see the notice below."
1681 +#: includes/modules/Gzip/GzipModule.php:80
1682 +msgid "Compresses pages and files before sending them. On this server you add the rules to your server config yourself. See the notice below."
1529 1683 msgstr ""
1530 1684
1531 -#: includes/modules/Gzip/GzipModule.php:154
1685 +#: includes/modules/Gzip/GzipModule.php:155
1532 1686 msgid "GZIP requires server config on nginx"
1533 1687 msgstr ""
1534 1688
1535 -#: includes/modules/Gzip/GzipModule.php:155
1689 +#: includes/modules/Gzip/GzipModule.php:156
1536 1690 msgid "GZIP is being served by nginx"
1537 1691 msgstr ""
1538 1692
1539 -#: includes/modules/Gzip/GzipModule.php:157
1693 +#: includes/modules/Gzip/GzipModule.php:158
1540 1694 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). The directives are included in the unified server-block snippet on the Cache panel — copy + paste it once into your nginx vhost (or container nginx config) and reload nginx."
1541 1695 msgstr ""
1542 1696
1543 -#: includes/modules/Gzip/GzipModule.php:158
1697 +#: includes/modules/Gzip/GzipModule.php:159
1544 1698 msgid "Responses are compressed. xSpeed cannot configure nginx from WordPress, so these directives live in the unified server-block snippet on the Cache panel — that is where to re-copy them if your server config is ever rebuilt."
1545 1699 msgstr ""
1546 1700
1547 -#: includes/modules/Gzip/GzipModule.php:186
1701 +#: includes/modules/Gzip/GzipModule.php:187
1548 1702 msgid "GZIP enabled but not active on the server"
1549 1703 msgstr ""
1550 1704
1551 -#: includes/modules/Gzip/GzipModule.php:187
1705 +#: includes/modules/Gzip/GzipModule.php:188
1552 1706 msgid "xSpeed wrote the .htaccess rules but the response still isn't gzipped. Your server may have AllowOverride disabled, another caching plugin overriding, or mod_deflate missing. Ask your host to enable GZIP on Apache."
1553 1707 msgstr ""
1554 1708
1555 -#: includes/modules/Gzip/GzipModule.php:197
1709 +#: includes/modules/Gzip/GzipModule.php:198
1556 1710 msgid "GZIP requires server config on this server"
1557 1711 msgstr ""
1558 1712
1559 -#: includes/modules/Gzip/GzipModule.php:198
1713 +#: includes/modules/Gzip/GzipModule.php:199
1560 1714 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
1561 1715 msgstr ""
1562 1716
1563 1717 #: includes/modules/Health/HealthModule.php:66
@@ -1563,75 +1717,111 @@
1563 1717 #: includes/modules/Health/HealthModule.php:66
1564 1718 msgid "xSpeed static-rewrite cache"
1565 1719 msgstr ""
1566 1720
1567 -#: includes/modules/Health/HealthModule.php:81
1721 +#: includes/modules/Health/HealthModule.php:125
1568 1722 msgid "xSpeed static-rewrite cache is active"
1569 1723 msgstr ""
1570 1724
1571 -#: includes/modules/Health/HealthModule.php:84
1725 +#: includes/modules/Health/HealthModule.php:128
1572 1726 #: assets/admin.js
1573 1727 msgid "Performance"
1574 1728 msgstr ""
1575 1729
1576 -#: includes/modules/Health/HealthModule.php:87
1730 +#: includes/modules/Health/HealthModule.php:131
1577 1731 msgid "Cache hits bypass PHP for ~5-15ms TTFB."
1578 1732 msgstr ""
1579 1733
1580 -#: includes/modules/Health/HealthModule.php:93
1734 +#: includes/modules/Health/HealthModule.php:137
1581 1735 msgid "xSpeed cache is disabled"
1582 1736 msgstr ""
1583 1737
1584 -#: includes/modules/Health/HealthModule.php:95
1738 +#: includes/modules/Health/HealthModule.php:139
1585 1739 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1586 1740 msgstr ""
1587 1741
1588 -#: includes/modules/Health/HealthModule.php:108
1742 +#: includes/modules/Health/HealthModule.php:155
1743 +msgid "xSpeed is serving cache hits through PHP (LiteSpeed)"
1744 +msgstr ""
1745 +
1746 +#: includes/modules/Health/HealthModule.php:157
1747 +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."
1748 +msgstr ""
1749 +
1750 +#: includes/modules/Health/HealthModule.php:159
1589 1751 msgid "xSpeed is serving cache hits through PHP"
1590 1752 msgstr ""
1591 1753
1592 -#: includes/modules/Health/HealthModule.php:110
1754 +#: includes/modules/Health/HealthModule.php:161
1593 1755 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 1756 msgstr ""
1595 1757
1596 -#: includes/modules/Health/HealthModule.php:112
1758 +#: includes/modules/Health/HealthModule.php:163
1759 +#: includes/modules/Health/HealthModule.php:202
1597 1760 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1598 1761 msgstr ""
1599 1762
1600 -#: includes/modules/Health/HealthModule.php:114
1763 +#: includes/modules/Health/HealthModule.php:165
1764 +#: includes/modules/Health/HealthModule.php:204
1601 1765 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 1766 msgstr ""
1603 1767
1604 -#: includes/modules/Health/HealthModule.php:116
1768 +#: includes/modules/Health/HealthModule.php:169
1605 1769 msgid "xSpeed .htaccess rewrite block is missing"
1606 1770 msgstr ""
1607 1771
1608 -#: includes/modules/Health/HealthModule.php:118
1772 +#: includes/modules/Health/HealthModule.php:171
1609 1773 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 1774 msgstr ""
1611 1775
1612 -#: includes/modules/Health/HealthModule.php:125
1776 +#: includes/modules/Health/HealthModule.php:196
1777 +msgid "xSpeed nginx static rewrite is active"
1778 +msgstr ""
1779 +
1780 +#: includes/modules/Health/HealthModule.php:198
1781 +msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
1782 +msgstr ""
1783 +
1784 +#: includes/modules/Health/HealthModule.php:208
1785 +msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
1786 +msgstr ""
1787 +
1788 +#: includes/modules/Health/HealthModule.php:210
1789 +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."
1790 +msgstr ""
1791 +
1792 +#: includes/modules/Health/HealthModule.php:219
1793 +msgid "xSpeed could not verify the nginx static rewrite"
1794 +msgstr ""
1795 +
1796 +#. translators: %s: the reason the probe could not complete.
1797 +#: includes/modules/Health/HealthModule.php:224
1798 +#, php-format
1799 +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"
1800 +msgstr ""
1801 +
1802 +#: includes/modules/Health/HealthModule.php:232
1613 1803 msgid "xSpeed nginx server config required"
1614 1804 msgstr ""
1615 1805
1616 -#: includes/modules/Health/HealthModule.php:127
1806 +#: includes/modules/Health/HealthModule.php:234
1617 1807 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 1808 msgstr ""
1619 1809
1620 -#: includes/modules/Health/HealthModule.php:136
1810 +#: includes/modules/Health/HealthModule.php:243
1621 1811 msgid "xSpeed PHP drop-in cache active"
1622 1812 msgstr ""
1623 1813
1624 -#: includes/modules/Health/HealthModule.php:138
1814 +#: includes/modules/Health/HealthModule.php:245
1625 1815 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 1816 msgstr ""
1627 1817
1628 -#: includes/modules/Health/HealthModule.php:144
1818 +#: includes/modules/Health/HealthModule.php:251
1629 1819 msgid "Health"
1630 1820 msgstr ""
1631 1821
1632 -#: includes/modules/Health/HealthModule.php:146
1633 -msgid "Diagnostics, hit ratio, and recent cache activity."
1822 +#: includes/modules/Health/HealthModule.php:253
1823 +msgid "Checks for problems and shows how often visitors get cached pages."
1634 1824 msgstr ""
1635 1825
1636 1826 #: includes/modules/Heartbeat/HeartbeatModule.php:38
1637 1827 msgid "Heartbeat"
@@ -1637,41 +1827,41 @@
1637 1827 msgid "Heartbeat"
1638 1828 msgstr ""
1639 1829
1640 1830 #: includes/modules/Heartbeat/HeartbeatModule.php:40
1641 -msgid "Control the WordPress Heartbeat API per context."
1831 +msgid "Controls how often WordPress checks in with your server in the background."
1642 1832 msgstr ""
1643 1833
1644 -#: includes/modules/Heartbeat/HeartbeatModule.php:64
1834 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1645 1835 msgid "Dashboard"
1646 1836 msgstr ""
1647 1837
1648 -#: includes/modules/Heartbeat/HeartbeatModule.php:65
1649 -msgid "Heartbeat behavior on /wp-admin/ screens (autosave, notifications)."
1838 +#: includes/modules/Heartbeat/HeartbeatModule.php:66
1839 +msgid "Background checks on admin screens, used for notifications."
1650 1840 msgstr ""
1651 1841
1652 -#: includes/modules/Heartbeat/HeartbeatModule.php:72
1842 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1653 1843 msgid "Editor"
1654 1844 msgstr ""
1655 1845
1656 -#: includes/modules/Heartbeat/HeartbeatModule.php:73
1657 -msgid "Heartbeat in the post / block editor. Disable only if you do not need autosave or co-edit locks."
1846 +#: includes/modules/Heartbeat/HeartbeatModule.php:74
1847 +msgid "Background checks in the post editor. Disable only if you do not need autosave or the warning when someone else is editing."
1658 1848 msgstr ""
1659 1849
1660 -#: includes/modules/Heartbeat/HeartbeatModule.php:80
1850 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1661 1851 msgid "Frontend"
1662 1852 msgstr ""
1663 1853
1664 -#: includes/modules/Heartbeat/HeartbeatModule.php:81
1665 -msgid "Controls the Heartbeat API on the public site. Only takes effect when a plugin or theme actually loads heartbeat on the frontend (e.g. WooCommerce cart fragments, membership/notification plugins) — a default WordPress site loads none there, so this has no visible effect on such sites. Recommended: Disable, to stop the admin-ajax polling those plugins add."
1854 +#: includes/modules/Heartbeat/HeartbeatModule.php:82
1855 +msgid "Background checks on the public site, which only some plugins add. Disable is recommended, as it cuts extra requests to your server."
1666 1856 msgstr ""
1667 1857
1668 -#: includes/modules/Heartbeat/HeartbeatModule.php:88
1669 -msgid "Throttle Frequency"
1858 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
1859 +msgid "Throttle interval"
1670 1860 msgstr ""
1671 1861
1672 -#: includes/modules/Heartbeat/HeartbeatModule.php:89
1673 -msgid "Interval in seconds for contexts set to Throttle. 60 is a sane default; lower = faster sync but more requests."
1862 +#: includes/modules/Heartbeat/HeartbeatModule.php:91
1863 +msgid "Seconds between checks where you chose Throttle. 60 suits most sites; a lower number means more requests."
1674 1864 msgstr ""
1675 1865
1676 1866 #: includes/modules/Lazy/LazyModule.php:42
1677 1867 msgid "Media Optimization"
@@ -1681,67 +1871,75 @@
1681 1871 msgid "Lazy Loading"
1682 1872 msgstr ""
1683 1873
1684 1874 #: includes/modules/Lazy/LazyModule.php:45
1685 -msgid "Control how images, iframes, and videos load — lazy-loading, missing dimensions, and format optimization."
1875 +msgid "Loads images, videos and embeds only when visitors scroll to them."
1686 1876 msgstr ""
1687 1877
1688 -#: includes/modules/Lazy/LazyModule.php:59
1689 -msgid "Lazy-load Images"
1690 -msgstr ""
1691 -
1692 1878 #: includes/modules/Lazy/LazyModule.php:60
1693 -msgid "Add loading=\"lazy\" + decoding=\"async\" to <img> tags in post content. The first images on the page get loading=\"eager\" so the LCP image is not deferred."
1879 +msgid "Lazy-load images"
1694 1880 msgstr ""
1695 1881
1696 -#: includes/modules/Lazy/LazyModule.php:65
1697 -msgid "Lazy-load Iframes"
1882 +#: includes/modules/Lazy/LazyModule.php:61
1883 +msgid "Images load when the visitor scrolls near them. The first image on the page still loads right away."
1698 1884 msgstr ""
1699 1885
1700 1886 #: includes/modules/Lazy/LazyModule.php:66
1701 -msgid "Add loading=\"lazy\" to <iframe> tags. Useful for YouTube / Vimeo embeds + map widgets that pull a lot of bytes."
1887 +msgid "Lazy-load embeds"
1702 1888 msgstr ""
1703 1889
1704 -#: includes/modules/Lazy/LazyModule.php:71
1705 -msgid "Click-to-Play Video Facade"
1890 +#: includes/modules/Lazy/LazyModule.php:67
1891 +msgid "Embedded content such as YouTube videos and maps loads when the visitor scrolls near it."
1706 1892 msgstr ""
1707 1893
1708 1894 #: includes/modules/Lazy/LazyModule.php:72
1709 -msgid "Replace YouTube and Vimeo embeds — and self-hosted <video> tags that have a poster — with the poster image and a play button. The video only loads when a visitor clicks it, so a page with embeds no longer pays ~1MB of third-party JavaScript, or the full weight of a hosted video file, for visitors who never press play. Autoplaying videos are left alone. Falls back to the normal embed when JavaScript is off."
1895 +msgid "Click-to-play videos"
1710 1896 msgstr ""
1711 1897
1712 -#: includes/modules/Lazy/LazyModule.php:77
1713 -msgid "Lazy-load HTML5 Videos"
1898 +#: includes/modules/Lazy/LazyModule.php:73
1899 +msgid "Shows a preview image with a play button in place of YouTube, Vimeo and your own videos that have a poster image. The video loads only when clicked. Autoplaying videos are left alone."
1714 1900 msgstr ""
1715 1901
1716 1902 #: includes/modules/Lazy/LazyModule.php:78
1717 -msgid "Set preload=\"none\" on self-hosted <video> tags, overriding a player's own preload=\"auto\"/\"metadata\". Autoplaying videos are left alone — they need their bytes regardless. Browsers do not yet support loading=\"lazy\" on video; preload=\"none\" is the closest equivalent."
1903 +msgid "Lazy-load your own videos"
1718 1904 msgstr ""
1719 1905
1906 +#: includes/modules/Lazy/LazyModule.php:79
1907 +msgid "Videos uploaded to your site download only when played. Autoplaying videos are left alone."
1908 +msgstr ""
1909 +
1910 +#: includes/modules/Lazy/LazyModule.php:84
1911 +msgid "Lazy-load background images"
1912 +msgstr ""
1913 +
1720 1914 #: includes/modules/Lazy/LazyModule.php:85
1721 -msgid "Eager-load First N Images"
1915 +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."
1722 1916 msgstr ""
1723 1917
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."
1918 +#: includes/modules/Lazy/LazyModule.php:92
1919 +msgid "Images to load right away"
1726 1920 msgstr ""
1727 1921
1728 -#: includes/modules/Lazy/LazyModule.php:91
1729 -msgid "Add Missing Image Dimensions"
1922 +#: includes/modules/Lazy/LazyModule.php:93
1923 +msgid "How many images at the top of the page skip lazy loading. Only the first of them also loads at high priority, and images in hidden or closed sections are not counted. Lazy-loaded background images use the same number. 1 suits most sites; 0 lazy-loads every image."
1730 1924 msgstr ""
1731 1925
1732 -#: includes/modules/Lazy/LazyModule.php:92
1733 -msgid "When an <img class=\"wp-image-N\"> has no width/height, look the values up from the media library and inject them. Prevents the page-layout shift that hurts CLS scores."
1926 +#: includes/modules/Lazy/LazyModule.php:107
1927 +msgid "Add missing image sizes"
1734 1928 msgstr ""
1735 1929
1736 -#: includes/modules/Lazy/LazyModule.php:98
1737 -msgid "Excluded Images"
1930 +#: includes/modules/Lazy/LazyModule.php:108
1931 +msgid "Adds width and height to images that lack them, using the media library. This stops the page from jumping as images load."
1738 1932 msgstr ""
1739 1933
1740 -#: includes/modules/Lazy/LazyModule.php:99
1741 -msgid "Substring patterns that, if found anywhere in the <img> / <iframe> tag (typically a class or filename), exempt that element from lazy-loading. Useful for hero / logo / sprite images. Or add data-skip-lazy to the tag directly."
1934 +#: includes/modules/Lazy/LazyModule.php:114
1935 +msgid "Excluded images"
1742 1936 msgstr ""
1743 1937
1938 +#: includes/modules/Lazy/LazyModule.php:115
1939 +msgid "Images and embeds whose tag contains a line here, such as a class or file name, are never lazy-loaded. Useful for logos and hero images."
1940 +msgstr ""
1941 +
1744 1942 #. translators: %s: command name.
1745 1943 #: includes/modules/Mcp/Cli_Bridge.php:128
1746 1944 #, php-format
1747 1945 msgid "Unknown command: %s. Call list_commands to see what is available."
@@ -1746,88 +1944,97 @@
1746 1944 #, php-format
1747 1945 msgid "Unknown command: %s. Call list_commands to see what is available."
1748 1946 msgstr ""
1749 1947
1750 -#: includes/modules/Mcp/McpModule.php:111
1948 +#: includes/modules/Mcp/McpModule.php:149
1751 1949 #: assets/admin.js
1752 1950 msgid "MCP Server"
1753 1951 msgstr ""
1754 1952
1755 -#: includes/modules/Mcp/McpModule.php:113
1756 -msgid "Control this site's cache from Claude and other AI agents."
1953 +#: includes/modules/Mcp/McpModule.php:151
1954 +msgid "Let Claude or another AI assistant clear the cache, check stats and change settings."
1757 1955 msgstr ""
1758 1956
1759 -#: includes/modules/Mcp/McpModule.php:979
1957 +#: includes/modules/Mcp/McpModule.php:450
1958 +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."
1959 +msgstr ""
1960 +
1961 +#: includes/modules/Mcp/McpModule.php:1319
1760 1962 msgid "Invalid or expired attach request."
1761 1963 msgstr ""
1762 1964
1763 -#: includes/modules/Mcp/McpModule.php:1093
1965 +#: includes/modules/Mcp/McpModule.php:1435
1764 1966 msgid "You must be an administrator to authorize an AI agent to control this site."
1765 1967 msgstr ""
1766 1968
1767 -#: includes/modules/Mcp/McpModule.php:1100
1969 +#: includes/modules/Mcp/McpModule.php:1442
1768 1970 msgid "Security check failed. Please try connecting again."
1769 1971 msgstr ""
1770 1972
1771 -#: includes/modules/Mcp/McpModule.php:1227
1973 +#: includes/modules/Mcp/McpModule.php:1538
1974 +#: includes/modules/Mcp/McpModule.php:1557
1975 +msgid "The MCP tool payload is too large."
1976 +msgstr ""
1977 +
1978 +#: includes/modules/Mcp/McpModule.php:1632
1772 1979 msgid "Read-only — inspect cache status and settings."
1773 1980 msgstr ""
1774 1981
1775 -#: includes/modules/Mcp/McpModule.php:1228
1982 +#: includes/modules/Mcp/McpModule.php:1633
1776 1983 msgid "Read & write — purge caches, toggle caching, and change settings."
1777 1984 msgstr ""
1778 1985
1779 -#: includes/modules/Mcp/McpModule.php:1229
1986 +#: includes/modules/Mcp/McpModule.php:1634
1780 1987 msgid "An AI agent"
1781 1988 msgstr ""
1782 1989
1783 -#: includes/modules/Mcp/McpModule.php:1248
1990 +#: includes/modules/Mcp/McpModule.php:1653
1784 1991 msgid "Authorize AI access"
1785 1992 msgstr ""
1786 1993
1787 -#: includes/modules/Mcp/McpModule.php:1259
1994 +#: includes/modules/Mcp/McpModule.php:1664
1788 1995 msgid "Connect to xSpeed"
1789 1996 msgstr ""
1790 1997
1791 1998 #. translators: %s: AI client name.
1792 -#: includes/modules/Mcp/McpModule.php:1261
1999 +#: includes/modules/Mcp/McpModule.php:1666
1793 2000 #, php-format
1794 2001 msgid "%s wants to manage the cache on this site."
1795 2002 msgstr ""
1796 2003
1797 -#: includes/modules/Mcp/McpModule.php:1262
2004 +#: includes/modules/Mcp/McpModule.php:1667
1798 2005 msgid "Site"
1799 2006 msgstr ""
1800 2007
1801 -#: includes/modules/Mcp/McpModule.php:1263
2008 +#: includes/modules/Mcp/McpModule.php:1668
1802 2009 msgid "Signed in as"
1803 2010 msgstr ""
1804 2011
1805 -#: includes/modules/Mcp/McpModule.php:1264
2012 +#: includes/modules/Mcp/McpModule.php:1669
1806 2013 msgid "Access"
1807 2014 msgstr ""
1808 2015
1809 -#: includes/modules/Mcp/McpModule.php:1269
2016 +#: includes/modules/Mcp/McpModule.php:1674
1810 2017 msgid "Deny"
1811 2018 msgstr ""
1812 2019
1813 -#: includes/modules/Mcp/McpModule.php:1270
2020 +#: includes/modules/Mcp/McpModule.php:1675
1814 2021 msgid "Approve"
1815 2022 msgstr ""
1816 2023
1817 -#: includes/modules/Mcp/McpModule.php:1280
2024 +#: includes/modules/Mcp/McpModule.php:1685
1818 2025 msgid "Authorization error"
1819 2026 msgstr ""
1820 2027
1821 -#: includes/modules/Mcp/McpModule.php:1283
2028 +#: includes/modules/Mcp/McpModule.php:1688
1822 2029 msgid "Could not authorize"
1823 2030 msgstr ""
1824 2031
1825 -#: includes/modules/Mcp/McpModule.php:1513
2032 +#: includes/modules/Mcp/McpModule.php:1918
1826 2033 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 2034 msgstr ""
1828 2035
1829 -#: includes/modules/Mcp/McpModule.php:1514
2036 +#: includes/modules/Mcp/McpModule.php:1919
1830 2037 msgid "No AI assistant is connected. This module counts as on once you connect one."
1831 2038 msgstr ""
1832 2039
1833 2040 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1833,206 +2040,211 @@
1833 2040 #: includes/modules/Mcp/Mcp_Auth.php:57
1834 2041 msgid "Too many failed attempts. Try again later."
1835 2042 msgstr ""
1836 2043
1837 -#: includes/modules/Mcp/Mcp_Hub.php:771
2044 +#: includes/modules/Mcp/Mcp_Hub.php:871
1838 2045 msgid "Connect this site to xSpeed Hub to run a free speed test."
1839 2046 msgstr ""
1840 2047
1841 -#: includes/modules/Mcp/Mcp_Hub.php:797
2048 +#: includes/modules/Mcp/Mcp_Hub.php:897
1842 2049 msgid "Could not reach xSpeed Hub. Please try again."
1843 2050 msgstr ""
1844 2051
1845 -#: includes/modules/Mcp/Mcp_Hub.php:820
2052 +#: includes/modules/Mcp/Mcp_Hub.php:920
1846 2053 #: assets/admin.js
1847 2054 msgid "The test could not be started."
1848 2055 msgstr ""
1849 2056
1850 -#: includes/modules/Mcp/Mcp_OAuth.php:213
2057 +#: includes/modules/Mcp/Mcp_OAuth.php:261
1851 2058 msgid "Too many client registrations. Try again later."
1852 2059 msgstr ""
1853 2060
1854 2061 #. translators: %d: maximum number of redirect URIs.
1855 -#: includes/modules/Mcp/Mcp_OAuth.php:229
2062 +#: includes/modules/Mcp/Mcp_OAuth.php:277
1856 2063 #, php-format
1857 2064 msgid "At most %d redirect_uris are allowed."
1858 2065 msgstr ""
1859 2066
1860 -#: includes/modules/Mcp/Mcp_OAuth.php:241
2067 +#: includes/modules/Mcp/Mcp_OAuth.php:289
1861 2068 msgid "At least one valid redirect_uri is required."
1862 2069 msgstr ""
1863 2070
1864 -#: includes/modules/Mcp/Mcp_OAuth.php:278
2071 +#: includes/modules/Mcp/Mcp_OAuth.php:326
1865 2072 msgid "Client registration limit reached."
1866 2073 msgstr ""
1867 2074
1868 -#: includes/modules/Mcp/Mcp_OAuth.php:297
2075 +#: includes/modules/Mcp/Mcp_OAuth.php:345
1869 2076 msgid "The client registration could not be stored."
1870 2077 msgstr ""
1871 2078
1872 -#: includes/modules/Mcp/Mcp_OAuth.php:336
2079 +#: includes/modules/Mcp/Mcp_OAuth.php:384
1873 2080 msgid "Unknown client_id."
1874 2081 msgstr ""
1875 2082
1876 -#: includes/modules/Mcp/Mcp_OAuth.php:340
2083 +#: includes/modules/Mcp/Mcp_OAuth.php:388
1877 2084 msgid "redirect_uri does not match a registered value."
1878 2085 msgstr ""
1879 2086
1880 -#: includes/modules/Mcp/Mcp_OAuth.php:343
2087 +#: includes/modules/Mcp/Mcp_OAuth.php:391
1881 2088 msgid "Only response_type=code is supported."
1882 2089 msgstr ""
1883 2090
1884 -#: includes/modules/Mcp/Mcp_OAuth.php:347
2091 +#: includes/modules/Mcp/Mcp_OAuth.php:395
1885 2092 msgid "PKCE with code_challenge_method=S256 is required."
1886 2093 msgstr ""
1887 2094
1888 -#: includes/modules/Mcp/Mcp_Pairing.php:408
2095 +#: includes/modules/Mcp/Mcp_Pairing.php:474
1889 2096 msgid "No active MCP connection to change. Connect first."
1890 2097 msgstr ""
1891 2098
1892 2099 #. translators: %s: tool name.
1893 -#: includes/modules/Mcp/Mcp_Tools.php:931
2100 +#: includes/modules/Mcp/Mcp_Tools.php:988
2101 +#: includes/modules/Mcp/Mcp_Tools.php:1026
1894 2102 #, php-format
1895 2103 msgid "Unknown tool: %s"
1896 2104 msgstr ""
1897 2105
1898 2106 #. translators: %s: tool name.
1899 -#: includes/modules/Mcp/Mcp_Tools.php:959
2107 +#: includes/modules/Mcp/Mcp_Tools.php:1047
1900 2108 #, php-format
1901 2109 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
1902 2110 msgstr ""
1903 2111
1904 2112 #. translators: %s: comma-separated list of valid purge types.
1905 -#: includes/modules/Mcp/Mcp_Tools.php:1240
2113 +#: includes/modules/Mcp/Mcp_Tools.php:1334
1906 2114 #, php-format
1907 2115 msgid "Invalid purge type. Expected one of: %s"
1908 2116 msgstr ""
1909 2117
1910 -#: includes/modules/Mcp/Mcp_Tools.php:1249
1911 -#: includes/modules/Mcp/Mcp_Tools.php:2261
2118 +#: includes/modules/Mcp/Mcp_Tools.php:1343
2119 +#: includes/modules/Mcp/Mcp_Tools.php:2355
1912 2120 msgid "AI assistant"
1913 2121 msgstr ""
1914 2122
1915 -#: includes/modules/Mcp/Mcp_Tools.php:1298
2123 +#: includes/modules/Mcp/Mcp_Tools.php:1392
1916 2124 msgid "The \"enabled\" parameter is required (true or false)."
1917 2125 msgstr ""
1918 2126
1919 -#: includes/modules/Mcp/Mcp_Tools.php:1378
1920 -#: includes/modules/Mcp/Mcp_Tools.php:1432
2127 +#: includes/modules/Mcp/Mcp_Tools.php:1472
2128 +#: includes/modules/Mcp/Mcp_Tools.php:1526
1921 2129 msgid "The \"module\" parameter is required."
1922 2130 msgstr ""
1923 2131
1924 2132 #. translators: %s: module slug.
1925 -#: includes/modules/Mcp/Mcp_Tools.php:1387
1926 -#: includes/modules/Mcp/Mcp_Tools.php:1448
2133 +#: includes/modules/Mcp/Mcp_Tools.php:1481
2134 +#: includes/modules/Mcp/Mcp_Tools.php:1542
1927 2135 #, php-format
1928 2136 msgid "Unknown module \"%s\"."
1929 2137 msgstr ""
1930 2138
1931 -#: includes/modules/Mcp/Mcp_Tools.php:1439
2139 +#: includes/modules/Mcp/Mcp_Tools.php:1533
1932 2140 msgid "The \"values\" parameter must be an object of setting keys."
1933 2141 msgstr ""
1934 2142
1935 2143 #. translators: 1: comma-separated field names, 2: module slug.
1936 -#: includes/modules/Mcp/Mcp_Tools.php:1467
2144 +#: includes/modules/Mcp/Mcp_Tools.php:1561
1937 2145 #, php-format
1938 2146 msgid "Writing credential fields (%1$s) on \"%2$s\" needs the \"configure\" scope, which is off by default. Reconnect the MCP client granting the configure scope, or set these credentials from the xSpeed dashboard."
1939 2147 msgstr ""
1940 2148
1941 2149 #. translators: %s: module slug.
1942 -#: includes/modules/Mcp/Mcp_Tools.php:1499
2150 +#: includes/modules/Mcp/Mcp_Tools.php:1593
1943 2151 #, php-format
1944 2152 msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
1945 2153 msgstr ""
1946 2154
1947 2155 #. translators: %s: module slug.
1948 -#: includes/modules/Mcp/Mcp_Tools.php:1509
2156 +#: includes/modules/Mcp/Mcp_Tools.php:1603
1949 2157 #, php-format
1950 2158 msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
1951 2159 msgstr ""
1952 2160
1953 2161 #. translators: 1: setting key, 2: wp-config.php constant name.
1954 -#: includes/modules/Mcp/Mcp_Tools.php:1578
2162 +#: includes/modules/Mcp/Mcp_Tools.php:1672
1955 2163 #, php-format
1956 2164 msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
1957 2165 msgstr ""
1958 2166
1959 2167 #. translators: 1: setting key, 2: module slug.
1960 -#: includes/modules/Mcp/Mcp_Tools.php:1586
2168 +#: includes/modules/Mcp/Mcp_Tools.php:1680
1961 2169 #, php-format
1962 2170 msgid "\"%1$s\" is not a setting of module \"%2$s\""
1963 2171 msgstr ""
1964 2172
1965 2173 #. translators: %s: comma-separated setting names.
1966 -#: includes/modules/Mcp/Mcp_Tools.php:1598
2174 +#: includes/modules/Mcp/Mcp_Tools.php:1692
1967 2175 #, php-format
1968 2176 msgid " — did you mean: %s?"
1969 2177 msgstr ""
1970 2178
1971 2179 #. translators: %s: setting key.
1972 -#: includes/modules/Mcp/Mcp_Tools.php:1608
2180 +#: includes/modules/Mcp/Mcp_Tools.php:1702
1973 2181 #, php-format
1974 2182 msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
1975 2183 msgstr ""
1976 2184
1977 2185 #. translators: 1: module slug, 2: reasons.
1978 -#: includes/modules/Mcp/Mcp_Tools.php:1617
2186 +#: includes/modules/Mcp/Mcp_Tools.php:1711
1979 2187 #, php-format
1980 2188 msgid "Refused to update %1$s — nothing was written. %2$s"
1981 2189 msgstr ""
1982 2190
1983 -#: includes/modules/Mcp/Mcp_Tools.php:1653
2191 +#: includes/modules/Mcp/Mcp_Tools.php:1747
1984 2192 msgid "The \"command\" parameter is required."
1985 2193 msgstr ""
1986 2194
1987 -#: includes/modules/Mcp/Mcp_Tools.php:1704
2195 +#: includes/modules/Mcp/Mcp_Tools.php:1798
1988 2196 msgid "This preview deletes nothing. To delete what is listed, call clean_database with this confirm_token. It expires in 5 minutes and stops working if the database changes."
1989 2197 msgstr ""
1990 2198
1991 -#: includes/modules/Mcp/Mcp_Tools.php:1798
2199 +#: includes/modules/Mcp/Mcp_Tools.php:1892
1992 2200 msgid "This permanently deletes content and cannot be undone. Call scan_database first to see exactly what would be removed, then pass the confirm_token it returns."
1993 2201 msgstr ""
1994 2202
1995 -#: includes/modules/Mcp/Mcp_Tools.php:1809
2203 +#: includes/modules/Mcp/Mcp_Tools.php:1903
1996 2204 msgid "That confirm_token is unknown or has expired (they last 5 minutes). Run scan_database again and use the fresh token."
1997 2205 msgstr ""
1998 2206
1999 -#: includes/modules/Mcp/Mcp_Tools.php:1817
2207 +#: includes/modules/Mcp/Mcp_Tools.php:1911
2000 2208 msgid "The database changed since that scan, so the preview no longer describes what would be deleted. Run scan_database again and confirm against the new result."
2001 2209 msgstr ""
2002 2210
2003 -#: includes/modules/Mcp/Mcp_Tools.php:2081
2004 -#: includes/modules/Mcp/Mcp_Tools.php:2121
2211 +#: includes/modules/Mcp/Mcp_Tools.php:2175
2212 +#: includes/modules/Mcp/Mcp_Tools.php:2215
2005 2213 msgid "The enabled argument is required."
2006 2214 msgstr ""
2007 2215
2008 -#: includes/modules/Mcp/Mcp_Tools.php:2085
2009 -#: includes/modules/Mcp/Mcp_Tools.php:2125
2216 +#: includes/modules/Mcp/Mcp_Tools.php:2179
2217 +#: includes/modules/Mcp/Mcp_Tools.php:2219
2010 2218 msgid "The enabled argument must be true or false."
2011 2219 msgstr ""
2012 2220
2013 -#: includes/modules/Mcp/Mcp_Tools.php:2139
2221 +#: includes/modules/Mcp/Mcp_Tools.php:2233
2014 2222 msgid "The action argument must be \"list\" or \"clear\"."
2015 2223 msgstr ""
2016 2224
2017 -#: includes/modules/Mcp/Mcp_Tools.php:2178
2225 +#: includes/modules/Mcp/Mcp_Tools.php:2272
2018 2226 msgid "External scores are not available on this site."
2019 2227 msgstr ""
2020 2228
2021 -#: includes/modules/Mcp/Mcp_Tools.php:2259
2229 +#: includes/modules/Mcp/Mcp_Tools.php:2353
2022 2230 msgid "The url argument is required."
2023 2231 msgstr ""
2024 2232
2233 +#: includes/modules/Mcp/Mcp_Tools.php:2494
2234 +msgid "The url argument must be a page on this site, as a full http(s) URL or a path starting with /."
2235 +msgstr ""
2236 +
2025 2237 #: includes/modules/Migration/MigrationModule.php:30
2026 2238 msgid "Migration"
2027 2239 msgstr ""
2028 2240
2029 2241 #: includes/modules/Migration/MigrationModule.php:32
2030 -msgid "Import settings from WP Rocket, W3 Total Cache, or WP Super Cache."
2242 +msgid "Import settings from WP Rocket, W3 Total Cache, WP Super Cache or LiteSpeed Cache."
2031 2243 msgstr ""
2032 2244
2033 2245 #. translators: %d: number of detected caching plugins.
2034 -#: includes/modules/Migration/MigrationModule.php:210
2246 +#: includes/modules/Migration/MigrationModule.php:211
2035 2247 #, php-format
2036 2248 msgid "Migrate to %1$s — %2$d caching plugin detected"
2037 2249 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2038 2250 msgstr[0] ""
@@ -2037,32 +2249,32 @@
2037 2249 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2038 2250 msgstr[0] ""
2039 2251 msgstr[1] ""
2040 2252
2041 -#: includes/modules/Migration/MigrationModule.php:265
2253 +#: includes/modules/Migration/MigrationModule.php:266
2042 2254 msgid "Speed guarantee"
2043 2255 msgstr ""
2044 2256
2045 -#: includes/modules/Migration/MigrationModule.php:310
2257 +#: includes/modules/Migration/MigrationModule.php:311
2046 2258 msgid "Dismiss this notice"
2047 2259 msgstr ""
2048 2260
2049 -#: includes/modules/Migration/MigrationModule.php:331
2261 +#: includes/modules/Migration/MigrationModule.php:332
2050 2262 msgid "Guaranteed faster load times — or we'll tune it for you, free."
2051 2263 msgstr ""
2052 2264
2053 -#: includes/modules/Migration/MigrationModule.php:332
2265 +#: includes/modules/Migration/MigrationModule.php:333
2054 2266 msgid "Faster load times, without configuring anything by hand."
2055 2267 msgstr ""
2056 2268
2057 2269 #. translators: %s: brand name, e.g. xSpeed Cache.
2058 -#: includes/modules/Migration/MigrationModule.php:345
2270 +#: includes/modules/Migration/MigrationModule.php:346
2059 2271 #, php-format
2060 2272 msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2061 2273 msgstr ""
2062 2274
2063 2275 #. translators: 1: detected plugin name, 2: number of settings.
2064 -#: includes/modules/Migration/MigrationModule.php:355
2276 +#: includes/modules/Migration/MigrationModule.php:356
2065 2277 #, php-format
2066 2278 msgid "%1$s detected · %2$d setting ready to import"
2067 2279 msgid_plural "%1$s detected · %2$d settings ready to import"
2068 2280 msgstr[0] ""
@@ -2067,30 +2279,30 @@
2067 2279 msgid_plural "%1$s detected · %2$d settings ready to import"
2068 2280 msgstr[0] ""
2069 2281 msgstr[1] ""
2070 2282
2071 -#: includes/modules/Migration/MigrationModule.php:375
2283 +#: includes/modules/Migration/MigrationModule.php:376
2072 2284 msgid "Prefer we handle it? Book a call"
2073 2285 msgstr ""
2074 2286
2075 2287 #. translators: %s: brand name.
2076 -#: includes/modules/Migration/MigrationModule.php:383
2288 +#: includes/modules/Migration/MigrationModule.php:384
2077 2289 #, php-format
2078 2290 msgid "Migrate to %s"
2079 2291 msgstr ""
2080 2292
2081 2293 #. translators: %s: detected plugin name.
2082 -#: includes/modules/Migration/MigrationModule.php:399
2294 +#: includes/modules/Migration/MigrationModule.php:400
2083 2295 #, php-format
2084 2296 msgid "Migrating deactivates %s"
2085 2297 msgstr ""
2086 2298
2087 -#: includes/modules/Migration/MigrationModule.php:404
2299 +#: includes/modules/Migration/MigrationModule.php:405
2088 2300 msgid "View migration details"
2089 2301 msgstr ""
2090 2302
2091 2303 #. translators: %d: number of settings imported.
2092 -#: includes/modules/Migration/MigrationModule.php:422
2304 +#: includes/modules/Migration/MigrationModule.php:423
2093 2305 #, php-format
2094 2306 msgid "imports %d setting"
2095 2307 msgid_plural "imports %d settings"
2096 2308 msgstr[0] ""
@@ -2095,323 +2307,337 @@
2095 2307 msgid_plural "imports %d settings"
2096 2308 msgstr[0] ""
2097 2309 msgstr[1] ""
2098 2310
2099 -#: includes/modules/Migration/MigrationModule.php:428
2311 +#: includes/modules/Migration/MigrationModule.php:429
2100 2312 msgid "Migrate"
2101 2313 msgstr ""
2102 2314
2103 -#: includes/modules/Migration/MigrationModule.php:548
2104 -#: includes/modules/Minify/MinifyModule.php:35
2315 +#: includes/modules/Migration/MigrationModule.php:549
2316 +#: includes/modules/Minify/MinifyModule.php:36
2105 2317 msgid "Minify"
2106 2318 msgstr ""
2107 2319
2108 -#: includes/modules/Migration/MigrationModule.php:549
2320 +#: includes/modules/Migration/MigrationModule.php:550
2109 2321 msgid "Lazy Load"
2110 2322 msgstr ""
2111 2323
2112 -#: includes/modules/Migration/MigrationModule.php:550
2324 +#: includes/modules/Migration/MigrationModule.php:551
2113 2325 #: includes/modules/Preloader/PreloaderModule.php:32
2114 2326 msgid "Preloader"
2115 2327 msgstr ""
2116 2328
2117 -#: includes/modules/Migration/MigrationModule.php:552
2329 +#: includes/modules/Migration/MigrationModule.php:553
2118 2330 #: includes/modules/ObjectCache/ObjectCacheModule.php:32
2119 2331 msgid "Object Cache"
2120 2332 msgstr ""
2121 2333
2122 -#: includes/modules/Migration/MigrationModule.php:554
2334 +#: includes/modules/Migration/MigrationModule.php:555
2123 2335 msgid "Bloat Removal"
2124 2336 msgstr ""
2125 2337
2126 -#: includes/modules/Migration/MigrationModule.php:579
2338 +#: includes/modules/Migration/MigrationModule.php:580
2127 2339 msgid "You do not have permission to migrate settings."
2128 2340 msgstr ""
2129 2341
2130 -#: includes/modules/Migration/MigrationModule.php:585
2342 +#: includes/modules/Migration/MigrationModule.php:586
2131 2343 msgid "No source selected."
2132 2344 msgstr ""
2133 2345
2134 -#: includes/modules/Migration/MigrationModule.php:617
2346 +#: includes/modules/Migration/MigrationModule.php:618
2135 2347 msgid "it could not be enabled"
2136 2348 msgstr ""
2137 2349
2138 -#: includes/modules/Migration/MigrationModule.php:702
2350 +#: includes/modules/Migration/MigrationModule.php:703
2139 2351 msgid "Migrating…"
2140 2352 msgstr ""
2141 2353
2142 -#: includes/modules/Migration/MigrationModule.php:719
2354 +#: includes/modules/Migration/MigrationModule.php:720
2143 2355 msgid "Migration failed."
2144 2356 msgstr ""
2145 2357
2146 -#: includes/modules/Migration/MigrationModule.php:722
2358 +#: includes/modules/Migration/MigrationModule.php:723
2147 2359 msgid "the source plugin"
2148 2360 msgstr ""
2149 2361
2150 -#: includes/modules/Migration/MigrationModule.php:723
2362 +#: includes/modules/Migration/MigrationModule.php:724
2151 2363 msgid "Review imported settings"
2152 2364 msgstr ""
2153 2365
2154 -#: includes/modules/Migration/MigrationModule.php:734
2155 -#: includes/modules/Migration/MigrationModule.php:745
2156 -#: includes/modules/Migration/MigrationModule.php:753
2366 +#: includes/modules/Migration/MigrationModule.php:735
2367 +#: includes/modules/Migration/MigrationModule.php:746
2368 +#: includes/modules/Migration/MigrationModule.php:754
2157 2369 msgid "settings are now running in xSpeed."
2158 2370 msgstr ""
2159 2371
2160 -#: includes/modules/Migration/MigrationModule.php:736
2161 -#: includes/modules/Migration/MigrationModule.php:746
2372 +#: includes/modules/Migration/MigrationModule.php:737
2373 +#: includes/modules/Migration/MigrationModule.php:747
2162 2374 msgid "It has been switched off, so the two page caches cannot conflict."
2163 2375 msgstr ""
2164 2376
2165 -#: includes/modules/Migration/MigrationModule.php:737
2377 +#: includes/modules/Migration/MigrationModule.php:738
2166 2378 msgid "It is still active — switch it off when you are ready."
2167 2379 msgstr ""
2168 2380
2169 -#: includes/modules/Migration/MigrationModule.php:738
2381 +#: includes/modules/Migration/MigrationModule.php:739
2170 2382 msgid "Skipped:"
2171 2383 msgstr ""
2172 2384
2173 -#: includes/modules/Migration/MigrationModule.php:754
2385 +#: includes/modules/Migration/MigrationModule.php:755
2174 2386 msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2175 2387 msgstr ""
2176 2388
2177 -#: includes/modules/Migration/MigrationModule.php:763
2389 +#: includes/modules/Migration/MigrationModule.php:764
2178 2390 msgid "Migration could not finish."
2179 2391 msgstr ""
2180 2392
2181 -#: includes/modules/Migration/MigrationModule.php:764
2393 +#: includes/modules/Migration/MigrationModule.php:765
2182 2394 msgid "Nothing was changed — you can try again."
2183 2395 msgstr ""
2184 2396
2185 2397 #. translators: %s: source plugin label.
2186 -#: includes/modules/Migration/MigrationModule.php:997
2398 +#: includes/modules/Migration/MigrationModule.php:998
2187 2399 #, php-format
2188 2400 msgid "%s is activated across the whole network, so only a network administrator can switch it off. Your settings were imported — ask a network administrator to deactivate it."
2189 2401 msgstr ""
2190 2402
2191 2403 #. translators: %s: source plugin label.
2192 -#: includes/modules/Migration/MigrationModule.php:1002
2404 +#: includes/modules/Migration/MigrationModule.php:1003
2193 2405 #, php-format
2194 2406 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 2407 msgstr ""
2196 2408
2197 -#: includes/modules/Minify/MinifyModule.php:34
2409 +#: includes/modules/Minify/MinifyModule.php:35
2198 2410 msgid "CSS & JavaScript"
2199 2411 msgstr ""
2200 2412
2201 -#: includes/modules/Minify/MinifyModule.php:37
2202 -msgid "Strip whitespace and rewrite enqueued CSS / JS."
2413 +#: includes/modules/Minify/MinifyModule.php:38
2414 +msgid "Makes HTML, CSS and JavaScript files smaller and loads scripts later."
2203 2415 msgstr ""
2204 2416
2205 -#: includes/modules/Minify/MinifyModule.php:50
2417 +#: includes/modules/Minify/MinifyModule.php:52
2206 2418 msgid "Minify HTML"
2207 2419 msgstr ""
2208 2420
2209 -#: includes/modules/Minify/MinifyModule.php:55
2210 -msgid "Strip whitespace and comments from HTML output, including inline <style> and <script> blocks. Safe on most themes. Applies to cached (logged-out) responses — view the page in a private window to see the result."
2421 +#: includes/modules/Minify/MinifyModule.php:57
2422 +msgid "Removes spaces and comments from your pages. Safe on most themes. Only logged-out visitors see it, so check in a private window."
2211 2423 msgstr ""
2212 2424
2213 -#: includes/modules/Minify/MinifyModule.php:60
2425 +#: includes/modules/Minify/MinifyModule.php:62
2214 2426 msgid "Minify CSS"
2215 2427 msgstr ""
2216 2428
2217 -#: includes/modules/Minify/MinifyModule.php:61
2218 -msgid "Compress and rewrite enqueued local stylesheets. External CSS is left untouched."
2429 +#: includes/modules/Minify/MinifyModule.php:63
2430 +msgid "Makes your site's own CSS files smaller. CSS from other domains is left alone."
2219 2431 msgstr ""
2220 2432
2221 -#: includes/modules/Minify/MinifyModule.php:66
2433 +#: includes/modules/Minify/MinifyModule.php:68
2222 2434 msgid "Minify JavaScript"
2223 2435 msgstr ""
2224 2436
2225 -#: includes/modules/Minify/MinifyModule.php:67
2226 -msgid "Compress enqueued local scripts. Disable if you hit script-loading conflicts on the frontend."
2437 +#: includes/modules/Minify/MinifyModule.php:69
2438 +msgid "Makes your site's own JavaScript files smaller. Turn off if a script on your site stops working."
2227 2439 msgstr ""
2228 2440
2229 -#: includes/modules/Minify/MinifyModule.php:72
2441 +#: includes/modules/Minify/MinifyModule.php:74
2230 2442 msgid "Defer JavaScript"
2231 2443 msgstr ""
2232 2444
2233 -#: includes/modules/Minify/MinifyModule.php:73
2234 -msgid "Add defer=\"defer\" to enqueued script tags so they execute after HTML parsing. jQuery + its hard dependencies are skipped automatically."
2445 +#: includes/modules/Minify/MinifyModule.php:75
2446 +msgid "Runs scripts after the page has loaded, so content shows sooner. jQuery and scripts that need it are skipped."
2235 2447 msgstr ""
2236 2448
2237 -#: includes/modules/Minify/MinifyModule.php:78
2238 -msgid "Delay JavaScript Until Interaction"
2449 +#: includes/modules/Minify/MinifyModule.php:80
2450 +msgid "Delay JavaScript"
2239 2451 msgstr ""
2240 2452
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."
2453 +#: includes/modules/Minify/MinifyModule.php:81
2454 +msgid "Scripts load only when the visitor scrolls, taps or types. Pages show much sooner, but test menus and sliders. Cookie consent banners still load first."
2243 2455 msgstr ""
2244 2456
2245 -#: includes/modules/Minify/MinifyModule.php:84
2246 -msgid "Load CSS Asynchronously"
2457 +#: includes/modules/Minify/MinifyModule.php:86
2458 +msgid "Load CSS without blocking"
2247 2459 msgstr ""
2248 2460
2249 -#: includes/modules/Minify/MinifyModule.php:85
2250 -msgid "Rewrite stylesheet link tags to load non-blocking via the print-then-all pattern. Pairs well with critical-CSS workflows; can cause a flash of unstyled content if the theme has no critical CSS."
2461 +#: includes/modules/Minify/MinifyModule.php:87
2462 +msgid "On pages that have critical CSS, the page shows before the rest of its CSS finishes loading. Pages without critical CSS keep loading their CSS normally, because deferring it makes the page show unstyled and then jump."
2251 2463 msgstr ""
2252 2464
2253 -#: includes/modules/Minify/MinifyModule.php:90
2254 -msgid "Remove Asset Query Strings"
2465 +#: includes/modules/Minify/MinifyModule.php:92
2466 +msgid "Remove version from file URLs"
2255 2467 msgstr ""
2256 2468
2257 -#: includes/modules/Minify/MinifyModule.php:91
2258 -msgid "Strip ?ver=X.Y from enqueued CSS / JS URLs. Some CDN caches and proxies cache better when query strings are absent. Files under wp-content/uploads keep their version — page builders and consent plugins rewrite generated CSS there in place, and ?ver is what tells browsers to refetch it. Plugin, theme and core assets are still stripped: with Browser Cache on, an update reaches returning visitors only when their browser cache expires."
2469 +#: includes/modules/Minify/MinifyModule.php:93
2470 +msgid "Removes ?ver= from CSS and JS links, which some CDNs cache better. After a plugin update, returning visitors may keep old files until their browser cache expires."
2259 2471 msgstr ""
2260 2472
2261 -#: includes/modules/Minify/MinifyModule.php:97
2262 -msgid "Defer / Delay Exclusions"
2473 +#: includes/modules/Minify/MinifyModule.php:100
2474 +msgid "Scripts to never defer or delay"
2263 2475 msgstr ""
2264 2476
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."
2477 +#: includes/modules/Minify/MinifyModule.php:101
2478 +msgid "Script handles or parts of script URLs, one per line. jQuery is listed because most themes need it early; cookie consent banners are skipped on their own."
2267 2479 msgstr ""
2268 2480
2269 -#: includes/modules/Minify/MinifyModule.php:112
2270 -msgid "Delay Only These Scripts"
2481 +#: includes/modules/Minify/MinifyModule.php:115
2482 +msgid "Delay only these scripts"
2271 2483 msgstr ""
2272 2484
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."
2485 +#: includes/modules/Minify/MinifyModule.php:116
2486 +msgid "Script handles or parts of script URLs, one per line. Leave empty to delay all scripts; otherwise only these, plus known trackers and chat widgets, are delayed."
2275 2487 msgstr ""
2276 2488
2277 -#: includes/modules/Minify/MinifyModule.php:121
2278 -msgid "Delay Failsafe Timeout (ms)"
2489 +#: includes/modules/Minify/MinifyModule.php:117
2490 +msgid "Consent banners and Delay JS"
2279 2491 msgstr ""
2280 2492
2281 -#: includes/modules/Minify/MinifyModule.php:123
2282 -msgid "Load delayed scripts automatically after this many milliseconds when the visitor never interacts. Set to 0 for interaction-only, with no timer: a timer that fires inside a lab tool's measurement window loads the \"delayed\" scripts anyway and inflates the reported TTI. Keep a non-zero value if a delayed script must eventually run for visitors who never scroll, tap, or type."
2493 +#. translators: %s: comma-separated list of consent plugins, each followed by the word to type in parentheses.
2494 +#: includes/modules/Minify/MinifyModule.php:120
2495 +#, php-format
2496 +msgid "These consent banners load straight away, even with Delay JS on: %s. To delay one on purpose, add the word in parentheses, or the script handle, to this list. An entry that only matches part of the address, such as /plugins/ or .js, never delays a banner, and an entry in Scripts to never defer or delay always wins."
2283 2497 msgstr ""
2284 2498
2499 +#: includes/modules/Minify/MinifyModule.php:128
2500 +msgid "Smart delay"
2501 +msgstr ""
2502 +
2285 2503 #: includes/modules/Minify/MinifyModule.php:129
2286 -msgid "Combine CSS Files"
2504 +msgid "Also delays scripts that code on the page depends on, which helps page builder sites most. The riskiest setting here, so test menus and sliders."
2287 2505 msgstr ""
2288 2506
2289 -#: includes/modules/Minify/MinifyModule.php:130
2290 -msgid "Concatenate enqueued local stylesheets into a single file (with @import and url(…) paths resolved). External CSS is left alone. Pairs poorly with HTTP/2 push — only enable on HTTP/1.1 hosts."
2507 +#: includes/modules/Minify/MinifyModule.php:137
2508 +msgid "Delay timeout (ms)"
2291 2509 msgstr ""
2292 2510
2293 -#: includes/modules/Minify/MinifyModule.php:135
2294 -msgid "Combine JavaScript Files"
2511 +#: includes/modules/Minify/MinifyModule.php:139
2512 +msgid "Load delayed scripts after this long if the visitor does nothing. Set 0 to wait for a scroll, tap or key press only."
2295 2513 msgstr ""
2296 2514
2297 -#: includes/modules/Minify/MinifyModule.php:136
2298 -msgid "Concatenate enqueued local scripts into a single file. External scripts + scripts marked async / deferred are left alone. Disable if you hit dependency-order issues; the combiner respects WordPress enqueue order but inline scripts attached via wp_add_inline_script can shift behavior."
2515 +#: includes/modules/Minify/MinifyModule.php:146
2516 +msgid "Combine CSS files"
2299 2517 msgstr ""
2300 2518
2301 -#: includes/modules/Minify/MinifyModule.php:273
2519 +#: includes/modules/Minify/MinifyModule.php:147
2520 +msgid "Joins your site's own CSS files into one. This helps only on old HTTP/1.1 servers, so leave it off on most hosts."
2521 +msgstr ""
2522 +
2523 +#: includes/modules/Minify/MinifyModule.php:153
2524 +msgid "Combine JavaScript files"
2525 +msgstr ""
2526 +
2527 +#: includes/modules/Minify/MinifyModule.php:154
2528 +msgid "Joins your site's own scripts into one file. Turn off if a script stops working after you enable it."
2529 +msgstr ""
2530 +
2531 +#: includes/modules/Minify/MinifyModule.php:292
2302 2532 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 2533 msgstr ""
2304 2534
2305 -#: includes/modules/Minify/MinifyModule.php:274
2535 +#: includes/modules/Minify/MinifyModule.php:293
2306 2536 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 2537 msgstr ""
2308 2538
2309 -#: includes/modules/Minify/MinifyModule.php:279
2539 +#: includes/modules/Minify/MinifyModule.php:298
2310 2540 msgid "HTML minification is on but currently paused"
2311 2541 msgstr ""
2312 2542
2313 2543 #: includes/modules/ObjectCache/ObjectCacheModule.php:34
2314 -msgid "Configure a persistent object cache (Redis / Memcached) and generate a paste-ready wp-config.php snippet."
2544 +msgid "Stores database query results in Redis or Memcached so pages build faster."
2315 2545 msgstr ""
2316 2546
2317 -#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2318 -msgid "Backend"
2319 -msgstr ""
2320 -
2321 2547 #: includes/modules/ObjectCache/ObjectCacheModule.php:62
2322 -msgid "Which cache server you intend to use. Affects the generated wp-config snippet."
2548 +msgid "Cache server"
2323 2549 msgstr ""
2324 2550
2325 -#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2326 -msgid "Redis Host"
2551 +#: includes/modules/ObjectCache/ObjectCacheModule.php:63
2552 +msgid "The cache server your host provides. Ask your host if you are not sure."
2327 2553 msgstr ""
2328 2554
2329 2555 #: includes/modules/ObjectCache/ObjectCacheModule.php:69
2330 -msgid "Hostname or IP of the Redis server. Use 127.0.0.1 for a local socket on the same machine as PHP."
2556 +msgid "Redis host"
2331 2557 msgstr ""
2332 2558
2333 -#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2334 -msgid "Redis Port"
2559 +#: includes/modules/ObjectCache/ObjectCacheModule.php:70
2560 +msgid "Address of the Redis server. Use 127.0.0.1 when Redis runs on the same server as your site."
2335 2561 msgstr ""
2336 2562
2337 -#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2338 -msgid "Default Redis port is 6379."
2563 +#: includes/modules/ObjectCache/ObjectCacheModule.php:79
2564 +msgid "Redis port"
2339 2565 msgstr ""
2340 2566
2341 -#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2342 -msgid "Redis User"
2567 +#: includes/modules/ObjectCache/ObjectCacheModule.php:80
2568 +msgid "The default Redis port is 6379."
2343 2569 msgstr ""
2344 2570
2345 -#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2346 -msgid "Optional. Set this only if your host provisioned a dedicated Redis ACL user (Redis 6+) — e.g. some managed hosts issue a Redis User alongside the password. Leave blank to authenticate as the default user (legacy password-only Redis)."
2571 +#: includes/modules/ObjectCache/ObjectCacheModule.php:94
2572 +msgid "Redis username"
2347 2573 msgstr ""
2348 2574
2349 -#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2350 -msgid "Redis Password"
2575 +#: includes/modules/ObjectCache/ObjectCacheModule.php:95
2576 +msgid "Only needed if your host gave you a Redis username along with the password. Leave blank otherwise."
2351 2577 msgstr ""
2352 2578
2353 -#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2354 -msgid "Leave blank if your Redis server runs without auth."
2579 +#: includes/modules/ObjectCache/ObjectCacheModule.php:104
2580 +msgid "Leave blank if your Redis server has no password."
2355 2581 msgstr ""
2356 2582
2357 -#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2358 -msgid "Redis Database"
2583 +#: includes/modules/ObjectCache/ObjectCacheModule.php:113
2584 +msgid "Redis database"
2359 2585 msgstr ""
2360 2586
2361 -#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2362 -msgid "Redis logical DB number (0-15). Use a dedicated DB per site if Redis is shared."
2587 +#: includes/modules/ObjectCache/ObjectCacheModule.php:114
2588 +msgid "Database number, 0 to 15. If several sites share one Redis server, give each site its own number."
2363 2589 msgstr ""
2364 2590
2365 -#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2366 -msgid "Memcached Host"
2591 +#: includes/modules/ObjectCache/ObjectCacheModule.php:143
2592 +msgid "Memcached host"
2367 2593 msgstr ""
2368 2594
2369 -#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2370 -msgid "Used when Backend = Memcached."
2595 +#: includes/modules/ObjectCache/ObjectCacheModule.php:144
2596 +msgid "Address of the Memcached server. Use 127.0.0.1 when it runs on the same server as your site."
2371 2597 msgstr ""
2372 2598
2373 -#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2374 -msgid "Memcached Port"
2599 +#: includes/modules/ObjectCache/ObjectCacheModule.php:166
2600 +msgid "Memcached port"
2375 2601 msgstr ""
2376 2602
2377 -#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2378 -msgid "Default Memcached port is 11211."
2603 +#: includes/modules/ObjectCache/ObjectCacheModule.php:167
2604 +msgid "The default Memcached port is 11211."
2379 2605 msgstr ""
2380 2606
2381 -#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2382 -msgid "Cache Key Prefix"
2607 +#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2608 +msgid "Cache key prefix"
2383 2609 msgstr ""
2384 2610
2385 -#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2386 -msgid "Unique salt for this site's cache keys. Leave blank and xSpeed derives one automatically for this install, so sites sharing a Redis/Memcached server never collide. On ACL/namespaced Redis (e.g. xCloud), set this to the host's \"Redis Object Cache Key\" — otherwise cache writes are denied (NOPERM) and nothing persists."
2611 +#: includes/modules/ObjectCache/ObjectCacheModule.php:196
2612 +msgid "Leave blank and xSpeed picks a unique prefix for this site. Some managed Redis hosts, such as xCloud, give you a key to paste here, or nothing gets saved."
2387 2613 msgstr ""
2388 2614
2389 -#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2390 -msgid "Connection Timeout (seconds)"
2615 +#: includes/modules/ObjectCache/ObjectCacheModule.php:206
2616 +msgid "Connection timeout (seconds)"
2391 2617 msgstr ""
2392 2618
2393 -#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2394 -msgid "How long to wait for a connection. Keep low (1-2s) so a misconfigured cache never stalls the page."
2619 +#: includes/modules/ObjectCache/ObjectCacheModule.php:208
2620 +msgid "How long to wait for the cache server. Keep it at 1 or 2 seconds so a broken cache server never holds up a page."
2395 2621 msgstr ""
2396 2622
2397 -#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2398 -msgid "Persistent Connections"
2623 +#: includes/modules/ObjectCache/ObjectCacheModule.php:215
2624 +msgid "Persistent connections"
2399 2625 msgstr ""
2400 2626
2401 -#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2402 -msgid "Reuse the connection across PHP requests when supported. Generally a win unless the cache server complains about idle connections."
2627 +#: includes/modules/ObjectCache/ObjectCacheModule.php:216
2628 +msgid "Keep the connection open between page loads. Turn off only if your cache server reports too many idle connections."
2403 2629 msgstr ""
2404 2630
2405 -#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2631 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1013
2406 2632 msgid "The object cache drop-in is installed and storing data. This is measured from the running cache, not from the settings on this page."
2407 2633 msgstr ""
2408 2634
2409 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2635 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1016
2410 2636 msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2411 2637 msgstr ""
2412 2638
2413 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2639 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1018
2414 2640 msgid "No object cache is running. Entering a host below does not switch it on by itself -- the drop-in has to be installed and connect successfully."
2415 2641 msgstr ""
2416 2642
2417 2643 #: includes/modules/Preloader/PreloaderModule.php:33
@@ -2418,63 +2644,85 @@
2418 2644 msgid "Crawl Now"
2419 2645 msgstr ""
2420 2646
2421 2647 #: includes/modules/Preloader/PreloaderModule.php:35
2422 -msgid "Crawl the sitemap to warm cache so visitors never hit a cold MISS."
2648 +msgid "Visits your pages ahead of time so visitors get fast cached pages."
2423 2649 msgstr ""
2424 2650
2425 -#: includes/modules/Preloader/PreloaderModule.php:48
2426 -msgid "Enable Preloader"
2651 +#: includes/modules/Preloader/PreloaderModule.php:62
2652 +msgid "Your server is blocking the xSpeed cache warmer"
2427 2653 msgstr ""
2428 2654
2429 -#: includes/modules/Preloader/PreloaderModule.php:49
2430 -msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2655 +#. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2656 +#: includes/modules/Preloader/PreloaderModule.php:65
2657 +#, php-format
2658 +msgid "A warm request was refused with HTTP %1$d, which is how a firewall answers when it judges a request by its user-agent. Pages are not being warmed, so the first visitor to each new page waits for an uncached render. Allow the user-agent \"%2$s\" in your server's bad-bot rules — on xCloud this is the 8G firewall — or change it with the xspeed_preloader_user_agent filter. This notice clears itself once a warm gets through."
2431 2659 msgstr ""
2432 2660
2433 -#: includes/modules/Preloader/PreloaderModule.php:61
2661 +#: includes/modules/Preloader/PreloaderModule.php:79
2662 +msgid "xSpeed visits every page in your sitemap on the schedule below, so each page is cached before a visitor asks for it."
2663 +msgstr ""
2664 +
2665 +#: includes/modules/Preloader/PreloaderModule.php:91
2434 2666 msgid "Schedule"
2435 2667 msgstr ""
2436 2668
2437 -#: includes/modules/Preloader/PreloaderModule.php:62
2438 -msgid "How often to start a fresh crawl. Manual means you trigger it from the dashboard."
2669 +#: includes/modules/Preloader/PreloaderModule.php:92
2670 +msgid "How often to visit all pages again. Manual means you start it from the dashboard."
2439 2671 msgstr ""
2440 2672
2441 -#: includes/modules/Preloader/PreloaderModule.php:70
2442 -msgid "Batch Size"
2673 +#: includes/modules/Preloader/PreloaderModule.php:100
2674 +msgid "Pages per run"
2443 2675 msgstr ""
2444 2676
2445 -#: includes/modules/Preloader/PreloaderModule.php:71
2446 -msgid "URLs warmed per cron tick. Higher = faster crawl, more load on the origin."
2677 +#: includes/modules/Preloader/PreloaderModule.php:101
2678 +msgid "How many pages are cached on each run. A higher number finishes sooner but puts more load on your server."
2447 2679 msgstr ""
2448 2680
2449 -#: includes/modules/Preloader/PreloaderModule.php:77
2681 +#: includes/modules/Preloader/PreloaderModule.php:108
2450 2682 msgid "Sitemap URL (optional)"
2451 2683 msgstr ""
2452 2684
2453 -#: includes/modules/Preloader/PreloaderModule.php:78
2454 -msgid "Override the auto-detected WordPress core sitemap (/wp-sitemap.xml). Leave blank for default."
2685 +#: includes/modules/Preloader/PreloaderModule.php:109
2686 +msgid "Use a different sitemap than the WordPress one (/wp-sitemap.xml). Leave blank for the default."
2455 2687 msgstr ""
2456 2688
2457 -#: includes/modules/Preloader/PreloaderModule.php:84
2689 +#: includes/modules/Preloader/PreloaderModule.php:115
2458 2690 msgid "Warm new content immediately"
2459 2691 msgstr ""
2460 2692
2461 -#: includes/modules/Preloader/PreloaderModule.php:85
2462 -msgid "When a post or page is published, fetch it once so the first visitor sees a cache HIT, not a cold MISS."
2693 +#: includes/modules/Preloader/PreloaderModule.php:116
2694 +msgid "Cache a post or page as soon as you publish it, so the first visitor gets the fast cached page."
2463 2695 msgstr ""
2464 2696
2465 -#: includes/modules/Preloader/PreloaderModule.php:91
2697 +#: includes/modules/Preloader/PreloaderModule.php:122
2466 2698 msgid "Re-warm after comments"
2467 2699 msgstr ""
2468 2700
2469 -#: includes/modules/Preloader/PreloaderModule.php:92
2470 -msgid "Re-warm a page after a comment is posted (Cache purges the page on comment; this fetches it back into cache)."
2701 +#: includes/modules/Preloader/PreloaderModule.php:123
2702 +msgid "A new comment clears the page from the cache. This caches the page again right away."
2471 2703 msgstr ""
2472 2704
2473 -#: includes/modules/Preloader/PreloaderModule.php:268
2705 +#: includes/modules/Preloader/PreloaderModule.php:299
2474 2706 msgid "Enable the preloader before starting a crawl."
2475 2707 msgstr ""
2476 2708
2709 +#: includes/modules/Privacy/PrivacyModule.php:47
2710 +msgid "Privacy & usage data"
2711 +msgstr ""
2712 +
2713 +#: includes/modules/Privacy/PrivacyModule.php:49
2714 +msgid "Change the usage data choice you made in the setup wizard."
2715 +msgstr ""
2716 +
2717 +#: includes/modules/Privacy/PrivacyModule.php:59
2718 +msgid "Share usage data"
2719 +msgstr ""
2720 +
2721 +#: includes/modules/Privacy/PrivacyModule.php:60
2722 +msgid "Sends your WordPress and PHP versions, theme, plugins, server type and the features you use, never page content. Turn it off to stop all sending."
2723 +msgstr ""
2724 +
2477 2725 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2478 2726 msgid "Resource Hints"
2479 2727 msgstr ""
2480 2728
@@ -2482,143 +2730,142 @@
2482 2730 msgid "Hints"
2483 2731 msgstr ""
2484 2732
2485 2733 #: includes/modules/ResourceHints/ResourceHintsModule.php:63
2486 -msgid "Preload the LCP hero image and preconnect to font hosts so the largest element paints sooner."
2734 +msgid "Tells the browser to fetch the main image and fonts early."
2487 2735 msgstr ""
2488 2736
2489 -#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2490 -msgid "Enable Resource Hints"
2491 -msgstr ""
2492 -
2493 2737 #: includes/modules/ResourceHints/ResourceHintsModule.php:78
2494 -msgid "Master switch for the LCP-image preload + preconnect resource hints. On by default — these are safe, no-config optimizations that help every theme."
2738 +msgid "Enable resource hints"
2495 2739 msgstr ""
2496 2740
2497 -#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2498 -msgid "Preload LCP Image"
2741 +#: includes/modules/ResourceHints/ResourceHintsModule.php:79
2742 +msgid "Turns on all the hints below. They are safe on every theme, so this is on by default."
2499 2743 msgstr ""
2500 2744
2501 2745 #: includes/modules/ResourceHints/ResourceHintsModule.php:84
2502 -msgid "Detect the largest above-the-fold image and emit a <link rel=\"preload\" as=\"image\" fetchpriority=\"high\"> in the head, plus fetchpriority=\"high\" on the image. This is the highest-impact fix for Largest Contentful Paint — it beats any lazy-load the theme applied."
2746 +msgid "Preload the main image"
2503 2747 msgstr ""
2504 2748
2505 -#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2506 -msgid "Images to Preload"
2749 +#: includes/modules/ResourceHints/ResourceHintsModule.php:85
2750 +msgid "Finds the largest image at the top of the page and tells the browser to fetch it first. This usually gives the biggest LCP gain."
2507 2751 msgstr ""
2508 2752
2509 -#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2510 -msgid "How many of the first images on the page to preload. 1 is right for most sites (the single hero). Raise it only if the fold shows a small gallery."
2753 +#: includes/modules/ResourceHints/ResourceHintsModule.php:93
2754 +msgid "Images to preload"
2511 2755 msgstr ""
2512 2756
2513 -#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2514 -msgid "Exclude From Preload"
2757 +#: includes/modules/ResourceHints/ResourceHintsModule.php:94
2758 +msgid "How many images at the top of the page to preload. 1 suits most sites; raise it only if the top shows a small gallery."
2515 2759 msgstr ""
2516 2760
2517 -#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2518 -msgid "Substring patterns (filename or class) that, if found in an <img>, exempt it from being treated as the LCP image. Useful for tracking pixels, spacers, or a decorative first image that is not the hero."
2761 +#: includes/modules/ResourceHints/ResourceHintsModule.php:102
2762 +msgid "Excluded from preload"
2519 2763 msgstr ""
2520 2764
2521 -#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2522 -msgid "Always Preload These Images"
2765 +#: includes/modules/ResourceHints/ResourceHintsModule.php:103
2766 +msgid "Images whose tag contains a line here, such as a file name or class, are never picked as the main image. Useful for tracking pixels and spacers."
2523 2767 msgstr ""
2524 2768
2525 -#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2526 -msgid "Image URLs (full or site-relative) to preload with high priority on every page. This is the escape hatch for an LCP image the detector cannot see — most often a hero section's CSS background-image, which carries none of the signals the automatic pick reads. Keep it to one or two images: preloading many hands them all top network priority and the page itself loses. The first three entries are used."
2769 +#: includes/modules/ResourceHints/ResourceHintsModule.php:110
2770 +msgid "Always preload these images"
2527 2771 msgstr ""
2528 2772
2529 2773 #: includes/modules/ResourceHints/ResourceHintsModule.php:111
2530 -msgid "Preconnect to Font Hosts"
2774 +msgid "Image URLs to fetch first on every page, such as a hero background set in CSS. Keep it to one or two; only the first three are used."
2531 2775 msgstr ""
2532 2776
2533 -#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2534 -msgid "When Google Fonts are detected, emit <link rel=\"preconnect\"> to fonts.googleapis.com and fonts.gstatic.com so the DNS + TLS handshake happens ahead of the font request instead of on the critical path."
2777 +#: includes/modules/ResourceHints/ResourceHintsModule.php:117
2778 +msgid "Connect early to Google Fonts"
2535 2779 msgstr ""
2536 2780
2537 2781 #: includes/modules/ResourceHints/ResourceHintsModule.php:118
2538 -msgid "Extra Preconnect Hosts"
2782 +msgid "When the page uses Google Fonts, the browser connects to Google's servers early, so fonts arrive sooner."
2539 2783 msgstr ""
2540 2784
2541 -#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2542 -msgid "One origin per line (e.g. https://cdn.example.com) to preconnect in addition to the auto-detected font hosts. Use for a CDN or third-party origin that serves above-the-fold assets."
2785 +#: includes/modules/ResourceHints/ResourceHintsModule.php:125
2786 +msgid "Other domains to connect early"
2543 2787 msgstr ""
2544 2788
2789 +#: includes/modules/ResourceHints/ResourceHintsModule.php:126
2790 +msgid "One address per line, such as https://cdn.example.com. Use for a CDN or other domain that serves files at the top of the page."
2791 +msgstr ""
2792 +
2545 2793 #: includes/modules/Score/ScoreModule.php:58
2546 2794 msgid "Speed Test"
2547 2795 msgstr ""
2548 2796
2549 2797 #: includes/modules/Score/ScoreModule.php:64
2550 -msgid "Run a PageSpeed Insights or GTmetrix audit from the dashboard and keep the history next to your TTFB benchmark."
2798 +msgid "Run a PageSpeed Insights or GTmetrix test and keep a history of the scores."
2551 2799 msgstr ""
2552 2800
2553 -#: includes/modules/Score/ScoreModule.php:77
2801 +#: includes/modules/Score/ScoreModule.php:78
2554 2802 msgid "Allow speed tests"
2555 2803 msgstr ""
2556 2804
2557 -#: includes/modules/Score/ScoreModule.php:83
2558 -msgid "Turns on automatically the first time you run a speed test — the button press is the consent. Switch it off to stop every feature, including optimize runs, from contacting a score provider."
2805 +#: includes/modules/Score/ScoreModule.php:84
2806 +msgid "Turns on the first time you run a speed test. Switch it off and no feature, not even an optimize run, contacts a test provider."
2559 2807 msgstr ""
2560 2808
2561 -#: includes/modules/Score/ScoreModule.php:98
2562 -#: assets/admin.js
2563 -msgid "Provider"
2809 +#: includes/modules/Score/ScoreModule.php:99
2810 +msgid "Test provider"
2564 2811 msgstr ""
2565 2812
2566 -#: includes/modules/Score/ScoreModule.php:99
2567 -msgid "PageSpeed Insights works without an API key. GTmetrix requires one."
2813 +#: includes/modules/Score/ScoreModule.php:100
2814 +msgid "PageSpeed Insights works without an API key. GTmetrix needs one."
2568 2815 msgstr ""
2569 2816
2570 -#: includes/modules/Score/ScoreModule.php:104
2817 +#: includes/modules/Score/ScoreModule.php:105
2571 2818 msgid "PageSpeed API key (optional)"
2572 2819 msgstr ""
2573 2820
2574 -#: includes/modules/Score/ScoreModule.php:105
2575 -msgid "Only needed if you hit Google's anonymous rate limit. Free from cloud.google.com."
2821 +#: includes/modules/Score/ScoreModule.php:106
2822 +msgid "Only needed if Google starts refusing tests without a key. You can get a free key at cloud.google.com."
2576 2823 msgstr ""
2577 2824
2578 -#: includes/modules/Score/ScoreModule.php:117
2825 +#: includes/modules/Score/ScoreModule.php:119
2579 2826 msgid "GTmetrix API key"
2580 2827 msgstr ""
2581 2828
2582 -#: includes/modules/Score/ScoreModule.php:118
2583 -msgid "Required — GTmetrix has no anonymous mode. Found in your GTmetrix account settings."
2829 +#: includes/modules/Score/ScoreModule.php:120
2830 +msgid "GTmetrix does not run tests without a key. Find it in your GTmetrix account settings."
2584 2831 msgstr ""
2585 2832
2586 -#: includes/modules/Score/ScoreModule.php:127
2833 +#: includes/modules/Score/ScoreModule.php:129
2587 2834 msgid "URL to test"
2588 2835 msgstr ""
2589 2836
2590 -#: includes/modules/Score/ScoreModule.php:128
2837 +#: includes/modules/Score/ScoreModule.php:130
2591 2838 msgid "Leave empty to test your home page."
2592 2839 msgstr ""
2593 2840
2594 -#: includes/modules/Score/ScoreModule.php:134
2595 -msgid "Strategy"
2841 +#: includes/modules/Score/ScoreModule.php:136
2842 +msgid "Device"
2596 2843 msgstr ""
2597 2844
2598 -#: includes/modules/Score/ScoreModule.php:135
2599 -msgid "PageSpeed Insights only. Mobile is what Google ranks on."
2845 +#: includes/modules/Score/ScoreModule.php:137
2846 +msgid "Test as a phone or a desktop visitor. Google ranks sites on the mobile result."
2600 2847 msgstr ""
2601 2848
2602 -#: includes/modules/Score/ScoreModule.php:334
2603 -#: includes/modules/Score/ScoreModule.php:380
2849 +#: includes/modules/Score/ScoreModule.php:336
2850 +#: includes/modules/Score/ScoreModule.php:382
2604 2851 msgid "Hub-run speed tests are not enabled on this site."
2605 2852 msgstr ""
2606 2853
2607 -#: includes/modules/Score/ScoreModule.php:443
2854 +#: includes/modules/Score/ScoreModule.php:445
2608 2855 msgid "No URL to test."
2609 2856 msgstr ""
2610 2857
2611 -#: includes/modules/Score/ScoreModule.php:540
2858 +#: includes/modules/Score/ScoreModule.php:542
2612 2859 msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2613 2860 msgstr ""
2614 2861
2615 -#: includes/modules/Score/ScoreModule.php:619
2862 +#: includes/modules/Score/ScoreModule.php:621
2616 2863 msgid "The audit did not produce a result."
2617 2864 msgstr ""
2618 2865
2619 2866 #. translators: %s: module slug.
2620 -#: includes/modules/Settings/SettingsModule.php:320
2867 +#: includes/modules/Settings/SettingsModule.php:324
2621 2868 #, php-format
2622 2869 msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2623 2870 msgstr ""
2624 2871
@@ -2629,16 +2876,56 @@
2629 2876 #: includes/modules/Support/SupportModule.php:30
2630 2877 msgid "Open a support ticket with a one-click system snapshot already attached."
2631 2878 msgstr ""
2632 2879
2633 -#: includes/modules/Support/SupportModule.php:40
2880 +#: includes/modules/Support/SupportModule.php:41
2634 2881 msgid "Support URL"
2635 2882 msgstr ""
2636 2883
2637 -#: includes/modules/Support/SupportModule.php:41
2638 -msgid "Where the \"Open ticket\" button takes the user."
2884 +#: includes/modules/Support/SupportModule.php:42
2885 +msgid "The page the \"Open ticket\" button opens. Leave the default to reach xSpeed support."
2639 2886 msgstr ""
2640 2887
2888 +#: includes/modules/TurboRender/TurboRenderModule.php:89
2889 +msgid "Turbo Render"
2890 +msgstr ""
2891 +
2892 +#: includes/modules/TurboRender/TurboRenderModule.php:91
2893 +msgid "Shows the top of each page first and the rest as visitors scroll."
2894 +msgstr ""
2895 +
2896 +#: includes/modules/TurboRender/TurboRenderModule.php:101
2897 +msgid "Render as visitors scroll"
2898 +msgstr ""
2899 +
2900 +#: includes/modules/TurboRender/TurboRenderModule.php:102
2901 +msgid "The browser draws what visitors see first and draws lower sections just before they scroll to them. Your content does not change."
2902 +msgstr ""
2903 +
2904 +#: includes/modules/TurboRender/TurboRenderModule.php:109
2905 +msgid "Sections to render immediately"
2906 +msgstr ""
2907 +
2908 +#: includes/modules/TurboRender/TurboRenderModule.php:110
2909 +msgid "How many sections at the top are drawn right away. The default of 2 suits most pages; raise it if a section near the top appears late."
2910 +msgstr ""
2911 +
2912 +#: includes/modules/TurboRender/TurboRenderModule.php:116
2913 +msgid "Section classes"
2914 +msgstr ""
2915 +
2916 +#: includes/modules/TurboRender/TurboRenderModule.php:117
2917 +msgid "CSS classes that mark a section. The defaults cover the main page builders, and other themes are detected on their own."
2918 +msgstr ""
2919 +
2920 +#: includes/modules/TurboRender/TurboRenderModule.php:124
2921 +msgid "Excluded classes"
2922 +msgstr ""
2923 +
2924 +#: includes/modules/TurboRender/TurboRenderModule.php:125
2925 +msgid "Sections with any of these classes are always drawn right away. Add one here if part of a section gets cut off where it overlaps the next."
2926 +msgstr ""
2927 +
2641 2928 #: xspeed.php:220
2642 2929 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 2930 msgstr ""
2644 2931
@@ -2685,9 +2972,9 @@
2685 2972 #: assets/admin.js
2686 2973 msgid "7 days"
2687 2974 msgstr ""
2688 2975
2689 -#. Source: src/components/score/ScanCard.tsx:185
2976 +#. Source: src/components/score/ScanCard.tsx:197
2690 2977 #: assets/admin.js
2691 2978 msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2692 2979 msgstr ""
2693 2980
@@ -2695,9 +2982,9 @@
2695 2982 #: assets/admin.js
2696 2983 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2697 2984 msgstr ""
2698 2985
2699 -#. Source: src/components/cache/CacheHero.tsx:238
2986 +#. Source: src/components/cache/CacheHero.tsx:245
2700 2987 #: assets/admin.js
2701 2988 msgid "Absorbed"
2702 2989 msgstr ""
2703 2990
@@ -2767,9 +3054,9 @@
2767 3054 #: assets/admin.js
2768 3055 msgid "Also cleared: %s."
2769 3056 msgstr ""
2770 3057
2771 -#. Source: src/components/overview/Recommendations.tsx:181
3058 +#. Source: src/components/overview/Recommendations.tsx:184
2772 3059 #: assets/admin.js
2773 3060 msgid "Also worth a look"
2774 3061 msgstr ""
2775 3062
@@ -2813,8 +3100,13 @@
2813 3100 #: assets/admin.js
2814 3101 msgid "Apply"
2815 3102 msgstr ""
2816 3103
3104 +#. Source: src/components/score/ScanCard.tsx:84
3105 +#: assets/admin.js
3106 +msgid "Assets"
3107 +msgstr ""
3108 +
2817 3109 #. Source: src/upsell/ProAudit.tsx:46
2818 3110 #: assets/admin.js
2819 3111 msgid "Audit failed"
2820 3112 msgstr ""
@@ -2828,9 +3120,9 @@
2828 3120 #: assets/admin.js
2829 3121 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2830 3122 msgstr ""
2831 3123
2832 -#. Source: src/components/overview/MetricGrid.tsx:47
3124 +#. Source: src/components/overview/MetricGrid.tsx:57
2833 3125 #: assets/admin.js
2834 3126 msgid "Avg saved"
2835 3127 msgstr ""
2836 3128
@@ -2843,31 +3135,31 @@
2843 3135 #: assets/admin.js
2844 3136 msgid "Benchmark failed"
2845 3137 msgstr ""
2846 3138
2847 -#. Source: src/components/cache/TrendCharts.tsx:258
3139 +#. Source: src/components/cache/TrendCharts.tsx:263
2848 3140 #: assets/admin.js
2849 3141 msgid "Benchmark trend"
2850 3142 msgstr ""
2851 3143
2852 -#. Source: src/components/cache/TrendCharts.tsx:134
3144 +#. Source: src/components/cache/TrendCharts.tsx:139
2853 3145 #: assets/admin.js
2854 3146 msgid "Benchmark: cached vs uncached (ms)"
2855 3147 msgstr ""
2856 3148
2857 -#. Source: src/components/overview/Recommendations.tsx:230
3149 +#. Source: src/components/overview/Recommendations.tsx:233
2858 3150 #: assets/admin.js
2859 3151 msgid "Book"
2860 3152 msgstr ""
2861 3153
2862 -#. Source: src/components/overview/Recommendations.tsx:221
3154 +#. Source: src/components/overview/Recommendations.tsx:224
2863 3155 #: assets/admin.js
2864 3156 msgid "Book a free setup review with our team."
2865 3157 msgstr ""
2866 3158
2867 -#. Source: src/components/cache/CacheHero.tsx:242
3159 +#. Source: src/components/cache/CacheHero.tsx:249
2868 3160 #: assets/admin.js
2869 -msgid "bot / 404 requests in 24h — excluded from the hit ratio."
3161 +msgid "bot, 404 and cache-warming requests in 24h — excluded from the hit ratio."
2870 3162 msgstr ""
2871 3163
2872 3164 #. Source: src/components/TopBar.tsx:81
2873 3165 #: assets/admin.js
@@ -2878,9 +3170,9 @@
2878 3170 #: assets/admin.js
2879 3171 msgid "Browse all"
2880 3172 msgstr ""
2881 3173
2882 -#. Source: src/components/sidebarGroups.ts:69
3174 +#. Source: src/components/sidebarGroups.ts:79
2883 3175 #: assets/admin.js
2884 3176 msgid "Cache"
2885 3177 msgstr ""
2886 3178
@@ -2968,9 +3260,9 @@
2968 3260 msgid "Cache purged"
2969 3261 msgstr ""
2970 3262
2971 3263 #. Source: src/components/health/HealthHero.tsx:30
2972 -#. Source: src/components/overview/MetricGrid.tsx:46
3264 +#. Source: src/components/overview/MetricGrid.tsx:56
2973 3265 #: assets/admin.js
2974 3266 msgid "Cache size"
2975 3267 msgstr ""
2976 3268
@@ -2983,9 +3275,9 @@
2983 3275 #: assets/admin.js
2984 3276 msgid "Cache, compression & more"
2985 3277 msgstr ""
2986 3278
2987 -#. Source: src/components/cache/TrendCharts.tsx:270
3279 +#. Source: src/components/cache/TrendCharts.tsx:275
2988 3280 #: assets/admin.js
2989 3281 msgid "cached"
2990 3282 msgstr ""
2991 3283
@@ -2990,9 +3282,9 @@
2990 3282 msgstr ""
2991 3283
2992 3284 #. Source: src/components/cache/StatDrilldown.tsx:140
2993 3285 #. Source: src/components/health/HealthHero.tsx:29
2994 -#. Source: src/components/overview/MetricGrid.tsx:45
3286 +#. Source: src/components/overview/MetricGrid.tsx:55
2995 3287 #: assets/admin.js
2996 3288 msgid "Cached pages"
2997 3289 msgstr ""
2998 3290
@@ -3016,9 +3308,9 @@
3016 3308 #: assets/admin.js
3017 3309 msgid "Cancel"
3018 3310 msgstr ""
3019 3311
3020 -#. Source: src/components/sidebarGroups.ts:85
3312 +#. Source: src/components/sidebarGroups.ts:95
3021 3313 #: assets/admin.js
3022 3314 msgid "CDN and Cloudflare edge delivery."
3023 3315 msgstr ""
3024 3316
@@ -3113,8 +3405,13 @@
3113 3405 #: assets/admin.js
3114 3406 msgid "Connect"
3115 3407 msgstr ""
3116 3408
3409 +#. Source: src/components/sidebarGroups.ts:120
3410 +#: assets/admin.js
3411 +msgid "Connect an AI agent to this site, and control what AI features may use."
3412 +msgstr ""
3413 +
3117 3414 #. Source: src/components/TopBar.tsx:138
3118 3415 #: assets/admin.js
3119 3416 msgid "Connect Hub"
3120 3417 msgstr ""
@@ -3179,9 +3476,9 @@
3179 3476 #: assets/admin.js
3180 3477 msgid "Connected to xSpeed Hub"
3181 3478 msgstr ""
3182 3479
3183 -#. Source: src/components/score/ScanCard.tsx:221
3480 +#. Source: src/components/score/ScanCard.tsx:233
3184 3481 #: assets/admin.js
3185 3482 msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3186 3483 msgstr ""
3187 3484
@@ -3209,8 +3506,13 @@
3209 3506 #: assets/admin.js
3210 3507 msgid "Control xSpeed with AI"
3211 3508 msgstr ""
3212 3509
3510 +#. Source: src/components/score/ScanCard.tsx:80
3511 +#: assets/admin.js
3512 +msgid "Core Web Vitals"
3513 +msgstr ""
3514 +
3213 3515 #. Source: src/components/overview/McpSessionDemo.tsx:230
3214 3516 #: assets/admin.js
3215 3517 msgid "Core Web Vitals checked"
3216 3518 msgstr ""
@@ -3229,9 +3531,9 @@
3229 3531 #: assets/admin.js
3230 3532 msgid "Could not check the test status."
3231 3533 msgstr ""
3232 3534
3233 -#. Source: src/components/sidebarGroups.ts:99
3535 +#. Source: src/components/sidebarGroups.ts:109
3234 3536 #: assets/admin.js
3235 3537 msgid "Database cleanup, migration and logs."
3236 3538 msgstr ""
3237 3539
@@ -3245,9 +3547,9 @@
3245 3547 msgid "desktop"
3246 3548 msgstr ""
3247 3549
3248 3550 #. Source: src/components/overview/ScoreCard.tsx:90
3249 -#. Source: src/components/score/ScanCard.tsx:281
3551 +#. Source: src/components/score/ScanCard.tsx:293
3250 3552 #: assets/admin.js
3251 3553 msgid "Desktop"
3252 3554 msgstr ""
3253 3555
@@ -3352,9 +3654,9 @@
3352 3654 #: assets/admin.js
3353 3655 msgid "from wp-config.php"
3354 3656 msgstr ""
3355 3657
3356 -#. Source: src/components/score/ScanCard.tsx:358
3658 +#. Source: src/components/score/ScanCard.tsx:370
3357 3659 #: assets/admin.js
3358 3660 msgid "Full report"
3359 3661 msgstr ""
3360 3662
@@ -3368,9 +3670,9 @@
3368 3670 #: assets/admin.js
3369 3671 msgid "Go to Dashboard"
3370 3672 msgstr ""
3371 3673
3372 -#. Source: src/onboarding/OnboardingApp.tsx:161
3674 +#. Source: src/onboarding/OnboardingApp.tsx:165
3373 3675 #: assets/admin.js
3374 3676 msgid "Go to the dashboard"
3375 3677 msgstr ""
3376 3678
@@ -3378,10 +3680,10 @@
3378 3680 #: assets/admin.js
3379 3681 msgid "good"
3380 3682 msgstr ""
3381 3683
3382 -#. Source: src/components/score/ScanCard.tsx:261
3383 -#. Source: src/components/score/ScanCard.tsx:302
3684 +#. Source: src/components/score/ScanCard.tsx:273
3685 +#. Source: src/components/score/ScanCard.tsx:314
3384 3686 #: assets/admin.js
3385 3687 msgid "Grade"
3386 3688 msgstr ""
3387 3689
@@ -3389,9 +3691,9 @@
3389 3691 #: assets/admin.js
3390 3692 msgid "GTmetrix test"
3391 3693 msgstr ""
3392 3694
3393 -#. Source: src/components/sidebarGroups.ts:90
3695 +#. Source: src/components/sidebarGroups.ts:100
3394 3696 #: assets/admin.js
3395 3697 msgid "Health & insights"
3396 3698 msgstr ""
3397 3699
@@ -3414,11 +3716,11 @@
3414 3716 #: assets/admin.js
3415 3717 msgid "Hide"
3416 3718 msgstr ""
3417 3719
3418 -#. Source: src/components/cache/TrendCharts.tsx:120
3419 -#. Source: src/components/health/HealthHero.tsx:37
3420 -#. Source: src/components/overview/MetricGrid.tsx:44
3720 +#. Source: src/components/cache/TrendCharts.tsx:125
3721 +#. Source: src/components/health/HealthHero.tsx:42
3722 +#. Source: src/components/overview/MetricGrid.tsx:45
3421 3723 #: assets/admin.js
3422 3724 msgid "Hit ratio"
3423 3725 msgstr ""
3424 3726
@@ -3431,14 +3733,19 @@
3431 3733 #: assets/admin.js
3432 3734 msgid "Hit Ratio · 24h · origin"
3433 3735 msgstr ""
3434 3736
3737 +#. Source: src/components/health/HealthHero.tsx:42
3738 +#: assets/admin.js
3739 +msgid "Hit ratio (PHP-served only)"
3740 +msgstr ""
3741 +
3435 3742 #. Source: src/components/cache/TrendCharts.tsx:83
3436 3743 #: assets/admin.js
3437 3744 msgid "Hit ratio and benchmark history, with your settings changes marked."
3438 3745 msgstr ""
3439 3746
3440 -#. Source: src/components/cache/TrendCharts.tsx:222
3747 +#. Source: src/components/cache/TrendCharts.tsx:227
3441 3748 #: assets/admin.js
3442 3749 msgid "Hit ratio trend"
3443 3750 msgstr ""
3444 3751
@@ -3461,13 +3768,8 @@
3461 3768 #: assets/admin.js
3462 3769 msgid "Hub connected"
3463 3770 msgstr ""
3464 3771
3465 -#. Source: src/components/sidebarGroups.ts:106
3466 -#: assets/admin.js
3467 -msgid "Hub, MCP access, AI provider and privacy."
3468 -msgstr ""
3469 -
3470 3772 #. Source: src/onboarding/steps/Connect.tsx:132
3471 3773 #: assets/admin.js
3472 3774 msgid "I'll connect later"
3473 3775 msgstr ""
@@ -3506,14 +3808,14 @@
3506 3808 #: assets/admin.js
3507 3809 msgid "Just say what you want"
3508 3810 msgstr ""
3509 3811
3510 -#. Source: src/components/overview/MetricGrid.tsx:51
3812 +#. Source: src/components/overview/MetricGrid.tsx:61
3511 3813 #: assets/admin.js
3512 3814 msgid "Key metrics"
3513 3815 msgstr ""
3514 3816
3515 -#. Source: src/components/overview/MetricGrid.tsx:44
3817 +#. Source: src/components/overview/MetricGrid.tsx:53
3516 3818 #: assets/admin.js
3517 3819 msgid "last 24 hours"
3518 3820 msgstr ""
3519 3821
@@ -3526,9 +3828,9 @@
3526 3828 #: assets/admin.js
3527 3829 msgid "Last purged"
3528 3830 msgstr ""
3529 3831
3530 -#. Source: src/components/cache/TrendCharts.tsx:236
3832 +#. Source: src/components/cache/TrendCharts.tsx:241
3531 3833 #: assets/admin.js
3532 3834 msgid "Latest"
3533 3835 msgstr ""
3534 3836
@@ -3542,9 +3844,9 @@
3542 3844 #: assets/admin.js
3543 3845 msgid "License"
3544 3846 msgstr ""
3545 3847
3546 -#. Source: src/components/sidebarGroups.ts:113
3848 +#. Source: src/components/sidebarGroups.ts:128
3547 3849 #: assets/admin.js
3548 3850 msgid "License, branding, multisite and support."
3549 3851 msgstr ""
3550 3852
@@ -3552,14 +3854,19 @@
3552 3854 #: assets/admin.js
3553 3855 msgid "Lighthouse performance, from your latest xSpeed Scan."
3554 3856 msgstr ""
3555 3857
3556 -#. Source: src/components/score/ScanCard.tsx:284
3858 +#. Source: src/components/score/ScanCard.tsx:296
3557 3859 #: assets/admin.js
3558 3860 msgid "Lighthouse performance, out of 100"
3559 3861 msgstr ""
3560 3862
3561 -#. Source: src/App.tsx:420
3863 +#. Source: src/components/cache/CacheHero.tsx:238
3864 +#: assets/admin.js
3865 +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."
3866 +msgstr ""
3867 +
3868 +#. Source: src/App.tsx:456
3562 3869 #. Source: src/components/GroupLanding.tsx:67
3563 3870 #. Source: src/components/LogsView.tsx:35
3564 3871 #: assets/admin.js
3565 3872 msgid "Logs"
@@ -3626,21 +3933,21 @@
3626 3933 #: assets/admin.js
3627 3934 msgid "min"
3628 3935 msgstr ""
3629 3936
3630 -#. Source: src/components/sidebarGroups.ts:78
3937 +#. Source: src/components/sidebarGroups.ts:88
3631 3938 #: assets/admin.js
3632 3939 msgid "Minify, compress, lazy-load, fonts and hints."
3633 3940 msgstr ""
3634 3941
3635 3942 #. Source: src/components/overview/ScoreCard.tsx:185
3636 -#. Source: src/components/score/ScanCard.tsx:294
3943 +#. Source: src/components/score/ScanCard.tsx:306
3637 3944 #: assets/admin.js
3638 3945 msgid "mobile"
3639 3946 msgstr ""
3640 3947
3641 3948 #. Source: src/components/overview/ScoreCard.tsx:91
3642 -#. Source: src/components/score/ScanCard.tsx:281
3949 +#. Source: src/components/score/ScanCard.tsx:293
3643 3950 #: assets/admin.js
3644 3951 msgid "Mobile"
3645 3952 msgstr ""
3646 3953
@@ -3670,9 +3977,9 @@
3670 3977 #: assets/admin.js
3671 3978 msgid "Negligible difference — page is cheap to render or cache is cold."
3672 3979 msgstr ""
3673 3980
3674 -#. Source: src/components/sidebarGroups.ts:83
3981 +#. Source: src/components/sidebarGroups.ts:93
3675 3982 #: assets/admin.js
3676 3983 msgid "Network"
3677 3984 msgstr ""
3678 3985
@@ -3846,9 +4153,9 @@
3846 4153 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 4154 msgstr ""
3848 4155
3849 4156 #. Source: src/components/health/HealthHero.tsx:30
3850 -#. Source: src/components/overview/MetricGrid.tsx:46
4157 +#. Source: src/components/overview/MetricGrid.tsx:56
3851 4158 #: assets/admin.js
3852 4159 msgid "on disk"
3853 4160 msgstr ""
3854 4161
@@ -3856,9 +4163,9 @@
3856 4163 #: assets/admin.js
3857 4164 msgid "on your xSpeed Hub account."
3858 4165 msgstr ""
3859 4166
3860 -#. Source: src/onboarding/OnboardingApp.tsx:152
4167 +#. Source: src/onboarding/OnboardingApp.tsx:156
3861 4168 #: assets/admin.js
3862 4169 msgid "Onboarding data unavailable"
3863 4170 msgstr ""
3864 4171
@@ -3886,9 +4193,9 @@
3886 4193 #: assets/admin.js
3887 4194 msgid "Open the full report"
3888 4195 msgstr ""
3889 4196
3890 -#. Source: src/components/sidebarGroups.ts:76
4197 +#. Source: src/components/sidebarGroups.ts:86
3891 4198 #: assets/admin.js
3892 4199 msgid "Optimization"
3893 4200 msgstr ""
3894 4201
@@ -3917,9 +4224,9 @@
3917 4224 #: assets/admin.js
3918 4225 msgid "Page"
3919 4226 msgstr ""
3920 4227
3921 -#. Source: src/components/sidebarGroups.ts:71
4228 +#. Source: src/components/sidebarGroups.ts:81
3922 4229 #: assets/admin.js
3923 4230 msgid "Page, object and browser caching, plus preload."
3924 4231 msgstr ""
3925 4232
@@ -3937,9 +4244,9 @@
3937 4244 #: assets/admin.js
3938 4245 msgid "PageSpeed & Core Web Vitals"
3939 4246 msgstr ""
3940 4247
3941 -#. Source: src/components/score/ScanCard.tsx:314
4248 +#. Source: src/components/score/ScanCard.tsx:326
3942 4249 #: assets/admin.js
3943 4250 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
3944 4251 msgstr ""
3945 4252
@@ -3957,9 +4264,9 @@
3957 4264 #: assets/admin.js
3958 4265 msgid "Paste this site’s URL + token into the"
3959 4266 msgstr ""
3960 4267
3961 -#. Source: src/components/overview/MetricGrid.tsx:47
4268 +#. Source: src/components/overview/MetricGrid.tsx:57
3962 4269 #: assets/admin.js
3963 4270 msgid "per page load"
3964 4271 msgstr ""
3965 4272
@@ -3980,8 +4287,13 @@
3980 4287 #: assets/admin.js
3981 4288 msgid "Performance score and Core Web Vitals."
3982 4289 msgstr ""
3983 4290
4291 +#. Source: src/components/overview/MetricGrid.tsx:52
4292 +#: assets/admin.js
4293 +msgid "PHP-served only — static fast path hits are not counted"
4294 +msgstr ""
4295 +
3984 4296 #. Source: src/components/score/ScorePanel.tsx:713
3985 4297 #: assets/admin.js
3986 4298 msgid "Pick one more run to compare."
3987 4299 msgstr ""
@@ -3990,8 +4302,13 @@
3990 4302 #: assets/admin.js
3991 4303 msgid "Pick two runs to compare them."
3992 4304 msgstr ""
3993 4305
4306 +#. Source: src/components/score/ScanCard.tsx:86
4307 +#: assets/admin.js
4308 +msgid "Platform"
4309 +msgstr ""
4310 +
3994 4311 #. Source: src/components/cache/StatDrilldown.tsx:277
3995 4312 #: assets/admin.js
3996 4313 msgid "Precompressed copies on disk:"
3997 4314 msgstr ""
@@ -4000,18 +4317,35 @@
4000 4317 #: assets/admin.js
4001 4318 msgid "Preload"
4002 4319 msgstr ""
4003 4320
4004 -#. Source: src/App.tsx:390
4321 +#. Source: src/App.tsx:423
4005 4322 #: assets/admin.js
4006 4323 msgid "Preload could not start"
4007 4324 msgstr ""
4008 4325
4009 -#. Source: src/App.tsx:388
4326 +#. Source: src/App.tsx:422
4010 4327 #: assets/admin.js
4011 -msgid "Preload started"
4328 +msgid "Preload could not start: %s"
4012 4329 msgstr ""
4013 4330
4331 +#. Source: src/App.tsx:410
4332 +#: assets/admin.js
4333 +msgid "Preload found no pages to warm"
4334 +msgstr ""
4335 +
4336 +#. Source: src/App.tsx:409
4337 +#: assets/admin.js
4338 +msgid "Preload found no pages to warm: %s"
4339 +msgstr ""
4340 +
4341 +#. Source: src/App.tsx:399
4342 +#: assets/admin.js
4343 +msgid "Preloading %d page"
4344 +msgid_plural "Preloading %d pages"
4345 +msgstr[0] ""
4346 +msgstr[1] ""
4347 +
4014 4348 #. Source: src/upsell/ProDemo.tsx:118
4015 4349 #: assets/admin.js
4016 4350 msgid "Preview"
4017 4351 msgstr ""
@@ -4072,10 +4406,15 @@
4072 4406 #: assets/admin.js
4073 4407 msgid "Profile JSON to import"
4074 4408 msgstr ""
4075 4409
4076 -#. Source: src/components/score/ScanCard.tsx:95
4410 +#. Source: src/components/score/ScorePanel.tsx:727
4077 4411 #: assets/admin.js
4412 +msgid "Provider"
4413 +msgstr ""
4414 +
4415 +#. Source: src/components/score/ScanCard.tsx:107
4416 +#: assets/admin.js
4078 4417 msgid "pts"
4079 4418 msgstr ""
4080 4419
4081 4420 #. Source: src/components/CommandPalette.tsx:58
@@ -4109,9 +4448,9 @@
4109 4448 #: assets/admin.js
4110 4449 msgid "Purge, benchmark, preload and tune settings by asking your AI"
4111 4450 msgstr ""
4112 4451
4113 -#. Source: src/components/score/ScanCard.tsx:329
4452 +#. Source: src/components/score/ScanCard.tsx:341
4114 4453 #: assets/admin.js
4115 4454 msgid "ranked by points recovered"
4116 4455 msgstr ""
4117 4456
@@ -4151,15 +4490,15 @@
4151 4490 #: assets/admin.js
4152 4491 msgid "Recent cache and settings activity."
4153 4492 msgstr ""
4154 4493
4155 -#. Source: src/components/cache/TrendCharts.tsx:148
4494 +#. Source: src/components/cache/TrendCharts.tsx:153
4156 4495 #: assets/admin.js
4157 4496 msgid "Recent changes"
4158 4497 msgstr ""
4159 4498
4160 -#. Source: src/components/overview/Recommendations.tsx:116
4161 -#. Source: src/components/overview/Recommendations.tsx:120
4499 +#. Source: src/components/overview/Recommendations.tsx:119
4500 +#. Source: src/components/overview/Recommendations.tsx:123
4162 4501 #: assets/admin.js
4163 4502 msgid "Recommended for your site"
4164 4503 msgstr ""
4165 4504
@@ -4177,9 +4516,9 @@
4177 4516 #: assets/admin.js
4178 4517 msgid "Refresh activity log"
4179 4518 msgstr ""
4180 4519
4181 -#. Source: src/components/cache/TrendCharts.tsx:108
4520 +#. Source: src/components/cache/TrendCharts.tsx:113
4182 4521 #: assets/admin.js
4183 4522 msgid "Refresh trends"
4184 4523 msgstr ""
4185 4524
@@ -4233,9 +4572,9 @@
4233 4572 msgid "Run a GTmetrix test on this site"
4234 4573 msgstr ""
4235 4574
4236 4575 #. Source: src/components/overview/ScoreCard.tsx:295
4237 -#. Source: src/components/score/ScanCard.tsx:197
4576 +#. Source: src/components/score/ScanCard.tsx:209
4238 4577 #: assets/admin.js
4239 4578 msgid "Run a scan"
4240 4579 msgstr ""
4241 4580
@@ -4263,9 +4602,9 @@
4263 4602 #: assets/admin.js
4264 4603 msgid "Run test"
4265 4604 msgstr ""
4266 4605
4267 -#. Source: src/components/cache/TrendCharts.tsx:139
4606 +#. Source: src/components/cache/TrendCharts.tsx:144
4268 4607 #: assets/admin.js
4269 4608 msgid "Run the benchmark at least twice to see a trend."
4270 4609 msgstr ""
4271 4610
@@ -4303,14 +4642,14 @@
4303 4642 #: assets/admin.js
4304 4643 msgid "Saving changes…"
4305 4644 msgstr ""
4306 4645
4307 -#. Source: src/components/score/ScanCard.tsx:197
4646 +#. Source: src/components/score/ScanCard.tsx:209
4308 4647 #: assets/admin.js
4309 4648 msgid "Scan again"
4310 4649 msgstr ""
4311 4650
4312 -#. Source: src/components/score/ScanCard.tsx:197
4651 +#. Source: src/components/score/ScanCard.tsx:209
4313 4652 #: assets/admin.js
4314 4653 msgid "Scanning…"
4315 4654 msgstr ""
4316 4655
@@ -4361,13 +4700,18 @@
4361 4700 msgid "See how this site performs for real visitors."
4362 4701 msgstr ""
4363 4702
4364 4703 #. Source: src/components/health/HealthHero.tsx:29
4365 -#. Source: src/components/overview/MetricGrid.tsx:45
4704 +#. Source: src/components/overview/MetricGrid.tsx:55
4366 4705 #: assets/admin.js
4367 4706 msgid "served without PHP"
4368 4707 msgstr ""
4369 4708
4709 +#. Source: src/components/score/ScanCard.tsx:82
4710 +#: assets/admin.js
4711 +msgid "Server & caching"
4712 +msgstr ""
4713 +
4370 4714 #. Source: src/components/RewriteAlert.tsx:106
4371 4715 #: assets/admin.js
4372 4716 msgid "Server config missing — cache running on PHP fallback"
4373 4717 msgstr ""
@@ -4431,9 +4775,9 @@
4431 4775 #: assets/admin.js
4432 4776 msgid "Size"
4433 4777 msgstr ""
4434 4778
4435 -#. Source: src/components/sidebarGroups.ts:92
4779 +#. Source: src/components/sidebarGroups.ts:102
4436 4780 #: assets/admin.js
4437 4781 msgid "Speed score, diagnostics and analytics."
4438 4782 msgstr ""
4439 4783
@@ -4476,9 +4820,9 @@
4476 4820 #: assets/admin.js
4477 4821 msgid "Take over the page cache from %s?"
4478 4822 msgstr ""
4479 4823
4480 -#. Source: src/components/cache/TrendCharts.tsx:240
4824 +#. Source: src/components/cache/TrendCharts.tsx:245
4481 4825 #: assets/admin.js
4482 4826 msgid "target ≥80%"
4483 4827 msgstr ""
4484 4828
@@ -4527,9 +4871,9 @@
4527 4871 #: assets/admin.js
4528 4872 msgid "This credential is defined in wp-config.php and cannot be changed here."
4529 4873 msgstr ""
4530 4874
4531 -#. Source: src/components/score/ScanCard.tsx:222
4875 +#. Source: src/components/score/ScanCard.tsx:234
4532 4876 #: assets/admin.js
4533 4877 msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4534 4878 msgstr ""
4535 4879
@@ -4548,9 +4892,9 @@
4548 4892 msgid "Token"
4549 4893 msgstr ""
4550 4894
4551 4895 #. Source: src/components/LogsView.tsx:34
4552 -#. Source: src/components/sidebarGroups.ts:97
4896 +#. Source: src/components/sidebarGroups.ts:107
4553 4897 #: assets/admin.js
4554 4898 msgid "Tools"
4555 4899 msgstr ""
4556 4900
@@ -4558,9 +4902,9 @@
4558 4902 #: assets/admin.js
4559 4903 msgid "Trends"
4560 4904 msgstr ""
4561 4905
4562 -#. Source: src/components/cache/TrendCharts.tsx:126
4906 +#. Source: src/components/cache/TrendCharts.tsx:131
4563 4907 #: assets/admin.js
4564 4908 msgid "Trends appear after a couple of days of traffic. The daily series is being collected now."
4565 4909 msgstr ""
4566 4910
@@ -4588,9 +4932,9 @@
4588 4932 #: assets/admin.js
4589 4933 msgid "Turn on the page cache to start serving pages instantly."
4590 4934 msgstr ""
4591 4935
4592 -#. Source: src/components/cache/TrendCharts.tsx:273
4936 +#. Source: src/components/cache/TrendCharts.tsx:278
4593 4937 #: assets/admin.js
4594 4938 msgid "uncached"
4595 4939 msgstr ""
4596 4940
@@ -4634,14 +4978,14 @@
4634 4978 #: assets/admin.js
4635 4979 msgid "Waiting for connection…"
4636 4980 msgstr ""
4637 4981
4638 -#. Source: src/components/overview/Recommendations.tsx:218
4982 +#. Source: src/components/overview/Recommendations.tsx:221
4639 4983 #: assets/admin.js
4640 4984 msgid "Want a hand?"
4641 4985 msgstr ""
4642 4986
4643 -#. Source: src/onboarding/OnboardingApp.tsx:155
4987 +#. Source: src/onboarding/OnboardingApp.tsx:159
4644 4988 #: assets/admin.js
4645 4989 msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard."
4646 4990 msgstr ""
4647 4991
@@ -4654,9 +4998,9 @@
4654 4998 #: assets/admin.js
4655 4999 msgid "What this adds"
4656 5000 msgstr ""
4657 5001
4658 -#. Source: src/components/score/ScanCard.tsx:327
5002 +#. Source: src/components/score/ScanCard.tsx:339
4659 5003 #: assets/admin.js
4660 5004 msgid "What to fix next"
4661 5005 msgstr ""
4662 5006
@@ -4731,17 +5075,17 @@
4731 5075 #: assets/admin.js
4732 5076 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
4733 5077 msgstr ""
4734 5078
4735 -#. Source: src/components/score/ScanCard.tsx:173
4736 -#. Source: src/components/score/ScanCard.tsx:183
4737 -#. Source: src/components/score/ScanCard.tsx:304
5079 +#. Source: src/components/score/ScanCard.tsx:185
5080 +#. Source: src/components/score/ScanCard.tsx:195
5081 +#. Source: src/components/score/ScanCard.tsx:316
4738 5082 #. Source: src/components/score/ScorePanel.tsx:426
4739 5083 #: assets/admin.js
4740 5084 msgid "xSpeed Scan"
4741 5085 msgstr ""
4742 5086
4743 -#. Source: src/components/score/ScanCard.tsx:264
5087 +#. Source: src/components/score/ScanCard.tsx:276
4744 5088 #: assets/admin.js
4745 5089 msgid "xSpeed Scan, out of 100"
4746 5090 msgstr ""
4747 5091
@@ -4759,9 +5103,9 @@
4759 5103 #: assets/admin.js
4760 5104 msgid "You're all set"
4761 5105 msgstr ""
4762 5106
4763 -#. Source: src/components/overview/Recommendations.tsx:131
5107 +#. Source: src/components/overview/Recommendations.tsx:134
4764 5108 #: assets/admin.js
4765 5109 msgid "You're all set — no recommendations right now."
4766 5110 msgstr ""
4767 5111